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:

AttemptDuration
01 second
115 seconds
21 minute
35 minutes
415 minutes
51 hour
612 hours
724 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.


What’s Next

See all the webhook event types