PollyHub

Intercom Connector

Clean

Access Intercom customer messaging with managed OAuth to search and manage contacts, conversations, and companies using the Intercom REST API v2.

SKILL.md

---
name: intercom-connector
description: "Access Intercom customer messaging with managed OAuth. Search and manage contacts, conversations, and companies. Use when the user wants to search Intercom contacts, read conversations, create messages, manage customer data, or query Intercom."
metadata:
  polly:
    polly_managed_connector: true
    auth:
      - env: INTERCOM_ACCESS_TOKEN
        type: oauth2
        integration_id: intercom
        description: Intercom OAuth access
    primaryEnv: INTERCOM_ACCESS_TOKEN
---

# Intercom Connector

Access Intercom customer messaging through the Intercom REST API v2 using managed OAuth.

## First-Time Setup

If Intercom is not connected yet, run:

`manage_auth(action="connect", integration_id="intercom", auth_env="INTERCOM_ACCESS_TOKEN")`

## Auth & Security

- Authentication is managed by Polly + Nango from `metadata.polly.auth`
- Never ask users to paste tokens in chat
- Never print or log token values
- If auth fails, reconnect with:
  `manage_auth(action="connect", integration_id="intercom", auth_env="INTERCOM_ACCESS_TOKEN")`

## Base URL

`https://api.intercom.io`

All requests include:

`Authorization: Bearer $INTERCOM_ACCESS_TOKEN`

## Quick Usage

List contacts:

```bash
curl -sS \
  -H "Authorization: Bearer $INTERCOM_ACCESS_TOKEN" \
  -H "Accept: application/json" \
  "https://api.intercom.io/contacts"
```

Search contacts:

```bash
curl -sS -X POST \
  -H "Authorization: Bearer $INTERCOM_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"query":{"field":"email","operator":"=","value":"user@example.com"}}' \
  "https://api.intercom.io/contacts/search"
```

List conversations:

```bash
curl -sS \
  -H "Authorization: Bearer $INTERCOM_ACCESS_TOKEN" \
  -H "Accept: application/json" \
  "https://api.intercom.io/conversations"
```

Get a conversation:

```bash
curl -sS \
  -H "Authorization: Bearer $INTERCOM_ACCESS_TOKEN" \
  -H "Accept: application/json" \
  "https://api.intercom.io/conversations/<conversationId>"
```

Reply to a conversation:

```bash
curl -sS -X POST \
  -H "Authorization: Bearer $INTERCOM_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"message_type":"comment","type":"admin","admin_id":"<adminId>","body":"Thanks for reaching out!"}' \
  "https://api.intercom.io/conversations/<conversationId>/reply"
```

List companies:

```bash
curl -sS \
  -H "Authorization: Bearer $INTERCOM_ACCESS_TOKEN" \
  -H "Accept: application/json" \
  "https://api.intercom.io/companies"
```

## Rules

- Intercom API uses cursor-based pagination — pass `starting_after` from prior responses
- Contact search uses a structured query object with `field`, `operator`, and `value`
- Include `Accept: application/json` on GET requests for consistent response format
- On API errors, surface status + response body clearly
- On 401/403, reconnect with `manage_auth(action="connect", integration_id="intercom", auth_env="INTERCOM_ACCESS_TOKEN")`
- Never log, echo, or expose credential values in any output
Authorstella
Downloads4
Versions2
Published1d ago
Auth Requirements
INTERCOM_ACCESS_TOKENoauth2

integration: intercom

Version History

v1.1.0latest

Add polly_managed_connector flag and connector-skill tag

Apr 9, 2026

Clean.zip
v1.0.0

Initial release of v0.8 Tier 3 connectors

Apr 9, 2026

Clean.zip

SHA-256 (latest)

c83c3bf7c637f5f6869efef4f011b7ff3ebc7a5c0c2911bf9a34d2ead8d9a3e1