Передача параметров при запуске бота/диалога

Последние изменения: 02.03.2023

Часто при старте диалога необходимо передать в Sherlock Platform ряд параметров клиента, определяющих дальнейшую логику работы. Например, такими параметрами могут быть email или идентификатор клиента, источник клиента, язык, а также другие параметры.

Формат передачи входного параметра зависит от канала и описан в статье Формат ссылок для запуска ботов и передача входных параметров (Deeplink). В случае чата на сайт необходимые значения указываются в секции params переменной json, используемой для инициализации чата. Например, ClientADName в примере ниже:

{
        params:{ 'ClientADName': 'Test' },
        settings: {
                channelsIds: ["<Guid 1>", "<Guid 2>"],
        }
 }

 

Входные параметры далее передаются в контекст бота по следующим правилам:

  • Входной параметр мессенджера сохраняется в переменной System.Deeplink

  • Входные параметры чата на сайт сохраняются в соответствии с заданным именем. Например, для кода выше ClientADName

  • При повторном переходе в мессенджер значение переменной System.Deeplink обновляется

Дополнительно в Sherlock Platform реализованы следующие механизмы:

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

  2. Для входного параметра в мессенджерах можно передавать json как строку, кодированную base64. Такая строка будет расшифрована и реквизиты json сохраняются в переменные контекста бота. Например, для json {"e":"[email protected]","id":"123"} в контексте бота будут созданы переменные System.Deeplink.e и System.Deeplink.id со значениям [email protected] и 123 соответственно.

  3. При необходимости передавать значительное число параметров в мессенджер необходимо сохранить параметры через API по аналогии с логикой работы чата на сайт. Для этого используется контроллер Widget.

 

Помогла ли вам статья?