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

# Intercom: List Contacts

> List the users and leads in an Intercom workspace. Includes SDK V2 guidance, input constraints, response fields, and Deepline credit cost.

List the users and leads in an Intercom workspace.

> [!NOTE]
>
> Tool ID: `intercom_list_contacts`

## Run this action

Use the TypeScript SDK for one call. Use `ctx.tools.execute(...)` inside a Play for durable calls, scheduled calls, or CSV processing.

```ts theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
import { Deepline } from 'deepline';

const deepline = await Deepline.connect();
const result = await deepline.tools.execute(
  'intercom_list_contacts',
  {},
);

console.log(result.toolResponse.raw);
```

### CLI

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline tools execute intercom_list_contacts --input '{}' --json
```

## Example response

The SDK returns this shape at `result.toolResponse.raw`. The example values illustrate the response.

```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
{
  "data": {
    "type": "list",
    "data": [
      {
        "type": "example",
        "id": "id_123",
        "external_id": "external_123"
      }
    ],
    "total_count": 123
  }
}
```

Use `deepline describe intercom_list_contacts --json` for the latest machine-readable contract.

## Input reference

You can fetch a list of all contacts (ie. users or leads) in your workspace. Contacts that have been merged (via POST /contacts/merge) will not appear in list results. Only the target contact from the merge remains accessible. You can use pagination to limit the number of results returned. The default is `50` results per page. See the [pagination section](https://developers.intercom.com/docs/build-an-integration/learn-more/rest-apis/pagination/#pagination-for-list-apis) for more details on how to use the `starting_after` param.

This action requires no input fields.

<details>
  <summary>Show raw input schema</summary>

  ### Input JSON Schema

  ```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
  {
    "type": "object",
    "description": "You can fetch a list of all contacts (ie. users or leads) in your workspace. {% admonition type=\"info\" name=\"Merged contacts\" %} Contacts that have been merged (via POST /contacts/merge) will not appear in list results. Only the target contact from the merge remains accessible. {% /admonition %} {% admonition type=\"warning\" name=\"Pagination\" %} You can use pagination to limit the number of results returned. The default is `50` results per page. See the [pagination section](https://developers.intercom.com/docs/build-an-integration/learn-more/rest-apis/pagination/#pagination-for-list-apis) for more details on how to use the `starting_after` param. {% /admonition %}",
    "properties": {},
    "required": [],
    "additionalProperties": false
  }
  ```
</details>

## Output reference

Standard tool result payload.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `result.data` | `object` | Yes | — | Contacts are your users in Intercom. |
| `result.data.type` | `"list"` | No | — | Always list Allowed: `list`. |
| `result.data.data` | `array` | No | — | The list of contact objects |
| `result.data.data[].type` | `string` | No | — | The type of object. |
| `result.data.data[].id` | `string` | No | — | The unique identifier for the contact which is given by Intercom. |
| `result.data.data[].external_id` | `string \| null` | No | — | The unique identifier for the contact which is provided by the Client. |
| `result.data.data[].workspace_id` | `string` | No | — | The id of the workspace which the contact belongs to. |
| `result.data.data[].role` | `string` | No | — | The role of the contact. |
| `result.data.data[].email` | `string` | No | — | The contact's email. |
| `result.data.data[].email_domain` | `string` | No | — | The contact's email domain. |
| `result.data.data[].phone` | `string \| null` | No | — | The contacts phone. |
| `result.data.data[].name` | `string \| null` | No | — | The contacts name. |
| `result.data.data[].owner_id` | `integer \| null` | No | — | The id of an admin that has been assigned account ownership of the contact. |
| `result.data.data[].has_hard_bounced` | `boolean` | No | — | Whether the contact has had an email sent to them hard bounce. |
| `result.data.data[].marked_email_as_spam` | `boolean` | No | — | Whether the contact has marked an email sent to them as spam. |
| `result.data.data[].unsubscribed_from_emails` | `boolean` | No | — | Whether the contact is unsubscribed from emails. |
| `result.data.data[].created_at` | `integer` | No | — | (Unix timestamp in seconds) The time when the contact was created. Format: `date-time`. |
| `result.data.data[].updated_at` | `integer` | No | — | (Unix timestamp in seconds) The time when the contact was last updated. Format: `date-time`. |
| `result.data.data[].signed_up_at` | `integer \| null` | No | — | (Unix timestamp in seconds) The time specified for when a contact signed up. Format: `date-time`. |
| `result.data.data[].last_seen_at` | `integer \| null` | No | — | (Unix timestamp in seconds) The time when the contact was last seen (either where the Intercom Messenger was installed or when specified manually). Format: `date-time`. |
| `result.data.data[].last_replied_at` | `integer \| null` | No | — | (Unix timestamp in seconds) The time when the contact last messaged in. Format: `date-time`. |
| `result.data.data[].last_contacted_at` | `integer \| null` | No | — | (Unix timestamp in seconds) The time when the contact was last messaged. Format: `date-time`. |
| `result.data.data[].last_email_opened_at` | `integer \| null` | No | — | (Unix timestamp in seconds) The time when the contact last opened an email. Format: `date-time`. |
| `result.data.data[].last_email_clicked_at` | `integer \| null` | No | — | (Unix timestamp in seconds) The time when the contact last clicked a link in an email. Format: `date-time`. |
| `result.data.data[].language_override` | `string \| null` | No | — | A preferred language setting for the contact, used by the Intercom Messenger even if their browser settings change. |
| `result.data.data[].browser` | `string \| null` | No | — | The name of the browser which the contact is using. |
| `result.data.data[].browser_version` | `string \| null` | No | — | The version of the browser which the contact is using. |
| `result.data.data[].browser_language` | `string \| null` | No | — | The language set by the browser which the contact is using. |
| `result.data.data[].os` | `string \| null` | No | — | The operating system which the contact is using. |
| `result.data.data[].android_app_name` | `string \| null` | No | — | The name of the Android app which the contact is using. |
| `result.data.data[].android_app_version` | `string \| null` | No | — | The version of the Android app which the contact is using. |
| `result.data.data[].android_device` | `string \| null` | No | — | The Android device which the contact is using. |
| `result.data.data[].android_os_version` | `string \| null` | No | — | The version of the Android OS which the contact is using. |
| `result.data.data[].android_sdk_version` | `string \| null` | No | — | The version of the Android SDK which the contact is using. |
| `result.data.data[].android_last_seen_at` | `integer \| null` | No | — | (Unix timestamp in seconds) The time when the contact was last seen on an Android device. Format: `date-time`. |
| `result.data.data[].ios_app_name` | `string \| null` | No | — | The name of the iOS app which the contact is using. |
| `result.data.data[].ios_app_version` | `string \| null` | No | — | The version of the iOS app which the contact is using. |
| `result.data.data[].ios_device` | `string \| null` | No | — | The iOS device which the contact is using. |
| `result.data.data[].ios_os_version` | `string \| null` | No | — | The version of iOS which the contact is using. |
| `result.data.data[].ios_sdk_version` | `string \| null` | No | — | The version of the iOS SDK which the contact is using. |
| `result.data.data[].ios_last_seen_at` | `integer \| null` | No | — | (Unix timestamp in seconds) The last time the contact used the iOS app. Format: `date-time`. |
| `result.data.data[].custom_attributes` | `record` | No | — | The custom attributes which are set for the contact. |
| `result.data.data[].avatar` | `object \| null` | No | — | — |
| `result.data.data[].avatar.type` | `string` | No | — | The type of object |
| `result.data.data[].avatar.image_url` | `string \| null` | No | — | An image URL containing the avatar of a contact. Format: `uri`. |
| `result.data.data[].tags` | `object \| null` | No | — | An object containing tags meta data about the tags that a contact has. Up to 10 will be displayed here. Use the url to get more. |
| `result.data.data[].tags.data` | `array` | No | — | This object represents the tags attached to a contact. |
| `result.data.data[].tags.data[].type` | `string` | No | — | The addressable object type Format: `uri`. |
| `result.data.data[].tags.data[].id` | `string` | No | — | The id of the addressable object |
| `result.data.data[].tags.data[].url` | `string` | No | — | Url to get more company resources for this contact Format: `uri`. |

The table shows the first 50 fields. Expand the raw schema below for every field.

> [!NOTE]
>
> This output schema is too large for an inline display. Read the complete live contract with `deepline describe intercom_list_contacts --json`.

## Deepline cost

* Pricing model: `fixed` (per call).
* Estimated Deepline credits: `0` per pricing unit.
* Provider-native pricing may still exist outside Deepline credit billing.

## Related documentation

* [Intercom provider guide](https://deepline.com/docs/providers/intercom/guide.md)
* [SDK V2 quickstart](https://deepline.com/docs/sdk-v2/quickstart.md)
* [SDK reference](https://deepline.com/docs/sdk-v2/sdk-reference.md)
* [Run tools across a CSV](https://deepline.com/docs/sdk-v2/batch-csv.md)


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