Skip to main content
Every time a tool runs during a conversation, a submission is recorded — the input the agent collected, the result, the channel it came from, and the page the visitor was on. Leads, bookings, quote requests and payment links all land here, whatever tool produced them. This is the endpoint to poll if you sync into a CRM, and the one to read when someone asks “did that lead actually arrive?”. For push instead of poll, see Webhooks.

GET /tenants//submissions

List submissions, most recent first. Required scope: conversations:read

Query parameters

The type filter is toolType, not type. An unknown parameter is ignored rather than rejected, so ?type=SUBMIT_FORM silently returns every type — a quiet way to conclude you have more leads than you do. Invalid values do get rejected with 400.

Response

input holds the fields your tool declared, under your own field names — see SUBMIT_FORM config format. stats is computed on page 1 only (it counts the whole tenant, not the current filter, except for toolType). Don’t expect it while paginating. conversationId is present whenever the submission came from a conversation rather than the standalone form. Fetch the thread with GET /tenants//conversations/ to see what was said around the capture.

PUT /tenants//submissions/

Move a submission along: NEWCONTACTEDRESOLVED. Required scope: conversations:write
Any other value returns 400. The status is free of side effects on our side — nothing is re-sent, nothing is deleted — it exists so your team (or your CRM) can tell what has been handled. Each change fires a submission.updated webhook carrying both status and previousStatus, which is what makes a two-way sync possible: your CRM marks it contacted, your other tools hear about it.

DELETE /tenants//submissions/

Remove a submission permanently. Required scope: conversations:write Use it to honour an erasure request (GDPR art. 17) — the captured contact details live in input, so deleting the submission is what actually removes them. Note that the conversation it came from is a separate record.

Status meaning

Submissions are created with NEW. Nothing moves them automatically: no delay, no reminder, no expiry. If a lead sits in NEW for a week, that is a report about your follow-up, not about the agent — which is the point of keeping the column.