Intercom Web (Actions) Destination

Destination Info

Additional versions of this destination are available

This page is about the Intercom Web (Actions) Destination. See below for information about other versions of the Intercom destination:

Intercom is a customer communications platform that shows you who is using your product. Intercom allows you to personally communicate with your users with targeted content, behavior-driven messages, and conversational support.

When you use the Intercom Web (Actions) destination, Segment loads the Intercom JavaScript library for you. The Intercom library enables you to track your user’s events on your website and interact with the Intercom messenger window.

Benefits of Intercom Web Mode (Actions) vs Intercom Classic

Intercom Web (Actions) provides the following benefits over the classic Intercom destination:

  • Fewer settings. Data mapping for actions-based destinations happens during configuration, which eliminates the need for most settings.
  • Clearer mapping of data. Actions-based destinations enable you to define the mapping between the data Segment receives from your source, and the data Segment sends to the destination.
  • Granular control over data sent. You can customize the conditions under which the events are sent to Intercom.
  • Selectively shows the Intercom chat widget.

Intercom’s chat widget

The Intercom Cloud Mode (Actions) destination doesn’t have access to Intercom’s chat widget. Only the Intercom Web (Actions) destination has access to this.

If you’re using the Analytics.js source, use the Intercom Web Mode (Actions) destination which sends data directly to Intercom from the client-side by loading the Intercom SDK directly onto your website.

However, Intercom Cloud Mode (Actions) sends data to Segment, after which Segment forwards the data to Intercom. This allows Segment users to send data to Intercom from sources that are incompatible with their SDK.

When you configure the Segment Intercom destination in device-mode, you’ll have access to Intercom’s chat widget without loading Intercom separately outside of Segment.

To access the Intercom Messaging Box, you’ll need to configure and connect the Intercom Web (Actions) destination to your Analytics.js source.

Visit the Destination Overview docs to learn the difference between cloud and device modes.

Getting started

  1. From the Segment web app, navigate to Connections > Catalog.
  2. Search for Intercom Web (Actions) in the Destinations Catalog, and select the destination.
  3. Click Configure Intercom Web (Actions).
  4. Select the web source that will send data to Intercom Web (Actions) and follow the steps to name your destination. The web source chosen must use Analytics.js 2.0.
  5. On the Settings tab, input your Intercom App ID and other destination settings.
  6. Follow the steps in the Destinations Actions documentation on Customizing mappings.
  7. Enable the destination and configured mappings.

Regional Data Hosting in the EU and Australia

For Regional Data Hosting in the EU and Australia, you’ll need an Intercom plan that supports regional data hosting.

Segment doesn’t support the creation of Leads for Intercom Web. Segment recommends using Intercom Cloud Mode to support leads creation.

Destination Settings

Setting Description
Custom Inbox Button Selector

By default, Intercom will inject their own inbox button onto the page, but you can choose to use your own custom button instead by providing a CSS selector, e.g. #my-button. You must have the “Show the Intercom Inbox” setting enabled for this to work. The default value is #IntercomDefaultWidget.

Regional Data Hosting

The regional API to use for processing the data

App ID Required.

The app_id of your Intercom app which will indicate where to store any data.

Rich Link Properties

A list of rich link property keys.

Available Presets

Intercom Web (Actions) has the following presets:

Preset Name Trigger Default Action
Identify Company Event type = "group"
Identify Company
Track Event Event type = "track"
Track Event
Identify User Event type = "identify"
Event type = "page"
Identify User

Available Actions

Build your own Mappings. Combine supported triggers with the following Intercom Web-supported actions:

Mapping limits per destination

Individual destination instances have support a maximum of 50 mappings.

Track Event

Submit an event to Intercom.

Track Event is a Web action. The default Trigger is: type = "track"

Click to show / hide fields

Field Description
Event Name* Type: STRING

The name of the event.

Revenue Type: NUMBER

The amount associated with a purchase. Segment will multiply by 100 as Intercom requires the amount in cents.

Currency Type: STRING

The currency of the purchase amount. Segment will default to USD if revenue is provided without a currency.

Event Metadata Type: OBJECT

Optional metadata describing the event.

Identify Company

Create or update a company in Intercom.

Identify Company is a Web action. The default Trigger is: type = "group"

Click to show / hide fields

Field Description
Company* Type: OBJECT

The user’s company.

Hide Default Launcher Type: BOOLEAN

Selectively show the chat widget. As per Intercom docs, you want to first hide the Messenger for all users inside the Intercom UI using Messenger settings. Then think about how you want to programmatically decide which users you would like to show the widget to.

Identify User

Create or update a user in Intercom.

Identify User is a Web action. The default Trigger is: type = "identify" or type = "page"

Click to show / hide fields

Field Description
User ID Type: STRING

A unique identifier for the user.

Custom Attributes Type: OBJECT

The user’s custom attributes.

Name Type: STRING

The user’s name.

Phone Number Type: STRING

The user’s phone number.

Unsubscribed From Emails Type: BOOLEAN

The user’s email unsubscribe status.

Language Override Type: STRING

The user’s messenger language (instead of relying on browser language settings).

Email Address Type: STRING

The user’s email address.

User Creation Time Type: DATETIME

The time the user was created in your system.

Avatar Type: STRING

The URL for the user’s avatar/profile image.

User Hash Type: STRING

The user hash used for identity verification. See Intercom docs for more information on how to set this field.

Company Type: OBJECT

The user’s company.

Companies Type: OBJECT

The array of companies the user is associated to.

Hide Default Launcher Type: BOOLEAN

Selectively show the chat widget. As per Intercom docs, you want to first hide the Messenger for all users inside the Intercom UI using Messenger settings. Then think about how you want to programmatically decide which users you would like to show the widget to.

Troubleshooting

Requests to Intercom return a 404 response

If you are seeing 404 responses in your browser’s network tab, you’ve likely encountered one of two issues:

  • You set the wrong App ID on the Intercom Actions (Web) destination settings page.
  • You set the wrong Regional Data Hosting value on the Intercom Actions (Web) destination settings page. Intercom gates regional endpoints by plan level, so you may not have access to EU data hosting.

Intercom does not support Reverse ETL event batching

The Intercom (Web) Actions destination does not support the bulk contacts endpoint, and therefore is unable to support batching events in Reverse ETL.

Why are my Identify calls not updating or creating Intercom profiles, or not showing users as leads or visitors?

Intercom requires requests to include user data/traits beyond email or user_hash to update or create profiles and change user status from leads/visitors. Without additional user data/traits, Intercom assumes no changes were made to a user’s data and does not send a “ping” request.

In the following example, which only includes an email and user_hash, Intercom would not send a “ping” request and update the status of this user:

analytics.identify("123");

analytics.identify("123", { email: "example@domain.com" });

analytics.identify("123",{email: "example@domain.com"}, {
   integrations: {
    Intercom: {
      user_hash: "81b65b9abea0444437a5d92620f03acc33f04fabbc32da1e047260024f80566a"
    }
  }})

However, in the following example that also contains the name trait, Intercom sends a “ping” request and updates the status of this user:

analytics.identify("123", {
   email: "example@domain.com",
   name: "John Doe"
}, {
   integrations: { Intercom: { user_hash: "hash" } }
});

When sending calls to Intercom, always include a trait, likename. If you don’t have a trait to send with Identify calls, map Segment’s timestamp field to Intercom’s last_request_at field.

This page was last modified: 02 Dec 2024



Get started with Segment

Segment is the easiest way to integrate your websites & mobile apps data to over 300 analytics and growth tools.
or
Create free account