Система отправки сообщений (sms,email и тд). Шаблоны сообщений

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (39)

просмотр истории страницы
h1. Описание системы отправки сообщений

Система отправки сообщений Carbon Billing 5 поддерживает четыре метода следующие методы отправки:

* SMS
* E-mail
* Telegram
* PUSH

Устаревшие и более не используемые способы отправки (названия оставлены для совместимости):
* Agent
* Winpop
* WhatsApp

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

h2. Настройка Email рассылки

Для того, чтобы сообщения отправлялись, следует указать "Email для оповещений" в карточке оператора связи.
Укажите *Email для оповещений* в карточке [оператора связи|Агентские схемы и ведение филиалов|Создание оператора связи]. При формирования письма он будет добавлен в поле *From*. Например: info@provider.name

Например: info@provider.name

!mail01.png|border=1!

{note}
Обязательно заполните адрес, так как почтовые сервера отбрасывают письма с пустым полем *From*.
{note}

h3. Настройка отправки Email со стороннего сервера

Мы описали это статье [CarbonBilling:Отправка уведомлений через Telegram]

h1. Настройка шаблонов сообщений

h2. Настройка PUSH-уведомлений из личного кабинета
h2. Создание шаблона

Мы описали это статье [PUSH-уведомления из личного кабинета|CarbonBilling:PUSH-уведомления из личного кабинета]
h3. Создание в настройках биллинга
В пунте *"Шаблоны сообщений"* можно создать шаблоны доступные всем [операторам связи|Агентские схемы и ведение филиалов]. Для создания нажмите кнопку *"Добавить"*.
!Create_msg_001.png|border=1,width=1200!
Для каждого типа сообщения нужно создать свой шаблон.
!3.png|border=1,width=600!


h2. А что с WhatsApp?

h3. WhatsApp Business API, официальный метод интеграции

Пока этот метод не поддерживается. Мы делали тестовую интеграцию с WhatsApp в 2017 году, поэтому такой способ отправки сообщений остался в интерфейсе, но по техническим причинам развития функция не получила.

На текущий момент официальным методом интеграции является подключение к WhatsApp Bisiness API через партнёров Facebook, что несёт с собой некоторую финансовую нагрузку на компанию, рассылающую сообщения - то есть оператора связи.

