# Telegram

[Telegram](http://telegram.org) — мессенджер, имеющий веб версию, десктоп версию, а также версию для мобильных устройств. Имеет встроенный функционал чат-ботов.

## Подключение

### 1. Создание бота на стороне Telegram

В первую очередь нужно произвести конфигурацию на стороне Telegram.

1. Откройте Telegram и авторизуйтесь.
2. Найдите в поиске бота “BotFather”.
3. ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-q6F1WpdXAP/60539a011c5af4ffad126b869c271825e528bf0221715fb8e51cae8b2ae31b7984fdf13e5fda83e3b1d5ca5d8477ebd93b02a6faed37458ca7f96b58a7bafaaaa68fda6ffa59624c237ebbac77206e02ff7a6ee1d7fa8d620332478cfe3cc9f2057881b6).
4. Создайте бота в Telegram:
5. 1. Отправьте боту BotFather команду /newbot.
   2. В ответ на сообщение бота введите желаемое имя вашего бота.
   3. ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-kFtzyl9SZ2/f84ebc5a62c8cf6a327e023bd68dd9aa14b550297eb6d2a5d0c99d45e6e5b7de70461f536f2b378273714d1b5c768b2e08447a9241dc15ddb98b5fbf8798d2265e275d4cfd5368c652c62d5651804ad14cca8bb513e66965b775429316a574c9931cc574)
   4. Отправьте желаемый идентификатор бота. Он должен быть уникальным среди всех существующих ботов в Telegram и заканчиваться на “bot”. Например, My\_new\_telegram\_bot\_username\_bot.
   5. ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-QAPAueGFU0/8ca0b1196c59ef0631821cdcfebb6247b59c58af5d7169f1bd73062f31b7ca16b16d91df0bb8cf0dd94f6c75884ba594ea59f418fa0c43eab58413224c12cd2a6c524b3c00fed5aa371d3709a3e51526f97cabf006a346040a77077045fd76ee0d549e21)
   6. Если отправленный идентификатор бота соответствует требованиям, вы получите сообщение об успешном создании бота. В сообщении будет указана ссылка на вашего бота в Telegram и токен доступа к боту.
   7. ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-Zba33q6BA5/326170bb53354dbfbbb2ddd32f1039249ef953df361d15c6c7cc8dc6189fb8b44875c5fbec5ee1fd2c778f9e1f79cc620fd678d2fcf6cb5e25e07d4cbdc7d7b6cc460f4f5211b76295bb3d184ab6f357f73258376512a92454fc52add9b0119bba3480ca)
   8. Скопируйте в удобное место токен доступа.
   9. ![tempsnip.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-u5v0t7Ow6l/a77372c4ad7fe7591521954258bee5725f967a749a7cf8ce45e89a05873eabd52d1140903771363f22a8bea524fe150531221bf37904f112dd487807965eccf0bf2b6a298318ba5c12b37d9d23919f094c1caef2b379e12b7cd2784bbe83e9c4bebd0cd2)
   10. Настроить аватар, описание, и прочие параметры бота вы можете через бота BotFather.

\
На этом конфигурация Бота в Telegram завершена.

### 2. Конфигурация канала агента в Платформе

Агенту необходимо создать и настроить Канал Проекта с коннектором “Telegram”.

