Working with webhooks

A webhook lets an app pass information to other apps in near real-time. This could mean notifying a private application developed just for you, or a way to notify another 3rd party application that accepts POST requests.

In ActiveCampaign, webhooks are used to send data from your account into another system or database that has an API (application programming interface) that can listen for webhooks (eg, Zapier). They are event driven and allow you to update 3rd party applications with contact and campaign activity as they happen.

You may want to use webhooks to keep subscriber records in sync with an external database or application, maintain an external unsubscribe or bounce list, or capture campaign opens, clicks, forwards, and shares to push to another application for your own custom reporting needs.

ActiveCampaign does not accept incoming webhooks. Instead, you will need to use our API to send information into your account from a 3rd party application.

In this article:

Where webhooks are created

There are two different places where you can setup a webhook:

  • Developer Settings under My Settings
    Will fire every time a specified action(s)/event is completed
  • Webhook automation action
    Will fire only when a contact completes the webhook automation action step. You do not need to create a webhook under "Developer Settings" in order to fire a webhook from an automation. Learn how to send a webhook from an automation

How to create a webhook

With every webhook you create, you can choose when it should fire. For example, you may only want to receive data when a contact opens an email or you may want to only receive data when a contact is added via API.

In this section, you'll learn how to create a webhook from the "Developer" settings page. 

1. Click "Settings" in the left menu, then click "Developer."  

2. On the Developer Settings page, click "Manage Webhooks."

3. You will be redirected to the webhooks page. Click “Add” to create a webhook.

4. Select which list your webhook will be associated with by clicking the dropdown, or select “All Lists.”

5. Type the name of your webhook in the Name field and type the URL from your integration or application where you want to send information to. This URL will need to come from your 3rd party application or integration.

6. Click the boxes next to any action/event that will trigger your webhook:

  • Campaign forwarded (through the ActiveCampaign forward link)
  • Campaign opened
  • Campaign shared (to Facebook or Twitter)
  • Campaign starts sending
  • Contact added
  • Contact note added
  • Contact tag added
  • Contact tag removed
  • Contact unsubscription
  • Contact updated
  • Deal added
  • Deal note added
  • Deal pipeline added
  • Deal stage added
  • Deal task added
  • Deal task completed
  • Deal task type added
  • Deal updated
  • Email bounces
  • Email replies
  • Link clicked
  • List added
  • SMS reply
  • SMS sent
  • SMS unsubscribe

7. Click the boxes next to any source that will trigger your webhook:

  • By a contact - Runs when a contact causes the action (eg, subscribes, opens a campaign, etc)
  • By an admin user - Runs when an admin user causes the action (eg, adding a contact from the admin area)
  • By the API - Runs when API call causes the action (eg, adding a contact using contact_add API call)
  • By system processes - Runs when automated system causes the action (eg, bounces, automation emails, etc)

8. When finished, click “Add” on the lower left of your screen.

Here is an example of a webhook that we created. In this webhook, we wish to send information to Zapier (which will update another application) each time a contact in any list unsubscribes themselves from our emails:

How webhook data is received

The data you receive will be sent as a POST parameter to your URL. To view a list of fields that will be sent in your webhook for each action listed above, click here.

Valid characters and limits for webhooks

You can use alphanumeric characters, plus the following special characters in your webhook URL:
“$-_.+!*’(),”

There are no character limits on the number of characters included in a note or other field in a webhook.

Testing your webhook

To test your webhook, simply click “Send Sample Data” on your webhook page, and we’ll send test data to the URL specified in your webhook URL bar.

Troubleshooting your webhook

If your webhook isn’t working, we recommend testing your URL using a service like Request Catcher to make sure it’s responsive and can receive POST requests.

If there is an issue with the URL, we recommend working with your developer or your 3rd party application to troubleshoot further. In addition, we invite you to check out our Developer Community Forums.

If you find that the URL is responsive and you’re still not receiving information, please submit a support ticket or open up a live chat with one of our agents.

Have more questions? Submit a request