Intercom Webhook Setup Guide

This article describes how to set up the Intercom webhook.


Before implementing this connector in Customer Data Hub it is strongly advised that you read and test the sections that are applicable to your business.


Intercom adopts two authorisation methods; Access Tokens and OAuth. The following server-side integration with the Customer Data Hub uses an Access Token.

Configuring Intercom Access Token

When you create your token, it is likey you will need to extend its scope to leverage the request types for your business’ needs. You can request this extension by asking the Intercom team.

To create your token:

  1. Navigate to the Access Token section in Intercom.
  2. Request a token.
  3. Edit scope (if applicable).
    intercom access tokens

Customer Data Hub Configuration

Setting up your stream(s)

Skip this section if you are familiar with setting up streams.

It is best practice to always set up streams for your individual use cases or needs, unless you are sending all data to a vendor. This will allow you more granular control over the connections, as well as the ability to alter them in the future without affecting other requests. Having multiple streams and actions will increase maintenance, but may save complications down the line.

To do this:

  1. Log in to Tealium Customer Data Hub
  2. Navigate to Live Events under the Discover tab.
  3. Click + Add Stream and Filter by Event Attribute.
    add stream
  4. Add a Title.
  5. Add the appropriate condition rules, depending on your variables and Data Layer.
    create stream

Setting up a Webhook

For this example, I am going to create a Webhook that will pass a new user event. Intercom’s API documentation on this type of request can be found here.

To build a custom webhook:

  1. Log in to Tealium Customer Data Hub
  2. Navigate to Connector Marketplace under the Act tab.
  3. Search for and select Webhook
  4. Click Add Connector.
  5. Enter a title.
  6. Leave the BasicAuth fields blank.
  7. Navigate to the Actions tab.
  8. Select the Send Custom Request Action and click + Create Action.
  9. Enter an Action Name.
  10. Choose the source of your data (stream).
  11. Enter your API URL (check Intercom documentation, Users is
  12. Leave the URL Parameters section blank.
  13. Add two Headers, both with custom fields, one with Map: applications/json To: Accept and another with Map: {{auth_template}} To: Authorization. The authorization mapping uses a template, which we will configure later. Make sure you put within {{}}.
  14. Leave Cookies section blank.
  15. Select application/json in Body Content Type.
  16. Within the Body Data section, add a template mapping to Body. Make sure you put within {{}}.
    Body data
  17. Within the Template Variables section, add the mappings of your event level attributes to template endpoints. Make sure you select Event Attributes in this section if you are a AudienceStream customer as this is an EventStream setup. Leave names in the “To:” fields without {{}}
    template variables
  18. Under Templates add two templates, one for the Authorization and one for the Body. Use the exact same names as created in previous sections. In the Authorization template add the Access Token you generated in Intercom after Bearer. For the Body template, follow Intercom documentation along with Trimou Template Engine Guide. Make sure you use "" as its use changes depending on variable type (integers, strings, et cetera). You will have to nest your Template Variables mapped in previous step within {{}} as a minimum.
  19. Save Action and Webhook
  20. Save/Publish your profile.
  21. Test the Webhook using Trace.

With everything configured you can now test the setup with Trace.

If successful, you will see a successful Action Processed message in Trace and the data within Intercom.

If unsuccessful, follow the errors on the Intercom Webhook connector in the My Connectors section under the Act tab. Also, testing with Postman at this stage with your exact webhook configuration. Ensure that you replace the mappings with actual values.

Was this page helpful?

This page was last updated: January 23, 2020