Интеграция позволяет передавать данные из EDPROBIZ в Sendsay.
Вы можете:
- Добавлять нового подписчика в базу или обновлять существующего.
- Обновлять дополнительные поля подписчика.
- Добавлять подписчика в разные списки.
- Удалять подписчика из разных списков.
- Отправлять (или не отправлять) письмо подтверждения.
Основная информация.
Для интеграции используется API сервиса Sendsay.
Документация доступна по адресу: https://sendsay.ru/api/api.html
Обратите внимание, что существует лимит на количество запросов к API – 80 в секунду.
Шаг 1. Получение API-ключа Sendsay.
Чтобы взаимодействовать с API, необходим секретный ключ. Получите его, прежде чем переходить к следующему шагу.
Для этого войдите в свой аккаунт Sendsay, нажмите на аватар в правом верхнем углу и выберите “Настройки системы”, а затем перейдите во вкладку “Пользователи”.
Нажмите на кнопку “Добавить пользователя” и заполните его данные:
Имя – API
.
Логин – api
.
Email – любой Email, к которому у вас есть доступ.
Пароль – придумайте надежный пароль.
Роль – выберите “Настроить права вручную”.
Затем нажмите на кнопку “Добавить пользователя”.
В профиле пользователя откройте вкладку “Права доступа” и перейдите во вкладку “Расширенный режим”.
Разверните вкладку “Подписчики” и поставьте галочки во всех пунктах. Затем нажмите на кнопку “Сохранить”. При сохранении вы можете задать любое имя новой роли, например “API”.
Затем перейдите во вкладки “Настройки пользователя”.
Нажмите на кнопку “Сгенерировать API-ключ” и скопируйте его. Дальше вы будете его использовать для интеграции.
Шаг 2. Создание процесса в сервисе EDPROBIZ.
Чтобы передавать данные подписчиков в сервис Sendsay, необходимо создать процесс в EDPROBIZ. Мы рекомендуем использовать процесс по заказам и будем показывать примеры настроек именно на нем.
Настройте триггер запуска процесса в соответствии с вашими задачами, например после создания заказа на конкретную позицию.
После этого добавьте в процесс блок “Вызов URL”. Именно он будет отправлять данные в сервис Sendsay.
Добавление подписчика в Sendsay.
Инструкция на сайте Sendsay: https://sendsay.ru/api/api.html#Cоздать-подписчика-Обновить-данные-подписчика-КД
Подписчик будет создан в базе, если его не было раньше. Или его данные будут обновлены, если он уже состоит в базе подписчиков Sendsay.
Вы можете добавлять и удалять пользователя из списков Sendsay.
Вы можете присваивать, обновлять и удалять поля анкет пользователя Sendsay.
Заполните поля в блоке “Вызвать URL” следующим образом:
URL – https://api.sendsay.ru/general/api/v100/json/ACCOUNT
Замените в URL ACCOUNT на код вашего аккаунта.
Чтобы узнать код вашего аккаунта, нажмите на аватар в правом верхнем углу в личном кабинете Sendsay и скопируйте значение, которое написано после Логин:
. На скриншоте ниже код аккаунта: x_1680161495749660
.
Метод – POST
.
Тело запроса:
{
"apikey" : "KEY12345"
,"action" : "member.set"
,"email": "{order.userDetail.email}"
,"addr_type" : "email"
,"source" : "89.108.98.29"
,"newbie.confirm": "1 или 0"
,"newbie.letter.confirm" : "номер письма подтверждения подписки"
,"newbie.letter.no-confirm" : "номер шаблона информационного письма"
,"datakey" : [
[ "ключ-данных-1", "режим-1", "новое-значение-1" ]
,[ "ключ-данных-2", "режим-2", "новое-значение-2" ]
,[ "ключ-данных-3", "режим-3", "новое-значение-3" ]
]
,"return_fresh_obj" : "0"
}
Вместо KEY12345 вставьте ваш API-ключ, который вы создали в 1 шаге.
Часть параметров в теле запроса необходимо изменить исходя из вашей задачи. Об этом читайте ниже.
newbie.confirm
Задает, добавлять подписчиков в базу с отправкой письма подтверждения подписки или без подтверждения.
Если 1
, то добавлять с подтверждением подписки.
Если 0
, то добавлять без необходимости подтверждения подписки.
Обратите внимание, что у каждого проекта Sendsay существует свой лимит на добавление адресов без подтверждения подписки. Когда этот лимит будет исчерпан, все последующие адреса будут добавляться с необходимостью подтверждения подписки, даже если в этом параметре указано 0
.
newbie.letter.confirm
Этот параметр позволяет задать письмо для подтверждения подписки.
Оно будет отправлено, если до этого пользователь отсутствовал в базе (вы добавляете его в базу впервые) и в предыдущем параметре newbie.confirm
задали необходимость подтверждения подписки (1
).
При этом обратите внимание, что даже если в параметре newbie.confirm
вы задали 0
(добавлять без подтверждения подписки), вам все равно нужно обязательно задать письмо подтверждения в этом параметре. Так как если вы превысите лимит на добавление адресов без подтверждения, последующие адреса будут добавляться с запросом подтверждения подписки.
Если параметр newbie.letter.confirm
пуст или отсутствует, то письмо отправлено не будет. При этом подтвердить подписку пользователю все равно будет нужно, иначе он не сможет добавиться в базе. Но он не сможет этого сделать, потому что письмо подтверждения подписки не будет отправлено.
Письмо для подтверждения подписки, ID которого вы указали в этом параметре, должно иметь заполненный адрес отправителя и НЕ находиться на модерации.
Инструкция, как создать письмо подтверждения подписки: https://docs.sendsay.ru/videolessons/email-campaigns/how-to-create-a-confirmation-email/
После создания информационного письма для подтверждения подписки, скопируйте его номер и вставьте в тело запроса вместо фразы номер письма подтверждения подписки
.
Чтобы узнать номер информационного письма, зайдите в предыдущий интерфейс Sendsay, выберите раздел “Рассылки” > “Управление рассылками” > “Информационные письма” и сможете увидеть ID созданного вами ранее письма подтверждения подписки. На скриншоте ниже ID письма – 50
.
newbie.letter.no-confirm
Это письмо будет отправлено, если адрес до этого отсутствовал в базе и внесен без необходимости подтверждения подписки (задано значение параметра newbie.confirm
= 0
).
Если параметр пуст, то письмо отправлено не будет. Соответственно, если вы не хотите отправлять это письмо, просто удалите фразу номер шаблона информационного письма
, чтобы вместо нее осталась пустота.
Если же вы хотите отправлять письмо, введите ID письма вместо фразы номер шаблона информационного письма
.
Чтобы узнать номер информационного письма, зайдите в предыдущий интерфейс Sendsay, выберите раздел “Рассылки” > “Управление рассылками” > “Информационные письма” и сможете увидеть ID созданного вами ранее письма подтверждения подписки. На скриншоте ниже ID письма – 50
.
datakey
С помощью массива данных datakey
вы можете обновлять поля данных пользователей в анкетах, а также добавлять их в различные списки подписчиков в Sendsay.
Можно добавлять неограниченное количество данных, то есть менять в одном запросе несколько переменных анкет и добавлять подписчика сразу в несколько списков.
Как узнать название ключа данных для передачи переменных в анкеты Sendsay?
Для этого в Sendsay зайдите в раздел “Подписчики” > “Анкеты”. И нажмите редактировать напротив нужной анкеты:
Например, если хотите передавать имя пользователя в сервис Sendsay в базовую анкету, то ключ данных будет называться base.firstName:
Как передавать переменные в анкеты в Sendsay?
Например, вы хотите передать имя пользователя в анкету “Базовая” в поле “Имя”.
Введите вместо ключ-данных-1
название ключа имени – base.firstName
.
Вместо новое-значение-1
задайте значение, которое вы хотите записать в переменную “Имя” в Базовой анкете Sendsay. Мы рекомендуем ввести переменную имени пользователя из сервиса EDPROBIZ: {order.userDetail.name}
.
Как настроить режим при передаче переменных в анкеты в Sendsay?
Существует несколько режимов работы с переменными в Sendsay. Вам нужно выбрать тип, который подходит вам и заменить на его значение фразу режим
(например режим-1
).
set
– добавляет значения или заменяет старые значения новыми. Например, если у пользователя раньше было установлено имя “Сергей” в Sendsay, но вы передали новое значение имени – “Алексей”, то имя подписчика будет обновлено на “Алексей”. Если у пользователя не было имени раньше, то будет также установлено имя “Алексей”.
update
– обновить старые значения на новые только в том случае, если уже было задано значение ранее. Например, если у пользователя раньше было установлено имя “Сергей” в Sendsay, но вы передали новое значение имени – “Алексей”, то имя подписчика будет обновлено на “Алексей”. Если у пользователя не было имени раньше, то оно не будет задано.
insert
– добавить значение только в том случае, если оно не было задано ранее. Например, если у пользователя раньше было установлено имя “Сергей” в Sendsay, но вы передали новое значение имени – “Алексей”, то имя подписчика не будет изменено и останется “Сергей”. Если у пользователя не было имени раньше, то будет установлено имя “Алексей”.
delete
– удалить значение. Например, если у пользователя раньше было установлено имя “Сергей” в Sendsay, то оно будет удалено. Важно, что при использовании этого режима нужно обязательно передавать значение пустым – удалите фразу новое-значение
(например новое-значение-2
).
Как настроить копирование значения поля в другое поле?
Чтобы копировать значения поля из другого поля (например, скопировать значение из поля Фамилия
и записать его в поле Имя
), используйте режимы для копирования: set.copy
, update.copy
, insert.copy
. Они работают аналогично режимам, которые мы описали выше, но позволяют копировать данные.
Вместо новое-значение
(например новое-значение-3
) вам нужно будет вставить название ключа данных, из которого нужно будет скопировать значение – в нашем примере это фамилия – base.lastName
.
Как добавлять и удалять подписчиков в списков в Sendsay?
Замените в коде запроса ключ-данных
(например ключ-данных-2
) на -group.КОДГРУППЫ
, где КОДГРУППЫ – это код вашего списка в Sendsay.
Чтобы узнать код списка, зайдите в Sendsay в раздел списки и выберите нужный список.
После этого обратите внимание на адресную строку – например, в ссылке на список https://app.sendsay.ru/subscribers/lists/pl29382/subscribers
– код списка – pl29382
.
Поэтому, если мы хотим добавлять подписчика в этот список, то вместо ключ-данных-2
пишем -group.pl29382
.
Также необходимо отредактировать режим и значение.
- Если вы хотите добавлять пользователя в список, замените
режим-2
наset
иновое-значение-2
на1
. - Если вы хотите удалять пользователя из списка, замените
режим-2
наdelete
, удалите текстзначение-2
.
Примеры.
Пример 1.
В этом примере, мы:
- Добавляем пользователя без необходимости подтверждать подписку.
- В случае, если лимит добавления подписчиков без подтверждения подписки будет исчерпан, отправляем письмо для подтверждения подписки с ID
50
. - Меняем пользователю поле “Имя” только в том случае, если оно не было задано ранее.
- Меняем номер телефона в любом случае, даже если ранее уже был указан другой номер телефона.
- Добавляем пользователя в список с ID
pl29382
.
{
"apikey" : "18nvsahX3JLWNUQIVJcVn_ekGwOQVpUbumjNBwxWQCIvm1N_6mLuI5NTWCajioJnD3xtS"
,"action" : "member.set"
,"email": "{order.userDetail.email}"
,"addr_type" : "email"
,"source" : "89.108.98.29"
,"newbie.confirm": "0"
,"newbie.letter.confirm" : "50"
,"newbie.letter.no-confirm" : ""
,"datakey" : [
[ "base.firstName", "insert", "{order.userDetail.name}" ]
,[ "member.cellphone", "set", "{order.user.phone}" ]
,[ "-group.pl29382", "set", "1" ]
]
,"return_fresh_obj" : "0"
}
Пример 2.
В этом примере, мы:
- Добавляем пользователя с необходимостью подтвердить подписку.
- Отправляем пользователю письмо для подтверждения подписки с ID
50
. - Удаляем Имя пользователя (
base.firstName
). - Меняем номер телефона пользователя (
member.cellphone
) только в том случае, если он уже был задан ранее. Если поле “Телефон” пустое, телефон установлен не будет. - Удаляем пользователя из списка с ID
pl29382
. - Добавляем пользователя в список с ID
pl29383
. - Если поле “Адрес” (
base.address
) пустое, копируем в него данные из поля “Город” (base.city
).
{
"apikey" : "18nvsahX3JLWNUQIVJcVn_ekGwOQVpUbumjNBwxWQCIvm1N_6mLuI5NTWCajioJnD3xtS"
,"action" : "member.set"
,"email": "{order.userDetail.email}"
,"addr_type" : "email"
,"source" : "89.108.98.29"
,"newbie.confirm": "1"
,"newbie.letter.confirm" : "50"
,"newbie.letter.no-confirm" : ""
,"datakey" : [
[ "base.firstName", "delete", "" ]
,[ "member.cellphone", "update", "{order.user.phone}" ]
,[ "-group.pl29382", "delete", "" ]
,[ "-group.pl29383", "set", "1" ]
,[ "base.address", "insert.copy", "base.city" ]
]
,"return_fresh_obj" : "0"
}