How to Work with Webhooks
Everything you need to get going with webhooks.
ClickFunnels webhooks allow you to react to many events in the ClickFunnels app on your own server,
Zapier and other similar tools.
To receive webhook events from ClickFunnels, you first need to choose the events you want to watch (please use the list below to see all available webhooks). Then, you need to configure a webhooks endpoint, as explained in the next section.
Configure Webhook Endpoints
You can configure webhook endpoints in the ClickFunnels UI, but here we will be explaining how to do it programmatically.
You can configure webhook endpoints within the ClickFunnels API by using the Webhooks::Outgoing::Endpoints
endpoint with the event_type_ids
you want to listen to (see below for all types).
Understanding Event Data
Once configured, you will receive POST requests from us to the configured endpoint URL with the
Webhooks::Outgoing::Event payload, which will contain the subject payload in the data
property. Like here for the contact.identified
webhook event in the V2 version:
(this is a snapshot of the Contact/Event payloads; actual payloads might differ; check the reference for the most recent versions)
{
"data": {
"id": 236296209,
"tags": [
],
"uuid": "31cabea548c19c0495106323678abcac",
"fb_url": null,
"anonymous": 0,
"last_name": "Dullan",
"public_id": "BbBNRxw",
"time_zone": null,
"created_at": "2024-04-04T19:16:30.660Z",
"first_name": "Bob",
"updated_at": "2024-04-04T19:16:45.253Z",
"twitter_url": null,
"website_url": null,
"linkedin_url": null,
"phone_number": "+18472555555",
"workspace_id": 42,
"email_address": "[email protected]",
"instagram_url": null,
"unsubscribed_at": null,
"custom_attributes": {
},
"last_notification_email_sent_at": null
},
"event_id": "123b4741-3f2d-431a-90d1-ddca0f4d6721",
"event_type": "contact.identified",
"subject_id": 236296209,
"subject_type": "Contact",
"created_at": "2024-04-04T19:16:31.000Z",
"page_id": null,
"funnel_id": null
}
Bear in mind that the webhooks payload that is emitted is similar but differs slightly from our Webhooks::Outgoing::Event
API resource.
The content of the data
property will vary depending on the event type that you are receiving.
Event types are structured like this: subject.action
. So, for a contact.identified
webhook, your
data
payload will contain data that you can source from the contact response schema/example in the
documentation. Similarly, for
webhooks like order.created
and one-time-order.identified
, you will find the documentation in
the Order resource description.
V1 webhooks
Keep in mind that V1 webhooks data have different payloads. V1 webhooks are deprecated, so it's encouraged that you use V2 webhooks where possible.
Webhook events retries
When handling webhook events, remember that, as with most platforms and event systems, ClickFunnels webhook events can arrive out of order.
There won't be additional attempts if the receiving server responds with one of the success status codes:
Success status codes |
---|
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
226 |
Otherwise, we will attempt to resend the webhook event according to the following schedule:
Attempt | Duration |
---|---|
0 | 1 second |
1 | 15 seconds |
2 | 1 minute |
3 | 5 minutes |
4 | 15 minutes |
5 | 1 hour |
6 | 12 hours |
7 | 24 hours |
If you ever find yourself in the situation that you have lost events because, for example, you server was down for longer than the attempt schedule time, then you will be able to replay those events from the records in the Webhooks::Outgoing::Event
resource.
Updated about 1 month ago