1. Кликните по кнопке настроек Агента.\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-m_bL4GvN1_/de0e6c51b47058d8e7854370e44e3e29e8d1195855e34484c55e0ba55e6f4cbc2f103ac4ebcc2b78bf606d6b02118303275d07760b64f89e5ea954cd86466379ab9850814435bbe8d5ab7d3e80e7ac68c8a471b3ba0022e97fb3209a771f11a86b6c817e)
2. Нажмите кнопку Add channel.\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-KJ7zJqauLN/e76804ae1c32c84507914bcbac89b59e5fa7160e857084643655c65f3192dbec4709a2cd8abae87edc6a858acbd80d17c3296d23c47a2c39eccf56433201a9779ccf4ea2580c347508e5f68b0ee94654585fa349ceadd2e6587a4bdebd6c5d9715835322)
3. Откроется панель выбора Конечный канал.\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-OaJek0tQXe/ea78cd0e09c4f4e41f667c4bbf21133a41fd0585cd3299069657b62307d1bb587ab3d0e52ec6914a9798b6d3913106977fa56c5f1be72ed0ec513f353a9580470a582474b635249d26a3b4b8c59492bf63662a9c2a10e317d552aed52e5b7128615c7841)
4. Выберите Telegram.
5. Откроется панель создания Канал Проекта.\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-9yvZxF7CZt/ce54bf93a323f73d91296f8dcc1e031bd60289ee17e08f67cf80a22c0e636d8ff10929f4266a5a811a753574981e8e2e782221be100566485fec8bbfad3b203c6994795f6225c9cf27b97a67c49d39f09738874e0ac88a61357ec4cb11d422b8a9fd3278)
6. По необходимости пропишите заголовок для данного Канал Проекта в поле названия с плейсхолдером New channel.\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-v035n69dsV/fc7b3bd75d8a2bb8e9534a73fd72fbc98fa421d42cdb5a54048303a405989bb6d2d22e9ad64cbffd3aa9b6eab97636fa098b8e65a6eb002ed1d3419d0457bfc98dc72f1937569ce44515a7dfc565ddbdb148643ebbe34f542a6aed8fd92b46961dc3793e)
7. Вставьте скопированный ранее токен в полеTelegram bot token.\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-FZifAQLg7U/d0d8cee3955a689e47e7d106fa2840ff7f100020b45087729b7d189684eb377bc4d76ef7032eb62f6f620c6b4b6f431b72d7be683224db539fcb3c80c117a98563bd471f0704ce300e5e6673758326aaec4af3cc2f1142cad59af6c89bd552c6972bcb59)
8. По необходимости переключите тумблер Receive service messages, чтобы получать Сервисные сообщения канала.\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-_o9HpC8uZP/01e77cce8b84dc0e99e01bc7b447c4e8f284a08d1246b248ac1143884e3775fd35d958653bdd46f314280d8d69d6ba208f970b86c73004a7a01be38fecab4f5693a3b0219e9491c70caad1ac6d73b03015651e0e37ea7216c9c9249ff5ca8c8cd4c7f504)
9. Для сохранения Канал Проекта без его активации, нажмите кнопку CREATE.\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-5qNYmviuKT/e34a832326b1dada0664c734d9e46dc5c3bea4e59bc80fcf75ee4b1e4ce25a910e5eb82adc47dfd4b00938efbae32a14eceb28e009f88c26442f17a44fee7ab48943d646480b08a05d2efee8abbd0e34b9356033a0cebf0557dc400f10283f8732fe908f)
10. Для сохранения и активации Канал Проекта, нажмите кнопку CREATE & ACTIVATE.\
    ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-HCF6_5K1Zf/b75ae0855420c8bbc8cc3f1ffe7ed5399dbc641cb7cf656b4ec77c5b9aff1b9e8241c7ce9c653c9c5e78ac0c9ac2ce637c04ddbe111c339be65ef4603803b4ac67715d7995aa3a9a40f513a7a7d540fd2476ec410d41ae2293aea6360ec04c435ee2208f)
11. 1. Канал Проекта будет сохранен и активирован, если:
    2. 1. Агент обучен;
       2. токен в поле Telegram bot token уникален (нет ли активных Канал Проекта того же типа с тем же значением в поле);
       3. будет доступен адрес Канал Проекта;
       4. удастся зарегистрировать вебхук канала.
    3. Канал Проекта будет сохранен, но не активирован, если одно или больше условий не будут выполнены.
12. Для отмены создания Канал Проекта нажмите кнопку CANCEL.\
    ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-Y_mHS23rKn/eb907f19099ba5785c2efe73e64b1fc092bc8cc98e320fc11801e6fcbf3bb2ccf2e51900f28080b3ce8cfb7f12d8b7b3d5fef78df226c542fe48b1562f4f957da3ab53c8be4d5da18a4cb32bca9e4d6238d3ba8c802e63f4a6af80fd932a24a2a657dcfd)

## Редактирование и удаление Канала Агента

Для редактирования Канал Проекта, необходимо кликнуть по его иконке на карточке Агента.\
![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-4VWnkabb3_/1eef308ec7d70be8159bb2fd42fc70f8942930de56b266f12bf2e5c2ada83788f255974d316d1f2795bbb168e649d027874dc1d2693301f4349570720cc38f495d8a2cd8b140c8e486c7bf1847c7e27314974c84f73f2012d57b21e71e209ab5145a2a65)

1. Чтобы отредактировать значение в любом поле, кликните по полю и впишите новое значение.
2. Чтобы применить изменения к активированному Канал Проекта, нажмите кнопку APPLY.\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-tJZV017Nsl/49040188edabe1fcac4a9df380756d9197221462d5d6135ef5fd00b45b26fe9a01bbf2089030cf3de19c9e181f97b77595241f76b4887872399d3807564a99c333aaabc48e273a46f4f5850aad3c05bc9bfa7edcabe923dbbe5869c2c4f510e21846270b)
3. 1. Изменения будут применены, если:
   2. 1. Агент обучен;
      2. токен в поле Telegram bot token уникален (нет ли активных Канал Проекта того же типа с тем же значением в поле);
      3. будет доступен адрес Канал Проекта;
      4. удастся зарегистрировать вебхук канала.
   3. Изменения не будут применены, если одно или больше условий не будут выполнены.
