Система¶
Получить настройки¶
{
"action" : "sys.settings.get",
"list" : [ ], -- коды настроек. Если пусто - все настройки кроме отмеченных (НД)
"params" : { -- не обязательно
"код настройки" : {
"параметр" : "значение",
"параметр" : "значение",
....
},
"код настройки" : [
...
]
}
}
ответ
{
<общие поля>,
"list" : {
"код настройки" : "значение в формате зависящим от настройки"
..........
}
}
Поменять настройки¶
{
"action" : "sys.settings.set",
"list" : { -- только те что надо изменить
"код настройки" : "значение в формате зависящим от настройки"
...........
}
}
ответ
Список настроек которые можно только прочесть
"about.id" : "код клиента"
,"about.name" : "Название"
,"about.tarif" : "код тарифа"
,"about.user" : "текущий пользователь (sublogin)"
,"about.user.email" : "email текущего пользователя"
,"about.user.name" : "имя текущего пользователя"
,"about.manager.account" : "аккаунт-менеджер клиента"
,"about.manager.sale" : "менеджер по продажам клиента"
,"about.owner.phone" : "телефон владельца"
,"about.owner.phone.confirmed" : 0|1 -- подтверждён ли about.owner.phone
,"trial" : 0|1 - тестовый режим. действуют некоторые ограничения
,"trial.issue.limit" : лимит на тираж сообщений. null - ограничения нет. (НД)
,"trial.issue.rest" : доступный остаток тиража сообщений. null - ограничения нет. (НД)
,"allow.email" : 0|1 - доступна работа с email
,"allow.sms" : 0|1 - доступна работа с sms
,"sms.unlimited" : 0|1 - тираж sms не ограничен купленным количеством
,"sms.used" : "использовано единиц тарификации sms начиная с 01-11-2013" - в настоящий момент это копейки. (НД)
,"sms.byed" : "куплено единиц тарификации sms начиная с 01-11-2013" - в настоящий момент это копейки. (НД)
,"allow.viber" : 0|1 - доступна работа с viber
,"viber.unlimited" : 0|1 - тираж viber не ограничен купленным количеством
,"viber.used" : "использовано единиц тарификации viber" - в настоящий момент это копейки. (НД)
,"viber.byed" : "куплено единиц тарификации viber" - в настоящий момент это копейки. (НД)
,"allow.push" : 0|1 - доступна работа с push
,"allow.vk" : 0|1 - доступна работа с vk
,"allow.tg" : 0|1 - доступна работа с tg
,"allow.vknotify" : 0|1 - доступна работа с vknotify
,"allow.pushapp" : 0|1 - доступна работа с pushapp
,"allow.max" : 0|1 - доступна работа с max
,"allow.intercept_replyto" : 0|1 - доступно проксирование ответов на email
,"vknotify.unlimited" : 0|1 - тираж vknotify не ограничен купленным количеством
,"vknotify.used" : "использовано единиц тарификации vknotify" - в настоящий момент это копейки. (НД)
,"vknotify.byed" : "куплено единиц тарификации vknotify" - в настоящий момент это копейки. (НД)
,"member.tarif.limit" : лимит на количество адресов в базе используемый при расчёте оплаты. null - ограничения нет. (НД)
,"member.hard.limit" : лимит на количество адресов в базе который не превысить. null - ограничения нет. (НД)
,"member.hard.rest" : доступный остаток на внесение email-адресов. null - ограничения нет. (НД)
,"member.noconfirm.limit" : лимит на количество email-адрес которые можно внести без подтверждения. null - ограничения нет. (НД)
,"member.noconfirm.rest" : доступный остаток на внесение без подтверждения. null - ограничения нет. (НД)
,"issue.email.moderation" : включена (1) или нет (0) модерация выпусков email-рассылок (НД)
,"issue.email.sender.moderation" : включено (1) или нет (0) подтверждение адресов отправителей писем
,"issue.sms.moderation" : включена (1) или нет (0) модерация выпусков sms-рассылок (НД)
,"issue.sms.sender.moderation" : включена (1) или нет (0) модерация названий отправителей sms
,"issue.stoplist.bysender" : включена (1) или нет (0) отписка по адресу отправителя
,"issue.month.limit" : лимит месячного тиража сообщений. null - ограничения нет. (НД)
,"issue.month.rest" : доступный остаток месячного тиража сообщений. null - ограничения нет. (НД)
,"issue.month.limit.excess" : превышение лимита месячного тиража сообщений. (НД)
-- allowed - разрешено
-- partial - разрешено частично - первый превышающий выпуск выйдет в не превышающей части, а дальнейшие - полностью не выйдут
-- denied - запрещено - даже частично превышающий выпуск полностью не выйдет
,"issue.month.personal.limit" : лимит месячного тиража транзакционных сообщений. null - ограничения нет. (НД)
,"issue.month.personal.rest" : доступный остаток месячного тиража транзакционных сообщений. null - ограничения нет. (НД)
,"issue.limit.joint" : совместный учёт тиража. Отдельный лимит транзакционных писем игнорируется. Лимит массовых начинает действовать на всё - и на массовые и на транзакционные.
,"limit.interval.since" - момент начала текущего интервала расчёта лимитов на тираж и количество адресов Ys
,"limit.interval.till" - момент окончания текущего интервала расчёта лимитов на тираж и количество адресов
,"issue.limit.interval" - длинна интервал лимитов - 1 3 6 12 месяцев - по умолчанию = 1
,"issue.limit.start" - месяц начала интервала лимитов
,"issue.limit.startday" - день в месяце начала интервала лимитов. если при расчёте в месяце такого нет, то берётся последний день месяца
,"invite.month.limit" : месячный лимит приглашений. null - ограничения нет. (НД)
,"invite.month.rest" : доступный остаток месячного лимита приглашений. null - ограничения нет. (НД)
,"limit.ratio" : Коэффициенты учёта адресов и писем в лимитах по тиражу и количеству подписчиков (НД)
Количество адресов или писем соответствующего типа умножается на указанный коэффициент и делится на 100.
Сумма полученных значение по всем типам адресов (см. limit.usage.raw) и есть текущее использование лимита адресов в базе.
Сумма полученных значение по всем типам сообщение (см. limit.usage.raw) и есть текущее использование лимита сообщений.
Формат данных в ответе
"channel" : {
"email" : 100,
"push" : 20,
"sms" : 0,
"viber" : 0,
"vk" : 0,
"tg" : 100,
"vknotify" : 0,
"pushapp": 100,
"max": 100
},
"addr_type" : {
"email" : 100,
"push" : 20,
"msisdn" : 0,
"viber" : 0,
"csid" : 0,
"vk" : 0
"tg" : 100,
"vknotify" : 0,
"pushapp" : 100,
"max" : 100
}
,"limit.usage.raw" : Тиражи сообщений по каналам и количество адресов по типам. (НД)
Эти величины совместно с коэффициентами limit.ratio и дают величину использование лимитов
Не забываем, что есть раздельный и совместный учёт тиража транзакционных email-сообщений - issue.limit.joint.
При совместном учёте тиража в "personal" будет 0 - тираж войдёт в "mass"
У остальных каналов (не еmail) транзакционный тираж не имеет специального ограничения и засчитывается как mass
Формат данных в ответе
"channel" : {
"mass" : {
"email" : 23,
"tg" : 12,
"vk" : 5
},
"personal" : {
"email" : 1
}
},
"addr_type" : {
"email" : 1213551,
"push" : 225,
"msisdn" : 5077,
"viber" : 2,
"tg" : 6,
"csid" : 199,
"vk" : 167424,
"max" : 16742232
}
,"stoplist.remove.month.limit" : месячный лимит удаления из пользовательского стоп-листа. null - ограничения нет. (НД)
,"stoplist.remove.month.rest" : доступный остаток месячного лимита удаления из пользовательского стоп-листа. null - ограничения нет. (НД)
,"sec.allowip" : [ -- список ip-адресов или cidr-адресов только с которых разрешена работа. доступно только основному логину
-- пустой список - нет ограничений
"адрес"
,"адрес"
...
]
,"sec.login.denysuper" : 0|1 -- вход основным логином запрещён
,"sec.login.denysuper.interactive" : 0|1 - основному логину запрещены интерактивные способы входа (пароль, пароль+смс, openid)
,"sec.login.denysub.interactive" : 0|1 - любому дополнительному логину запрещены интерактивные способы входа (пароль, пароль+смс, openid)
,"sec.login.lock.error" : лимит числа неудачных попыток входа после которого логин блокируется, доступно только основному логину
,"sec.login.lock.inactive" : количество дней неактивности после которых логин блокируется. доступно только основному логину
,"sec.password.history" глубина истории паролей каждого логина. нельзя сменить пароль на имеющийся в истории. доступно только основному логину
,"sec.password.check" : 0|1 -- проверять что новый пароль соответствует каждому из требований. доступно только основному логину
-- * 8 символов и длиннее
-- * содержит буквы
-- * содержит цифры
,"sec.password.expire.day" : количество дней после смены пароля после которых заставлять менять пароль опять. доступно только основному логину
,"target.script" : "код для сервиса "Целевые страницы", предназначенный для размещения на сайте" (НД)
-- поддерживаются дополнительные параметры через params (все не обязательны)
"group.id : номер -- автоматически включать посетившего целевую страницу в указанную группу-список
,"link.group.id" : номер -- автоматически включать новые целевые страницы в указанную группу ссылок
,"noqs" : 1 -- удалить из адреса целевой страницы все параметры. сильнее keeputm.
-- например, они всегда разные для разных посетителей, а для отслеживания этого не требуется
,"keeputm" : 1 -- оставить в адресе целевой страницы utm-параметры
,"url" : "ссылка" -- вместо адреса целевой страницы использовать указанный
,"noevent" : 1 -- не создавать событие "Цель достигнута"
,"email" : 1 -- включить в код метку для подстановки email посетителя
-- при выдаче страницы каждый раз заменяйте метку на реальный адрес в кодировке url-encoded
,"js" : 1 -- получить код в формате java-script. это полезно в случае сложных, частично обновляемых по мере действий
-- пользователя страниц сайта. например при использовании подхода single-page-application
,"datakey": [
-- правила изменения пользовательских данных
-- формат совпадает с аналогичным параметром вызова member.set
-- данная возможность позволяет создавать сложные сценарии учёта достижения страниц вашего сайта
-- например "Забытая корзина" или "Запоминание просмотренных товаров"
-- Служба Поддержки может проконсультировать вас подробнее по данному вопросу.
]
,"push.script" : { -- код для организации подписки на пуши, предназначенный для размещения на сайте (НД)
-- сайт должен быть https !!!
"push_script" : "...." - устанавливается на сайте на каждую страницу с которой хочется предлагать подписку на push
,"sw_script" : "...." - устанавливается на сайте в корень что бы был доступен по url /sendsay_push_sw.js
-- компоненты использованные при генерации push_script
,"app_server_key" : "ключ приложения"
,"backend" : "адрес бэкенда;
,"sw" : "ожидаемый урл sw_script";
,"sw_script_src" : "адрес основного скрипта сервис-воркера"
}
-- поддерживаются дополнительные параметры через params (все не обязательны)
"group.id : номер -- автоматически включать посетившего целевую страницу в указанную группу-список
"dk" : {
-- дополнительные данные для передачи при подписке если они известны сразу
-- или потом их можно добавлять вызовами addData()
}
,"spec_attach.pdf" : 0|1 -- доступность для использования в рассылке индивидуальных pdf-файлов
,"spec_attach.xlsx" : 0|1 -- доступность для использования в рассылке индивидуальных excel-файлов
,"spec_attach.url" : 0|1 -- доступность для использования в рассылке персональных прикрепляемых файлов
,"dt.now" : "YYYY-MM-DDThh:mm:ss+HH:MM -- текущие дата, время и временная зона систему. В формате ISO-8601.
например "2014-11-11T15:36:09+03:00"
именно в этой временной зоне считаются все даты и время используемые в API
,"tz.delta" -- проверка знания системой часового пояса в вашем способе записи. воспользуйтесь перед первыми выпусками рассылок с учётом часового пояса
-- Если не распознаётся - обратитесь в Службу Поддержки за расширением нашего списка городов и стран.
--
-- список проверяемых строк берётся из одноимённого ключа в params
--
-- как результат возвращается объект где ключами являются проверяемые строки, а их значениями - null если строка не распознана,
-- или её часовой пояс в виде смещения относительно UTC в виде +hhmm или -hhmm
,"integration.flocktory" -- получить ссылку для интеграции с Flocktory
--
-- передаваемый от Flocktory адрес будет внесён в базу (если его ещё нет), добавлен в группу-список (если его там нет)
-- и на "новый" адрес будет выслано указанное письмо
--
-- поддерживаются дополнительные параметры через params (все не обязательны)
--
-- "mode": "B|G" - режим внесения. B - по умолчанию - новым считается адрес которого нет в базе
-- G - новым считается адрес которого нет в указанной группе-списке
--
-- "group.id": "код группы-списка" - группа-список, что бы понимать что даёт flocktory.com
--
-- "draft.id": "код черновика" - письмо высылаемое "новым" адресам. (кто "новый" зависит от параметра mode)
,"integration.tilda" -- получить ссылку для интеграции с Tilda
-- аналогично Flocktory
,"integration.amocrm" -- получить ссылку для интеграции с amoCRM
-- аналогично Flocktory
,"integration.bitrix24" -- получить ссылку для интеграции с Bitrix24
-- аналогично Flocktory
--
"tde.topic.*" : { -- настройки всех тематик Обогащения Данных разом
"код-тематики" : [ "код-группы", "код-группы", .. ]
,"код-тематики" : [ "код-группы", "код-группы", .. ]
...
}
Список настроек которые можно и прочесть и поменять
"about.owner.email" : [ "email", "email", ... ], -- email-адрес/адреса лица ответственного за аккаунт
-- Используется как получатель для всех писем системы когда для них не указан другой адрес
"about.issue.email" : [ "email", "email", ... ], -- email-адрес/адреса для сообщений о проблемах с выпусками рассылок
-- если выпуск от саблогина, то уведомления отправляются на адрес саблогина и на эти адреса
-- если выпуск не от саблогина, то уведомления отправляются на эти адреса если настоены, иначе на about.owner.email
"support.access" : 0|1, -- Службе поддержки разрешён вход для помощи
"email.utf8" : 0|1, -- поддержка национальных почтовых адресов
-- выключена для старых аккаунтов для сохранения совместимости
-- включена для новых аккаунтов
--
-- изменить настройку можно только в одну сторону - с выключено (0) на включено (1)
-- для старых аккаунтов есть необходимость начать использовать национальные адреса
--
-- для новых аккаунтов всегда включено и не выключается
-- Использование шаблонов информационных писем
"infolett.confirm.need" : "код шаблона", -- Высылается когда адрес регистрируется или при использовании вызова
-- "member.sendconfirm" без указания желаемого черновика.
-- Пусто - стандартный системный текст
"infolett.confirm.done" : "код шаблона", -- Высылается сразу после подтверждения регистрации.
-- Пусто - не высылается ничего
"infolett.info" : "код шаблона", -- Высылается когда требуется сообщить подписчику его регистрационные
-- данные и он уже подтвердил регистрации.
-- Пусто - стандартный системный тест
--
"msisdn.country" : "число", -- код страны (без +) для нормализации регистрируемых не полных номеров телефонов и viber
"msisdn.zone" : "число", -- код зоны для нормализации регистрируемых не полных номеров телефонов и viber
--
"issue.paused" : 0||1 -- глобально остановить-возобновить запуск новых рассылок
-- останавливает (1) запуск новых заданий на рассылку - они сразу переходят в состояние "Приостановлено"
-- возобновляете (0) запуск новых заданий на рассылку - обычный режим работы
-- глобальная остановка НЕ останавливает уже формирующиеся выпуски - для этого есть issue.running.pause
-- глобальное возобновление НЕ запускает приостановленные выпуски - для этого есть issue.running.resume
"issue.dkim.id" : "идентификатор dkim-ключа или пусто" -- будет использоваться если у выпуска на задан свой
-- пусто - будет использоваться системный
"issue.link.qid" : "строка", -- добавка к ссылкам в письмах
-- переходы из писем рассылок плохо видны в статистике именно как переходы из рассылки
-- и часто попадают в общую кучу "прямые переходы" (typed in).
-- Вы можете указать параметр (например source=pro) который будет добавляться ко всем
-- ссылкам в вашем выпуске (например, было http://site.tld/,а станет http://site.tld/?source=pro)
-- и, соответственно, позволит однозначно определить при анализе посещаемости сайта
-- что посетитель пришёл именно из выпуска рассылки.
"issue.link.notest" : 0|1 -- 0 - проверка ссылок как указано в настройках выпуска (по умолчанию)
-- 1 - проверка ссылок производится только если это явно указано в теге A в параметре x-do-link-relink,
иначе не производится не смотря ни на какие настройки выпуска
"issue.dontsend.550" : 0|1, -- автоматически исключать из выпусков рассылок адреса у которых последняя ошибка smtp = 550 - неизвестный получатель
"issue.tz.observance" : {
... структура как при issue.send или null
}
--
"issue.push.welcome" : "номер черновика" -- номер черновика содержащего приветственный push
"issue.push.require_interaction" : 0|1 -- настройка параметра для всех выпусков у которых он не указан явно
-- по умолчанию 1 - требуется явное закрытие
--
"issue.pushapp.format" : "sdk|native" -- native - работа с мобильными пушами ведётся напрямую. отправляемые сообщения имеют формат для самостоятельной обработки
-- sdk - работа с мобильными пушами ведётся через sdk. отправляемые сообщения имеют формат для SDK
--
"issue.weak_draft" : 0|1 -- параметры содержимого выпуска указанные одновременно с черновиком сильнее таких же параметров черновика (1)
-- черновик сильнее - 0 - по умолчанию
--
"issue.accumulate_by" : "month|week|day" -- интервал по умолчанию для issue.send параметра accumulate_by. По умолчанию - month
--
"issue.personal.groupby" : пусто или "label01" -- группировка personal. пусто - как обычно. label01 - по первым трём меткам выпусков.
--
"issue.filter.exclude.mass" -- фильтр исключения из выпуска для массовых выпусков
"issue.filter.include.mass" -- фильтр включения в выпуск для массовых выпусков
"issue.filter.exclude.personal" -- фильтр исключения из выпуска для транзакционных выпусков
"issue.filter.include.personal" -- фильтр включения в выпуск для транзакционных выпусков
--
"issue.default_class.email" -- классы по умолчанию для каждого канала выпуска
"issue.default_class.sms"
"issue.default_class.viber"
"issue.default_class.push"
"issue.default_class.vk"
"issue.default_class.tg"
"issue.default_class."vknotify"
"issue.default_class.pushapp"
"issue.default_class.max"
--
"issue.stoplist.bysender_as_bydomain" : включить (1) или выключить (0) использование отписки по отправителю как по домену
--
"issue.intercept_replyto" : значение по умолчанию для проксирование ответов на письма выпусков (1 - использовать, 0 - нет)
--
"issue.read.ignore.bot_ip" : 0|1 -- игнорировать чтения от ботов определённых по ip. по умолчанию 0 - засчитывать
"issue.read.ignore.bot_gender" : 0|1 -- игнорировать чтения от ботов определённых по User-Agent. по умолчанию 0 - засчитывать
"issue.click.ignore.bot_ip" : 0|1 -- игнорировать клики от ботов определённых по ip. по умолчанию 0 - засчитывать
"issue.click.ignore.bot_gender" : 0|1 -- игнорировать клики от ботов определённых по User-Agent. по умолчанию 0 - засчитывать
--
"target.cookie.ttl", : положительное-число -- "Время отслеживания после перехода" для сервиса "Целевые страницы". Задаётся в минутах. По умолчанию 360 - 6 часов
-- Перенаправления пользователя после совершения действий
"redirect.member.confirm" : "url" -- После подтверждения регистрации
"redirect.member.remove" : "url" -- После удаления регистрации
--
"callback.format" : "old|json|json-stream", -- формат передачи событий Callback/Webhook
-- адреса для колбеков разных типов
-- для одного типа можно указать несколько через пробел
-- если какой-то урл начинается с символа "x", то он не используется - способ отключить не удаляя
,"callback.url.read" : "url" -- событие чтения
,"callback.url.click" : "url" -- событие перехода
,"callback.url.target" : "url" -- событие достижения целевой страницы
,"callback.url.unsub" : "url" -- событие отписки
,"callback.url.deliv" : "url" -- событие доставки
,"callback.url.form" : "url" -- событие заполнения формы
,"callback.url.tracker" : "url" -- событие изменения статуса трекера
,"callback.url.confirm" : "url" -- событие подтверждения регистрации
,"callback.url.draft" : "url" -- событие изменения черновика
,"callback.url.emailreply" : "url" -- событие получения ответа на письмо рассылки
,"callbacl.url.membernew" : "url" -- событыие нового подписчика
,"callbacl.url.promocode" : "url" -- событыие выделения/отзыва промокода
--
"tde.topic.код-тематики" : [ "код-группы", "код-группы", .. ] -- настройка одной тематики Обогащения Данных. null для удаления
--
"stoplist.owner_to_member" : 0|1 -- по умолчанию 0
0 -- stoplist.add работает как обычно
1 -- stoplist.add добавляет в member вместо owner
Обращение в саппорт¶
{
"action" : "sys.message"
"email" : "email для связи"
,"message" : "текст сообщения"
,"attach" : "base64-кодированне содержимое прикрепляемого файла" -- не обязательно
}
ответ
Список возможных прав пользователя¶
ответ
Отправить пожелание Деду Морозу¶
Использовать только перед новым годом
ответ