Submission
JSON payload when a user completes an autoreply submission form.
2 min read
Event submission fires when a user finishes an autoreply submission form on a device linked to your webhook.
Enable Submission on Webhooks → Webhook and link the device that owns the form. See Autoreply submissions.
Header:
X-Kirisan-Event: submission (Legacy endpoints may send submission.completed in the header while the body still uses "event": "submission".)
Payload fields
| Field | Type | Meaning |
|---|---|---|
event | string | submission |
submission | object | id (form id) and name (form title) |
device | string | Device token or identifier |
sender | string | User who completed the form (phone or chat id) |
channel | string | whatsapp, telegram, or waba |
answers | array | One object per question, in ask order |
started_at | integer | Unix seconds when the session started |
completed_at | integer | Unix seconds when the form was submitted |
timestamp | integer | Unix seconds when Kirisan sent the webhook |
production | boolean | true live; false on Webhooks → Test |
Each answers[] item
| Field | Meaning |
|---|---|
question | Question text shown to the user |
answer | Answer object — see below |
answer object
answer.type | Fields |
|---|---|
text | text — plain string |
image, video, audio, file | file with url, filename, filetype (and optional mime_type) |
Empty or skipped answers appear as { "type": "text", "text": "" }.
Example
{
"event": "submission",
"submission": {
"id": 42,
"name": "Registration form"
},
"device": "your-device-token",
"sender": "6281234567890",
"channel": "whatsapp",
"answers": [
{
"question": "What is your name?",
"answer": {
"type": "text",
"text": "Jane Doe"
}
},
{
"question": "Upload your ID photo",
"answer": {
"type": "image",
"file": {
"url": "https://cdn.example.com/uploads/id-photo.jpg",
"filename": "id-photo.jpg",
"filetype": "image",
"mime_type": "image/jpeg"
}
}
}
],
"started_at": 1735689480,
"completed_at": 1735689600,
"timestamp": 1735689600,
"production": true
} Related
- Webhooks overview — enable Submission on your endpoint
- Incoming message — customer messages before the form
- Test a submission webhook — step-by-step test tutorial
- Autoreply submissions — build forms in the dashboard