SendGrid
Renta отправляет строки из вашего хранилища данных в SendGrid как контакты Marketing.
Строка контакта содержит адрес электронной почты, по которому SendGrid опознаёт человека. Рядом ложатся встроенные поля контакта, такие как имя, город и телефон, и любые кастомные поля, заведённые в вашем аккаунте SendGrid.
Аутентификация
Renta авторизуется по API-ключу SendGrid. Ключу нужны права Full Access или полный доступ к разделу Marketing, если ключ ограниченный: синхронизация читает описания полей контакта, а затем записывает и удаляет контакты.
Чтобы выпустить ключ, откройте SendGrid и перейдите в Settings > API Keys > Create API Key. SendGrid показывает ключ один раз, поэтому скопируйте его до закрытия окна.
Renta проверяет ключ при сохранении назначения, но эта проверка подтверждает только то, что SendGrid узнаёт ключ. Поэтому ключ с недостаточными правами сохранится, а откажет уже при первой отправке данных.
Подключение назначения SendGrid
- Перейдите в раздел Connections > Catalog в левом меню и откройте вкладку Destinations.
- Откройте категорию Reverse ETL и нажмите карточку SendGrid.

Заполните подключение:
- Destination name.
Укажите имя назначения. Оно используется только в интерфейсе Renta. - API key.
Вставьте ключ, который вы выпустили в SendGrid.
Нажмите Save. Ключ, который SendGrid отклонил, не сохраняется.

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

Создание пайплайна
Когда назначение подключено, создайте пайплайн, который будет отправлять модель данных в SendGrid.
Пайплайн Reverse ETL читает данные из модели данных: это SQL-запрос, сохранённый в разделе Data models, который описывает, какие данные хранилища синхронизировать. Создайте модель данных до настройки пайплайна.
Создание пайплайна SendGrid
В левом меню нажмите New pipeline. На шаге Source переключитесь на Reverse ETL и выберите своё хранилище данных, например Google BigQuery.

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

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

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

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

- What would you like Renta to send to SendGrid.
Сейчас доступен единственный объект Contacts. Каждая строка становится контактом в пуле контактов SendGrid Marketing. - Data model.
Выберите модель данных для синхронизации. Из неё берутся колонки для сопоставления и маппинга ниже.
Сопоставление записей
Укажите, по какому значению строка хранилища и контакт SendGrid считаются одним и тем же человеком.

Левый список предлагает уникальный ключ модели данных, правый: поле SendGrid с тем же значением. Обычно с обеих сторон стоит адрес электронной почты, потому что именно по нему SendGrid опознаёт контакт.
Renta отправляет сопоставленное значение с каждой строкой, поэтому повторять его в блоке маппинга ниже не нужно.
Маппинг полей
Свяжите колонки модели данных с полями контакта SendGrid.

- Строки маппинга.
Выберите колонку хранилища слева и поле SendGrid, которое она заполняет, справа. - Add mapping.
Добавьте строку для каждого следующего поля, которое хотите заполнить.
| Тип маппинга | Описание |
|---|---|
| Standard | Берёт значение из колонки модели данных. |
| Static | Записывает одно и то же фиксированное значение в каждый контакт. |
| Variable | Записывает значение самой синхронизации: например, имя модели данных или время старта запуска. |
В правом выпадающем списке два вида полей SendGrid.
| Вид поля | Описание |
|---|---|
| Встроенные (reserved) | Поля, которые есть в любом аккаунте SendGrid: имя, фамилия, строки адреса, город, регион, почтовый индекс, страна, телефон, WhatsApp, Line, Facebook, unique name, а также внешний и анонимный идентификаторы. |
| Кастомные (custom) | Поля, заведённы е вами в SendGrid в разделе Marketing > Contacts > Manage Fields. У каждого есть тип: Text, Number или Date. |
Поля, которые SendGrid ведёт сам, такие как created_at, updated_at и даты активности, в списке не предлагаются: в SendGrid они доступны только для чтения.
Следите за соответствием типов. Поле Number принимает числовую колонку, поле Date: колонку с датой или временной меткой. Значение, которое не подходит под объявленный тип, SendGrid отклонит вместе со всем пакетом.
Пустые значения
Решите, что пустая ячейка хранилища сделает со значением, которое уже лежит в SendGrid. Настройка живёт под иконкой шестерёнки в строке маппинга и действует только на эту строку.

| Вариант | Описание |
|---|---|
| Don't sync null values | Пустая ячейка не попадает в запрос, поэтому контакт сохраняет то, что уже лежит в этом поле в SendGrid. Вариант по умолчанию. |
| Always sync | Пустая ячейка отправляется и очищает поле контакта. |
Always sync стирает в SendGrid значения, которых больше нет в вашей модели. Включайте его только для полей, в которые больше ничто в SendGrid не пишет.
Поведение синхронизации
Задайте, что произойдёт с контактом, чья строка пропала из модели данных.

| Вариант | Описание |
|---|---|
| Ignore | Контакт остаётся в SendGrid нетронутым. Вариант по умолчанию. |
| Delete contact | Renta находит контакт по сопоставленному email и удаляет его из аккаунта SendGrid. |
Удалённый в SendGrid контакт не восстановить, а строка может уйти из модели данных и не потому, что человек отписался: достаточно правки запроса модели. Оставляйте Ignore, если модель не задаёт окончательный список тех, кто должен быть в SendGrid.
Дальше задайте имя пайплайна.

Поле 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 |
|---|---|
| Новая | Создаёт контакт в SendGrid или обновляет существующий, если такой email там уже есть. |
| Изменённая | Записывает замапленные поля заново с новыми значениями. Поля вне маппинга остаются прежними. |
| Без изменений | Ничего не отправляет. |
| Удалённая | Действует по выбранной политике: оставляет контакт нетронутым или удаляет его из SendGrid. |
Повторная отправка безопасна. SendGrid опознаёт контакт по email, поэтому повторно отправленная строка обновит тот же контакт, а не создаст второй.
Журнал запуска
Чтобы посмотреть, что отправил запуск, откройте пайплайн и нажмите на запуск в таблице Runs. Блок Delivery breakdown показывает, сколько контактов запуск добавил, обновил и удалил, а Run actions перечисляет пройденные шаги.

Ссылка Inspect every record and its API calls открывает построчный журнал: в нём видно, какой запрос Renta отправила по конкретному контакту и что ответил SendGrid.
Ограничения
- Запись контактов асинхронная.
SendGrid принимает пакет контактов и обрабатывает его фоновой задачей импорта. Renta дожидается завершения этой задачи и только потом помечает запуск завершённым, поэтому даже маленькая модель занимает минуты, а не секунды. Задача, которая не завершилась за 10 минут, приводит к ошибке запуска. - Пакет отклоняется целиком.
SendGrid проверяет пакет контактов целиком, поэтому одно неподходящее значение, например ломаный email или число в поле даты, отклоняет и все остальные контакты этого пакета. Отклонённые строки видны в построчном журнале вместе с причиной от SendGrid. - Запуск останавливается при массовых отказах.
Renta прекращает запуск, если отклонено больше 30% пакета или больше 10% строк, отправленных с начала запуска. Уже записанные контакты остаются в SendGrid, а следующий запуск продолжит с места остановки. - Кастомные поля нужно создать заранее.
Renta пишет только в те поля, которые уже заведены в вашем аккаунте SendGrid, и никогда не создаёт новые. Поле, добавленное в SendGrid, появится в списке маппинга при следующем открытии настроек пайплайна.
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.