# Intercom Reference

[Intercom](https://www.intercom.com/drlp/business-growth-sb?utm_source=google\&utm_medium=sem\&utm_campaign=16397789193\&utm_term=intercom\&utm_ad_collection=130765731341&_bt=636960841155&_bg=130765731341\&utm_ad=636960841155\&offer=sb-growth-trial\&utm_campaign_name=go_b_pm_acq_core_demo_kw_pros_core-e_alls_alld_namer_us_en\&utm_ad_collection_name=\&utm_ad_name=sb-growth-trial_rsa_23q4\&gclid=Cj0KCQiAqOucBhDrARIsAPCQL1YFwx2dOMWjJxwsx9WAi7spv-0ZA9FpvW7Jgk9sg2JzhxynLeicsKwaAk9XEALw_wcB\&gclsrc=aw.ds) allows you to engage users at the desired place and time by combining apps for messaging customers for sales, marketing, and support purposes all in one place.

## Destination Info

* Connection Modes:

  <table><thead><tr><th align="right"> </th><th data-type="checkbox">Client-side</th><th data-type="checkbox">Server-side</th></tr></thead><tbody><tr><td align="right">Web</td><td>true</td><td>true</td></tr><tr><td align="right">Mobile</td><td>false</td><td>false</td></tr><tr><td align="right">Server</td><td>false</td><td>false</td></tr></tbody></table>

* Client-side Accepts [Page](https://documentation.freshpaint.io/developer/freshpaint-sdk-reference#page), [Track](https://documentation.freshpaint.io/developer/freshpaint-sdk-reference#track), [Group](https://documentation.freshpaint.io/developer/freshpaint-sdk-reference#group), and [Identify](https://documentation.freshpaint.io/developer/freshpaint-sdk-reference#identify) calls

* Server-side Accepts [Track](https://documentation.freshpaint.io/developer/freshpaint-sdk-reference#track), [Group](https://documentation.freshpaint.io/developer/freshpaint-sdk-reference#group), and [Identify](https://documentation.freshpaint.io/developer/freshpaint-sdk-reference#identify) calls. Server side does not currently support  [Page](https://documentation.freshpaint.io/developer/freshpaint-sdk-reference#page) calls

## Identify

When you call [freshpaint.identify()](https://www.freshpaint.io/developer/freshpaint-sdk-reference#identify), Freshpaint creates or updates a User profile in Intercom using their Users API. You may want to pass in a unique userId to your identify call. You can read more about userId and Intercom [here](https://www.intercom.com/help/en/articles/268-what-is-user_id-and-why-would-i-want-to-use-it). The creation of leads is not supported currently.

You can read more about visitors, leads, and users on your site according to Intercom [here](https://www.intercom.com/help/en/articles/310-how-do-visitors-leads-and-users-work-in-intercom). You can read more about user profiles in Intercom [here](https://www.intercom.com/help/en/articles/320-tracking-user-data-in-intercom).

## Events

When you send an event to Intercom from Freshpaint, Freshpaint will create an event in Intercom associated with a User.

{% hint style="info" %}
Because Intercom only associates events with known users, an Identify call with a `userId` is required before events are associated properly.
{% endhint %}

You can view events under Settings > \<project name> data > Events:

<figure><img src="/files/tjoCXyIeY4Giz2FCAwEh" alt=""><figcaption></figcaption></figure>

### Limited Events

Intercom only allows a total of 120 unique *active* event names. You can read more about that in Intercom's docs [here.](https://www.intercom.com/help/en/articles/5245634-event-limits-troubleshooting-and-f-a-q) If you are sending Freshpaint more than 120 unique event names, Intercom only accepts the first 120 events that their servers receive. Any following events will throw an error. In Intercom, an “Active” event is one which has not been archived. If you archive an event, it makes it inactive and removes it from your 120 active events. If you need to bring your account back under the 120 event limit, archive some events from in the Intercom UI by navigating to **Settings > (workspace name) data > Events**, then click on the event to archive.

<figure><img src="/files/JCQeyJvogwDaHmVG14Ry" alt=""><figcaption></figcaption></figure>

### Revenue Tracking: Properties

If you send `properties.revenue` and `properties.currency`, Freshpaint formats that according to [Intercom’s Monetary Amount](https://developers.intercom.io/reference#event-metadata-types) and sends it as:

```
      price: {
        amount: revenue * 100, // Intercom requests value in cents
        currency: track.currency() // fallsback on 'USD'
      }
```

### On Pageview (Only available with Client-side integration!)

When a pageview is performed Freshpaint will send a virtual pageview to Intercom. You can view pageviews under the user profile.

<figure><img src="/files/cuoH8o3XpjyO7fqyL1ru" alt=""><figcaption></figcaption></figure>

### Group

You can read more about freshpaint.group() [here](https://documentation.freshpaint.io/developer/freshpaint-sdk-reference#group). Calling this method allows users to be organized into multiple groups, which associate them with multiple companies in Intercom. Intercom's web app gives certain properties specific importance in their UI. For a list of the special properties you can send to Intercom via the freshpaint.group() call, look at [Intercom's API documentation](https://developers.intercom.com/intercom-api-reference/v1.4/reference/create-or-update-company) for Companies.&#x20;

Here is an example of a group call:

```
freshpaint.group("Freshpaint", {
  "plan": "enterprise",
  "sign-up-date": "01/19/2023"
});
```

For the example above, you'll now see the desired users grouped together under Contacts > Companies.

<figure><img src="/files/cp2BmWtWeyuPtSZd5M73" alt=""><figcaption></figcaption></figure>

### Configuration Settings

#### Connection Mode Settings

Both [client-side connection mode ](https://documentation.freshpaint.io/faqs/what-is-the-difference-between-client-side-and-server-side-connection-mode#client-side-connection-mode)and server-side-connection mode are available for this destination.

#### Transformations

Set up transformations to modify your data before it's sent to your destination. Read more about transformations [here](https://documentation.freshpaint.io/transformations).

<figure><img src="/files/aOKkpLvEjEmGXuzLhTCA" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://documentation.freshpaint.io/integrations/destinations/apps/intercom/intercom-reference.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
