> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreflux.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Intercom

> Client-mode REST API connector for Intercom (API 2.16): open conversations and tickets from machine alarms, reply, close or assign them, keep contact and company custom attributes current, record events, add notes and tags

Technical Preview

## Overview

A client-mode connector for the [Intercom REST API](https://developers.intercom.com/docs/references/introduction) that connects plant and product events to customer support. A connected machine that raises an alarm can open a conversation or a ticket for its owner, the support team can be told when it clears, and contact or company custom attributes (firmware, run hours, machines online) stay current from live data. Usage can be recorded as Intercom events so it shows on the customer's timeline.

Every event pins `Intercom-Version: 2.16`, the latest generally available version (released 2026-07-15), so a change of the app's default version in the Developer Hub does not change the connector's behaviour. Topics use `crm/intercom/<object>/<verb>`; each response is published on `<source topic>/response`.

> [!NOTE]
>
> The template was checked against Intercom's published OpenAPI 2.16 and a local mock, and every packaged method and path was probed on `api.intercom.io` with an invalid token: each answered 401 `unauthorized`, while an unknown path answers 404 `not_found`, so all 25 paths exist on the live API. It has **not** been run against a real Intercom workspace yet, so status stays blocked until an authenticated smoke passes.

## Authentication

Create an app in the Intercom Developer Hub and copy its access token from **Configure > Authentication** in the app (see [Intercom authentication](https://developers.intercom.com/docs/build-an-integration/learn-more/authentication)). Public apps use an OAuth access token instead; the header is the same. The connector sends `Authorization: Bearer <token>`, taken from the `access_token` field of each MQTT payload.

> [!WARNING]
>
> Do not publish the token in retained messages. Store it as a broker secret (for example `INTERCOM_ACCESS_TOKEN`) and have a LoT action add it to the payload with `GET SECRET` before publishing to the connector topic.

Workspaces hosted in Europe or Australia use a different host. Change `BASE_ADDRESS` to `https://api.eu.intercom.io` or `https://api.au.intercom.io`.

## Payload fields

| Field | Used by | Notes |
| - | - | - |
| `access_token` | every event | Intercom access token |
| `id` | `...Get`, `...Update`, reply, manage, notes, tags | Intercom id of the contact, conversation or ticket |
| `external_id` | `ContactGetByExternalId` | Your own customer id |
| `query` | `CompaniesFind`, `EventsList`, `DataAttributesList` | URL-encoded query string |
| `body` | create, update, reply and search events | JSON object sent as the request body |

## Events

| Event | Method | Endpoint | Source topic | Write |
| - | - | - | - | - |
| `CurrentAdmin` | `GET` | `/me` | `crm/intercom/me/get` | |
| `AdminsList` | `GET` | `/admins` | `crm/intercom/admins/list` | |
| `ContactsSearch` | `POST` | `/contacts/search` | `crm/intercom/contacts/search` | |
| `ContactGet` | `GET` | `/contacts/{id}` | `crm/intercom/contacts/get` | |
| `ContactGetByExternalId` | `GET` | `/contacts/find_by_external_id/{external_id}` | `crm/intercom/contacts/by-external-id/get` | |
| `ContactCreate` | `POST` | `/contacts` | `crm/intercom/contacts/create` | yes |
| `ContactUpdate` | `PUT` | `/contacts/{id}` | `crm/intercom/contacts/update` | yes |
| `CompaniesFind` | `GET` | `/companies?{query}` | `crm/intercom/companies/find` | |
| `CompanyUpsert` | `POST` | `/companies` | `crm/intercom/companies/upsert` | yes |
| `EventCreate` | `POST` | `/events` | `crm/intercom/events/create` | yes |
| `EventsList` | `GET` | `/events?{query}` | `crm/intercom/events/list` | |
| `ConversationCreate` | `POST` | `/conversations` | `crm/intercom/conversations/create` | yes |
| `ConversationsSearch` | `POST` | `/conversations/search` | `crm/intercom/conversations/search` | |
| `ConversationGet` | `GET` | `/conversations/{id}` | `crm/intercom/conversations/get` | |
| `ConversationReply` | `POST` | `/conversations/{id}/reply` | `crm/intercom/conversations/reply` | yes |
| `ConversationManage` | `POST` | `/conversations/{id}/parts` | `crm/intercom/conversations/manage` | yes |
| `ContactNoteCreate` | `POST` | `/contacts/{id}/notes` | `crm/intercom/contacts/notes/create` | yes |
| `TicketTypesList` | `GET` | `/ticket_types` | `crm/intercom/ticket-types/list` | |
| `TicketCreate` | `POST` | `/tickets` | `crm/intercom/tickets/create` | yes |
| `TicketUpdate` | `PUT` | `/tickets/{id}` | `crm/intercom/tickets/update` | yes |
| `TicketsSearch` | `POST` | `/tickets/search` | `crm/intercom/tickets/search` | |
| `TagsList` | `GET` | `/tags` | `crm/intercom/tags/list` | |
| `ContactTag` | `POST` | `/contacts/{id}/tags` | `crm/intercom/contacts/tags/add` | yes |
| `DataAttributesList` | `GET` | `/data_attributes?{query}` | `crm/intercom/data-attributes/list` | |
| `MessageCreate` | `POST` | `/messages` | `crm/intercom/messages/create` | yes |

The three `POST .../search` events only read data; Intercom uses a JSON body for search queries. No delete, merge, archive, block or redact events are packaged on purpose.

## Basic Syntax

```lot wrap theme={"theme":"css-variables","languages":{"custom":["/languages/lot.json"]}}
DEFINE ROUTE IntercomRestApi WITH TYPE REST_API
    ADD REST_API_CONFIG
        WITH BASE_ADDRESS "https://api.intercom.io"
        WITH ENABLE_CLIENT "true"
        WITH USE_SSL "true"
        WITH REQUEST_TIMEOUT '60'
        WITH DEFAULT_CONTENT_TYPE "application/json"
    ADD EVENT CurrentAdmin
        WITH SOURCE_TOPIC "crm/intercom/me/get"
        WITH DESTINATION_TOPIC "crm/intercom/me/get/response"
        WITH METHOD "GET"
        WITH ENDPOINT "/me"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "Intercom-Version" "2.16"
    ADD EVENT AdminsList
        WITH SOURCE_TOPIC "crm/intercom/admins/list"
        WITH DESTINATION_TOPIC "crm/intercom/admins/list/response"
        WITH METHOD "GET"
        WITH ENDPOINT "/admins"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "Intercom-Version" "2.16"
    ADD EVENT ContactsSearch
        WITH SOURCE_TOPIC "crm/intercom/contacts/search"
        WITH DESTINATION_TOPIC "crm/intercom/contacts/search/response"
        WITH METHOD "POST"
        WITH ENDPOINT "/contacts/search"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "Intercom-Version" "2.16"
            ADD "Content-Type" "application/json"
        WITH BODY "{value.json.body}"
    ADD EVENT ContactGet
        WITH SOURCE_TOPIC "crm/intercom/contacts/get"
        WITH DESTINATION_TOPIC "crm/intercom/contacts/get/response"
        WITH METHOD "GET"
        WITH ENDPOINT "/contacts/{value.json.id}"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "Intercom-Version" "2.16"
    ADD EVENT ContactGetByExternalId
        WITH SOURCE_TOPIC "crm/intercom/contacts/by-external-id/get"
        WITH DESTINATION_TOPIC "crm/intercom/contacts/by-external-id/get/response"
        WITH METHOD "GET"
        WITH ENDPOINT "/contacts/find_by_external_id/{value.json.external_id}"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "Intercom-Version" "2.16"
    ADD EVENT ContactCreate
        WITH SOURCE_TOPIC "crm/intercom/contacts/create"
        WITH DESTINATION_TOPIC "crm/intercom/contacts/create/response"
        WITH METHOD "POST"
        WITH ENDPOINT "/contacts"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "Intercom-Version" "2.16"
            ADD "Content-Type" "application/json"
        WITH BODY "{value.json.body}"
    ADD EVENT ContactUpdate
        WITH SOURCE_TOPIC "crm/intercom/contacts/update"
        WITH DESTINATION_TOPIC "crm/intercom/contacts/update/response"
        WITH METHOD "PUT"
        WITH ENDPOINT "/contacts/{value.json.id}"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "Intercom-Version" "2.16"
            ADD "Content-Type" "application/json"
        WITH BODY "{value.json.body}"
    ADD EVENT CompaniesFind
        WITH SOURCE_TOPIC "crm/intercom/companies/find"
        WITH DESTINATION_TOPIC "crm/intercom/companies/find/response"
        WITH METHOD "GET"
        WITH ENDPOINT "/companies?{value.json.query}"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "Intercom-Version" "2.16"
    ADD EVENT CompanyUpsert
        WITH SOURCE_TOPIC "crm/intercom/companies/upsert"
        WITH DESTINATION_TOPIC "crm/intercom/companies/upsert/response"
        WITH METHOD "POST"
        WITH ENDPOINT "/companies"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "Intercom-Version" "2.16"
            ADD "Content-Type" "application/json"
        WITH BODY "{value.json.body}"
    ADD EVENT EventCreate
        WITH SOURCE_TOPIC "crm/intercom/events/create"
        WITH DESTINATION_TOPIC "crm/intercom/events/create/response"
        WITH METHOD "POST"
        WITH ENDPOINT "/events"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "Intercom-Version" "2.16"
            ADD "Content-Type" "application/json"
        WITH BODY "{value.json.body}"
    ADD EVENT EventsList
        WITH SOURCE_TOPIC "crm/intercom/events/list"
        WITH DESTINATION_TOPIC "crm/intercom/events/list/response"
        WITH METHOD "GET"
        WITH ENDPOINT "/events?{value.json.query}"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "Intercom-Version" "2.16"
    ADD EVENT ConversationCreate
        WITH SOURCE_TOPIC "crm/intercom/conversations/create"
        WITH DESTINATION_TOPIC "crm/intercom/conversations/create/response"
        WITH METHOD "POST"
        WITH ENDPOINT "/conversations"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "Intercom-Version" "2.16"
            ADD "Content-Type" "application/json"
        WITH BODY "{value.json.body}"
    ADD EVENT ConversationsSearch
        WITH SOURCE_TOPIC "crm/intercom/conversations/search"
        WITH DESTINATION_TOPIC "crm/intercom/conversations/search/response"
        WITH METHOD "POST"
        WITH ENDPOINT "/conversations/search"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "Intercom-Version" "2.16"
            ADD "Content-Type" "application/json"
        WITH BODY "{value.json.body}"
    ADD EVENT ConversationGet
        WITH SOURCE_TOPIC "crm/intercom/conversations/get"
        WITH DESTINATION_TOPIC "crm/intercom/conversations/get/response"
        WITH METHOD "GET"
        WITH ENDPOINT "/conversations/{value.json.id}"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "Intercom-Version" "2.16"
    ADD EVENT ConversationReply
        WITH SOURCE_TOPIC "crm/intercom/conversations/reply"
        WITH DESTINATION_TOPIC "crm/intercom/conversations/reply/response"
        WITH METHOD "POST"
        WITH ENDPOINT "/conversations/{value.json.id}/reply"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "Intercom-Version" "2.16"
            ADD "Content-Type" "application/json"
        WITH BODY "{value.json.body}"
    ADD EVENT ConversationManage
        WITH SOURCE_TOPIC "crm/intercom/conversations/manage"
        WITH DESTINATION_TOPIC "crm/intercom/conversations/manage/response"
        WITH METHOD "POST"
        WITH ENDPOINT "/conversations/{value.json.id}/parts"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "Intercom-Version" "2.16"
            ADD "Content-Type" "application/json"
        WITH BODY "{value.json.body}"
    ADD EVENT ContactNoteCreate
        WITH SOURCE_TOPIC "crm/intercom/contacts/notes/create"
        WITH DESTINATION_TOPIC "crm/intercom/contacts/notes/create/response"
        WITH METHOD "POST"
        WITH ENDPOINT "/contacts/{value.json.id}/notes"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "Intercom-Version" "2.16"
            ADD "Content-Type" "application/json"
        WITH BODY "{value.json.body}"
    ADD EVENT TicketTypesList
        WITH SOURCE_TOPIC "crm/intercom/ticket-types/list"
        WITH DESTINATION_TOPIC "crm/intercom/ticket-types/list/response"
        WITH METHOD "GET"
        WITH ENDPOINT "/ticket_types"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "Intercom-Version" "2.16"
    ADD EVENT TicketCreate
        WITH SOURCE_TOPIC "crm/intercom/tickets/create"
        WITH DESTINATION_TOPIC "crm/intercom/tickets/create/response"
        WITH METHOD "POST"
        WITH ENDPOINT "/tickets"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "Intercom-Version" "2.16"
            ADD "Content-Type" "application/json"
        WITH BODY "{value.json.body}"
    ADD EVENT TicketUpdate
        WITH SOURCE_TOPIC "crm/intercom/tickets/update"
        WITH DESTINATION_TOPIC "crm/intercom/tickets/update/response"
        WITH METHOD "PUT"
        WITH ENDPOINT "/tickets/{value.json.id}"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "Intercom-Version" "2.16"
            ADD "Content-Type" "application/json"
        WITH BODY "{value.json.body}"
    ADD EVENT TicketsSearch
        WITH SOURCE_TOPIC "crm/intercom/tickets/search"
        WITH DESTINATION_TOPIC "crm/intercom/tickets/search/response"
        WITH METHOD "POST"
        WITH ENDPOINT "/tickets/search"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "Intercom-Version" "2.16"
            ADD "Content-Type" "application/json"
        WITH BODY "{value.json.body}"
    ADD EVENT TagsList
        WITH SOURCE_TOPIC "crm/intercom/tags/list"
        WITH DESTINATION_TOPIC "crm/intercom/tags/list/response"
        WITH METHOD "GET"
        WITH ENDPOINT "/tags"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "Intercom-Version" "2.16"
    ADD EVENT ContactTag
        WITH SOURCE_TOPIC "crm/intercom/contacts/tags/add"
        WITH DESTINATION_TOPIC "crm/intercom/contacts/tags/add/response"
        WITH METHOD "POST"
        WITH ENDPOINT "/contacts/{value.json.id}/tags"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "Intercom-Version" "2.16"
            ADD "Content-Type" "application/json"
        WITH BODY "{value.json.body}"
    ADD EVENT DataAttributesList
        WITH SOURCE_TOPIC "crm/intercom/data-attributes/list"
        WITH DESTINATION_TOPIC "crm/intercom/data-attributes/list/response"
        WITH METHOD "GET"
        WITH ENDPOINT "/data_attributes?{value.json.query}"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "Intercom-Version" "2.16"
    ADD EVENT MessageCreate
        WITH SOURCE_TOPIC "crm/intercom/messages/create"
        WITH DESTINATION_TOPIC "crm/intercom/messages/create/response"
        WITH METHOD "POST"
        WITH ENDPOINT "/messages"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "User-Agent" "Coreflux-Broker REST_API route (https://www.coreflux.org)"
            ADD "Authorization" "Bearer {value.json.access_token}"
            ADD "Intercom-Version" "2.16"
            ADD "Content-Type" "application/json"
        WITH BODY "{value.json.body}"
```

## Examples

**Conversation from an alarm**

Publish to `crm/intercom/conversations/create`:

```json theme={"theme":"css-variables","languages":{"custom":["/languages/lot.json"]}}
{"access_token": "<from GET SECRET>", "body": {"from": {"type": "user", "id": "<contact id>"}, "body": "Press 7 reports overtemperature (E42)"}}
```

When the alarm clears, publish `{"access_token": "...", "id": "<conversation id>", "body": {"message_type": "close", "type": "admin", "admin_id": "<admin id>", "body": "Cleared by the line"}}` to `crm/intercom/conversations/manage`.

**Contact custom attributes**

Check the attribute names with `crm/intercom/data-attributes/list` (`"query": "model=contact"`), then publish to `crm/intercom/contacts/update`:

```json theme={"theme":"css-variables","languages":{"custom":["/languages/lot.json"]}}
{"access_token": "<from GET SECRET>", "id": "<contact id>", "body": {"custom_attributes": {"firmware": "4.2.1", "run_hours": 1820}}}
```

**Usage event**

Publish to `crm/intercom/events/create`:

```json theme={"theme":"css-variables","languages":{"custom":["/languages/lot.json"]}}
{"access_token": "<from GET SECRET>", "body": {"event_name": "machine-alarm", "created_at": 1791000000, "user_id": "cust-1042", "metadata": {"code": "E42", "line": "4"}}}
```

Intercom answers `202 Accepted` with an empty body. `created_at` is a Unix timestamp in seconds.

**Ticket for the service team**

Get a `ticket_type_id` from `crm/intercom/ticket-types/list`, then publish to `crm/intercom/tickets/create`:

```json theme={"theme":"css-variables","languages":{"custom":["/languages/lot.json"]}}
{"access_token": "<from GET SECRET>", "body": {"ticket_type_id": "<id>", "contacts": [{"id": "<contact id>"}], "ticket_attributes": {"_default_title_": "Press 7 overtemperature", "_default_description_": "E42 at 13:55"}}}
```

## Webhooks into the broker

Intercom webhooks (topics such as `conversation.user.created` or `ticket.state.updated`) are set up on the app's **Webhooks** page in the Developer Hub, not through the API. Intercom then POSTs each notification to your endpoint and signs it with an `X-Hub-Signature` header (`sha1=` plus the HMAC-SHA1 of the JSON body, keyed with the app's `client_secret` from its Basic Info page). To receive them, run a separate server-mode connector:

```lot wrap theme={"theme":"css-variables","languages":{"custom":["/languages/lot.json"]}}
DEFINE ROUTE IntercomWebhookReceiver WITH TYPE REST_API
    ADD REST_API_CONFIG
        WITH ENABLE_SERVER "true"
        WITH SERVER_PORT '8443'
        WITH DEFAULT_CONTENT_TYPE "application/json"
    ADD EVENT IntercomNotification
        WITH ENDPOINT "/intercom/webhook"
        WITH METHOD "POST"
        WITH DESTINATION_TOPIC "crm/intercom/webhook/events"
```

The receiver must be reachable from the internet over HTTPS. It is not part of the client template.

## Rate limits

By default an app may make 10,000 API calls per minute and a workspace 25,000, spread evenly over 10-second windows. Excess calls get `429 Too Many Requests` with `X-RateLimit-Limit`, `X-RateLimit-Remaining` and `X-RateLimit-Reset` headers. React to events rather than polling searches from fast timers.

## Testing

| Check | Result |
| - | - |
| Every event matches the Intercom OpenAPI 2.16 (method, path, JSON body) | 25/25 |
| Local mock round-trip | 25/25 |
| Live probe of every packaged path with an invalid token | 25/25 answered 401 (unknown path control: 404) |
| Live call with a real token | Not run yet |

To finish the check, set `INTERCOM_ACCESS_TOKEN` and run `python3 smoke_intercom.py --live` from the package, then deploy the connector and publish `{"access_token": "..."}` to `crm/intercom/me/get`.

## Related

* [REST API Connectors](/latest/lot-language/routes/rest-api-routes)
* [REST API Apps](/latest/lot-language/routes/rest-api-apps/index)
* [Intercom API reference](https://developers.intercom.com/docs/references/introduction)
* [Intercom OpenAPI descriptions](https://github.com/intercom/Intercom-OpenAPI)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.