Опубликовано:
Импорт и добавление контактов через Sendsay API
Sendsay API позволяет управлять базой контактов: добавлять контакты по одному, массово импортировать списки, обновлять данные существующих контактов.
Ключи данных и анкеты
Sendsay поддерживает два формата хранения данных контактов:
- Ключи данных (КД) — современный формат, используется в
member.set/member.get. Данные — произвольные ключи с любым уровнем вложенности (объекты, массивы). - Анкета-Вопрос-Ответ (АВО) — устаревший формат с привязкой к анкетам.
Ключи данных — более современный и удобный форма т, с которым проще работать. Он более гибкий и поддерживает вложенные структуры.
Добавление одного контакта — member.set
Вызов member.set создаёт новый контакт или обновляет данные существующего. Работает с форматом Ключи данных (КД).
Минимальный запрос
{
"apikey": "ваш-api-ключ",
"action": "member.set",
"addr_type": "email",
"email": "test@test.com",
"datakey": [
["base.firstName", "set", "Анна"],
["base.city", "set", "Москва"]
]
}
Параметры
| Параметр | Описание |
|---|---|
action | member.set |
addr_type | Тип идентификатора: email, msisdn, viber, csid, push, vk, tg, vknotify, pushapp, id и др. Указывать его не обязательно — система сама распознаёт email или msisdn |
email | Адрес контакта (для addr_type: email) |
datakey | Массив операций над ключами данных. Каждая операция — массив: ["ключ", "режим", "значение"] или ["ключ", "режим", "значение", "тип"] |
if_exists | Поведение при существующем контакте: overwrite (по умолчанию) — обновить данные; error — вернуть ошибку; must — обновить только существующий, не создавать новый |
newbie.confirm | 1 — требовать подтверждения внесения в базу (по умолчанию 0). Используется только для email-адресов, действует лимит внесения без подтверждения |
Режимы изменения данных
| Режим | Описание |
|---|---|
set | Заменить данные новым значением |
update | Заменить, только если ключ уже существует |
insert | Добавить, только если ключа ещё нет |
merge | Объединить объекты: для каждого ключа нового значения выполняется set в существующий объект |
merge_update | Объединить объекты: заменяются только существующие ключи, новые игнорируются |
merge_insert | Объединить объекты: добавляются только отсутствующие ключи, существующие не трогаются |
push | Добавить значение в конец массива |
unshift | Добавить значение в начало массива |
delete | Удалить данные по ключу (значение не указывается) |
Каждый из режимов (кроме delete) имеет вариант с суффиксом .copy (например: set.copy, update.copy) — в этом случае вместо значения указывается ключ данных, из которого копируется значение.
Пример: задать несколько полей
{
"apikey": "ваш-api-ключ",
"action": "member.set",
"addr_type": "email",
"email": "test@test.com",
"datakey": [
["base.firstName", "set", "Анна"],
["base.lastName", "set", "Иванова"],
["base.city", "set", "Москва"],
["base.birthDate", "set", "1990-05-15", "dt:YD"]
]
}