home / skills / openclaw / skills / intercom

intercom skill

/skills/mrgoodb/intercom

This skill helps you manage Intercom contacts, conversations, and messages via API to streamline customer support workflows.

npx playbooks add skill openclaw/skills --skill intercom

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
1.9 KB
---
name: intercom
description: Manage customer conversations, contacts, and help articles via Intercom API. Send messages and manage support inbox.
metadata: {"clawdbot":{"emoji":"💬","requires":{"env":["INTERCOM_ACCESS_TOKEN"]}}}
---

# Intercom

Customer messaging platform.

## Environment

```bash
export INTERCOM_ACCESS_TOKEN="dG9rOxxxxxxxxxx"
```

## List Contacts

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

## Search Contacts

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

## Create Contact

```bash
curl -X POST "https://api.intercom.io/contacts" \
  -H "Authorization: Bearer $INTERCOM_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"role": "user", "email": "[email protected]", "name": "John Doe"}'
```

## Send Message

```bash
curl -X POST "https://api.intercom.io/messages" \
  -H "Authorization: Bearer $INTERCOM_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "message_type": "inapp",
    "body": "Hey! How can I help?",
    "from": {"type": "admin", "id": "ADMIN_ID"},
    "to": {"type": "user", "id": "USER_ID"}
  }'
```

## List Conversations

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

## Reply to Conversation

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

## Links
- Dashboard: https://app.intercom.com
- Docs: https://developers.intercom.com

Overview

This skill manages customer conversations, contacts, and help articles through the Intercom API. It enables sending messages, listing and replying to conversations, and creating or searching contacts programmatically. Use it to integrate Intercom operations into automation, backups, or custom support tooling.

How this skill works

The skill calls Intercom REST endpoints to list and search contacts, create new contacts, send messages, and list or reply to conversations. It uses a bearer token for authentication and handles common request payloads for in-app messages, admin replies, and contact creation. Typical operations include paginated reads, POST-based searches, and message/reply creation targeted to user or admin IDs.

When to use it

  • Integrate Intercom messaging into custom support dashboards or automation workflows.
  • Automate outreach like onboarding or follow-ups with in-app messages.
  • Bulk-import or search and sync contact records from another system.
  • Archive or back up conversations and contact data for compliance.
  • Programmatically reply to support conversations from other tools or bots.

Best practices

  • Store INTERCOM_ACCESS_TOKEN securely (environment variables or secret manager).
  • Handle pagination and cursor-based results when listing contacts or conversations.
  • Respect API rate limits and implement retries with backoff for transient errors.
  • Use idempotent operations or deduplication when creating contacts or sending messages.
  • Test actions in a staging Intercom workspace before running in production.

Example use cases

  • Send a welcome in-app message to new users when they sign up.
  • Search for a contact by email and update profile fields or tags automatically.
  • List recent conversations and create a nightly backup of messages to external storage.
  • Automatically reply to a conversation from an admin account when specific keywords appear.
  • Bulk-create contacts from a CRM export and tag them for targeted campaigns.

FAQ

How do I authenticate requests?

Set INTERCOM_ACCESS_TOKEN as an environment variable and include it as a Bearer token in the Authorization header for all API requests.

How should I handle large result sets?

Use the API's pagination/cursor fields to fetch pages iteratively and implement rate-limit aware retries to avoid throttling.