Update form settings
formSettings_updateUpdate form settings. Only provide fields to change. Use this for form BEHAVIOR — email notifications, scheduling/limits, redirects. For the form's name/folder/cover/logo use form_update; for colors/fonts/visual theme use formTheme_set; for questions and content use the editor_* tools.
Three independent email flows: self-notification (form owner/team on submit), respondent notification (confirmation to respondent), respondent reminder (when respondent abandons mid-form, Pro tier). Each is gated by its own *Enabled flag and accepts a custom subject + body. Respondent-targeted flows require *To to point at an email-input field ID (find via editor_getDocument).
Localization: customizing a respondent confirmation/reminder subject or body makes it translatable — the keys appear in translationDraft_get immediately (no form publish needed); localize via translationDraft_get → translationDraft_update. Self-notification (owner) emails are NOT translatable; write them directly in the target language here.
Custom From domain: pass emailDomainId from formSettings_get → availableEmailDomains; null resets to noreply@formbase.so.
{{variable}} placeholders for subjects/bodies: {{email.formName}} - Form name {{email.submittedAt}} - Submission date/time {{email.submissionId}} - Submission ID {{email.submissionType}} - "New", "Updated", or "Partial" {{metadata.formId}} - Form ID {{metadata.authorizedEmail}} - Respondent email (if auth enabled) {{metadata.pin4}} - 4-digit PIN per submission {{metadata.pin6}} - 6-digit PIN per submission {{metadata.code4}} - 4-char code per submission {{metadata.code6}} - 6-char code per submission Plus any answer by its field key: {{}} (the key fields_list shows and requests, callbacks and submissions use; the input node id from form_get questions[].id also works). Keys read back as {{}}.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| formId | Yes | Form ID to update settings for | |
| language | No | BCP-47 language tag (e.g. "en", "en-US", "pt-BR"). Defaults to "en". | |
| maxEdits | No | Max post-submit edits allowed per submission (requires editAfterSubmit). 0 = unlimited; max 3. | |
| password | No | Form access password (≥4 chars). Setting a string implies passwordEnabled:true. Pass null to clear the gate (sets passwordEnabled:false). | |
| redirectUrl | No | http(s) URL respondents land on after submission. null or empty string clears. Mutually exclusive with allowAnotherResponse:true. | |
| showBranding | No | Show formbase branding on the form. | |
| emailDomainId | No | Verified email domain ID for custom From address. Read availableEmailDomains from formSettings_get for valid IDs. null resets to default. | |
| reminderSteps | No | Reminder schedule as idle offsets from the respondent's last activity, e.g. ["1d","3d","1w"]. Max 5 steps, sorted and deduped on save; [] = no automatic reminders. Applies to both abandoned public-link responses and requests. | |
| captchaEnabled | No | Enable Turnstile bot protection. | |
| editAfterSubmit | No | Allow respondents to edit a submission after sending. | |
| passwordEnabled | No | Gate form with a password. Auto-set to true when `password` is provided. Setting true requires a stored password. | |
| draftRetentionDays | No | Days to keep abandoned drafts (0–36500). null reverts to runtime default. | |
| notificationEmails | No | Email addresses receiving submission notifications. At most 10; duplicates are collapsed case-insensitively. | |
| notifyOnSubmission | No | Email form owner/team on new submissions. | |
| redirectQueryParams | No | Map form field values as query parameters on the redirect URL. Each entry maps a URL param name to a field ID. | |
| allowAnotherResponse | No | After submitting, loop respondents back to a fresh empty form. Mutually exclusive with a non-empty redirectUrl. | |
| pdfGenerationEnabled | No | Attach submission PDF to self-notification emails. | |
| respondentReminderTo | No | Field ID of an email-type question. Set to null to clear. | |
| requireAuthentication | No | Require respondents to be logged in. | |
| respondentReminderBody | No | Custom body for the reminder email. Plain text with optional {{variable}} placeholders; newlines become paragraphs. | |
| selfNotificationSubject | No | Custom subject for self-notification emails. Plain text with optional {{variable}} placeholders. | |
| submissionRetentionDays | No | Days to keep submissions (0–36500). null reverts to runtime default. Setting a value also clears any fixed deletion date configured in the form builder (the two retention modes are mutually exclusive). Business plan. | |
| respondentNotificationTo | No | Field ID of an email-type question. Respondent email is extracted from their answer to this field. Set to null to clear. | |
| showViewSubmissionButton | No | Show "View Submission" button in self-notification emails. | |
| respondentReminderEnabled | No | Enable reminder email to respondents who started but did not complete the form. Pro tier. | |
| respondentReminderSubject | No | Custom subject for the reminder email. Plain text with optional {{variable}} placeholders. | |
| selfNotificationEmailBody | No | Custom body for self-notification emails. Plain text with optional {{variable}} placeholders; newlines become paragraphs. | |
| respondentNotificationBody | No | Custom body for respondent confirmation email. Plain text with optional {{variable}} placeholders; newlines become paragraphs. | |
| maxSubmissionsPerRespondent | No | Max submissions one respondent may make via "Submit another response" (requires allowAnotherResponse). 0 = unlimited; max 1000. Hard-enforced for signed-in respondents; client-gated for anonymous. | |
| respondentReminderIdleWindow | No | Single-step form of `reminderSteps`, kept for forms authored before multi-step schedules. Ignored when `reminderSteps` is set. | |
| respondentNotificationEnabled | No | Enable confirmation email sent to the respondent after submission. | |
| respondentNotificationSubject | No | Custom subject for respondent confirmation email. Plain text with optional {{variable}} placeholders. | |
| respondentNotificationPdfEnabled | No | Attach submission PDF to respondent confirmation email. | |
| respondentReminderRequiredFieldIds | No | Minimum fields a respondent must have answered for the reminder to fire. Each item is a field ID from editor_getDocument. Empty array = remind any partial response. |