Вы находитесь здесь:
Использование потока окон для передачи вводных данных в динамический поток WhatsApp
Поток окон может собирать данные клиентов и безопасно передавать их в переменные. Эти переменные потом могут служить вводными данными для динамического потока WhatsApp, созданного посредством компонента службы сообщений форм на основе Apex. Чтобы добавить персонализированное содержимое к сообщению, в компоненте службы сообщений форм на основе Apex добавьте динамические ссылки на эти вводные данные. Например, для планирования ветеринарной встречи поток окон собирает определенные сведения, например, тип животного и проблему, и динамически передает эти сведения в компонент службы сообщений форм на основе Apex.
Требуемые версии
| Просмотр поддерживаемых версий. | |
Данная статья применяется к:
|
Расширенные каналы WhatsApp, объединенный WhatsApp |
Данная статья не применяется к:
|
Расширенный внутрипрограммный чат, расширенный веб-чат, стандартный и расширенный Facebook Messenger, стандартные и расширенные SMS-сообщения, расширенные сообщения Apple для бизнеса, расширенная LINE и собственный канал |
| Необходимые полномочия пользователя | |
|---|---|
| Для создания компонентов службы сообщений: | Настройка приложения И просмотр настроек и конфигурации ИЛИ Системный администратор |
| Для отправки и получения сообщений в службе сообщений: | Агент службы сообщений |
При создании компонента службы сообщений форм на основе Apex по умолчанию доступны следующие стандартные параметры ввода.
| Параметр | Описание |
|---|---|
FormData |
Сохраняет вводные данные, переданные в поток. Данные сохраняются в виде строки JSON пар ключ-значение. Чтобы ссылаться на эти данные, необходимо определить структуру данных в модели данных. Структура модели данных должна соответствовать структуре JSON. Доступ к этим данным можно получить посредством Apex или потока окон. |
FormEntryScreenId |
Сохраняет код окна записи, являющегося первым окном, которое видит конечный пользователь службы сообщений. |
Эти стандартные параметры можно найти во вкладке «Параметры» раздела «Сведения о компоненте».
Чтобы помочь вам понять, как использовать эти параметры и поток окон для передачи вводных данных, рассмотрим пример.
-
Откройте формат потока компонента службы сообщений форм на основе Apex.
-
В формате потока нажмите «Управление данными», чтобы определить модель данных для всех вводных данных, передаваемых из параметра FormData.
Например, параметр FormData сохраняет эти вводные данные.
{“FirstName”:“Albert”,“LastName”:“Costa”,“isStudent”:“true”} -
Чтобы добавить поле в модель данных, нажмите «Добавить поле» и настройте его свойства.
Выполните это действие для каждого поля в параметре FormData. Чтобы создать структуру, выберите тип данных «Объект» для поля и добавьте вложенные поля.

- После завершения определения модели данных сохраните ее.
-
В формате потока нажмите «Управление данными», чтобы определить модель данных для всех вводных данных, передаваемых из параметра FormData.
-
Чтобы использовать значение из поля модели данных в свойстве потока, добавьте динамическую ссылку.
-
Откройте формат потока и найдите свойство, для которого нужно использовать динамическую ссылку.
Например, можно добавить динамическую ссылку для поля «Текстовое содержимое» для элемента окна «Текст».
- В поле «Тип» выберите «Динамическая ссылка».
-
В поле «Выбрать справочное поле» выберите поле модели данных.

Динамические ссылки могут извлекать данные из полей модели данных или полей ввода, определенных в окне.
-
На холсте предварительно просмотрите динамическую ссылку.

