# update_form

> Change a form's title, description, URL slug, settings (language, retention, thank-you message, redirect, welcome screen, presentation/layout, embed behavior) or branding/design (theme colors, font, logo, background image). Use this DIRECTLY for any design/theming request on a form — 'make it dark', 'use a serif font', 'add a background image', 'make the logo bigger', 'rounder corners', 'add a welcome screen' — no need to call get_form or get_brand_kit first: theme patches merge one level, and omitted tokens keep inheriting from the brand kit. A welcome screen (shown before the form starts, with a Start button) lives in settings.welcome: { title, message, buttonLabel, imageUrl (https) } — pass null to remove it. Design lives in branding.theme: { background, surface, ink, muted, accent, buttonBg, buttonFg (hex colors), radius (0–24 px), font ('system'|'humanist'|'geometric'|'rounded'|'serif'|'slab'|'mono'), density ('comfortable'|'compact'), align ('left'|'center'), backgroundImageUrl (https), backgroundOverlay (0–1), logoSize ('small'|'medium'|'large') } — validated, WCAG-AA contrast enforced, mobile-safe by construction. Theme values override the workspace brand kit (set_brand_kit); omit a token to inherit. branding.logoUrl sets a per-form logo; branding.customCss is a Pro escape hatch. Presentation lives in settings.presentation: layout 'single' | 'focus' (one question at a time, Typeform-style) | 'paged' (steps — define them with set_pages), progress 'bar' | 'counter' | 'none', and embed { mode: inline|popup|modal|slider|tab|fullpage, trigger: click|load|time|scroll|exit|idle|pages, triggerValue, position, label, cooldownDays } for how the form appears on the customer's own website. For changing fields use add_fields/update_field/remove_field/reorder_fields instead.

_MCP tool "Update form details" · writes data · https://forms.ax/help/tools/update_form_

## Ask your assistant

- "Rename the form to Project Inquiry, set the accent color to dark green, and show a progress counter."

This is the settings tool — everything that isn't a field: [branding and after-submit](/help/building/customize), [layout and progress](/help/building/presentation-modes), [embed behavior](/help/building/embed), [retention](/help/privacy/retention). Field changes use the dedicated field tools instead.

## Inputs

- `form_id` (string): Form id (authenticated). From create_form/list_forms.
- `draft_token` (string): Draft token (anonymous drafts, before sign-in). From create_form's draftToken.
- `title` (string)
- `description` (string)
- `slug` (string)
- `settings` (object): Partial settings patch: language, retentionDays, thankYouMessage, redirectUrl, allowedEmbedDomains, welcome ({ title, message, buttonLabel, imageUrl } or null), presentation ({ layout, progress, embed })
- `branding` (object): Partial branding patch: theme (design tokens — see the tool description), logoUrl (https), customCss (Pro). Patches merge one level: setting theme.accent keeps the other tokens.
