---
title: "Коннектор Intercom"
description: "Полное руководство по интеграции Intercom для синхронизации контактов, диалогов, компаний и событий вовлечённости с Brevo через Tajo."
url: https://tajo.io/ru/docs/connectors/support/intercom/
markdown: https://tajo.io/ru/docs/connectors/support/intercom.md
lang: ru-RU
robots: noindex
---

Подайте заявку на ранний доступ

Укажите имя и рабочий адрес электронной почты. Мы отправим ссылку для подтверждения запроса на доступ к Tajo.

# Коннектор Intercom

Статус коннектора: Запланирован Ещё не создан. Сегодня Tajo не запускает этот коннектор.

| Поле источника | Поле назначения | Пример значения |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Подключите рабочее пространство Intercom к Brevo через Tajo для единого клиентского мессенджинга, отслеживания диалогов и маркетинговой автоматизации на основе данных поддержки и продукта.

## Обзор

| Свойство | Значение |
| --- | --- |
| **Платформа** | Intercom |
| **Категория** | Support |
| **Сложность настройки** | Средняя |
| **Официальная интеграция** | Нет |
| **Синхронизируемые данные** | Контакты, диалоги, компании, события |
| **Базовый URL API** | `https://api.intercom.io` |

## Возможности

- **Синхронизация контактов**, двунаправленная синхронизация пользователей и лидов Intercom с контактами Brevo
- **Отслеживание диалогов**, синхронизация данных диалогов для сегментации на основе поддержки
- **Маппинг компаний**, привязка контактов к компаниям для аккаунт-ориентированных рабочих процессов
- **Пользовательские атрибуты**, маппинг пользовательских атрибутов Intercom на поля контактов Brevo
- **Трекинг событий**, синхронизация пользовательских событий и активности для поведенческого таргетинга
- **Синхронизация тегов**, маппинг тегов Intercom в членство в списках или атрибуты Brevo
- **Данные мессенджера**, трекинг вовлечённости в чате и взаимодействий
- **Интеграция AI-агента**, синхронизация результатов диалогов AI-агента с Brevo

## Предварительные требования

Прежде чем начать, убедитесь, что у вас есть:

1. Рабочее пространство Intercom (план Starter, Pro или Premium)
2. Приложение Intercom с токеном доступа (private app) или настроенным OAuth (public app)
3. Аккаунт Brevo с доступом к API
4. Аккаунт Tajo

## Аутентификация

### Access Token (приватное приложение)

Для приватных интеграций, обращающихся к данным вашего рабочего пространства.

1. Перейдите в Developer Hub > Your Apps > Create new app
2. Привяжите к рабочему пространству Intercom
3. Скопируйте токен доступа

```bash
curl https://api.intercom.io/contacts \
  -H "Authorization: Bearer {access_token}" \
  -H "Content-Type: application/json" \
  -H "Intercom-Version: 2.11"
```

### OAuth 2.0 (публичное приложение)

Для интеграций, получающих доступ к данным Intercom других клиентов.

```bash
# URL авторизации
https://app.intercom.com/oauth?client_id={client_id}&state={state}

# Обмен токена
curl -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 на предмет критических изменений.

## Конфигурация

### Базовая настройка

```yaml
connectors:
  intercom:
    enabled: true
    access_token: "${INTERCOM_ACCESS_TOKEN}"
    api_version: "2.11"

    # Параметры синхронизации данных
    sync:
      contacts: true
      conversations: true
      companies: true
      events: true
      tags: true

    # Направление синхронизации
    direction: intercom_to_brevo

    # Назначение листов Brevo
    lists:
      all_users: 35
      active_conversations: 36
      leads: 37
```

### Сопоставление полей

Сопоставьте данные контактов Intercom с атрибутами контактов Brevo:

#### Сопоставления по умолчанию

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | Email-адрес контакта (уникальный идентификатор) |
| `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 | Временная метка последней активности |
| `custom_attributes` optional | object | Пары ключ-значение пользовательских атрибутов |

#### Маппинг пользовательских атрибутов

```yaml
field_mapping:
  # Стандартные поля
  email: email
  name: FULLNAME
  phone: SMS

  # Поля вовлечённости
  signed_up_at: SIGNUP_DATE
  last_seen_at: LAST_ACTIVE
  session_count: SESSION_COUNT
  unsubscribed_from_emails: UNSUBSCRIBED

  # Поля компании
  company.name: COMPANY_NAME
  company.plan: COMPANY_PLAN
  company.size: COMPANY_SIZE

  # Пользовательские атрибуты
  custom_attributes.plan_tier: PLAN_TIER
  custom_attributes.feature_usage: FEATURE_USAGE
```

## Эндпоинты API

### 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` | Начат новый диалог | Оповещение о тикете поддержки |
| `conversation.closed` | Диалог закрыт | Триггер CSAT-опроса |
| `conversation.rating.added` | Оценка поставлена | Отслеживание удовлетворённости |
| `conversation.snoozed` | Диалог отложен | Планирование follow-up |

### События контактов

