Перейти к содержанию

Формы опросов

Формы опросов предназначены для получения информации от пользователей c сохранением её в анкеты.

Предусмотрен механизм верификации заполнения формы при котором данные попадают сначала в первичную анкету (анкету-формы) и только после подтверждения в основные анкеты (анкеты-хранилища).

Данные анкеты-формы и анкет-хранилищ всегда доступны для просмотра и использования в рассылках. В зависимости от того, насколько вам важна верификация заполнения вы можете пользоваться в работе как сразу первичными данными из анкеты-формы, так и только подтверждёнными данными из анкет-хранилищ.

Форма размещается клиентом у себя на сайте в виде статической формы или в виде всплывающей с помощью java-script или можно использовать создаваемую на сервисе входную страницу landing-page.

После заполнения пользователем формы введённые данные сохраняются в указанную начальную анкету-формы, ему высылается fill-letter и он попадает на welcome-page (или welcome-redirect).

После подтверждения заполнения формы (как описано в высланном ранее fill-letter), данные переносятся (если запланировано) из анкеты-формы по описанным в ней правилам в анкеты-хранилища, пользователю высылается welcome-letter и он попадает на fill-page (или fill-reedirect).

Заполнение и подтверждение формы так же порождают триггерные события для расширения логики обработки. При переносе данных в анкеты-хранилища так же порождается событие "Данные пользователя изменились".

В зависимости от того, опознала ли система пользователя при заполнении формы и разрешено ли внесение адресов без подтверждения, алгоритм работы формы может пропускать шаги связанные с подтверждением заполнения формы.

Через вызов stat.uni можно получить статистику заполнения форм и подробный лог действий с ней.

На страницах отображаемых пользователю, в письмах высылаемых пользователя, в ссылках перенаправления поддерживается персонализация на основе данных пользователя и данных заполненной им формы. Синтаксис аналогичен выпуску рассылки.

Не обязательно использовать код формы получаемый от нас. Заполнять формы адаптировав их под свои нужны и свой сайт можно получив первоначальный код формы.

Дополнительно, интеграция форм Tilda c формами Sendsay позволяет получить дополнительные функции отсутствующий у форм Tilda - подтверждение заполнения, валидация, трансляция данных в анкеты подписчика. Подробнее описано в "Интеграция c Tilda".

Список форм

