Intercom конектор
Свържи своето Intercom workspace с Brevo чрез Tajo за унифицирани клиентски съобщения, проследяване на разговори и маркетингова автоматизация, задвижвана от ангажираност, захранена от твоите support и продуктови данни.
Преглед
| Свойство | Стойност |
|---|---|
| Платформа | Intercom |
| Категория | Поддръжка |
| Сложност на настройка | Средна |
| Официална интеграция | Да |
| Синхронизирани данни | Контакти, разговори, компании, събития |
| Base URL на API | https://api.intercom.io |
Функции
- Синхронизация на контакти – Двупосочна синхронизация на Intercom потребители и leads с контактите в Brevo
- Проследяване на разговори – Синхронизирай данни за разговори за сегментация, задвижвана от поддръжката
- Мапване на компании – Асоциирай контактите с компании за account-based работни потоци
- Персонализирани атрибути – Мапвай Intercom персонализирани атрибути към полета на контактите в Brevo
- Проследяване на събития – Синхронизирай персонализирани събития и потребителски активности за поведенческо таргетиране
- Синхронизация на тагове – Мапвай Intercom тагове към членство в списъци или атрибути в Brevo
- Messenger данни – Проследявай in-app messaging ангажираност и chat взаимодействия
- Интеграция с AI агенти – Синхронизирай резултати от разговори с AI агенти с Brevo
Предварителни условия
Преди да започнеш, увери се, че имаш:
- Intercom workspace (Starter, Pro или Premium план)
- Intercom приложение с access token (private app) или конфигуриран OAuth (public app)
- Акаунт в Brevo с API достъп
- Акаунт в Tajo
Автентикация
Access Token (Private App)
За частни интеграции, които достъпват данни на собственото ти workspace.
- Отиди в Developer Hub > Your Apps > Create new app
- Асоциирай с твоето Intercom workspace
- Копирай access token
curl https://api.intercom.io/contacts \ -H "Authorization: Bearer {access_token}" \ -H "Content-Type: application/json" \ -H "Intercom-Version: 2.11"OAuth 2.0 (Public App)
За интеграции, които достъпват Intercom данни на други клиенти.
# Authorization URLhttps://app.intercom.com/oauth?client_id={client_id}&state={state}
# Token exchangecurl -X POST https://api.intercom.io/auth/eagle/token \ -d "client_id={client_id}" \ -d "client_secret={client_secret}" \ -d "code={auth_code}"API версиониране
Винаги включвай хедъра Intercom-Version в заявките си. Tajo по подразбиране използва API версия 2.11. Провери Intercom changelog за breaking промени.
Конфигурация
Основна настройка
connectors: intercom: enabled: true access_token: "${INTERCOM_ACCESS_TOKEN}" api_version: "2.11"
# Data sync options sync: contacts: true conversations: true companies: true events: true tags: true
# Sync direction direction: intercom_to_brevo
# Brevo list assignment lists: all_users: 35 active_conversations: 36 leads: 37Мапване на полета
Мапвай Intercom данни за контакти към атрибути на контактите в Brevo:
Мапвания по подразбиране
| Parameter | Type | Description |
|---|---|---|
email required | string | Имейл адрес на контакта (уникален идентификатор) |
name optional | string | Пълно име, разделено на FIRSTNAME/LASTNAME |
phone optional | string | Мапва към атрибут SMS за WhatsApp/SMS |
role optional | string | Тип контакт: user или lead |
company.name optional | string | Име на свързана компания |
signed_up_at optional | timestamp | Дата на регистрация на потребителя |
last_seen_at optional | timestamp | Timestamp на последна активност |
custom_attributes optional | object | Персонализирани ключ-стойност двойки |
Мапване на персонализирани атрибути
field_mapping: # Standard fields email: email name: FULLNAME phone: SMS
# Engagement fields signed_up_at: SIGNUP_DATE last_seen_at: LAST_ACTIVE session_count: SESSION_COUNT unsubscribed_from_emails: UNSUBSCRIBED
# Company fields company.name: COMPANY_NAME company.plan: COMPANY_PLAN company.size: COMPANY_SIZE
# Custom attributes custom_attributes.plan_tier: PLAN_TIER custom_attributes.feature_usage: FEATURE_USAGEAPI крайни точки
Contacts API
| Метод | Крайна точка | Описание |
|---|---|---|
GET | /contacts | Списък с всички контакти |
POST | /contacts | Създаване на контакт |
PUT | /contacts/{id} | Обновяване на контакт |
GET | /contacts/{id} | Получаване на контакт |
POST | /contacts/search | Търсене на контакти |
DELETE | /contacts/{id} | Архивиране на контакт |
Conversations API
| Метод | Крайна точка | Описание |
|---|---|---|
GET | /conversations | Списък с разговори |
GET | /conversations/{id} | Получаване на разговор |
POST | /conversations | Създаване на разговор |
POST | /conversations/{id}/reply | Отговор на разговор |
POST | /conversations/{id}/parts | Добавяне на част към разговор |
Companies API
| Метод | Крайна точка | Описание |
|---|---|---|
GET | /companies | Списък с компании |
POST | /companies | Създаване или обновяване на компания |
GET | /companies/{id} | Получаване на компания |
GET | /companies/{id}/contacts | Списък с контакти на компания |
Events API
| Метод | Крайна точка | Описание |
|---|---|---|
POST | /events | Изпращане на събитие |
GET | /events?type=user&intercom_user_id={id} | Списък с потребителски събития |
Събития
Събития от разговори
| Събитие | Тригер | Случай на употреба |
|---|---|---|
conversation.created | Започнат нов разговор | Alert за support тикет |
conversation.closed | Разговорът е решен | Тригер за CSAT анкета |
conversation.rating.added | Подадена оценка | Проследяване на удовлетвореност |
conversation.snoozed | Разговорът е snooze-нат | Планиране на follow-up |
Събития от контакти
| Събитие | Тригер | Случай на употреба |
|---|---|---|
contact.created | Добавен нов контакт | Welcome последователност |
contact.updated | Променени данни за контакт | Синхронизация на атрибути |
contact.deleted | Контактът е архивиран | Почистване |
contact.tag.created | Добавен таг към контакт | Обновяване на сегмент |
Потребителски събития
| Събитие | Тригер | Случай на употреба |
|---|---|---|
user.created | Нов потребител се регистрира | Onboarding поток |
user.email.updated | Променен имейл | Обединяване на контакти |
user.unsubscribed | Отписан от имейли | Обновяване на предпочитания |
Примери с код
Инициализация на конектора
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Intercomawait tajo.connectors.connect('intercom', { accessToken: process.env.INTERCOM_ACCESS_TOKEN, apiVersion: '2.11'});Синхронизация на контакти и разговори
// Full sync of contacts and conversation dataawait tajo.connectors.sync('intercom', { type: 'full', resources: ['contacts', 'conversations', 'companies'], since: '2023-01-01'});
// Check sync statusconst status = await tajo.connectors.status('intercom');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// contactsSynced: 14200,// conversationsSynced: 28400,// companiesSynced: 2100// }Обработка на Intercom уебхуци
import crypto from 'crypto';
app.post('/webhooks/intercom', async (req, res) => { const signature = req.get('X-Hub-Signature'); const expectedSig = 'sha1=' + crypto .createHmac('sha1', process.env.INTERCOM_CLIENT_SECRET) .update(JSON.stringify(req.body)) .digest('hex');
if (signature !== expectedSig) { return res.status(401).send('Unauthorized'); }
await tajo.connectors.handleWebhook('intercom', { topic: req.body.topic, data: req.body.data });
res.status(200).send('OK');});Ограничения на заявките
Intercom прилага rate limits на базата на твоя план:
| План | Rate Limit | Детайли |
|---|---|---|
| Starter | 20 заявки/10 секунди | На приложение |
| Pro | 50 заявки/10 секунди | На приложение |
| Premium | 100 заявки/10 секунди | На приложение |
| Search крайна точка | 1 заявка/секунда | На приложение |
| Scroll крайна точка | 1 заявка/минута | На приложение |
Допълнителни лимити:
- Пакетни операции: 15 контакта на пакетна заявка
- Изпращане на събития: 500 събития/секунда на workspace
- Доставка на уебхуци: Автоматичен retry за 24 часа
- Експорт на данни: 1 едновременен експорт
Отговор при rate limit
Intercom връща 429 Too Many Requests с хедър Retry-After. Внедри exponential backoff и уважавай retry прозореца.
Отстраняване на проблеми
Чести проблеми
| Проблем | Причина | Решение |
|---|---|---|
| 401 Unauthorized | Невалиден или изтекъл token | Регенерирай access token в Developer Hub |
| Контактът не е синхронизиран | Липсва email поле | Intercom leads могат да нямат имейл; филтрирай по role |
| Данните за разговор са празни | Приложението няма conversation scope | Повторна авторизация с разрешения за четене на разговори |
| Уебхукът не се получава | Уебхукът не е регистриран | Конфигурирай уебхуци в Developer Hub settings |
| Несъответствие на API версия | Breaking промени в нова версия | Фиксирай API версията с хедъра Intercom-Version |
Режим за дебъг
Активирай подробно логване:
connectors: intercom: debug: true log_level: verbose log_webhooks: trueТест на връзката
tajo connectors test intercom# ✓ API connection successful# ✓ Contacts readable# ✓ Conversations readable# ✓ Companies readable# ✓ Webhooks registeredДобри практики
- Фиксирай API версията – Винаги указвай
Intercom-Version, за да избегнеш breaking промени - Използвай search API ефективно – Използвай филтри и пагинация, за да намалиш data трансфера
- Синхронизирай и users, и leads – Улавяй цялата фуния в Brevo
- Мапвай тагове на разговори – Използвай тагове на разговори за маркетингови сегменти след поддръжка
- Проследявай персонализирани събития – Изпращай ключови продуктови събития към Intercom за поведенческо таргетиране
- Обработвай обединяване на контакти – Внедри логика за обединяване на дублирани контакти
Сигурност
- Access Token – Bearer token автентикация за private приложения
- OAuth 2.0 – Делегирана авторизация за public приложения с client secret
- Верификация на уебхуци – HMAC SHA-1 валидация на подпис чрез
X-Hub-Signature - TLS криптиране – Цялата API комуникация е криптирана чрез HTTPS
- Контрол на достъпа до данни – Гранулиран достъп до данни на конфигурация на приложение