4. Чтобы деактивировать  Канал Проекта, нажмите кнопку DEACTIVATE.\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-uiGAALI5ue/e76edc85360ccc1a0d6a0ab8277f14ff5dcdf5dc4125e9cd5d91cacddeef9a8ffe5cc53500d79dac087fa749e0f6fbb6a722cce1fcc781fad77c0ccf328c70e0ebea7c6b17a5e8c73d87c2646812668a046c2a9e6fbe269af9f56683591329b83d15d87c)
5. Чтобы применить изменения к деактивированному Канал Проекта, нажмите кнопку SAVE.\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-p-Pkx1zpFM/b3d4dd73ed9724df77a3c85faf2a66b21fdbac0e3f9c0b4f0c31c76abcff8716297f408388eb14ae871d3ef2b13614ce52d3291a122cf64fec23a6493c44195f66d85b58db917a1245d395b0b7d4ebb27ac10a3e44d8711bdabc91e2c0ced4ae87362455)
6. Чтобы применить изменения и активировать Канал Проекта, нажмите кнопку SAVE & ACTIVATE.\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-eYJE2IPpfK/20607fda9b62d31a04d91a33a88d3ba88372e3ec7ffd51287afc94b85695682349c85eccc15a257ecd549003ab7f987937dca8993fa152ea9c4f376d5e178d8378234861a1c9bace317c4a05eb3c1b6a39a3937fe222cf441ee77ced4c626edb7d698fa7)
7. 1. Изменения будут применены и Канал Проекта будет активирован, если:
   2. 1. Агент обучен;
      2. токен в поле Telegram bot token уникален (нет ли активных Канал Проекта того же типа с тем же значением в поле);
      3. будет доступен адрес Канал Проекта;
      4. удастся зарегистрировать вебхук канала.
   3. Изменения будут применены, но Канал Проекта не будет активирован, если одно или больше условий не будут выполнены.
