WAKATODOCS

Forms

Space MCP tools in the Forms scope (forms). Reach these with a wks_live_ key over space-mcp or space-api.

Tools in the forms scope, callable over space-mcp (tools/call) or space-api (REST) with a wks_live_* key that grants forms.

create_form

Scope: forms:write

Create a real Space form so submissions are captured (they flow into the space and fire automations). Returns { form_id, slug, fields }. Embed it with <form data-wakato-form-id="<form_id>"> where each input name matches a field key. The form is active immediately.

ParameterTypeRequiredDescription
namestringyes
descriptionstring
success_messagestring
redirect_urlstringWhere to send the visitor after submit (optional).
templatestringBuilt-in template id: contact | lead_capture | event_rsvp | nps | booking_intake | quiz | job_application. Ignored if fields given.
fieldsobject[]Explicit fields. Each: { key, label, type, required?, placeholder?, options? }. type ∈ text|email|tel|textarea|date|select|checkboxes|radio|number|url|checkbox.

delete_form

Scope: forms:write

PERMANENTLY delete a Space form (its submissions are deleted with it). Refused while a booking page has the form attached — detach first via update_booking_page with form_id: null. Prefer update_form status:"archived" when the submission history should be kept.

ParameterTypeRequiredDescription
form_idstringyes

get_form

Scope: forms:read

Get a Space form including its fields (use each field's key as the HTML input name).

ParameterTypeRequiredDescription
form_idstringyes

list_form_submissions

Scope: forms:read

Read a form's submissions, newest first. Each submission's answers are in data, keyed by field key. Returns total_count so you can report volume without paging.

ParameterTypeRequiredDescription
form_idstringyes
statuspending_confirmation | confirmed | expired
sincestringISO datetime — only submissions created at/after this instant.
limitnumberMax rows (default 50, max 200).

list_forms

Scope: forms:read

List Space forms (id, name, slug, status). Reuse an existing form before creating a new one.

submit_form

Scope: forms:write

Submit a form through the SAME pipeline as the public /f/<slug> page — required-field validation, contact capture, and automations ALL fire. This creates a REAL submission: use it to test a form end-to-end (then find it via list_form_submissions) or to file answers collected on someone's behalf. The form must be active.

ParameterTypeRequiredDescription
form_idstringyes
dataobjectyesAnswer values keyed by each field's key (from get_form). Every required field must be present.

update_form

Scope: forms:write

Edit an existing Space form: name, description, status (draft|active|paused|archived), success_message, redirect_url, and/or fields. fields is a FULL replacement — call get_form first, modify the array (add/edit/remove/reorder fields, change required flags, options, labels), and pass the whole thing back.

ParameterTypeRequiredDescription
form_idstringyes
namestring
descriptionstring
statusdraft | active | paused | archivedOnly active forms accept submissions.
success_messagestring
redirect_urlstring
fieldsobject[]FULL field list replacement. Each: { key, label, type, required?, placeholder?, options? }. type ∈ text|email|tel|textarea|date|select|checkboxes|radio|number|url|checkbox.

On this page