Подробней об условиях Вы можете уточнить у партнёра Facebook в России, компании [Infobip|https://www.infobip.com/products/whatsapp-business]. Если Вы сочтёте их условия приемлемыми, напишите нам - мы реализуем интеграцию в Carbon Billing 5.

h3. Неофициальный метод интеграции, могут заблокировать номер

Как пример подобного сервиса - [https://chat-api.com/ru/]


Это не очень надёжное решение (WhatsApp может заблокировать номер заподозрив рассылку спама), но распространённое.

{info}Если Вам нужен именно такой метод интеграции с Chat API, либо другим подобным сервисом - пожалуйста, напишите нам. Мы сделаем интеграцию при достаточном спросе среди операторов связи{info}

h1. Настройка шаблонов сообщений

h3. Создание с привязкой к оператору связи
При ведении в биллинге нескольких [опраторов связи|Агентские схемы и ведение филиалов] можно создать различные шаблоны для каждого оператора. Сделать это можно в настройках конкретного оператора связи:
!2.png|border=1,width=600!
Для каждого типа сообщения надо создать свой шаблон
!3.png|border=1,width=600!
При этом шаблон сообщения отобразится в настройках биллинга. У него будет заполнено поле *"Принадлежит оператору"*. Изменить пренадлежность опретору нет возможности. Для измения пренадлежности создайте новый шаблон.

Опция *Отправлять сообщение* отвечает за то нужно отправлять сообщение или нет. Эту галочку можно также поставить в самом шаблоне при редактировании.
h2. Параметры шаблона сообщений
При создания шаблона сообщений доступны параметры:
* *Текст заголовка* - тема e-mail или заголовок смс;
* *Текст шаблона* - непосредственно отправляемый текст;
* *Отправлять сообщение* - опция отвечает за то, нужно отправлять сообщение или нет;
* *Тип отправки* - указывает метод, которым будет отправлено сообщение. Методы описаны в [ниже|Система отправки сообщений (sms,email и тд). Шаблоны сообщений#Способы отправки сообщений];
Опция * *Отправлять каждый день* - работает только для шаблона "Предупреждение за n дней", при её активации сообщение отправится за количество дней указанных в настройках оператора связи в поле "Предупреждать о блокировке за n дней", а так же каждый день до даты когда он будет заблокирован.;
* *Статус абонента* - сообщения будут отправлены только абонентам со [статусом|Статусы абонентов];
* *Отправлять абоненту с типом договора* - тип: юридические или физические лица;
* *Использовать шаблонизатор django* - включает использование набора переменых [django|Система отправки сообщений (sms,email и тд). Шаблоны сообщений#Использование переменных Django].

h3. Пример 1. Шаблон сообщения [сброса пароля|http://docs.carbonsoft.ru/pages/viewpage.action?pageId=155713989]


!Выделение_001.jpg|border=1!


h2. Возможные переменные

В шаблонах сообщений можно использвать два набора переменных - стандартные перемнные и переменные шаблонизатора [django|Система отправки сообщений (sms,email и тд). Шаблоны сообщений#Использование переменных Django]. В одном шаблоне сообщений можно использовать либо стандартные переменные, либо и переменные шаблонизатора django. Ниже перечислены стандартные переменные:
* %(name)s - ФИО абонента;
* %(contract_number)s - номер договора;
* %(balance)s - текущий баланс;
* %(subscriber_sms) - номер телефона абонента, который создал заявку в helpdesk
* %(subscriber_email)s - email абонента, который создал заявку в helpdesk
* %(subscriber_comment)s - [стандартный реквизит|Реквизиты] "Комментарий"
* %(subscriber_home)s - адрес абонета, который создал заявку в helpdesk
* %(enough_to_date)s - дата [хватит денег до|Финансовые операции. Учет НДС#Прогнозируемая дата блокировки]
* %(psw_token)s - проверочный код для [сброса пароля Лличного кабинета|Восстановление пароля к личному кабинету]
{info}
%(gen_pwd)s - это пароль всегда от *первой* учетной записи.
{code}

*Текст заголовка* \- тема e-mail или заголовок смс.
*Текст шаблона* \- непосредственно отправляемый текст.

h2. Использование переменных Django

Шаблонизатор django содержит более широкий набор переменных. При его использвании можно указать любые *поля* абонента, тарифа, счета и прочих данных, отображённых на вкладке "Информация" в карточке абонента. Названия переменных можно взять из описания моделей в [CarbonBilling:API REST v2.0]. Включать шаблонизатор django нужно в каждом шаблоне сообщения. Доступны следующие модели:
* Abonents
* FinanceOperations

Так же можно получить данные из других моделей используя обратные ссылки. Например, получить значения счётчиков трафика.
{code}
{{ abonent.abonent_id_trafcounters }}
{code}

Пример использования обратной ссылки для отправки в сообщении логина и пароля от учетной записи с типом Internet:
{code}
{% for user in abonent.abonent_id_users.all %}
{% if user.service_type_id == 1 %}
Ваш логин: {{ user.login }}
Ваш новый пароль: {{ user.gen_pwd }}
{% endif %}
{% endfor %}
{code}
Переменные оператора связи можно получить из переменной *Operator*. Например имя оператора связи:
{code}
{{ operator.name }}
{code}

Если вы хотите использовать другие модели, обратитесь в [техническую поддержку|https://helpdesk.carbonsoft.ru].

Включать шаблонизатор django нужно в каждом шаблоне сообщения.

!message_django_01.png|border=1!

{% load mathfilters %}Обслуживание по л/с {{ abonent.contract_number }} приостановлено. Внесите не менее {% if total_abonpay <= BALANCE %}0{% else %}{{ total_abonpay|sub:BALANCE }}{% endif %} руб.
{code}
Также можно обрезать значение переменной(в примере ниже обрезаются последние 9 знаков). Например для того, чтобы отправить в сообщении только дату из поля Хватит денег до, без времени:
{code}
Денег хватит до {{ enough_to_date|slice:":-9" }}
{code}
В шаблонизаторе django так же можно использвать переменные из стандартного набора. Для этого укажите их в фомате django:
{code:title=Формат стандартного набора}
%(text)s
{code}
{code:title=Формат django}
{{ text }}
{code}

h2. Тип сообщения. События.
Каждый шаблон сообщения может быть отправлен по любому из выбранных событий:
* *Подключение услуги* \- приходит абоненту при подключении услуги;
* *Положительный баланс* \- приходит абоненту при переходе абонента в положительный баланс(ниже баланс(выше порога отключения абонента);
* *Отрицательный баланс* \- приходит абоненту при переходе абонента в отрицательный баланс(выше баланс(ниже порога отключения абонента);
* *Выставлен счет* \- приходит абоненту при выставлении счета абоненту (используется чаще для юр.лиц). Для того, чтобы отправка счета выполнялась вручную из вкладки "Операции", шаблон с данным типом должен быть включен. Вместе со счетом юр.лицам отправляется ещё и акт. Отправка акта выполняется с помощью этого же шаблона сообщений(Выставлен счет);
* *Зачисление денег* \- приходит абоненту при поступлении средств на счет (при условии что в настройках абонента стоят галочки Юр.лицо и Отправлять Счет/Акт, а также Настройки - Число месяца выставления счетов на предоплату);
* SMS сообщение на телефон
* Telegram-бот, через который можно не только получать рассылку, но и получить данные по лицевому счету, услугам и тарифу
* PUSH-уведомления

Если не выбрать конкретный вид сообщения, то рассылка будет вестись всеми доступными средствами.

h32. Отправитель

Поле отправитель зависит от типа сообщения:

* Если сообщение системное, например у пользователя кончились деньги на счёте, то в поле отправитель будет указан e-mail, принадлежащий Оператору связи.

* Если сообщение отправлялось вручную с помощью веб-интерфейс администратора Carbon Billing 5, то отправителем будет указан e-mail администратора системы, который это сообщение отправил;

* Если данные поля не заполнены, отправителем будет почта вида root@www.example.com, где www.example.com - доменное имя главного внешнего интерфейса.

{anchor:send_message}

h2. Пример 1. Шаблон сообщения [сброса пароля|Восстановление пароля к личному кабинету]

!Выделение_001.jpg|border=1!

h1. Отправка сообщений

Причина и решение такие же как для ошибки "Name or service not known" при отправке email: что-то не так с DNS-сервером или его настройкой в биллинге. Решение описано чуть выше.

h3. Не отправляются сообщения Telegram, в логе ошибка "Can't send message due to unknown reason: Forbidden: user is deactivated"
{code}
2025-02-27 09:34:50,614 - worker - msg_lib - INFO - Отправка сообщения через Telegram абоненту #1234 Иван Иванович Иванов
2025-02-27 09:34:50,728 - worker - msg_lib - ERROR - Can't send message due to unknown reason#2315519: Forbidden: user is deactivated
{code}

Ошибка в логе указывает на то, что пользователь удалил Telegram-аккаунт или заблокировал бота. Чтобы решить проблему необходимо удалить Telegram ID из [реквизитов|CarbonBilling:Реквизиты] абонента.

h3. Ошибка в логе Chat not found
{code}2021-08-26 08:39:29,703 - worker - msg_lib - INFO - Отправка сообщения через Telegram абоненту #2731 VIP_CLIENT