技能 编程开发 Intercom核心API功能示例

Intercom核心API功能示例

v20260423
intercom-hello-world
这是一个全面的“Hello World”示例,用于指导开发者如何集成Intercom API。它演示了如何创建、搜索和管理核心实体,包括联系人(Contacts)、对话(Conversations)和消息(Messages)。非常适合刚开始使用Intercom进行开发、测试基础功能或学习Intercom数据模型的工程师。
获取技能
80 次下载
概览

Intercom Hello World

Overview

Minimal working examples covering the Intercom core data model: contacts (users and leads), conversations, messages, and tags.

Prerequisites

  • Completed intercom-install-auth setup
  • intercom-client package installed
  • Valid access token in environment

Instructions

Step 1: Create a Contact

Contacts are the core entity. They have a role of either user (identified) or lead (anonymous).

import { IntercomClient } from "intercom-client";

const client = new IntercomClient({
  token: process.env.INTERCOM_ACCESS_TOKEN!,
});

// Create a user contact
const user = await client.contacts.create({
  role: "user",
  externalId: "user-12345",
  email: "jane@example.com",
  name: "Jane Smith",
  customAttributes: {
    plan: "pro",
    signup_date: Math.floor(Date.now() / 1000),
  },
});

console.log(`Created contact: ${user.id} (${user.role})`);

// Response shape:
// {
//   type: "contact",
//   id: "6657add46abd0167d9419c3a",
//   workspace_id: "abc123",
//   external_id: "user-12345",
//   role: "user",
//   email: "jane@example.com",
//   name: "Jane Smith",
//   custom_attributes: { plan: "pro", signup_date: 1711100000 },
//   created_at: 1711100000,
//   updated_at: 1711100000,
//   ...
// }

Step 2: Search for Contacts

// Search contacts by email
const results = await client.contacts.search({
  query: {
    field: "email",
    operator: "=",
    value: "jane@example.com",
  },
});

console.log(`Found ${results.totalCount} contacts`);
for (const contact of results.data) {
  console.log(`  ${contact.name} - ${contact.email} (${contact.role})`);
}

Step 3: Send a Message

Messages are outbound communications from admins to contacts.

// Send an in-app message
const message = await client.messages.create({
  messageType: "inapp",
  body: "Welcome to our platform! Need help getting started?",
  from: {
    type: "admin",
    id: "12345", // Admin ID from client.admins.list()
  },
  to: {
    type: "user",
    id: user.id,
  },
});

console.log(`Sent message: ${message.id}`);

Step 4: Create a Conversation

Conversations are created when a contact replies or an admin initiates.

// Create a conversation (as a contact)
const conversation = await client.conversations.create({
  from: {
    type: "user",
    id: user.id,
  },
  body: "Hi, I have a question about billing.",
});

console.log(`Conversation created: ${conversation.conversationId}`);

Step 5: Tag a Contact

// Create a tag
const tag = await client.tags.create({ name: "vip-customer" });

// Tag a contact
await client.contacts.tag({
  contactId: user.id,
  id: tag.id,
});

console.log(`Tagged contact ${user.id} with "${tag.name}"`);

Core Data Model

Entity Description Key Fields
Contact Users and leads id, role, email, external_id, custom_attributes
Conversation Threaded exchanges id, state, contacts, conversation_parts
Message Outbound from admin id, message_type, body, from, to
Tag Labels for entities id, name, applied_to
Company Organization grouping id, company_id, name, plan
Admin Workspace team member id, name, email, type

Complete Working Script

import { IntercomClient } from "intercom-client";

const client = new IntercomClient({
  token: process.env.INTERCOM_ACCESS_TOKEN!,
});

async function main() {
  // 1. Verify connection
  const me = await client.admins.list();
  const admin = me.admins[0];
  console.log(`Authenticated as: ${admin.name}`);

  // 2. Create or find a contact
  const contact = await client.contacts.create({
    role: "user",
    externalId: `hello-world-${Date.now()}`,
    email: `test-${Date.now()}@example.com`,
    name: "Hello World User",
  });
  console.log(`Contact: ${contact.id}`);

  // 3. List all contacts (paginated)
  const contacts = await client.contacts.list();
  console.log(`Total contacts in workspace: ${contacts.totalCount}`);

  // 4. List conversations
  const conversations = await client.conversations.list();
  console.log(`Total conversations: ${conversations.totalCount}`);
}

main().catch(console.error);

Error Handling

Error Cause Solution
not_found (404) Contact/conversation ID invalid Verify the ID exists
parameter_invalid Missing required field Check required params in docs
conflict (409) Duplicate external_id Use unique identifiers
unauthorized (401) Invalid token Regenerate access token

Resources

Next Steps

Proceed to intercom-local-dev-loop for development workflow setup.

信息
Category 编程开发
Name intercom-hello-world
版本 v20260423
大小 5.62KB
更新时间 2026-04-28
语言