Send Webhook
Send selected form variables to an external system via HTTP POST through the Calcopolis backend.
In the builder: select a widget → On Click or On Change → Add action → Send webhook
Behavior
When the action runs, Calcopolis posts the chosen payload to your webhook URL from the server.
- Server-side delivery — secrets and auth headers are not exposed in the browser.
- Requires a Webhook integration configured for the project.
- Selected variables are sent as top-level JSON fields (flat object, no nesting).
- Works while the form owner has an active subscription.
- Supports None, Header Auth, and Basic Auth on the integration.
Setup fields
Configure a Webhook integration for the project, then connect Send webhook on a widget. Settings are split between the integration (URL, auth) and the action (payload variables).
| Field | Description |
|---|---|
| Connection | Pick the webhook integration — URL, HTTP method, and authentication live there. |
| Payload | Select which form variables to include in the JSON body. |
Action name
Internal label in the builder action list. Use distinct names when the same widget runs multiple actions.
FAQ
Webhook vs Send Webhook via JS?
| Send Webhook | Send Webhook via JS | |
|---|---|---|
| Runs on | Calcopolis server | Visitor's browser |
| Secrets | Hidden | Visible in page source |
| CORS | Not an issue | Endpoint must allow browser calls |
| Best for | CRM, protected APIs | Zapier public hooks, low-risk automations |
Example payload
{
"email": "visitor@example.com",
"total": "1250",
"plan_type": "advanced"
}
Only variables you select are included.
Why did the webhook not fire?
| Symptom | Check |
|---|---|
| Action missing | Create a Webhook integration first — requires_integration |
| Empty payload | Select at least one variable in Payload |
| 4xx from your server | Verify URL, auth headers, and that your endpoint accepts JSON POST |
| Works locally only | Publish form; confirm subscription is active |
How do I test?
Use a request inspector (e.g. webhook.site) as the target URL during setup, submit the form in Preview, and confirm the JSON body.