Управление формами через Sendsay API
Форма — это инструмент сбора данных о клиентах: адресов, предпочтений, ответов на опросы. После заполнения данные попадают в анкету-формы, а после подтверждения — переносятся в основные анкеты-хранилища и становятся доступны для рассылок и сегментации.
Создавать и настраивать формы можно в разделе Сайт → Формы. Через API вы можете автоматизировать управление формами: создавать, изменять, удалять и настраивать их программно из ваших систем.
Формы подписки
Формы подписки — инструмент для привлечения новых подписчиков через сайт. Посетитель оставляет контактные данные, после чего попадает в базу и может получать рассылки. Формы поддерживают Double Opt-In: после заполнения система отправляет письмо с подтверждением, и только после перехода по ссылке контакт считается подтверждённым.
Создать форму подписки и получить код для установки на сайт можно в разделе Сайт → Формы — без написания кода.
Двухуровневое хранение данных
При заполнении любой формы данные проходят через два уровня хранения:
- Анкета-формы (
form_xxx) — первичные, неподтверждённые данные. Появляются сразу после заполнения формы. - Анкеты-хранилища (
base,customи другие) — подтверждённые данные. Переносятся после того, как посетитель перешёл по ссылке в письме подтверждения.
Данные из обоих уровней доступны для персонализации рассылок и работы со сценариями.
Описание ключевых параметров
| Параметр | Тип | Описание |
|---|---|---|
state | 0 | 1 | Состояние формы: 0 — отключена, 1 — активна |
preview | 0 | 1 | Предзаполнение формы ранее введёнными данными при возврате из-за ошибки |
only_once | 0 | 1 | Форма заполняется одним посетителем только один раз |
anketa | строка | Код анкеты-формы, в которую собираются данные |
group | строка | Список, в который попадают заполнившие форму |
origin | строка | Источник, присваиваемый новым контактам (member.origin) |
landing.webpage | число | ID веб-страницы для landing-page формы |
fill.draft | число | ID черновика fill-letter |
fill.webpage | число | ID веб-страницы fill-page |
fill.link | строка | URL для редиректа после заполнения |
welcome.draft | число | ID черновика welcome-letter |
welcome.webpage | число | ID веб-страницы welcome-page |
welcome.link | строка | URL для редиректа после подтверждения |
notify.email | массив | Список адресов для уведомлений о заполнении |
notify.draft | число | ID черновика уведомления |
Получить список форм — form.list
{
"action": "form.list"
}
Ответ:
{
"list": [
{
"id": 101,
"name": "Подписка на рассылку",
"state": 1,
"origin": "website",
"create.date": "2025-01-15 10:30:00",
"update.date": "2025-02-20 14:00:00"
},
{
"id": 102,
"name": "Подписка на новости блога",
"state": 1,
"origin": "website",
"create.date": "2025-02-01 09:00:00",
"update.date": "2025-02-18 16:45:00"
}
]
}
Прочитать конфигурацию формы — form.get
{
"action": "form.get",
"id": 101
}
Ответ:
{
"obj": {
"id": 101,
"name": "Подписка на рассылку",
"create.date": "2025-01-15 10:30:00",
"update.date": "2025-02-20 14:00:00",
"state": 1,
"preview": 0,
"only_once": 1,
"anketa": "form_subscribe",
"group": "new_subscribers",
"origin": "website",
"landing": {
"webpage": 500
},
"fill": {
"draft": 12345,
"link": "https://example.com/thank-you"
},
"welcome": {
"draft": 12346,
"webpage": 501
},
"notify": {
"email": ["admin@example.com"],
"draft": 12347
}
}
}
Создать или изменить форму — form.set
При изменении существующей формы обновляются только те поля, которые явно указаны в запросе. Чтобы удалить необязательный параметр, передайте пустое значение.
Создание новой формы
{
"action": "form.set",
"obj": {
"name": "Подписка на новости блога",
"state": 1,
"anketa": "form_blog_subscribe",
"group": "blog_subscribers",
"origin": "website",
"only_once": 1,
"preview": 0,
"fill": {
"draft": 12350,
"webpage": 510
},
"welcome": {
"draft": 12351,
"link": "https://example.com/subscribe-complete"
},
"notify": {
"email": ["marketing@example.com", "support@example.com"],
"draft": 12352
}
},
"return_fresh_obj": 1
}