Intercom
Renta выгружает в ваше хранилище данных восемь объектов Intercom: контакты, компании, диалоги, администраторов, команды, сегменты, теги и атрибуты данных.
Для каждого объекта вы можете гибко настроить список выгружаемых полей. Интеграция автоматически обрабатывает сложные структуры данных:
- Вложенные объекты (например, геолокация) разворачиваются в плоские колонки.
- Списки (например, теги и участники) сохраняются в виде вложенных записей.
- Даты преобразуются из формата Unix timestamp в стандартный формат даты и времени в часовом поясе UTC.
Аутентификация
Renta подключается к Intercom по протоколу OAuth. Вы входите в Intercom, проверяете запрошенные разрешения и подтверждаете доступ. Копировать API-ключи или токены вручную не нужно.
Ваши учётные данные шифруются при передаче и хранении и никогда не сохраняются в базе данных приложения Renta. Вы контролируете доступ и можете отозвать его в настройках аккаунта Intercom в любой момент.
Подключение источника Intercom
- В левом меню перейдите в раздел Connections > Catalog.
- Откройте категорию Customer support и выберите карточку Intercom с пометкой Source.
Примечание: карточка с пометкой Destination используется для обратной выгрузки данных из хранилища в Intercom.

Нажмите Log in to your Intercom account. Вы будете перенаправлены на страницу авторизации Intercom.

- Ознакомьтесь со списком запрашиваемых прав. Renta запрашивает доступ только к тем объектам, которые необходимы для экспорта (контакты, компании, диалоги и т.д.).
- Проверьте поле Data host region внизу страницы и выберите регион, в котором физически размещен ваш воркспейс.
- Нажмите Authorize access.
Вы можете отозвать доступ в любой момент в настройках авторизованных приложений вашего аккаунта Intercom.

- В поле Source name введите понятное имя для источника (оно будет отображаться только в интерфейсе Renta).
- Нажмите Save.
В блоке Access granted отобразится аккаунт Intercom, предоставивший доступ. Если в будущем потребуется сменить воркспейс, используйте кнопку Re-authorize.

Убедитесь, что новый источник появился в списке Sources со статусом Active. Теперь он готов к использованию в пайплайнах.

Создание пайплайна Intercom
После успешного подключения источника создайте пайплайн для настройки регулярной выгрузки данных в ваше хранилище.
В левом навигационном меню нажмите New pipeline. На этапе Source выберите Intercom в разделе Already connected и нажмите Next step.

Выберите ранее созданное подключение Intercom и нажмите Next step.

На этапе Destination выберите целевое хранилище данных (например, Google BigQuery) и нажмите Next step.

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

Настройка пайплайна
На финальном этапе настройки вам необходимо выбрать объект выгрузки, поля, задать имя таблицы и настроить расписание.
Выбор объекта
Один пайплайн экспортирует данные одного объекта Intercom в одну таблицу базы данных. Выберите нужный объект из выпадающего списка.

| Объект | Описание |
|---|---|
| Admins (Администраторы) | Данные о сотрудниках воркспейса: email, имя, статус отсутствия, наличие места в Inbox и идентификаторы команд. |
| Companies (Компании) | Информация о компаниях: название, внешний ID, тарифный план, отрасль, размер, ежемесячная выручка, количество сессий и пользователей, а также кастомные атрибуты, сегменты и теги. |
| Contacts (Контакты) | Данные о пользователях и лидах: email, телефон, роль, ответственный менеджер, даты активности, геолокация, информация о браузере, кастомные атрибуты, теги и заметки. |
| Conversations (Диалоги) | Информация о переписках: исходное сообщение, ответственный сотрудник, статус, приоритет, оценка, SLA, теги, участники. Включает подробную статистику по времени ответа и закрытия диалога. |
| Segments (Сегменты) | Списки сегментов воркспейса: название, тип пользователей, даты создания и обновления. |
| Tags (Теги) | Справочник всех тегов воркспейса (ID и название). |
| Teams (Ко манды) | Справочник команд и список входящих в них администраторов. |
| Data Attributes (Атрибуты данных) | Описания стандартных и кастомных атрибутов для контактов, компаний и диалогов: лейблы, типы данных, допустимые значения и права на запись (API, Messenger, UI). |
Выбор полей
Отметьте поля, которые необходимо выгрузить в целевую таблицу.

