Intercom
Renta отправляет строки из вашего хранилища данных в Intercom как один из трёх объектов: контакты, компании и события.
Строка контакта несёт идентификаторы человека и атрибуты его профиля. Строка компании несёт аккаунт и его атрибуты. Стро ка события фиксирует действие человека, поэтому попадает в его ленту и может запустить сообщение.
Аутентификация
Renta авторизуется через Intercom OAuth. Авторизация действует на одно рабочее пространство и его регион хранения данных, который Intercom берёт из аккаунта, под которым вы вошли.
На экране согласия Intercom перечисляет, к чему приложение получает доступ: люди, компании, диалоги, сообщения, команды, теги, активность людей, счётчики рабочего пространства, атрибуты данных, тикеты и AI-контент. Renta читает атрибуты данных, чтобы заполнить списки в маппинге, ищет контакты перед записью и создаёт или обновляет записи, которые доставляет пайплайн.
Учётные данные хранятся в зашифрованном виде. Отозвать авторизацию можно в любой момент в списке разрешённых приложений вашего аккаунта Intercom.
Подключение назначения Intercom
- Перейдите в раздел Connections > Catalog в левом меню и откройте вкладку Destinations.
- Откройте категорию Reverse ETL и нажмите карточку Intercom.

Нажмите Log in to your Intercom account. Intercom откроется в этой же вкладке.

Просмотрите список прав и нажмите Authorize access. Обратите внимание на Data host region внизу экрана: он определяет, в какую инсталляцию Intercom будет писать пайплайн. Intercom вернёт вас в Renta.

Renta подтвердит выданный доступ и покажет авторизованный аккаунт. Завершите настройку:
- Destination name.
Укажите имя назначения. Оно используется только в интерфейсе Renta.
Нажмите Save.

Новое назначение появится в списке Destinations со статусом Active. Теперь его можно использовать в пайплайнах Reverse ETL.

Подготовка модели данных
Пайплайн Reverse ETL читает данные из модели данных: это SQL-запрос, сохранённый в разделе Data models, который решает, какие строки хранилища синхрони зировать и что лежит в каждой строке. Создайте её до пайплайна, потому что списки в маппинге заполняются колонками модели.
Называйте колонки так же, как поля Intercom, которые собираетесь заполнять. Тогда маппер сопоставит их один к одному, а сам пайплайн потом будет проще читать.
-- Контакты, подготовленные для Intercom. Запрос возвращает строки, таблица не создаётся.
WITH demo_contacts AS (
SELECT
'james.miller@example.com' AS email,
'u-1001' AS external_id,
'James Miller' AS name,
'+12125550101' AS phone,
'pro' AS plan
UNION ALL SELECT 'olivia.johnson@example.com','u-1002','Olivia Johnson','+13125550102','free'
UNION ALL SELECT 'william.davis@example.com','u-1003','William Davis','+12145550103','business'
)
SELECT * FROM demo_contactsСоздание модели данных
В левом меню откройте Data models и нажмите New model. Затем:
- Source.
Выберите подключение хранилища, к которому пойдёт запрос. - Write your model query.
Вставьте свой SQL. Тип запроса оставьте SQL query. - Run preview.
Проверьте строки и названия колонок. Когда результат устраивает, нажмите Next step.

Для модели, которая питает пайплайны, выберите Reverse ETL only. Если та же модель должна отвечать и на вопросы агентов, выберите один из вариантов с AI agents.

Просмотрите колонки, которые Renta прочитала из запроса, и отметьте ту, что опознаёт строку. По этому ключу Reverse ETL отличает изменённую строку от новой, поэтому выбирайте колонку, по которой будете сопоставлять и в Intercom, например адрес электронной почты.

Задайте имя и короткое описание, затем нажмите Create model. Именно это имя вы выберете в списке Data model при создании пайплайна.

Модель появится в списке с областью Reverse ETL и готова к использованию в пайплайне.

Создание пайплайна Intercom
Назначение и модель данных должны быть готовы до начала.
В левом меню нажмите New pipeline. На шаге Source переключитесь на Reverse ETL и выберите своё хранилище данных, например Google BigQuery.

Выберите подключение хранилища, в котором лежат ваши модели данных, и нажмите Next step.

На шаге Destination выберите Intercom в блоке Already connected и нажмите Next step.

Выберите подключение Intercom, созданное ранее, и нажмите Next step. На карточке показан регион рабочего пространства, по нему проще всего отличить два подключения.

Настройка пайплайна
На последнем шаге выберите, что Renta запишет в Intercom и какие колонки это заполнят.
Что отправляет Renta
Выберит е объект Intercom и модель данных за ним. Блоки ниже зависят от этого выбора, поэтому начните с него.

