Change a form
forms_updateChange a form's fields or settings; only what you pass changes. fields replaces the whole list: pass each existing field's id (forms_get shows them) so its answers stay attached, even when you rename it. Answers to fields or options you remove stay readable in responses, exports and summaries. A field that already has answers keeps its type (short_text and long_text may switch). Empty or null clears redirect_url, close_at and notify_email; max_responses 0 or null removes the limit. Costs $0.01 per call; nothing if it fails.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| form | Yes | The form's form_id or slug (forms_list shows both). | |
| title | No | ||
| fields | No | The questions in order. When changing a form, this replaces the whole list. | |
| close_at | No | Stop taking responses at this time (ISO 8601, like 2026-12-31T23:59:00Z; UTC when no offset is given). Empty or null: never. | |
| description | No | Shown under the title. | |
| on_response | No | What each response also does on its own, while you are away ($0.01 per action done): {"action": "open_ticket", "priority": "normal"} opens a help desk ticket for the respondent; {"action": "create_deal", "pipeline": "Sales", "stage": "New", "amount_field": "budget"} creates a deal with them as contact; {"action": "add_row", "table": "Leads", "columns": {"Email": "email", "Budget": "budget"}} adds a row, each column from a field id. [] or null: none. | |
| save_to_crm | No | Save the person behind each response as a CRM contact. The first email field is the email; a short_text field with id name or full_name (or first_name and last_name) is the name; the first phone field the phone. An existing contact only gets empty fields filled. | |
| notify_email | No | Email this address about new responses: at most one email a minute per form, later responses grouped into the next one. Empty or null: off. | |
| redirect_url | No | An https:// page to send people to after they submit. Empty or null: none. | |
| submit_label | No | The button's words (default "Submit"). | |
| hidden_fields | No | Link values kept with each response: ["ref", "utm_source"] keeps them from https://cncto.co/f/<slug>?ref=abc&utm_source=newsletter. | |
| max_responses | No | Stop after this many responses. 0 or null: no limit. | |
| thank_you_title | No | Shown after sending (default "Thank you"). | |
| thank_you_message | No | ||
| confirm_to_respondent | No | Email each respondent their answers in the brand kit (form_confirmation wording), to the address they typed in the first email field. $0.002 each; paid accounts only; at most three a day to one address. |