| Название | Имя в API | Описание |
|---|---|---|
Type text | type | Object type identifier. Always 'admin' for admin objects. |
ID text | id | Unique identifier for the admin in Intercom. This is the Intercom-defined ID. |
Email text | email | Email address of the admin. Used for authentication and notifications. |
Name text | name | Full name of the admin user as displayed in Intercom Inbox. |
Away Mode Enabled bool | away_mode_enabled | Indicates whether the admin is currently in away mode. When true, the admin is marked as unavailable in the Inbox. |
Away Mode Reassign bool | away_mode_reassign | Indicates whether conversations should be automatically reassigned to other admins when away mode is enabled. Only applicable when away_mode_enabled is true. |
Has Inbox Seat bool | has_inbox_seat | Indicates whether the admin has an active Inbox seat. Admins with Inbox seats can receive and respond to conversations. |
Team IDs array_int | team_ids | Array of team identifiers that the admin belongs to. Empty array indicates the admin is not assigned to any teams. |
| Название | Имя в API | Описание |
|---|---|---|
Type text | type | Object type identifier. Always 'company' for company objects. |
ID text | id | Unique identifier for the company in Intercom. This is the Intercom-defined ID. |
Company ID text | company_id | External identifier for the company. This is the customer-defined unique identifier. |
Name text | name | Name of the company. |
Created At datetime | created_at | Unix timestamp when the company was created in Intercom. |
Updated At datetime | updated_at | Unix timestamp when the company was last updated in Intercom. |
Remote Created At datetime | remote_created_at | Unix timestamp when the company was created in the external system. Can be null. |
Last Request At datetime | last_request_at | Unix timestamp of the last request made by any user in this company. Can be null. |
Monthly Spend decimal | monthly_spend | Amount of revenue the company generates for you each month. |
Session Count int | session_count | Number of sessions the company has recorded. |
User Count int | user_count | Number of users associated with the company. |
Size int | size | Number of employees in the company. |
Website text | website | Website URL of the company. |
Industry text | industry | Industry the company operates in. |
Plan text | plan | Plan name the company is subscribed to. |
Custom Attributes json | custom_attributes | Custom attributes associated with the company as JSON object. |
Segments structure | segments | Array of segments the company belongs to. |
Tags structure | tags | Array of tags applied to the company. |
| Название | Имя в API | Описание |
|---|---|---|
Type text | type | Object type identifier. Always 'contact' for contact objects. |
ID text | id | Unique identifier for the contact in Intercom. This is the Intercom-defined ID. |
External ID text | external_id | External identifier for the contact. This is the customer-defined unique identifier. |
Email text | email | Email address of the contact. |
Phone text | phone | Phone number of the contact. |
Name text | name | Full name of the contact. |
Role text | role | Role of the contact. Can be 'user' or 'lead'. |
Owner ID int | owner_id | ID of the admin or team that owns this contact. |
Has Hard Bounced bool | has_hard_bounced | Indicates whether emails to this contact have hard bounced. |
Marked Email As Spam bool | marked_email_as_spam | Indicates whether the contact marked emails as spam. |
Unsubscribed From Emails bool | unsubscribed_from_emails | Indicates whether the contact has unsubscribed from emails. |
Created At datetime | created_at | Unix timestamp when the contact was created in Intercom. |
Updated At datetime | updated_at | Unix timestamp when the contact was last updated in Intercom. |
Signed Up At datetime | signed_up_at | Unix timestamp when the contact signed up. Can be null. |
Last Seen At datetime | last_seen_at | Unix timestamp when the contact was last seen. Can be null. |
Last Replied At datetime | last_replied_at | Unix timestamp when the contact last replied to a message. Can be null. |
Last Contacted At datetime | last_contacted_at | Unix timestamp when the contact was last contacted. Can be null. |
Last Email Opened At datetime | last_email_opened_at | Unix timestamp when the contact last opened an email. Can be null. |
Last Email Clicked At datetime | last_email_clicked_at | Unix timestamp when the contact last clicked a link in an email. Can be null. |
Custom Attributes json | custom_attributes | Custom attributes associated with the contact as JSON object. |
Browser text | browser | Browser name the contact is using. |
Browser Version text | browser_version | Version of the browser the contact is using. |
Browser Language text | browser_language | Language setting of the contact's browser. |
Operating System text | os | Operating system the contact is using. |
Location City text | location_city | City where the contact is located. Extracted from nested location.city. |
Location Region text | location_region | Region where the contact is located. Extracted from nested location.region. |
Location Country Name text | location_country | Country where the contact is located. Extracted from nested location.country. |
Location Country Code text | location_country_code | Country code where the contact is located. Extracted from nested location.country_code. |
Location Continent Code text | location_continent_code | Continent code where the contact is located. Extracted from nested location.continent_code. |
Tags structure | tags | Array of tags applied to the contact. |
Notes structure | notes | Array of notes for the contact. |
Companies structure | companies | Array of companies the contact is associated with. |
| Название | Имя в API | Описание |
|---|---|---|
Type text | type | Object type identifier. Always 'conversation' for conversation objects. |
ID text | id | Unique identifier for the conversation in Intercom. |
Title text | title | Title of the conversation. Can be null. |
Created At datetime | created_at | Unix timestamp when the conversation was created. |
Updated At datetime | updated_at | Unix timestamp when the conversation was last updated. |
Waiting Since datetime | waiting_since | Unix timestamp indicating how long the conversation has been waiting for a response. Can be null. |
Snoozed Until datetime | snoozed_until | Unix timestamp until which the conversation is snoozed. Can be null. |
Source Type Extracted text | source_type | Type of the conversation source. Extracted from source.type. |
Source Body Extracted text | source_body | Body content of the source message. Extracted from source.body. |
Source Subject Extracted text | source_subject | Subject line of the source message. Extracted from source.subject. |
Source Delivered As Extracted text | source_delivered_as | How the source message was delivered. Extracted from source.delivered_as. |
Source Author ID text | source_author_id | ID of the author who initiated the conversation. Extracted from source.author.id. |
Source Author Type text | source_author_type | Type of the author. Extracted from source.author.type. |
Source Author Email text | source_author_email | Email of the author. Extracted from source.author.email. |
Source Author Name text | source_author_name | Name of the author. Extracted from source.author.name. |
Contacts structure | contacts | Array of contacts involved in the conversation. |
Teammates structure | teammates | Array of admins (teammates) involved in the conversation. |
Admin Assignee ID text | admin_assignee_id | ID of the admin assigned to the conversation. Can be null. |
Team Assignee ID text | team_assignee_id | ID of the team assigned to the conversation. Can be null. |
Open bool | open | Indicates whether the conversation is currently open. |
State text | state | Current state of the conversation (e.g., 'open', 'closed', 'snoozed'). |
Read bool | read | Indicates whether the conversation has been read by the admin. |
Priority text | priority | Priority level of the conversation (e.g., 'priority', 'not_priority'). |
SLA Applied json | sla_applied | SLA rule applied to the conversation as JSON object. Can be null. |
Conversation Rating json | conversation_rating | Rating given to the conversation as JSON object. Can be null. |
Tags structure | tags | Array of tags applied to the conversation. |
First Contact Reply Created At datetime | first_contact_reply_created_at | Unix timestamp of the first reply from a contact. Extracted from first_contact_reply.created_at. |
First Contact Reply Type text | first_contact_reply_type | Type of the first contact reply. Extracted from first_contact_reply.type. |
First Contact Reply URL text | first_contact_reply_url | URL of the first contact reply. Extracted from first_contact_reply.url. |
Stats Count Assignments int | stats_count_assignments | Number of times the conversation has been assigned. Extracted from statistics.count_assignments. |
Stats Count Conversation Parts int | stats_count_conversation_parts | Total number of parts (messages, notes) in the conversation. Extracted from statistics.count_conversation_parts. |
Stats Count Reopens int | stats_count_reopens | Number of times the conversation has been reopened. Extracted from statistics.count_reopens. |
Stats First Admin Reply At datetime | stats_first_admin_reply_at | Unix timestamp of the first admin reply. Extracted from statistics.first_admin_reply_at. |
Stats First Assignment At datetime | stats_first_assignment_at | Unix timestamp of the first assignment. Extracted from statistics.first_assignment_at. |
Stats First Close At datetime | stats_first_close_at | Unix timestamp when conversation was first closed. Extracted from statistics.first_close_at. |
Stats First Contact Reply At datetime | stats_first_contact_reply_at | Unix timestamp of the first contact reply. Extracted from statistics.first_contact_reply_at. |
Stats Last Admin Reply At datetime | stats_last_admin_reply_at | Unix timestamp of the last admin reply. Extracted from statistics.last_admin_reply_at. |
Stats Last Assignment At datetime | stats_last_assignment_at | Unix timestamp of the last assignment. Extracted from statistics.last_assignment_at. |
Stats Last Close At datetime | stats_last_close_at | Unix timestamp when conversation was last closed. Extracted from statistics.last_close_at. |
Stats Last Closed By ID text | stats_last_closed_by_id | ID of admin who last closed the conversation. Extracted from statistics.last_closed_by_id. |
Stats Last Contact Reply At datetime | stats_last_contact_reply_at | Unix timestamp of the last contact reply. Extracted from statistics.last_contact_reply_at. |
Stats Median Time To Reply int | stats_median_time_to_reply | Median time in seconds for replies. Extracted from statistics.median_time_to_reply. |
Stats Time To Admin Reply int | stats_time_to_admin_reply | Time in seconds until the first admin reply. Extracted from statistics.time_to_admin_reply. |
Stats Time To Assignment int | stats_time_to_assignment | Time in seconds until the conversation was assigned. Extracted from statistics.time_to_assignment. |
Stats Time To First Close int | stats_time_to_first_close | Time in seconds until first close. Extracted from statistics.time_to_first_close. |
Stats Time To Last Close int | stats_time_to_last_close | Time in seconds until last close. Extracted from statistics.time_to_last_close. |
Conversation Parts json | conversation_parts | Array of conversation parts (messages) as JSON object. |
| Название | Имя в API | Описание |
|---|---|---|
Type text | type | Object type identifier. Always 'segment' for segment objects. |
ID text | id | Unique identifier for the segment in Intercom. |
Name text | name | Name of the segment. |
Created At datetime | created_at | Unix timestamp when the segment was created. |
Updated At datetime | updated_at | Unix timestamp when the segment was last updated. |
Person Type text | person_type | Type of people in the segment. Can be 'user' or 'lead'. |
| Название | Имя в API | Описание |
|---|---|---|
Type text | type | Object type identifier. Always 'tag' for tag objects. |
ID text | id | Unique identifier for the tag in Intercom. |
Name text | name | Name of the tag. |
| Название | Имя в API | Описание |
|---|---|---|
Type text | type | Object type identifier. Always 'team' for team objects. |
ID text | id | Unique identifier for the team in Intercom. |
Name text | name | Name of the team. |
Admin IDs array_int | admin_ids | Array of admin IDs that belong to this team. |
| Название | Имя в API | Описание |
|---|---|---|
Type text | type | Object type identifier. Always 'data_attribute' for data attribute objects. |
ID int | id | Unique identifier for the data attribute in Intercom. |
Model text | model | Model the attribute belongs to. Can be 'contact', 'company', or 'conversation'. |
Name text | name | Name of the data attribute. |
Full Name text | full_name | Full name of the data attribute including the model prefix. |
Label text | label | Human-readable label for the data attribute. |
Description text | description | Description of the data attribute. Can be null. |
Data Type text | data_type | Data type of the attribute (e.g., 'string', 'integer', 'float', 'boolean', 'date'). |
Options array_string | options | Array of predefined options for the attribute. Only applicable for certain data types. |
API Writable bool | api_writable | Indicates whether the attribute can be written via API. |
Messenger Writable bool | messenger_writable | Indicates whether the attribute can be written via Messenger. |
UI Writable bool | ui_writable | Indicates whether the attribute can be written via UI. |
Custom bool | custom | Indicates whether this is a custom attribute or a standard Intercom attribute. |
Archived bool | archived | Indicates whether the attribute has been archived. |
Created At datetime | created_at | Unix timestamp when the data attribute was created. |
Updated At datetime | updated_at | Unix timestamp when the data attribute was last updated. |
Admin ID text | admin_id | ID of the admin who created the attribute. Can be null. |
Выбе рите колонки для таблицы назначения или заберите все доступные кнопкой Select all.
Особенности структуры данных
- Вложенные объекты.
Renta автоматически преобразует сложные объекты Intercom в плоские колонки. Например, для объектаContactsданные о местоположении разбиваются на отдельные колонки:Location City,Location Region,Location Country Nameи т.д. Аналогичным образом вConversationsпарсятся исходное сообщение (Source), первый ответ пользователя (First Contact Reply) и статистика (Stats). - Списки (массивы).
Поля, содержащие массивы (например,Tags,Segments,Contacts,Teammates,Notes), выгружаются как вложенные записи. В них сохраняется идентификатор каждого элемента и его название (если доступно через API). - Кастомные атрибуты.
ПолеCustom Attributesэкспортируется в виде единой JSON-колонки, содержащей все пользовательские атрибуты записи. Благодаря этому, при добавлении новых кастомных атрибутов в Intercom, схема таблицы в хранилище не ломается и не требует изменений. КолонкиSLA AppliedиConversation Ratingта кже сохраняются в формате JSON. - Форматирование дат и времени.
Все поля с датами (например,Created At,Updated At,Last Seen At) и временные метки из блокаStatsзаписываются в формате стандартной даты и времени в UTC. Метрики длительности (например,Stats Time To Admin Reply) сохраняются в секундах.
Колонка Conversation Parts для объекта Conversations всегда остается пустой при массовой выгрузке. Архитектура API Intercom позволяет получить историю сообщений только при точечном запросе конкретного диалога по его ID.
Настройка целевой таблицы
Задайте название для пайплайна и таблицы в хранилище.

