Intercom Web (Actions) Destination
Destination Info
- Accepts Page, Alias, Group, Identify, and Track calls
- Refer to it as Intercom Web (Actions) in the Integrations object
- This destination is not compatible with Destination Insert Functions.
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
- From the Segment web app, navigate to Connections > Catalog.
- Search for Intercom Web (Actions) in the Destinations Catalog, and select the destination.
- Click Configure Intercom Web (Actions).
- 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.
- On the Settings tab, input your Intercom App ID and other destination settings.
- Follow the steps in the Destinations Actions documentation on Customizing mappings.
- 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"
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"
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"
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
Need support?
Questions? Problems? Need more info? Contact Segment Support for assistance!