| Объект | Описание |
|---|---|
| Contacts | Каждая строка становится человеком в Intercom, сопоставление идёт по email или external id. Подходит, чтобы держать профили актуальными для рассылок и сегментации. |
| Companies | Каждая строка становится аккаунтом, сопоставление идёт по его company id. Подходит для атрибутов аккаунта, например тарифа или числа мест. |
| Events | Каждая строка становится событием в ленте человека. События запускают сообщения и служат материалом для поведенческих сегментов. |
Затем выберите Data model. Из неё берутся поля для сопоставления и маппинга ниже.
События только добавляются. Intercom не обновляет и не удаляет событие, поэтому строка, которая осталась в модели, отправляется снова при каждом запуске. Стройте модели событий на строках, которые появляются однократно, например на завершённых заказах, а не на таблице-снимке.
Сопоставление записей
Пайплайну по контактам нужно знать, какое значение опознаёт человека: Renta ищет контакт до того, как решить, обновлять его или создавать.

Левый список предлагает уникальный ключ модели данных. Правый: два идентификатора, по которым ищет Intercom, то есть email и external_id. Renta отправляет сопоставленное значение с каждой строкой, поэтому повторять его в блоке маппинга ниже не нужно.
У компаний и событий отдельного блока сопоставления нет. Компания опознаётся по company_id, который вы маппите как обычное поле, а событие несёт идентификатор человека в своём теле.
Маппинг полей
Свяжите колонки модели данных с полями Intercom.

| Тип маппинга | Описание |
|---|---|
| Standard | Берёт значение из колонки модели данных. |
| Static | Записывает одно и то же фиксированное значение в каждую запись. |
| Variable | Записывает значение самой синхронизации: например, имя модели данных или время старта запуска. |
В правом списке два вида полей. Стандартные есть в любом рабочем пространстве: Name, Email, Phone, User ID, Signed up, Last seen. Ниже идут кастомные атрибуты данных, заведённые в вашем рабочем пространстве.
Пайплайн событий обязан маппить Event name и хотя бы один идентификатор человека. Без названия Intercom нечего записывать, без идентификатора непонятно, в чью ленту попадёт событие. Пайплайну компаний по той же причине обязателен Company ID.
Поведение синхронизации
Задайте, что произойдёт с записью Intercom, чья строка пропала из модели данных.

| Вариант | Описание |
|---|---|
| Ignore | Запись остаётся в Intercom как есть. Вариант по умолчанию и единственный возможный для компаний и событий. |
| Archive | Архивирует контакт, в интерфейсе Intercom это называется Remove from Intercom. Человек пропадает из списков и перестаёт получать сообщения. |
Дальше задайте имя пайплайна.

Поле Integration name задаёт имя пайплайна в интерфейсе Renta. Измените его так, как вам удобно.
Расписание
Выберите, как часто запускается пайплайн.

| Тип расписания | Описание |
|---|---|
| Manual | Пайплайн запускается только вручную из интерфейса или через API. |
| Daily | Пайплайн запускается раз в сутки в указанное время обновления. |
| Interval | Пайплайн запускается через заданные интервалы времени. |
| Cron Expression | Пайплайн запускается по расписанию, заданному cron-выражением. |
Для расписания Daily укажите Update time (точное время старта каждого запуска) и нажмите Create pipeline.

Renta также поддерживает запуск через API и работу с внешними оркестраторами, такими как Apache Airflow, Dagster и Prefect. Подробности в документации по расписаниям.
Новый пайплайн появится в разделе Pipelines на вкладке Reverse ETL, где видно его запуски и прогресс.

Стратегия синхронизации
Renta синхронизирует данные инкрементально. Запуск сравнивает модель данных с состоянием, записанным на прошлом запуске, и отправляет только то, что изменилось, поэтому ежедневная синхронизация трогает несколько записей, а не всю модель. Первому запуску сравнивать не с чем, и он отдаёт всё.
| Состояние строки | Что делает Renta |
|---|---|
| Новая | Создаёт контакт или компанию либо записывает событие. |
| Изменённая | Записывает замапленные поля заново с новыми значениями. Атрибуты вне маппинга остаются прежними. |
| Без изменений | Ничего не отправляет. |
| Удалённая | Действует по выбранной политике: оставляет запись нетронутой или архивирует контакт. |
Ограничения
- Записи отправляются по одной.
У API Intercom нет пакетной загрузки ни для контактов, ни для компаний, ни для событий, поэтому запуск делает по запросу на запись. Большая первая синхронизация из-за этого заметно дольше последующих инкрементальных. - Событие нельзя исправить.
Intercom хранит событие таким, каким оно пришло. Ни обновления, ни удаления нет, поэтому ошибку в модели событий получится исправить только для будущих запусков. - Запуск останавливается при массовых отказах.
Renta прекращает запуск, если отклонено больше 30% пакета или больше 10% строк, отправленных с начала запуска. Уже записанные записи остаются в Intercom, а следующий запуск продолжит с места остановки. - Атрибуты данных не создаются автоматически.
Renta пишет только в те атрибуты, которые уже заведены в вашем рабочем пространстве. Сначала добавьте недостающий в Intercom, затем откройте настройки пайплайна заново, чтобы он появился в списке.
Ready to get started?
Build your data pipeline today or get a personalized demo. Start free!
Need help?
Get expert support to ensure your project succeeds. We're here to help!
Feature requests?
Help shape our product! Share your ideas for new features and integrations.