Update form settings
update_form_settingsChange a published Formhaus form's webhook, email notifications, success message, redirect, or pause/resume status without editing its fields. Send only settings to change; omitted ones stay.
Instructions
Call this to change how a published form behaves without touching its fields: webhook, email notifications, success message, redirect, or pause and resume. To change fields, publish a new version with publish_form and form_id instead. Changes the settings of a form of the account. Requires FORMHAUS_API_KEY to be an account key (fh_live_...); agent keys (fh_agent_..., also after a claim) get owner_key_required, and unclaimed forms are not found. Send only the settings to change; omitted ones stay. Returns form_id, status, success_message, redirect_url, notify_mode, webhook_url and a masked webhook_secret. Call reveal_webhook_secret for the full secret.
webhook_url: public https:// URL that receives each new submission as a signed JSON POST {form_id, submission_id, version, values, created_at}. Private, loopback, link-local and cloud metadata addresses are refused. Setting a URL on a form without one creates a new signing secret. Empty string removes the webhook.
notify_mode: "milestones" (default) emails the workspace members who turned on email notifications when the form reaches its 1st, 10th, 100th, 500th, 1,000th, 5,000th, 10,000th, 25,000th, 50,000th and 100,000th response; the emails hold a link to the responses and no response values. "off" sends nothing.
success_message: text shown after a submission on the hosted page and embed, up to 500 characters.
redirect_url: http(s) URL the hosted page and embed open after a submission. Empty string removes it.
status: "paused" stops accepting submissions, "active" resumes. A form paused after abuse answers paused_by_moderation.
Example: {"form_id": "abcDEF1234", "webhook_url": "https://example.com/api/formhaus"}
The receiver checks the Formhaus-Signature header t=,v1=<hex HMAC-SHA256 of t + "." + raw body, keyed with the full whsec_ secret>, rejects a t more than 5 minutes from now, compares in constant time and deduplicates by the Formhaus-Submission-Id header. On error, fix every listed setting and call again.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | paused stops accepting submissions, active resumes them. Omit to leave it unchanged. | |
| form_id | Yes | The 10-character form_id returned by publish_form or list_forms, such as "abcDEF1234". | |
| notify_mode | No | milestones: an email at the 1st, 10th, 100th, 500th, 1,000th, 5,000th, 10,000th, 25,000th, 50,000th and 100,000th response, without response values. off: no emails. Omit to leave it unchanged. | |
| webhook_url | No | Public https:// URL that receives each new submission as a signed POST. Empty string removes the webhook. Omit to leave it unchanged. | |
| redirect_url | No | http(s) URL the hosted page and embed open after a successful submission. Empty string removes it. Omit to leave it unchanged. | |
| success_message | No | Text shown after a successful submission on the hosted page and embed. Up to 500 characters. Omit to leave it unchanged. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| error | No | Machine-readable error code or message when the call failed. | |
| notice | No | ||
| form_id | No | ||
| message | No |