FormMaker docs

update_hosted_form

Change a hosted form's presentation — or its fields — after creating it.

You shipped a hosted form and now want a different button label, a different accent colour, or to switch it into (or out of) conversational mode. This changes that, live on the next page load — the formId, embed snippet, and share link never change.

Pass only the settings you want to change; everything else is left exactly as it was. An empty string resets a theme value back to the widget's default.

It edits the form's fields too — this is the master-form move: change the fields once here and every page that embeds the form picks up the change on the next load, with no re-embedding. New fields are re-checked against the HubSpot form you submit to, the same check create_hosted_form runs. The one thing it can't change is where submissions go — for a different destination, create a new form with create_hosted_form.

Change a hosted form's presentation after creating it

Change an existing hosted form — its presentation (title, button text, theme colours, whether it asks one question per screen) or its fields. Editing fields here is the master-form edit: this form may be embedded on several pages, and a field change applies to every one of them at once, instead of editing each page separately. `submit` (where a submission goes) can never change — for a different destination, create a new form. If this form posts to a HubSpot form, new `fields` are re-checked against it, same as create_hosted_form: a field the HubSpot form doesn't define is rejected before anything is saved. The change is live on the next page load; the formId, embed snippet and share link never change. Pass only the settings you want to change; the rest are left alone. An empty string resets a theme value to its default.

read-onlyidempotentopen-world

Parameters

NameTypeDescription
formIdstringrequired
namestringoptionalThe form's title — the page title, and the heading above the fields in a standard (non-conversational) form.
buttonTextstringoptionalThe submit button's label. Name what the visitor gets, never "Submit".
brandColorstringoptionalPrimary brand colour, e.g. "#0f766e". "" resets to default.
inkColorstringoptionalBody text colour. "" resets to default.
bgColorstringoptionalBackground of the hosted /f/ page (not the embed). "" resets to default.
radiusstringoptionalCorner radius, e.g. "8px". "" resets to default.
fontFamilystringoptionalFont family. "" resets to default.
mode"conversational" | ""optional"conversational" asks one question per screen; "" clears it back to a standard form. Omit to leave unchanged.
styleobjectoptionalCustom style knobs, as { knob: value }. Allowed knobs: surface, border (colours, e.g. "#0b1211"); fieldGap, labelSize (lengths, e.g. "24px"); buttonInk (colour); shadow ("none"|"soft"|"strong"). "" resets a knob to default. Invalid names/values are rejected. Presentation only — never touches fields or where submissions go.
fieldsobject[]optionalReplace the form's fields. This is the master-form edit: change fields here and every page that embeds this form updates at once. Omit to leave fields unchanged.
stepsinteger[]optionalField counts per step for the new fields, e.g. [2,3]. Only used with `fields`; omit for a single-page form.