- Integration name.
Имя пайплайна, которое бу дет отображаться в интерфейсе Renta. - Table name.
Имя таблицы в вашем хранилище данных. Вы можете использовать сгенерированное по умолчанию имя или указать собственное.
Диапазон выгрузки
Укажите временной период для синхронизации данных.

- Date start.
Начальная дата периода выгрузки. - Date end.
Конечная дата периода. Рекомендуется оставить значение Today, чтобы дата окончания автоматически сдвигалась при каждом последующем запуске.
API Intercom возвращает текущие срезы объектов, а не исторические изменения по дням. Renta извлекает все доступные записи выбранного объекта при каждом запуске, поэтому настройки дат в данном случае не фильтруют объем выгружаемых данных.
Настройка расписания
Определите, как часто пайплайн должен запускаться для синхронизации данных.

| Тип расписания | Описание |
|---|---|
| Manual | Запуск осуществляется только вручную (через интерфейс) или посредством API. |
| Daily | Автоматический запуск один раз в сутки в строго заданное время. |
| Interval | Регулярный запуск с заданной периодичностью (например, каждые 4 часа). |
| Cron expression | Запуск по сложному расписанию с использованием стандартного синтаксиса Cron. |
Если вы выбрали расписание Daily, укажите время запуска в поле Update time и нажмите Create pipeline.

Renta также поддерживает интеграцию со сторонними оркестраторами данных (такими как Apache Airflow, Dagster, Prefect) и предоставляет методы API для управления запусками. Подробнее читайте в документации по расписаниям.
После создания пайплайн появится в разделе Pipelines (вкладка ETL). Здесь вы сможете отслеживать историю запусков, текущий статус и управлять настройками.

Стратегия синхронизации
Синхронизация всех объектов Intercom выполняется по единой логике.
| Стратегия | Поддерживаемые типы отчётов | Описание |
|---|---|---|
| Полная перезагрузка | Admins, Companies, Contacts, Conversations, Segments, Tags, Teams, Data Attributes | При каждом запуске пайплайна Renta запрашивает полный список записей из Intercom и полностью перезаписывает целевую таблицу в хранилище. Таким образом, таблица всегда отражает актуальное состояние воркспейса на момент выгрузки. Если среди выбранных полей присутствует колонка с датой (чаще всего Created At), таблица автоматически партиционируется по этому полю. |
Так как данные перезагружаются полностью, в настройках пайплайна отсутствует опция выбора периода инкрементального обновления. Время выполнения и объем выгрузки зависят исключительно от общего количества записей в вашем воркспейсе 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.