{

  "action" : `"form.list" 

}

ответ

{

 <общие поля>

,"list" : [

            {

             "id" : уникальный идентификатор

            ,"name" : "название" 

            ,"state : "состояние" 

            ,"origin" : "источник" 

            ,"create.date" : "дата и время создания" -- Ys

            ,"update.date" : "дата и время последнего изменения" -- Ys

            ,'reltype' => ....
            ,'relref'  => ....
            }

            ...

           ]

}

Чтение формы

{

  "action" : "form.get" 

 ,"id" : идентификатор формы

}

ответ

{

  <общие поля>

  "obj" : {

      "id" : идентификатор формы

     ,"name" : "название" 

     ,"create.date" : "дата и время создания" -- Ys

     ,"update.date" : "дата и время последнего изменения" -- Ys

     ,"state" : 0|1 -- состояние: 0 - форма отключена, 1 - активна

     ,"preview" : 0|1 -- при возврате подписчика к форме из-за ошибки заполнения заполнять её ранее введёнными данными

     ,"only_once" : 0|1 -- форма заполняется подписчиком только один раз

     ,"anketa" : анкета-форма в которую собираются данные

     ,"group" : группа-список в которую попадают заполнившие форму. не обязательно

     ,"origin" : "источник" -- источник, к которому относится форма. не обязательно.

     ,"landing" : {

                   "webpage" : id веб-страницы служащей шаблоном для отрисовки landing-page. не обязательно

                  }

     ,"fill" : {
                "draft" :id черновика высылаемого как fill-letter. не обязательно

                -- или одно из или вообще ничего:

               ,"webpage" : id веб-страницы служащей шаблоном для отрисовки fill-page

               ,"link" : id ссылки для fill-redirect

               }

     ,"welcome" : {
                "draft" :id черновика высылаемого как welcome-letter. не обязательно

                -- или одно из или вообще ничего:

                "webpage" : id веб-страницы служащая шаблоном для отрисовки welcome-page

               ,"link" : id ссылки для welcome-redirect

               }

          }

    ,"notify" : {
                  "email" : [ список адресов ]

                 ,"draft" : id черновика
                 }

     ,"reltype" : ...

     ,"relref" : ...
    }
}

Создание или изменение формы

При изменении существующей формы изменяются только те поля, которые явно указаны в запросе.

Для удаление не обязательного параметра используйте пустое значение.

{

  "action" : "form.set" 

  ,"obj" : {

     ,"name" : "название" 

     ,"state" : 0|1 -- состояние: 0 - форма отключена, 1 - активна

     ,"anketa" : анкета-форма в которую собираются данные

     ,"preview" : 0|1 -- при возврате подписчика к форме заполнять её ранее введёнными данными
                      -- 0 - нет (по умолчанию)
                      -- 1 - да

     ,"only_once" : 0|1 -- форма заполняется подписчиком только один раз (0 - нет, 1 - да)

     ,"group" : группа-список в которую попадают заполнившие форму

     ,"origin" : "источник" -- источник, к которому относится форма
                            -- если в результате заполнения формы будет создан новый подписчик,
                            -- то его member.origin будет установлен в origin формы

     ,"landing" : {

                   "webpage" : id веб-страницы служащей шаблоном для отрисовки landing-page

                  }

     ,"fill" : {
                "draft" :id черновика высылаемого как fill-letter. не обязательно

                -- ответ пользователю после заполнения. одно из:

                  -- или отрисовка страницы (параметр link стирается)

               ,"webpage" : id веб-страницы служащей шаблоном для отрисовки fill-page

                  -- или перенаправление (параметр webpage стирается)

               ,"link" : id ссылки для fill-redirect. в ссылке поддерживается такая же персонализация к как и на веб-странице

                  -- или станица с текстом по умолчанию (оба параметра стираются)

               ,"webpage" : "" 

               ,"link" : "" 

               }

     ,"welcome" : {

                "draft" :id черновика высылаемого как welcome-letter. не обязательно

                -- ответ пользователю после подтверждения заполнения формы. одно из:

                  -- или отрисовка страницы (параметр link стирается)

               ,"webpage" : id веб-страницы служащей шаблоном для отрисовки fill-page

                  -- или перенаправление (параметр webpage стирается)

               ,"link" : id ссылки для fill-redirect. в ссылке поддерживается такая же персонализация к как и на веб-странице

                  -- или станица с текстом по умолчанию (оба параметра стираются)

               ,"webpage" : "" 

               ,"link" : "" 

               }

           }

     -- извещать о заполнении/подтверждении формы указанные адреса высылкой письма
     -- или полностью отсутствует или указан как минимум один адрес и номер черновика
     -- для удаления ранее настроенного извещения укажите "notify" : {}

     ,"notify" : {
                  "email" : [ список адресов ]

                 ,"draft" : id черновика
                 }

     ,"reltype" : ...

     ,"relref" : ...
    }

 -- необязательные

  ,"id" : идентификатор формы -- если не указан, создается новая

  ,"return_fresh_obj" : "нужно вернуть данные объекта -- да, нет ( 1 | 0 )" 

}

ответ

{

 <общие поля>

 ,obj  { ... } -- объект в формате form.get если "return_fresh_obj" : 1

}

Удаление формы

Вместе с формой будет удалена привязанная к ней анкета(не собранные данные, а именно сама анкета) если код анкеты начинается наform_и protected у анкеты не установлен.

{

  "action" : "form.delete" 

  ,"id" : идентификатор формы

  ,"keep_anketa" : 0 | 1 -- оставить анкету (1), по умолчанию 0 - удалить

}

ответ

{

 <общие поля>

}

Получение кода формы для установки на сайте

{

  "action" : "form.source" 

  ,"id" : идентификатор формы

  ,"js" : 0|1 -- генерировать код с учётом использования java-script
              -- не всегда возможно разместить код с java-script на не своём сайте
              -- в большинстве случаев java-script не будет работать в письмах
              --
              -- при использовании java-script код будет пытаться максимально оставлять
              -- пользователя на странице где он заполняет форму выводя все сообщения
              -- по возможности во всплывающих окнах

 ,"channel" : "site|email|amp" -- где будет размещена форма, сайт или письмо. по умолчанию - site
}

ответ

{

 "html" : "код формы" 

,"url" : "полный адрес входной страницы формы" -- #6025 [BASE]/
,"url.fill" : "полный адрес страницы, отображаемой при окончании заполнения" 
,"url.welcome" : "полный адрес страницы, отображаемой при подтверждении заполнения" 

-- для amp

,"amp" : "код формы" - разместить в тексте AMP-письма
,"amp.head" : "код скриптов" - разместить в письме между @<head></head>@ для подключения необходимых скриптов.

}

Перенос значений из анкеты-формы в анкеты-хранилища

Этот вызов переносит ответ пользователя из анкеты-формы в анкеты-хранилища не дожидаясь, пока он сам подтвердит заполнение,

Этот вызов делает ровно то что написано, он не подтвердит регистрацию нового пользователя за него и не породит событие "Форма заполнена" или "форма подтверждена".

{

  "action" : "form.transfer" 

  ,"id" : идентификатор формы

  ,"email" : "адрес, данные которого перенести" 

}

ответ

{

 <общие поля>

}