Status
What the Workspace has done with a Submission. An Integration: per Form, with the Form's own words. A person sets it, with a note saying why; every change goes on the Timeline, fires a webhook, filters the list, leaves with the export, and reads over MCP.
What it is
Status is the human verdict on a Submission, where the Gate's gateStatus is the
machine's. The two never write each other. Not every Form has one — a newsletter has no
triage — so Status is an Integration: switched on per Form, on its Integrations tab,
with the Form's own words.
A feedback Form tracks status from the moment it is created, with these words:
| status | meaning |
|---|---|
new | Arrived. Nobody has looked at it yet. |
waiting | Seen. On hold, or pending a decision. |
planned | Decided yes. Not done yet. |
addressed | Done. |
rejected | Decided no. |
A survey, or anything else, opts in. A lead Form might want new, qualified,
unqualified, contacted. The words are yours: one per line, lowercase letters,
digits and _, at least two and at most twelve. The first is what a Submission arrives
as. The ones you mark resolved mean the loop is closed and render calm; the rest
read as open.
Beside the status: a note (why — a ticket, a PR, a reason), who set it, and when. The note is the half people come back for.
The Timeline
Every Submission keeps a Timeline: every change since it arrived, with who, when and why. It always starts with arrived, carrying the word the Submission arrived as and its sender. Each status change appends an entry with the word before and after, the note and the person. The 500-character cap on a note applies to each entry, not to the Submission. A machine never writes Status. When the Gate or Auto classify writes the machine read, the Timeline records it as that Integration's entry, beside the human ones.
Moving a Submission to another word fires submission.status_changed. See
Webhooks. Where the door the Submission came
through can answer, the sender is told as well. See Sources.
Switching it on, and off
Switching Status on gives every Submission the Form already has the first word, so the list is an inbox from the start. Switching it off hides the words and keeps them: nothing a person set is thrown away, and they come back if it is switched on again. Changing the words later leaves older Submissions on the word they had; moving one is what puts it on a current word.
In the Studio
Open a Submission and set the status in the panel on the right. The Submissions list
gains a Status column and a filter row with a count per status. The filter lives in the
URL, so a view can be shared, and the CSV export honours it and carries status,
status_note, status_changed_at and status_changed_by. On a Form that does not
track status, none of that appears.
On Insights
The Studio's Insights page shows arrivals by door for every Form: how many Submissions came through the API, the survey page, MCP, a CSV import, Slack or email in the period. For the Forms that track Status it also shows:
- Status movement: the changes people made in the period, from which word to which, and who made them.
- Open: the Submissions on a word that is not resolved, oldest first, with how long each has waited since it arrived.
- Resolved, waiting on a check: on a Form that also tracks Checks, the resolved Submissions that still have a check open.
A Form that does not track Status shows only its arrivals. These views are on the page only. Nothing is sent by email.
Over MCP
get_form returns the Form's words under status, or null when it tracks none.
list_submissions accepts status as a filter, refused on a Form that does not track
it, and returns it on every row. get_submission returns the status with its note, who
set it and when, and the Timeline. On a Form that does not track status, none of the
three shows a word. Setting a status over MCP is not available yet; when it is, it will
need a write token.
What did you think of this content?