Identifiers
Always
"submission".UUID. Use as your foreign key in external systems.
UUID of the Page the submission came from.
null if the parent page was deleted.Sequential, per-organization counter. The dashboard formats it as
SUB-0001; the wire value is the raw integer.Status, priority, flag
One of
new, read, in_progress, resolved, spam. Default is new.One of
none, low, medium, high. Default is none.Free-floating “needs attention” toggle. Independent of status and priority.
Assignment
UUID of the user who owns this submission.
null means unassigned.UUID of the user who resolved the submission. Stamped automatically when status moves to
resolved and the actor is an OAuth user; it stays null when an API key performs the resolve (there’s no user to attribute). Clear via PATCH with null to undo.ISO 8601 timestamp when the submission was resolved. Auto-stamped by the server the moment
status moves to resolved. You may also set it explicitly via PATCH; a malformed value (not a parseable ISO 8601 timestamp) is rejected with 400.Free-text internal annotation. Not visible to the visitor.
Data
The form response itself, keyed by block ID (not field label). Each entry has the shape:
type— the form block type (form_text,form_email,form_textarea,form_select,form_checkbox, …).label— the author-set label at submission time. Survives subsequent edits to the page.value— the submitted value.stringfor most fields,string[]for multi-select / checkboxes,nullfor empty optional fields,numberfor numeric inputs.order— the block’s sort order on the page when the submission was captured. Use this to render fields in form order, since JSON object keys aren’t ordered.
Free-form key/value pairs captured at submit time. Common keys:
utm_source, utm_medium, utm_campaign, referrer, user_agent. May be {} but never null.Attribution
QR code the visitor scanned to reach the page. Server-resolved from a session cookie — visitors can’t forge this.
Product whose scan URL drove this visit. Server-resolved.
Custom object whose
/o/<slug> URL drove this visit.Conversation that presented the form, if the submission originated from a chatbot’s
present_page tool call rather than a direct page visit.Destination
The redirect destination resolved at submit time. The page’s block configuration determines what the visitor sees after submitting; this field records what was applied.
null means the visitor saw the default thank-you screen.Shape is a tagged union on type:Activity
ISO 8601. When the visitor first loaded the page.
null if not captured (legacy submissions).Seconds between
viewed_at and created_at — time-to-complete. null when viewed_at is null.Timestamps
ISO 8601. When the visitor submitted.

