Deliveries, updated
Integrations
FormThunder delivers form submissions to Slack, Discord, Telegram and Google Sheets directly, and to Zapier, Make, n8n or your own server through signed webhooks. Integrations are on the Pro and Agency plans. Each one is its own delivery, with its own status and retries, so a Slack outage doesn't affect the email.
Settings
All of them live in the form's integrations object.
{
"integrations": {
"webhook": { "enabled": true, "url": "https://example.com/hooks/forms" },
"slack": { "enabled": true, "url": "https://hooks.slack.com/services/..." },
"discord": { "enabled": true, "url": "https://discord.com/api/webhooks/..." },
"telegram": { "enabled": true, "chat_id": "-1001234567890" },
"sheets": { "enabled": true, "url": "https://script.google.com/macros/s/.../exec" }
}
}The object is sent whole, so read it with GET /api/v1/forms/:id first and send it back with your change. Your AI's get_form and update_form tools are told to do this.
Setup guides
| Integration | How it connects | Guide |
|---|---|---|
| Slack | Incoming webhook URL | Slack |
| Discord | Channel webhook URL | Discord |
| Telegram | FormThunder's bot and your chat ID | Telegram |
| Google Sheets | An Apps Script web app you deploy | Google Sheets |
| Your server | Signed webhook | Webhooks |
| Zapier | Webhook to a Catch Hook trigger | Zapier |
| Make | Webhook to a Custom webhook module | Make |
| n8n | Webhook to a Webhook node | n8n |
Checking a delivery
Every submission lists its deliveries by channel, with status, attempts and last error. test_form and npx formthunder test YOUR_FORM_ID run a real submission through all of them and report back.
npx formthunder test YOUR_FORM_IDThe test command exits 1 if a delivery failed, so you can use it in CI.