Сообщения в Telegram: відмінності між версіями
Sv (обговорення | внесок) м (→Модуль тикетов) |
Sv (обговорення | внесок) |
||
Рядок 72: | Рядок 72: | ||
{{comment}} | {{comment}} | ||
</pre> | </pre> | ||
</pre> | |||
* В учетке любого сотрудника внесите реальный Telegram-номер в поле «Телеграм id» | |||
* В самом Telegram добавьте бота, которого вы создали (см. инструкцию выше для Тикетов от пользователя). Учтите, что телеграм в принципе не отправляет сообщение ни на какие номера, которые не добавят бота | |||
* Создайте тикет и в качестве исполнителя укажите учетку сотрудника с указанным «Телеграм id». Учтите, что эта учетка не должна быть связана с вашей административной записью т.к сообщения не отправляются тому, кто изменяет тикет (зачем ему сообщать о том, что он только что сделал?) | |||
** Напоминаем, что в NoDeny имеется возможность связать административную запись с обычной учеткой. Это делается на странице редактирования данных админа. Необходимость связываения заключается в том, что обычные учетки гибко настраиваются в плане добавления любых типов полей | |||
* После создания тикета вы должны получить сообщение в телеграм | |||
В шаблоне вы можете видеть конструкцию вида {% if operation eq 'insert' %} - это команда шаблонизатора, которая в случае равенства переменной operation строке insert, вставит в отсылаемое сообщение слово «Создан», в противном случае «Изменен». Таким образом, при создании тикета придет сообщение: | |||
<pre> | |||
Создан тикет #123 ... | |||
</pre> | |||
Возможно, сотрудники не захотят получать сообщения о каждом изменении тикета. А только о его создании. Тогда вы можете создать такой шаблон: | |||
<pre> | |||
{% if operation eq 'insert' %} | |||
Создан тикет. | |||
id: {{id}} | |||
тема: {{subject}} | |||
{% endif %} | {% endif %} | ||
</pre> | </pre> | ||
Однако это не лучший вариант т.к. в момент создания тикета исполнитель(ли) могут не быть указаны. И тогда после их добавления, они не получат уведомления. В этом случае можно поступить так: | |||
<pre> | |||
{% if new_performer %} | |||
{% if operation eq 'insert' %}Создан{% else %}Изменен{% endif %} тикет #{{id}} "{{subject}}: | |||
<pre> | |||
{{comment}} | |||
</pre> | |||
{% endif %} | |||
</pre> | |||
Уведомление будет выслано лишь один раз в момент добавления исполнителя. |
Версія за 18:32, 26 жовтня 2021
Описание
Модуль добавляет возможность автоматических уведомлений в телеграм для:
- модуля тикетов
- модуля «Тикеты от пользователя»
Тикеты от пользователя
Модуль «Тикеты от пользователя» заменяет стандартный модуль обмена сообщениями абонента с техподдержкой. На каждое сообщение от клиента создается тикет, который можно привязать к исполнителю и т.д. При этом текущий модуль (Сообщения в Telegram) будет дублировать сообщения в Telegram техподдержки. Настраивается шаблон какие данные и как будут показаны в Telegram. Если абонент прикрепляет изображение - оно покажется.
Настройка
- Создайте Телеграмм бота
- Найдите в Телеграме учетку: @BotFather
- Напишите ему: /newbot
- Далее: /setname NoDenyИмяВашейСети
- В ответ получите ключ в виде XXXXXXX:XXXXXXXXXXXXXXXXXXXXX. Внесите этот ключ в раздел Настройки → Модули → Telegram Tickets в поле «Token Telegram бота»
- Далее в Телеграме: /setdomain
- Напишите: https://ваш_сайт
- Напишите любое сообщение вашему боту в Телеграме
- Откройте в браузере урл: https://api.telegram.org/botВАШ_ТОКЕН/getUpdates (например: https://api.telegram.org/bot123456789:jbd78sadvbdy63d37gda37bd8/getUpdates)
- В ответе найдите
..."chat":{"id": число ...
. Число - это ваш chat id, внесите его в настройки
- В ответе найдите
- В разделе Настройки → Модули → Telegram Tickets параметр «Включить модуль» установите в «Да»
- Установите необходимые модули:
sudo cpan install WWW::Telegram::BotAPI sudo cpan install EV
Телеграм разрешает использовать не все html-теги
На данный момент разрешено:
<b>bold</b>, <strong>bold</strong> <i>italic</i>, <em>italic</em> <u>underline</u>, <ins>underline</ins> <s>strikethrough</s>, <strike>strikethrough</strike>, <del>strikethrough</del> <a href="http://www.example.com/">inline URL</a> <code>inline fixed-width code</code> <pre>pre-formatted fixed-width code block</pre>
Модуль тикетов
Есть возможность отправки данных создаваемого/изменяемого тикета в Telegram исполнителя(ей), указанного в тиките. Например, при создании наряда на подключение, монтажнику будет выслано уведомление в его личный Telegram.
Необходимо:
- Создать дополнительное поле (точно такое как в модуле Авторизация через Telegram):
- Имя поля : Телеграм id (можно дать другое имя)
- Имя поля в бд : _telegram_id (менять нельзя)
- Тип поля : одна строка
- Галки: убирать все пробелы, уникальное
- Галка на группе сотрудников
- В Настройки → Модули → Telegram Tickets в поле «Шаблон сообщения исполнителю тикета» ввести шаблон
В шаблоне допустимы следующие переменные:
id : id тикета subject : тема comment : текст тикета state : состояние client_info : данные клиента, с которым связан тикет performer_info : данные испольнителя, которому отсылается уведомление new_performer : 1 если исполнитель, которому отсылается уведомление, только что добавлен operation : insert - создание тикета update - обновление тикета add_msg - добавление комментария/сообщения сотрудником
К примеру:
{% if operation eq 'insert' %}Создан{% else %}Изменен{% endif %} тикет #{{id}} "{{subject}}: <pre> {{comment}} </pre>
- В учетке любого сотрудника внесите реальный Telegram-номер в поле «Телеграм id»
- В самом Telegram добавьте бота, которого вы создали (см. инструкцию выше для Тикетов от пользователя). Учтите, что телеграм в принципе не отправляет сообщение ни на какие номера, которые не добавят бота
- Создайте тикет и в качестве исполнителя укажите учетку сотрудника с указанным «Телеграм id». Учтите, что эта учетка не должна быть связана с вашей административной записью т.к сообщения не отправляются тому, кто изменяет тикет (зачем ему сообщать о том, что он только что сделал?)
- Напоминаем, что в NoDeny имеется возможность связать административную запись с обычной учеткой. Это делается на странице редактирования данных админа. Необходимость связываения заключается в том, что обычные учетки гибко настраиваются в плане добавления любых типов полей
- После создания тикета вы должны получить сообщение в телеграм
В шаблоне вы можете видеть конструкцию вида {% if operation eq 'insert' %} - это команда шаблонизатора, которая в случае равенства переменной operation строке insert, вставит в отсылаемое сообщение слово «Создан», в противном случае «Изменен». Таким образом, при создании тикета придет сообщение:
Создан тикет #123 ...
Возможно, сотрудники не захотят получать сообщения о каждом изменении тикета. А только о его создании. Тогда вы можете создать такой шаблон:
{% if operation eq 'insert' %} Создан тикет. id: {{id}} тема: {{subject}} {% endif %}
Однако это не лучший вариант т.к. в момент создания тикета исполнитель(ли) могут не быть указаны. И тогда после их добавления, они не получат уведомления. В этом случае можно поступить так:
{% if new_performer %} {% if operation eq 'insert' %}Создан{% else %}Изменен{% endif %} тикет #{{id}} "{{subject}}: <pre> {{comment}} </pre> {% endif %}
Уведомление будет выслано лишь один раз в момент добавления исполнителя.