| Событие | Триггер | Сценарий использования |
| --- | --- | --- |
| `contact.created` | Добавлен новый контакт | Приветственная серия |
| `contact.updated` | Данные контакта изменены | Синхронизация атрибутов |
| `contact.deleted` | Контакт архивирован | Очистка |
| `contact.tag.created` | Тег добавлен к контакту | Обновление сегмента |

### События пользователей

| Событие | Триггер | Сценарий использования |
| --- | --- | --- |
| `user.created` | Новый пользователь зарегистрировался | Поток онбординга |
| `user.email.updated` | Email изменён | Объединение контактов |
| `user.unsubscribed` | Отписан от email | Обновление предпочтений |

## Примеры кода

### Инициализация коннектора

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

// Подключение Intercom
await tajo.connectors.connect('intercom', {
  accessToken: process.env.INTERCOM_ACCESS_TOKEN,
  apiVersion: '2.11'
});
```

### Синхронизация контактов и диалогов

```javascript
// Полная синхронизация контактов и данных диалогов
await tajo.connectors.sync('intercom', {
  type: 'full',
  resources: ['contacts', 'conversations', 'companies'],
  since: '2023-01-01'
});

// Проверка статуса синхронизации
const status = await tajo.connectors.status('intercom');
console.log(status);
// {
//   connected: true,
//   lastSync: '2024-01-15T10:30:00Z',
//   contactsSynced: 14200,
//   conversationsSynced: 28400,
//   companiesSynced: 2100
// }
```

### Обработка вебхуков Intercom

```javascript
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 устанавливает лимиты скорости в зависимости от плана:

| План | Лимит | Детали |
| --- | --- | --- |
| Starter | 20 запросов/10 сек | На приложение |
| Pro | 50 запросов/10 сек | На приложение |
| Premium | 100 запросов/10 сек | На приложение |
| Эндпоинт поиска | 1 запрос/сек | На приложение |
| Эндпоинт прокрутки | 1 запрос/мин | На приложение |

Дополнительные ограничения:

- **Bulk-операции**: 15 контактов на bulk-запрос
- **Отправка событий**: 500 событий/сек на рабочее пространство
- **Доставка вебхуков**: автоматические повторные попытки в течение 24 часов
- **Экспорт данных**: 1 параллельный экспорт

Ответ при превышении лимита

Intercom возвращает `429 Too Many Requests` с заголовком `Retry-After`. Реализуйте экспоненциальную задержку и соблюдайте окно повторных попыток.

## Устранение неполадок

### Частые проблемы

| Проблема | Причина | Решение |
| --- | --- | --- |
| 401 Unauthorized | Недействительный или истёкший токен | Перегенерируйте токен доступа в Developer Hub |
| Контакт не синхронизирован | Отсутствует поле email | Лиды Intercom могут не иметь email; фильтруйте по роли |
| Данные диалога пусты | Приложение не имеет scope для диалога | Повторно авторизуйтесь с разрешениями на чтение диалогов |
| Вебхук не получен | Вебхук не зарегистрирован | Настройте вебхуки в Developer Hub |
| Несоответствие версии API | Критические изменения в новой версии | Закрепите версию API с заголовком `Intercom-Version` |

### Режим отладки

Включение подробного логирования:

```yaml
connectors:
  intercom:
    debug: true
    log_level: verbose
    log_webhooks: true
```

### Проверка подключения

```bash
tajo connectors test intercom
# ✓ API connection successful
# ✓ Contacts readable
# ✓ Conversations readable
# ✓ Companies readable
# ✓ Webhooks registered
```

## Лучшие практики

1. **Закрепляйте версию API**, всегда указывайте `Intercom-Version` во избежание критических изменений
2. **Эффективно используйте Search API**, применяйте фильтры и пагинацию для уменьшения передаваемых данных
3. **Синхронизируйте пользователей и лидов**, охватывайте всю воронку в Brevo
4. **Маппируйте теги диалогов**, используйте теги диалогов для сегментов постпокупочного маркетинга
5. **Отслеживайте пользовательские события**, отправляйте ключевые события продукта в Intercom для поведенческого таргетинга
6. **Обрабатывайте объединение контактов**, реализуйте логику слияния для дублирующихся контактов

## Безопасность

- **Access Token**, аутентификация через Bearer-токен для приватных приложений
- **OAuth 2.0**, делегированная авторизация для публичных приложений с client secret
- **Верификация вебхуков**, валидация подписи HMAC SHA-1 через `X-Hub-Signature`
- **TLS-шифрование**, все API-коммуникации зашифрованы через HTTPS
- **Контроль доступа к данным**, гранулярный доступ к данным на конфигурацию приложения

## Связанные ресурсы

- [Документация Intercom Developer](https://developers.intercom.com/docs)
- [Справочник Intercom API](https://developers.intercom.com/docs/references/introduction)
- [Коннектор Zendesk](https://tajo.io/ru/docs/connectors/support/zendesk)
- [Скилл синхронизации клиентов](https://tajo.io/ru/docs/skills/data-sync/customer-sync)
- [Brevo Contacts API](https://tajo.io/ru/docs/contact-management)