-
Откройте формат потока и найдите свойство, для которого нужно использовать динамическую ссылку.
-
Для передачи данных в компонент службы сообщений создайте поток окон.
Поток окна может собрать данные из сеанса службы сообщений и использовать их в компоненте службы сообщений форм на основе Apex. Чтобы проиллюстрировать принцип работы, создадим образец потока окон.
-
Определите переменные потока окна.
Переменная Значение sessionIdСохраняет код записи сеанса службы сообщений. initialDataСохраняет вводные данные для формы на основе Apex. Поля в этой строке JSON должны соответствовать именам полей, добавленным в модель данных. initialScreenIdСохраняет начальный код окна для формы на основе Apex. Это первое окно, которое видит конечный пользователь службы сообщений. meuNameСохраняет имя конечного пользователя службы сообщений. itemsЭта переменная коллекции сохраняет список элементов. -
В потоке окон добавьте данные действия в следующем порядке. Чтобы извлечь данные из объекта Salesforce, добавьте действие получения записей. Чтобы назначить значения переменным окна, добавьте действие «Назначение».
Действие Описание Действие getSession Get Records Получите сеанс службы сообщений на основе кода сеанса. Вы можете получить соответствующие данные из этого сеанса службы сообщений. В этом случае он извлекает и сохраняет значения полей Id и MessagingEndUserId. Действие getMEU получения записей Получите запись пользователя службы сообщений на основе MessagingEndUserId. Действие setMEUName Assignment Задайте переменной meuNameзначение поля «Имя пользователя службы сообщений» в записи пользователя службы сообщений.Действие getDynamicFlowItem получения записей Получите все записи DynamicFlowItem из объекта DynamicFlowItem, сохранив поля кода, ItemId__c и itemTitle__c в переменной коллекции items.Действие GenerateJson Apex Преобразует вводные данные из переменных itemsиmeuNameв формат JSON. Поля объекта JSON соотносятся с полями в модели данных потока. Это действие основано на классе Apex. См. пример класса Apex после этой таблицы.Действие setData Assignment Задайте переменной InitialDataзначение созданного действия JSON.Этот класс Apex трансформирует структурированные вводные данные (имя пользователя и список записей Salesforce) в одну строку JSON. Эта строка JSON потом используется для передачи вводных данных в компонент службы сообщений форм на основе Apex.
public class FlowJSONBuilder { // 1. Input parameters public class FlowInput { @InvocableVariable(label='User Name' required=true) public String meuName; // CHANGE: Use List<SObject> instead of List<DynamicFlowItems__c> to avoid compile error @InvocableVariable(label='Flow Items' required=true) public List<SObject> items; } // 2. Output parameters public class FlowOutput { @InvocableVariable(label='Generated JSON') public String jsonString; } // 3. Internal Wrapper classes public class JSONStructure { public String greeting; public List<ItemWrapper> items; } public class ItemWrapper { public String id; public String title; } // 4. Main Method @InvocableMethod(label='Generate Custom JSON' description='Builds the JSON string from Flow items') public static List<FlowOutput> generateJson(List<FlowInput> requests) { List<FlowOutput> outputs = new List<FlowOutput>(); for (FlowInput request : requests) { FlowOutput output = new FlowOutput(); JSONStructure jsonRoot = new JSONStructure(); jsonRoot.greeting = 'Hello ' + request.meuName + '!'; jsonRoot.items = new List<ItemWrapper>(); if (request.items != null) { // Loop through generic SObjects for (SObject genericRec : request.items) { // CAST the generic SObject to your specific Custom Object DynamicFlowItem__c rec = (DynamicFlowItem__c)genericRec; ItemWrapper item = new ItemWrapper(); item.id = rec.itemId__c; item.title = rec.itemTitle__c; jsonRoot.items.add(item); } } output.jsonString = JSON.serialize(jsonRoot); outputs.add(output); } return outputs; } } -
Добавьте действие «Окно» в поток окон, а потом перетащите компонент «Расширенное сообщение» на экран.

-
Чтобы указать вводные данные, задайте данные свойства компонента «Расширенное сообщение».
Свойство Значение Код сеанса службы сообщений Выберите sessionId, переменную потока окон, содержащую код сеанса.Имя компонента службы сообщений Выберите имя созданного компонента службы сообщений форм на основе Apex. Данные формы Apex Выберите « initialData», переменную потока окон, содержащую вводные данные.Код окна записи формы Apex Выберите « initialScreenId», переменную потока окон, содержащую начальный код окна.При выполнении действие окна вызывает компонент службы сообщений форм на основе Apex и передает ему эти вводные данные.
-
Сохраните и активируйте поток окон.

-
Определите переменные потока окна.
-
Чтобы разрешить сервисному представителю выполнение потока окон, встройте активный поток окон на страницу консоли обслуживания.
Например, добавьте компонент «Поток» на страницу записи сеанса службы сообщений.

Во время сеанса службы сообщений, чтобы запустить поток окон со страницы, сервисный представитель может нажать «Далее».
Чтобы вставить компонент службы сообщений потока в разговор с клиентом, сервисный представитель может нажать «Вставить сообщение».

Сервисный представитель потом может отправить сообщение клиенту.



