Developers
Webhooks
The Webhook connector POSTs every new form lead to your URL as JSON. This is the full contract.
Events
| Event | When | Body |
|---|---|---|
webforgia.test | Once, when you connect | { "type": "webforgia.test", "at": "…" } |
lead | Each new contact or newsletter submission | See below |
agent.result | When a scheduled agent finishes, if it reports to this webhook | { "type": "agent.result", "title", "body", "at" } |
A lead
POST your-url
{
"type": "lead",
"site": "Fade & Co",
"url": "https://webforgia.com/s/fade-and-co-1a2b3c4d",
"kind": "contact",
"name": "Sam Taylor",
"email": "[email protected]",
"message": "Do you take walk-ins on Saturday?",
"at": "2026-10-01T09:30:00.000Z"
}kind is contact or newsletter. Fields the visitor did not fill are null.
Request details
| Method | POST |
| Headers | content-type: application/json, x-webforgia-event (the event type), user-agent: Webforgia-Connectors/1.0 |
| URL | https:// only. Private and internal addresses are refused, including after redirects (at most 3). |
| Timeout | 10 seconds |
| Success | Any 2xx status. Anything else counts as a failed delivery. |
| Retries | None — a failed delivery is not retried. The lead is still saved in Submissions. |
| Signature | Not signed yet. Use a long, unguessable URL, and treat the payload as untrusted visitor input. |
Seeing what happened
The connector card shows when the last lead was delivered, or why it failed, and has a Send test lead button for checking your endpoint.
Delivery happens after the visitor’s submission is saved, so a slow endpoint never delays the visitor or loses the lead.