Как вывести информацию из сущности CRM в чат

Для вывода информации из сущности CRM в чат можно воспользоваться двумя способами:
  • Метками
  • Переменными

И метки и переменные имеют уникальный код, который вставляется в сообщение и который чат-бот потом меняет на соответствующую ему информацию.



Метки зависимы от сущностей, привязанных к чату и поддерживают только следующие типы сущностей:
  • Лид
  • Компания
  • Контакт

Для одной метки можно настроить вывод информации сразу из трёх доступных типов сущностей CRM, если из трёх типов к чату будет привязана только одна сущность - чат-бот выведет в чат информацию из неё. Если будут привязаны два и более типа - чат-бот выведет в чат информацию из последнего по списку доступного типа, так как приоритет в порядке убывания: компания имеет приоритет над лидом, контакт имеет приоритет над компанией (например, если к чату будет привязаны и компания и контакт, то чат-бот выведет информацию из контакта, если будут привязаны и лид и контакт, то информация также будет выведена из контакта).
Метки мгновенно фиксируют изменения в сущностях CRM. Метки нельзя проверять в условиях и записывать их значения в другие сущности CRM. Также они не поддерживают сложные типы полей, вроде привязки к элементам списка.

Переменные более гибкие и поддерживают следующие типы сущностей: 
  • Лид
  • Компания
  • Контакт
  • Сделка

  • Чтобы вывести информацию с помощью переменной, сначала нужно записать её туда. После этого сохранённую информацию можно выводить в чат, проверять в условиях, сохранять в другие сущности CRM. Если сущность CRM, из которой было получено значение, будет изменена или удалена - переменная не изменится, если её не перезаписать самим.

    Сохранить информацию из сущности CRM в переменную можно с помощью действия "Заполнение переменной":
    • Переменная - указывается переменная в которую нужно записать информацию (обратите внимание, что переменная, также как и поле сущности CRM имеет различные типы, поэтому не стоит пытаться записать текст в переменную с типом "число", но можно записать число в переменную с типом "строка").
    • Если переменная не пуста - если вы хотите обновить переменную, укажите значение "перезаписать", иначе укажите значение "оставить старое".
    • Тип заполнения - укажите "значение".
    • Заполнить из - укажите "заполнить из CRM".
    • Сущность CRM - укажите тот тип сущности CRM из которого вы хотите получить информацию.
    • Свойство - укажите поле выбранного типа сущности CRM.
    • Взять сущность из чата/переменной - если вы уверены, что нужная вам сущность привязана к чату, то можете указать "из чата", если же сущность не привязана к чату или у вас несколько сущностей (как часто бывает со сделками), то укажите переменную в которую вы сохранили нужную вам сущность.



    Сохранить нужную сущность CRM в переменную можно с помощью действия "Поиск в базе CRM", как работать с ним вы можете прочитать в инструкции.
    Или вы можете сами создать сущность, как это сделать вы можете прочитать здесь.


    Также можно сохранить сущность CRM в переменную с помощью того же действия "Заполнение переменной".

    Переменная
    Указывается переменная в которую нужно записать информацию (в данном случае у неё должен быть тип "Связь с сущностью CRM").

    Если переменная не пуста
    Если вы хотите обновить переменную, укажите значение "перезаписать", иначе укажите значение "оставить старое".


    Тип заполнения
    У вас несколько вариантов.

    "Значение" + Заполнить из "указать значение"
    Подойдёт вам в том случае, если вы знаете конкретную сущность и она для всех ваших клиентов одинаковая.



    "Значение" + Заполнить из "заполнить из CRM"
    Подойдёт вам в том случае, если нужная вам сущность сохранена в одном из полей уже известной вам сущности:
    • Сущность CRM - укажите тот тип сущности CRM к которому привязана нужная вам сущность CRM.
    • Свойство - укажите поле выбранного типа сущности CRM в котором хранится нужная вам сущность CRM (например, это может быть поле "Компания" у контакта или любое поле с типом "Привязка к элементам CRM").
    • Взять сущность из чата/переменной - указываете откуда брать сущность CRM к которой привязана нужная вам сущность CRM.


    "Из чата"
    Подойдёт вам в том случае, если нужная вам сущность CRM уже привязана к чату.


    "С максимальным ID"
    Подойдёт вам в том случае, если нужная вам сущность только что создана, чем новее сущность, тем больше у неё ID.


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





    Предположим, что у нас простая задача: нам уже известен клиент, его данные записаны в контакт, и мы хотим поприветствовать его по имени.

    Для этого нам нужно вывести имя из контакта. Если контакт привязан к чату, можем сделать это с помощью меток.

    Создадим новую метку с кодом "NAME" и с названием "Имя". Так как мы работаем с контактами, а не лидами, то укажем у контакта нужное нам поле "Имя".



    Далее в нужном нам узле в действии "Отправить текст" укажем код этой метки.



    И если контакт будет привязан к чату в тот момент, когда сработает данный узел - чат-бот вместо кода выведет имя из контакта.





    Тоже самое мы можем сделать с помощью переменной.

    Создадим аналогичную переменную, с кодом "NAME" и названием "Имя". Тип данных выбираем "Строка".



    Теперь нужно указать, что именно мы храним в этой переменной. Делаем это с помощью действия "Заполнение переменной":
    • Переменная - указывается нашу переменную "Имя".
    • Если переменная не пуста - перезаписываем.
    • Тип заполнения - указываем "значение".
    • Заполнить из - указываем "заполнить из CRM".
    • Сущность CRM - указываем "контакт".
    • Свойство - укажите поле контакта "Имя".
    • Взять сущность из чата/переменной - в нашем случае сущность привязана к чату, поэтому указываем "Взять сущность из чата".



    Далее в действии "Отправить текст" вставляем код нашей переменной. Обратите внимание, что все переменные имеют префикс "VAR."



    Получаем простой узел.



    Результат получаем аналогичный.



    Преимущество использования переменных в данном случае может быть в возможности использовать условие.

    Например, контакт у нас есть, но мы знаем телефон, но не знаем имя.

    Тогда мы добавить два действия "Отправить текст".

    Первому, в котором мы указываем имя, добавить условие "Имя заполнено".



    Второму аналогичное условие, но с отрицанием.



    И теперь, если при старте диалога имя клиента не известно - чат-бот попросит его представиться, иначе поприветствует по имени.





    Предположим, у нас задача посложнее. Нам также известен клиент, но у него несколько сделок. Каждая сделка - это товар. Клиент хочет узнать информацию о товаре по трек номеру.

    Для начала спросим у него трек номер. Для этого нам подойдёт тип ответа "ждать произвольного ответа пользователя". В действии "Отправить текст" просим клиента указать трек номер товара, затем в строковую переменную "Трек номер" сохраняем полученный ответ и переводим в другой узел.



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



    Далее с помощью действия "Заполнение переменной" сохраняем название товара:
    • Переменная - указывается нашу переменную "Имя".
    • Если переменная не пуста - перезаписываем.
    • Тип заполнения - указываем "значение".
    • Заполнить из - указываем "заполнить из CRM".
    • Сущность CRM - указываем "сделка".
    • Свойство - укажите поле контакта "Название".
    • Взять сущность из чата/переменной - в нашем случае сущность сохранена в переменную, поэтому указываем нашу переменную "Сделка".



    И осталось уточнить у клиента, тот ли товар он искал.



    В итоге получаем следующие узлы.



    И так с помощью переменных мы можем легко выводить данные сразу из нескольких сущностей CRM.