Enable a program webhook

Enhance the way you engage with your contacts using program webhooks.

Laura Russell avatar
Written by Laura Russell
Updated over a week ago

Program webhooks expand the ways you can use programs, and enable you to do things like:

  • Send a postcard using Lob or PostPilot.
    Learn more in Program webhook: Lob and Program webhook: PostPilot.

  • Add a contact to a list in another account in Dotdigital.

  • Create self-serve webhooks so you can make HTTP requests to specified endpoints.

Webhook authorisation

Some webhooks need to be authorised by your Customer Success representative. Refer to the documentation for the webhook you want to use for further information.

You can also send a contact to your audiences in Google Ads and Facebook Audience using program actions.

There are differences in the process to enable a webhook, specifically, whether the webhook is a self-serve or an existing one.


Existing program webhooks

This refers to webhook nodes for Salesforce, and Lob.

We also have an existing webhook for Shopify as part our integration, which works slightly differently. Learn more about this in Program webhook: Shopify.

  1. Make sure you have an active account with the webhook provider.

  2. To enable the provider in your account, you must contact your Customer Success representative.

  3. Once the provider is confirmed as enabled, create a profile for the webhook. To do this, go to Connect > Webhooks and select NEW WEBHOOK.
    You can create multiple profiles for each webhook provider.

After creating a profile, you’re ready to use the webhook in the program builder.

Each webhook has its own specific configuration steps and user guide, which can be found in the Program webhooks area of the Help centre.


Self-serve program webhooks

Learn how to add a self-serve program webhook in Webhooks for program builder.

We also have a self-serve webhook for PostPilot. Our Customer Success team don’t need to enable this provider for you. Learn more in Program webhook: PostPilot.


Defining terms

Here’s an explanation of some key terminology:

  • Batch
    A group of personalised web requests that are sent to the request executor.

  • HTTP request
    An HTTP request generated from a webhook request; sent to the third party end point.

  • HTTP response
    An HTTP response received from the third party end point.

Defining requests and responses

Here are the request and response restrictions:

  • The internal HttpClient has a timeout that defaults to 5 seconds. Once exceeded, the request is marked as failed. This doesn’t terminate the rest of the batch.

  • An HTTP request body cannot exceed the default maximum size of 10000 bytes. If the request body exceeds this value, the request fails. This doesn’t terminate the rest of the batch.

  • An HTTP response body cannot exceed the default maximum size of 10000 bytes. If the response body size exceeds this value, the response body is cut down a bit before storage.

  • On receipt of an HTTP response with a status code of 401 unauthorised, the entire batch is terminated.


Webhook program nodes

Once you’ve created a profile and a webhook node is available for you to use in the program builder, you need to configure the node so that it can perform the desired action.

Once a program is activated and a contact reaches the webhook node in your program, the action is carried out for the contact.

Test a node

You must test your webhooks so you can be sure they’re working properly. This way you can identify and fix any problems before program activation. If your webhook doesn’t work as expected, you’re informed by a response code, and it shows you what needs to be fixed.

Webhook data

It's important to keep the following in mind:

  • Make sure you're supplying accurate data in your requests, otherwise your webhook won’t work.

  • We can’t guarantee the success of your webhook requests, or verify whether your data is executable, before you use a webhook node.

  • Make sure you’re complying with the data requirements of the webhook provider.

Did this answer your question?