Usted está aquí:
Agregar componentes de mensajería personalizados a un canal de mensajería externo
Personalice la superficie de Mensajería lista para su uso de modo que un agente de IA pueda representar componentes de mensajería personalizados (como formularios) en canales de chat heredados y de mensajería externa, junto con los formatos de respuesta listos para su uso.
Ediciones necesarias
| Ver ediciones compatibles. | |
Este artículo se aplica a:
|
WhatsApp mejorado, Facebook Messenger estándar y mejorado, SMS estándar y mejorado, mensajes de Apple Messages for Business mejorados, LINE mejorado y Bring Your Own Channel |
Este artículo no se aplica a:
|
Canales de Chat en aplicación o Chat web mejorados |
Personalice la superficie de Mensajería lista para su uso en Agentforce para que un agente de IA pueda representar componentes de mensajería personalizados, como formularios, junto con los formatos de respuesta listos para su uso. Defina un AiSurface personalizado que sustituya la superficie de Mensajería basada en archivos, mantenga los formatos de respuesta listos para su uso existentes y agregue una nueva entrada de AiResponseFormat para cada componente de mensajería que desee que utilice el agente.
Cuándo utilizar componentes de mensajería personalizados
Utilice componentes de mensajería personalizados cuando sirva a clientes a través de implementaciones de chat heredadas de Salesforce o canales de mensajería externos, como WhatsApp, Apple Messages for Business, Facebook Messenger o LINE, y desea que el agente devuelva componentes interactivos enriquecidos.
La superficie de Mensajería personalizable conserva los formatos de respuesta de Mensajería listos para su uso (MessagingChoices, MessagingChoicesWithImages, MessagingRichLink y MessagingTimePicker) y le permite agregar nuevos componentes encima de ellos.
Requisitos previos
- Canal de mensajería Service Cloud: Configure el canal de mensajería de Service Cloud apropiado para el chat heredado o su canal externo antes de configurar la conexión de mensajería personalizable.
- Versión de API de metadatos: Utilice la versión 66.0 o posterior para la recuperación e implementación.
- Agente existente: Un agente Agentforce que utiliza la conexión de mensajería basada en archivos (
SurfaceAction__Messaging). - Componente Mensajería: Un componente de mensajería implementado (como un formulario) cuyo Id. o nombre de desarrollador puede hacer referencia en el formato de respuesta.
Funcionamiento
La superficie de Mensajería predeterminada se entrega como una superficie basada en archivos (SurfaceAction__Messaging) que se envía con cuatro formatos de respuesta listos para su uso. Para agregar un componente de mensajería, sustituya la superficie basada en archivos por un AiSurface personalizable que haga referencia a esos mismos cuatro formatos de respuesta más su nuevo formato personalizado.
Tras la implementación, el agente utiliza los formatos de respuesta listos para su uso para opciones, vínculos enriquecidos y selectores de tiempo, y selecciona su formato personalizado cuando su descripción e instrucciones coinciden con la solicitud del cliente.
Configurar componentes de mensajería personalizados
Organice sus archivos de metadatos utilizando esta estructura y luego complete los pasos que siguen.
metadataToDeploy/
├── package.xml
├── aiResponseFormats/
│ └── Messaging_Form_Messaging_Component.aiResponseFormat
├── aiSurfaces/
│ └── {CustomMessagingSurface}.aiSurface
└── genAiPlannerBundles/
└── {YourAgentDevName}.genAiPlannerBundlePaso 1: Recuperar el GenAiPlannerBundle del agente
Recupere la GenAiPlannerBundle de su agente a través de la API de metadatos. Utilice este package.xml para la recuperación.
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>*</members>
<name>GenAiPlannerBundle</name>
</types>
<version>66.0</version>
</Package>La recuperación devuelve la GenAiPlannerBundle para su agente.
metadataToDeploy/
└── genAiPlannerBundles/
└── {YourAgentDevName}.genAiPlannerBundlePaso 2: Sustituir la superficie de Mensajería basada en archivos
En su GenAiPlannerBundle, busque la entrada de plannerSurfaces cuyo valor de surface es SurfaceAction__Messaging. Cambie surface a un nombre de desarrollador exclusivo para su superficie de Mensajería personalizable (por ejemplo, CustomMessagingSurface). Deje surfaceType establecido como Messaging.
<?xml version="1.0" encoding="UTF-8"?>
<GenAiPlannerBundle xmlns="http://soap.sforce.com/2006/04/metadata">
<!-- Other agent configuration -->
<plannerSurfaces>
<adaptiveResponseAllowed>true</adaptiveResponseAllowed>
<callRecordingAllowed>false</callRecordingAllowed>
<surface>CustomMessagingSurface</surface>
<surfaceType>Messaging</surfaceType>
</plannerSurfaces>
</GenAiPlannerBundle>Este cambio separa la superficie de Mensajería basada en archivos y adjunta su superficie de Mensajería personalizable en su lugar.
Paso 3: Crear la superficie de mensajería personalizable
Cree una carpeta de aiSurfaces en su paquete de implementación. Dentro de él, cree un archivo denominado {the_unique_dev_name_from_step_2}.aiSurface. El nombre del desarrollador del archivo debe coincidir con el valor de surface que estableció en el Paso 2.
La superficie personalizable debe incluir los cuatro formatos de respuesta de Mensajería listos para su uso de modo que el comportamiento de Mensajería estándar siga funcionando.
<?xml version="1.0" encoding="UTF-8"?>
<AiSurface xmlns="http://soap.sforce.com/2006/04/metadata">
<description>Customizable Messaging connection</description>
<instructions>
<instruction>Do not use any of the SURFACE_ACTION__* response formats when none of the instructions below are met.</instruction>
<sortOrder>1</sortOrder>
</instructions>
<instructions>
<instruction>Do not use the below instructions when the response contains more than 10 choices.</instruction>
<sortOrder>2</sortOrder>
</instructions>
<instructions>
<instruction>Do not use any of the SURFACE_ACTION__Messaging* type formatting when the response contains only a single, text-only choice and does not include images or URLs.</instruction>
<sortOrder>3</sortOrder>
</instructions>
<masterLabel>Messaging</masterLabel>
<responseFormats>
<enabled>true</enabled>
<responseFormat>SurfaceAction__MessagingChoices</responseFormat>
</responseFormats>
<responseFormats>
<enabled>true</enabled>
<responseFormat>SurfaceAction__MessagingChoicesWithImages</responseFormat>
</responseFormats>
<responseFormats>
<enabled>true</enabled>
<responseFormat>SurfaceAction__MessagingRichLink</responseFormat>
</responseFormats>
<responseFormats>
<enabled>true</enabled>
<responseFormat>SurfaceAction__MessagingTimePicker</responseFormat>
</responseFormats>
<source>SurfaceAction__Messaging</source>
<surfaceType>Messaging</surfaceType>
</AiSurface>Para cada componente de mensajería personalizado que desee que utilice el agente, agregue una entrada de responseFormats que haga referencia al nombre del desarrollador de su AiResponseFormat personalizado.
<responseFormats>
<enabled>true</enabled>
<responseFormat>Messaging_Form_Messaging_Component</responseFormat>
</responseFormats>Paso 4: Crear el formato AiResponse personalizado
Cree una carpeta de aiResponseFormats. Dentro de él, cree un archivo denominado {FormatDevName}.aiResponseFormat para cada componente de mensajería personalizado.
Este ejemplo define un componente de mensajería de formulario. El campo input hace referencia a un componente de mensajería implementado por nombre de desarrollador (o Id.) utilizando el esquema de plantilla de MessageDefinition. Establezca input_strategy en use_template de modo que el agente rellene la plantilla en vez de generar JSON sin procesar.
<?xml version="1.0" encoding="UTF-8"?>
<AiResponseFormat xmlns="http://soap.sforce.com/2006/04/metadata">
<description>A response action. Use this when the user wants to create a case. The user is presented with rich UI.</description>
<input>{"template":{"messageType":"FormMessage","id":"{{ uuid4() }}","form":{"formatType":"MessageDefinition","messageDefinitionNameOrId":"Create_Case_Form"}},"input_strategy":"use_template"}</input>
<instructions>
<instruction>Always use this response format to create a case.</instruction>
<sortOrder>1</sortOrder>
</instructions>
<masterLabel>Messaging Form Messaging Component</masterLabel>
</AiResponseFormat>Esquema de plantilla de formulario
Utilice este esquema de plantilla para componentes de mensajería de formulario. El campo input del AiResponseFormat debe ser una cadena de una sola línea codificada con JSON. La versión ampliada aquí se muestra solo para lectura.
{
"template": {
"messageType": "FormMessage",
"id": "{{ uuid4() }}",
"form": {
"formatType": "MessageDefinition",
"messageDefinitionNameOrId": "Create_Case_Form"
}
},
"input_strategy": "use_template"
}| Campo | Descripción |
|---|---|
template.messageType |
El tipo de componente de mensajería. Utilice FormMessage para componentes de formulario. |
template.id |
Un identificador exclusivo para el mensaje. Utilice {{ uuid4() }} para generar uno en tiempo de ejecución. |
template.form.formatType |
El tipo de referencia para el componente. Utilice MessageDefinition para hacer referencia a un componente de mensajería implementado. |
template.form.messageDefinitionNameOrId |
El Id. o nombre del desarrollador del componente de mensajería implementado que representa el agente. Sustitúyalo por el valor de su componente. |
input_strategy |
Establezca en use_template de modo que el agente rellene la plantilla en vez de generar JSON sin procesar. |
Paso 5: Crear el archivo package.xml
Cree un archivo de package.xml en la raíz de su paquete de implementación que declare los tres tipos de metadatos.
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>*</members>
<name>AiResponseFormat</name>
</types>
<types>
<members>*</members>
<name>AiSurface</name>
</types>
<types>
<members>*</members>
<name>GenAiPlannerBundle</name>
</types>
<version>66.0</version>
</Package>Paso 6: Implementar
Implemente los metadatos con Salesforce CLI.
sf project deploy start --manifest metadataToDeploy/package.xmlTambién puede implementar con su herramienta de API de metadatos preferida. Si implementa de forma incremental, implemente entidades de AiResponseFormat antes que entidades de AiSurface, ya que la superficie hace referencia a los formatos de respuesta.