8. Чтобы отменить внесение изменений, нажмите кнопку CANCEL.\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-syxh_mEGmV/e5c1a29e97748e11ca804c9eafde7304562b7f9eb0cececd9a4f892e6e6d7deea4f34922b6994828762b15d7dc03ae3911e43ecb227a7f6853da4245498acd0acb2f3bc900a3ba2ed9f687faa5b29e7f365ab8c8d3d51cedc40a5deb087c4de42741c7af)
9. Чтобы удалить Канал Проекта, нажмите кнопку DELETE.\
   ![image.png](https://codahosted.io/docs/_pM7PjYCmj/blobs/bl-19Ve2TAiHB/cda502d493dc38b2142b70adfa6229b24b1b30433e3968f2f74fe23b1a9bf12f153a9b167bd0c695b2a3484cbfeeb5bfeedfcc1d3e2a61f2dce07432a9ba07b42ba07ea24bbfb4637e571c061dedeada752e90e1f8318c924c0338358e42940ce652b5f4)

## Общение

### Общение в групповых чатах Telegram

1. Бот может быть добавлен в групповой чат Telegram и обрабатывать сообщения и события этого чата.
2. Чтобы Бот обрабатывал все сообщения, отправляемые в группу, необходимо обеспечить ему доступ ко всем сообщениям, выключив настройку Group Privacy:
3. 1. Перейти в BotFather;
   2. Написать команду /mybots;
   3. Выбрать нужного Бота;
   4. Перейти в Bot Settings → Group Privacy;
   5. Выбрать Turn off.
4. При включенной настройке Group Privacy, чтобы отправить сообщение, которое будет обработано Агентом и записано в client\_message, нужно либо ответить на сообщение Бота (reply), либо написать свое сообщение после символа / .
5. После каждого обработанного сообщения, в Канальные переменные будут установлены данные участника группы, отправившего сообщение.
6. Также, Агент обрабатывает события о добавлении в групповой чат новых пользователей. При этом в переменную client\_message будет записана строка вида “telegram\_chat\_new\_member: telegram\_user\_id|telegram\_username|telegram\_first\_name|telegram\_last\_name” .
7. При обновлении группы до супергруппы генерируется новый идентификатор группы и Агент не может отправить сообщение.

| Сообщение                                           | Конечный канал | Client message                                                                         | Описание                                                                                                                                 |
| --------------------------------------------------- | -------------- | -------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Пользователь группы телеграм присоединился в группу | Telegram       | Строка: telegram\_chat\_new\_member: {user.id}\|{user.first\_name}\|{user.last\_name}  | При присоединении пользователя к группе Telegram в Контекстная переменная client\_message передается сообщение в соответствии с шаблоном |
| Пользователь группы телеграм покинул в группу       | Telegram       | Строка: telegram\_member\_left\_chat: {user.id}\|{user.first\_name}\|{user.last\_name} | При выходе пользователя из группы Telegram в Контекстная переменная client\_message передается сообщение в соответствии с шаблоном       |

О том, что такое сервисные сообщения и как активировать их передачу из Конечный канал: Принцип вывода Агента в различные каналы

| Переменная                  | Конечный канал | Переменная в запросе из канала | Примечания                                                                                                         |
| --------------------------- | -------------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------ |
| channel\_visitor\_id        | Telegram       | <p>id<br></p>                  | При ответе на сообщение бота в групповом чате, в переменную записывается id ответившего юзера                      |
| channel\_conversation\_id   | Telegram       | <p>id<br></p>                  |                                                                                                                    |
| channel\_visitor\_firstname | Telegram       | first\_name                    |                                                                                                                    |
| channel\_visitor\_lastname  | Telegram       | last\_name                     |                                                                                                                    |
| channel\_visitor\_phone     | Telegram       |                                |                                                                                                                    |
| channel\_visitor\_email     | Telegram       |                                |                                                                                                                    |
| channel\_visitor\_account   | Telegram       | username                       |                                                                                                                    |
| channel\_visitor\_auth      | Telegram       |                                |                                                                                                                    |
| channel\_visitor\_source    | Telegram       |                                |                                                                                                                    |
| channel\_message\_id        | Telegram       |                                |                                                                                                                    |
| channel\_reply\_to          | Telegram       | reply\_to\_message.text        | Если Сообщение собеседника не является ответом (Reply) на сообщение Бота в Telegram, то переменная остается пустой |

| Функционал общения                                                             | Конечный канал | Доступность в канале | Примечания                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| ------------------------------------------------------------------------------ | -------------- | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| channel\_chat\_id                                                              | Telegram       | Да                   | Формат: channel\_visitor\_id\|telegram                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| Сообщения дойдут до собеседника, если агент напишет первый в существующем чате | Telegram       | Да                   |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| Перевод на оператора                                                           | Telegram       | Нет                  | В мессенджере нет такого функционала                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| Кнопки                                                                         | Telegram       | Да                   |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| Передача файлов в виде ссылок от Агента (Attachment)                           | Telegram       | Да                   | Файл будет передан ссылкой, если он не удовлетворяет требованиям Telegram к файлам данного типа.                                                                                                                                                                                                                                                                                                                                                                                                                      |
| Передача файлов в виде файлов от Агента (Attachment)                           | Telegram       | Да                   | [Telegram может принимать и предавать собеседникам вложения типа “file” только форматов gif, pdf и zip. Возможна поддержка других форматов, но Telegram её не гарантирует.](https://core.telegram.org/bots/api#sending-files)При попытке передать изображение в слоте Attachment, если указана ссылка на файл из Telegram, то файл придет в виде ссылки, а не изображения                                                                                                                                             |
| Получение файла от Собеседника в сценарий                                      | Telegram       | Да                   | В client\_message записывается строка вида file:Тип файла\|ID файла\|Ссылка на файл, например, file:photo\|HgYjJJGYuxkBAAMNYK1eZR1fbZv-KQ09Omcsz9A8AjwAAsSzMRtug3FJ079jiwXcvo-egdKiLgADAQADAgADeAADE7gCAAEfBA\|<https://api.telegram.org/file/bot1815753186:AAH\\_LtRWy\\_FSDAGFgstlTaQdkHHIFHV3xGI/photos/file\\_0.jpg> . При этом, файл будет доступен по ссылке в течение 24 часов. Для получения файла в дальнейшем потребуется обновить ссылку на файл, используя [Telegram API](https://core.telegram.org/api). |
| Получение геолокации от собеседника в сценарии                                 | Telegram       | Да                   | В client\_message записывается строка вида location:Широта\|Долгота, например, location:83.000000\|54.000000                                                                                                                                                                                                                                                                                                                                                                                                          |
| Доставка сообщений более 1000 символов от Агента до Собеседника                | Telegram       | Да                   | Допускаются сообщения до 4096 символов                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| Использование маркдауна                                                        | Telegram       | Да                   | Работает в соответствии с [документацией](https://core.telegram.org/bots/api#markdownv2-style)                                                                                                                                                                                                                                                                                                                                                                                                                        |
| Рассылки с помощью Notification                                                | Telegram       | Нет                  |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |

\ <br>
