Перейти к основному контенту

Deep Linking

В контексте чат-ботов для мессенджеров и социальных сетей смысл диплинка заключается в создании унифицированного идентификатора ресурса (URI), который ссылается на определенный диалоговый сценарий в чат-боте, а не в простом запуске чат-бота сначала.

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

В цифровом пространстве deep link можно использовать, например, для размещения на рекламных баннерах в социальных сетях, на веб-сайте для отслеживания переходов с уникальных мест, передача токена авторизации в бот прямо с сайта, можно отправить в личном сообщении и многое другое.

Примеры внешнего связывания с вещами в физическом мире:

В каждом случае пользователь при открытии deep link попадет в чат-бот и активирует определенный сценарий, уникальный для этой конкретной ссылки. Через deep link в чат-бот можно передать параметры, например, токен заказа или идентификатор страницы, с которой совершен переход.

  • Прямая интеграция VK;
  • Прямая интеграция Telegram;
  • Интеграция через Umnico для WhatsApp;
  • Metabot Widget.

Так как диплинки напрямую взаимосвязаны с каналами, в первую очередь следует настроить каналы, соответствующие вашим требованиям, в боте.

 Что такое каналы и как их настраивать можно узнать в разделе Каналы

Далее можно перейти к созданию диплинков. Это можно сделать в верхнем меню  в разделе Настройки бота подразделе Ссылки.

image.png

В меню создания ссылок будут храниться все настроенные вами диплинки и ссылки других типов. Создание новой ссылки производится любой из кнопок Создать.

Снимок экрана 2023-03-01 113714.png

Перед вами откроется диалоговое окно со следующими полями:

image.png

  • Имя — имя диплинка, по которому на него можно будет ссылаться ({{ ^#имя_диплинка }} - макроссылка, поддерживаемая в Маршрутах);
  • Текст/приглашение — текст который будет добавлен к сообщению пользователя в мессенджере при его переходе по диплинку. Используется только для мессенджера - WhatsApp;
  • Тип ссылки — для создания диплинка из выпадающего списка следует выбрать пункт Ссылка на бот-скрипт (Deep Link);
  • URL — автозаполняемое поле, url ссылка диплинка.

После нажатия кнопки Создать диплинк появится в меню ссылок:

image.png

Последним этапом является добавление маршрута привязанного к диплинку.

Что такое маршруты и как их создавать вы можете узнать в разделе Маршруты

Особенности создания маршрута с диплинком:

image.png

  • Поле Обработка Deep Link должно быть активно;
  • В поле регулярное выражение следует ввести макроссылку диплинка в формате {{ ^#имя_диплинка }}.

Именно этот маршрут будет активирован при переходе пользователя по диплинку.

Использование deep link

Внешние мессенджеры

После создания ссылки автоматически создаётся уникальный хеш диплинка и происходит генерация URL для каждого мессенджера. Перечень мессенджеров определяется из того, к каким Каналам подключен данный бот.

В ссылке для Telegram бота — ( https://app.metabot24.com/deeplink/telegram/{имя-бота-telegram}/... ) {имя-бота-telegram} — следует заменить на соответствующий ID бота в мессенджере.

В ссылке для WhatsApp бота — ( https://app.metabot24.com/deeplink/whatsapp/{телефон-whatsapp}/... ) {телефон-whatsapp} — следует заменить на номер телефона в формате 79ххххххххх соответствующий боту.

После подстановки ссылку с данным URL можно размещать в интернете. При необходимости к ней можно добавить параметры, как это стандартно делается для http-ссылок.

image.png

После того, как пользователь отреагирует в мессенджере, все параметры, которые были указаны в диплинке будут сохранены в переменных соответствующего лида в разделе Лиды на платформе. Бот стартует со скрипта указанного в маршруте для диплинка.

Для использования полученных из диплинка параметров можно воспользоваться следующим кодом:

let jsonD = lead.getJsonAttr('sys_last_script_request_params');
let foo = jsonD.deeplink.foo;
let boom = jsonD.deeplink.boom;

lead.setAttr("foo", foo);
lead.setAttr("boom", boom);