Follow

Как установить для подписчиков частоту рассылок

Сразу хочу сказать, что никакого автоматического управления частотой рассылки сделать нельзя. Ну, пока нельзя. Т.е. вы не можете установить контакту частоту "раз в неделю" и отправлять ему хоть каждый день с уверенностью, что Ofsys сам определит, когда отправить этому контакту следующее письмо.

Общий принцип работы таких подписок такой:

1. Создаёте в профиле контакта новое поле, условно назовём [Частота рассылок]. Тип поля Text с заданным набором значений, тех, которые вы решили использовать ("Три раза в неделю", "Раз в неделю" и пр). Тип элемента формы для этого поля в веб-интерфейсе - выпадающий список.

2. Создаёте группы-заготовки с условиями совпадения значения поля [Частота рассылок] с каждым из доступных значений. Т.е. первая группа с условием [Частота рассылок] = "Три раза в неделю", вторая - [Частота рассылок] = "Раз в неделю" и т.д. Потом вы будете просто копировать эти группы-заготовки и добавлять свои условия в группы.

3. Вы сами должны регулировать частоту рассылок. Т.е., например, вы выбираете группу с условием [Частота рассылок] = "Раз в неделю" и отправляете этой группе рассылки не чаще, чем раз в неделю. Если вы отправите за неделю несколько раз, то система вас в этом не остановит.

4. Создаёте операционные ссылки по количеству значений частоты рассылок. Каждая операционная ссылка будет менять значение поля [Частота рассылок] в своё определённое значение. И размещаете эти операционные ссылки в коде сообщений для рассылок.

В общем, это должно работать так. Но можно и что-то ещё добавить. Например, сделать страницу подтверждения подписки на вашем сайте, где пользователю будет представлен выбор

2017-11-15_11-27-59.png

Ссылка отписки для каждого контакта будет уникальной. Уникальность можно обеспечить передачей get-параметров, например

?cid=68427&token=b767139afbadebb0049252e947f36f55

где cid - ID контакта в Ofsys, а token - некая подпись для проверки соответствия, полученная вот таким способом

System.Tools.Hash.MD5.GetString(Contact.idContact.ToString() + "zz0yKRALQM425Y6g").ToLower();

Комбинация "zz0yKRALQM425Y6g" выбрана для примера случайно. По сути, это хэш MD5 из ID контакта и этой случайной комбинации.

Для реализации такой отписки понадобится на вашей стороне обработка корректности соответствия значений cid и token, а также, после удачной проверки, вызов API на изменение поля [Частота рассылок]
https://ofsys.com/webservices/en-US/#tab=doc&section=services&application=OFC4&service=Contacts&method=Merge

 

0 Comments

Please sign in to leave a comment.