Intercom
Contact object with id, type, role, email, phone, name, external_id, created_at, updated_at
Create a new contact in Intercom with email, external_id, or role. Returns API-aligned fields only.
| Parameter | Type | Required | Description |
|---|
role | string | No | The role of the contact. Accepts 'user' or 'lead'. Defaults to 'lead' if not specified. |
email | string | No | The contact's email address |
external_id | string | No | A unique identifier for the contact provided by the client |
phone | string | No | The contact's phone number |
name | string | No | The contact's name |
avatar | string | No | An avatar image URL for the contact |
signed_up_at | number | No | The time the user signed up as a Unix timestamp |
last_seen_at | number | No | The time the user was last seen as a Unix timestamp |
owner_id | string | No | The id of an admin that has been assigned account ownership of the contact |
unsubscribed_from_emails | boolean | No | Whether the contact is unsubscribed from emails |
custom_attributes | string | No | Custom attributes as JSON object (e.g., {"attribute_name": "value"}) |
company_id | string | No | Company ID to associate the contact with during creation |
| Parameter | Type | Description |
|---|
contact | object | Created contact object |
Get a single contact by ID from Intercom. Returns API-aligned fields only.
| Parameter | Type | Required | Description |
|---|
contactId | string | Yes | Contact ID to retrieve |
| Parameter | Type | Description |
|---|
contact | object | Contact object |
Update an existing contact in Intercom. Returns API-aligned fields only.
| Parameter | Type | Required | Description |
|---|
contactId | string | Yes | Contact ID to update |
role | string | No | The role of the contact. Accepts 'user' or 'lead'. |
external_id | string | No | A unique identifier for the contact provided by the client |
email | string | No | The contact's email address |
phone | string | No | The contact's phone number |
name | string | No | The contact's name |
avatar | string | No | An avatar image URL for the contact |
signed_up_at | number | No | The time the user signed up as a Unix timestamp |
last_seen_at | number | No | The time the user was last seen as a Unix timestamp |
owner_id | string | No | The id of an admin that has been assigned account ownership of the contact |
unsubscribed_from_emails | boolean | No | Whether the contact is unsubscribed from emails |
custom_attributes | string | No | Custom attributes as JSON object (e.g., {"attribute_name": "value"}) |
company_id | string | No | Company ID to associate the contact with |
| Parameter | Type | Description |
|---|
contact | object | Updated contact object |
List all contacts from Intercom with pagination support
| Parameter | Type | Required | Description |
|---|
per_page | number | No | Number of results per page (max: 150) |
starting_after | string | No | Cursor for pagination - ID to start after |
| Parameter | Type | Description |
|---|
contacts | array | Array of contact objects |
Search for contacts in Intercom using a query
| Parameter | Type | Required | Description |
|---|
query | string | Yes | Search query (e.g., {"field":"email","operator":"=","value":"[email protected]"}) |
per_page | number | No | Number of results per page (max: 150) |
starting_after | string | No | Cursor for pagination |
sort_field | string | No | Field to sort by (e.g., "name", "created_at", "last_seen_at") |
sort_order | string | No | Sort order: "ascending" or "descending" |
| Parameter | Type | Description |
|---|
contacts | array | Array of matching contact objects |
Delete a contact from Intercom by ID. Returns API-aligned fields only.
| Parameter | Type | Required | Description |
|---|
contactId | string | Yes | Contact ID to delete |
| Parameter | Type | Description |
|---|
id | string | ID of deleted contact |
deleted | boolean | Whether the contact was deleted |
Create or update a company in Intercom
| Parameter | Type | Required | Description |
|---|
company_id | string | Yes | Your unique identifier for the company |
name | string | No | The name of the company |
website | string | No | The company website |
plan | string | No | The company plan name |
size | number | No | The number of employees in the company |
industry | string | No | The industry the company operates in |
monthly_spend | number | No | How much revenue the company generates for your business. Note: This field truncates floats to whole integers (e.g., 155.98 becomes 155) |
custom_attributes | string | No | Custom attributes as JSON object |
remote_created_at | number | No | The time the company was created by you as a Unix timestamp |
| Parameter | Type | Description |
|---|
company | object | Created or updated company object |
Retrieve a single company by ID from Intercom
| Parameter | Type | Required | Description |
|---|
companyId | string | Yes | Company ID to retrieve |
| Parameter | Type | Description |
|---|
company | object | Company object |
List all companies from Intercom with pagination support. Note: This endpoint has a limit of 10,000 companies that can be returned using pagination. For datasets larger than 10,000 companies, use the Scroll API instead.
| Parameter | Type | Required | Description |
|---|
per_page | number | No | Number of results per page |
page | number | No | Page number |
starting_after | string | No | Cursor for pagination (preferred over page-based pagination) |
| Parameter | Type | Description |
|---|
companies | array | Array of company objects |
Retrieve a single conversation by ID from Intercom
| Parameter | Type | Required | Description |
|---|
conversationId | string | Yes | Conversation ID to retrieve |
display_as | string | No | Set to "plaintext" to retrieve messages in plain text |
include_translations | boolean | No | When true, conversation parts will be translated to the detected language of the conversation |
| Parameter | Type | Description |
|---|
conversation | object | Conversation object |
List all conversations from Intercom with pagination support
| Parameter | Type | Required | Description |
|---|
per_page | number | No | Number of results per page (max: 150) |
starting_after | string | No | Cursor for pagination |
sort | string | No | Field to sort by (e.g., "waiting_since", "updated_at", "created_at") |
order | string | No | Sort order: "asc" (ascending) or "desc" (descending) |
| Parameter | Type | Description |
|---|
conversations | array | Array of conversation objects |
Reply to a conversation as an admin in Intercom
| Parameter | Type | Required | Description |
|---|
conversationId | string | Yes | Conversation ID to reply to |
message_type | string | Yes | Message type: "comment" or "note" |
body | string | Yes | The text body of the reply |
admin_id | string | No | The ID of the admin authoring the reply. If not provided, a default admin (Operator/Fin) will be used. |
attachment_urls | string | No | Comma-separated list of image URLs (max 10) |
created_at | number | No | Unix timestamp for when the reply was created. If not provided, current time is used. |
| Parameter | Type | Description |
|---|
conversation | object | Updated conversation object |
Search for conversations in Intercom using a query. Returns API-aligned fields only.
| Parameter | Type | Required | Description |
|---|
query | string | Yes | Search query as JSON object |
per_page | number | No | Number of results per page (max: 150) |
starting_after | string | No | Cursor for pagination |
sort_field | string | No | Field to sort by (e.g., "created_at", "updated_at") |
sort_order | string | No | Sort order: "ascending" or "descending" |
| Parameter | Type | Description |
|---|
conversations | array | Array of matching conversation objects |
Create a new ticket in Intercom. Returns API-aligned fields only.
| Parameter | Type | Required | Description |
|---|
ticket_type_id | string | Yes | The ID of the ticket type |
contacts | string | Yes | JSON array of contact identifiers (e.g., [{"id": "contact_id"}]) |
ticket_attributes | string | Yes | JSON object with ticket attributes including default_title and default_description |
company_id | string | No | Company ID to associate the ticket with |
created_at | number | No | Unix timestamp for when the ticket was created. If not provided, current time is used. |
conversation_to_link_id | string | No | ID of an existing conversation to link to this ticket |
disable_notifications | boolean | No | When true, suppresses notifications when the ticket is created |
| Parameter | Type | Description |
|---|
ticket | object | Created ticket object |
Retrieve a single ticket by ID from Intercom. Returns API-aligned fields only.
| Parameter | Type | Required | Description |
|---|
ticketId | string | Yes | Ticket ID to retrieve |
| Parameter | Type | Description |
|---|
ticket | object | Ticket object |
Create and send a new admin-initiated message in Intercom. Returns API-aligned fields only.
| Parameter | Type | Required | Description |
|---|
message_type | string | Yes | Message type: "inapp" for in-app messages or "email" for email messages |
template | string | Yes | Message template style: "plain" for plain text or "personal" for personalized style |
subject | string | No | The subject of the message (for email type) |
body | string | Yes | The body of the message |
from_type | string | Yes | Sender type: "admin" |
from_id | string | Yes | The ID of the admin sending the message |
to_type | string | Yes | Recipient type: "contact" |
to_id | string | Yes | The ID of the contact receiving the message |
created_at | number | No | Unix timestamp for when the message was created. If not provided, current time is used. |
| Parameter | Type | Description |
|---|
message | object | Created message object |