Suite | Cualquier plan |
Los metadatos de mensajería usan los campos de conversación y las etiquetas de conversación (que también se conocen como campos de ticket personalizados y etiquetas de ticket personalizadas) para obtener más información acerca del problema de soporte o del producto o servicio. Los metadatos también se pueden usar para un mejor desvío de los tickets en el espacio de trabajo de agente creando disparadores en el Centro de administración. Los metadatos de mensajería se pueden agregar a los tickets y también al formulario "Enviar una solicitud" del centro de ayuda para que los usuarios finales puedan ver los campos personalizados.
También se pueden usar campos y etiquetas de conversación para enviar metadatos de mensajería a los agentes desde el Web Widget y los SDK de Zendesk a través de las API del lado del cliente. Esto permite transferir automáticamente al agente la información relevante, como el SKU del producto, el número de confirmación o la ID del pedido. Estos metadatos adicionales ayudan a proporcionar un contexto completo y mejorar la calidad del soporte que se ofrece.
- Mejor contexto para los agentes. Los agentes confían en que la información contextual que aparece en la vista del espacio de trabajo de agente es correcta. Si faltan datos o si la información proporcionada por los usuarios tiene errores se pueden producir problemas. Si la información relevante se proporciona mediante programación, se reducen los errores y el tiempo necesario para solicitar información.
- Desvío mejorado. Los negocios dependen de la información de los campos y las etiquetas del ticket para desviar el ticket al grupo de agentes correcto rápidamente. Si se proporcionan datos más completos, el desvío de tickets al grupo de agentes correcto es más eficiente.
- Experiencia óptima para los usuarios finales. Los usuarios finales no tendrán que volver a ingresar datos que ya existen en el lado del cliente.
- Flujos de automatización mejorados. Los generadores de bots pueden aprovechar los datos adicionales para ofrecer una mejor experiencia a los usuarios finales.
- Paridad de funciones con los SDK de Support del Web Widget clásico, que son compatibles con los campos y etiquetas de ticket.
Información general de los metadatos de mensajería
Supongamos que tiene una tienda en Internet y que un usuario final está mirando unos zapatos específicos. En esta página se encuentran el SKU del producto y las opciones de tamaño y color. Si el usuario final tiene preguntas acerca de los zapatos, es necesario contar con la información anterior para que el agente sepa cuál es el zapato exacto en el que está interesado el usuario final. Sin campos de ticket personalizados, el agente real o el agente IA tendrá que solicitar toda esa información al usuario final antes de responder la pregunta.
Con los metadatos de mensajería, puede obtener esos datos mediante programación desde la página, pedirle al usuario final que rellene un formulario, o bien hacer una combinación de las dos cosas. Por ejemplo, a través de un campo de ticket personalizado, puede utilizar una API para obtener el SKU del producto desde la página del producto. Como el usuario final puede haber seleccionado o no un color y un tamaño, un agente IA (por ejemplo) puede solicitar esos datos usando campos de ticket personalizados y mostrar los valores predeterminados. El usuario final puede actualizar los valores o dejar los valores predeterminados.
- Los usuarios finales no tienen que ingresar manualmente los datos que ya existen en la página que están visitando. Por ejemplo, si el nombre de un usuario final está en un formulario de devolución y la ID del pedido ya existe en esa página, puede obtener ese número mediante programación en lugar de hacer que el usuario final lo escriba.
- Se puede agregar contexto adicional de manera automática para asistir al agente. Por ejemplo, si un usuario final tiene abierto su carrito de compras, se puede establecer un campo de conversación “Carrito de compras activo” en verdadero.
- Se puede controlar la ruta que sigue un agente IA. Por ejemplo, si un usuario final se encuentra en una página para Marca A, se puede establecer eso en un campo para que el bot atraviese la ruta de Marca A.
Configurar para los metadatos de mensajería
Los campos de conversación se tienen que configurar en el Centro de administración, para que los usuarios finales puedan establecer sus valores cuando se creen los campos. Las etiquetas de conversación no requieren ningún paso anterior para poder usar las API de metadatos.
El primer paso para usar los metadatos de mensajería es determinar qué datos desea recopilar y cómo desea usarlos. Ambas cosas dependen completamente de su caso de uso en particular. Es necesario que tenga clara la experiencia del usuario final cuando el desarrollador configura los valores del campo de ticket y la etiqueta mediante programación en el Web Widget y los SDK de Zendesk.
- Un administrador de Zendesk crea un campo de ticket personalizado y pasa el nombre del campo y la ID a un desarrollador, junto con los datos de uso y los demás datos que se desean recopilar.
- Un desarrollador codifica la llamada a la API de metadatos usando la ID del campo para conectar el valor con ese campo.
- Los datos se configuran mediante programación en la API de metadatos en tiempo de ejecución y están disponibles en la siguiente sesión.
- Los datos del campo y las etiquetas del ticket se agregan al ticket de soporte cuando se crea el ticket.
Los metadatos de los campos y las etiquetas del ticket se aplican al ticket durante su creación. Por ejemplo, si configura su widget de forma que se establezca instantáneamente un chat con un agente real (en lugar de con un agente IA), al abrir el widget se creará al instante un ticket y solo se le agregarán los campos y etiquetas de ticket que se hayan configurado antes de crearlo.
Una vez que el ticket está cerrado, los metadatos de mensajería en el backend (como los tickets) se restablecen en un estado null vacío. Actualmente, los metadatos de mensajería persisten en el lado del cliente; esto se tratará en una versión futura.
Agregar un campo de conversación
Los clientes de cualquier plan de Support pueden crear campos de conversación, pero deben tener la mensajería configurada y estar usando el Web Widget de mensajería o los SDK para mensajería.
No se admiten los campos de ticket del sistema, como el campo Prioridad. Aparecen en el formulario de contacto predeterminado (y en cualquier otro formulario de ticket), cuando se abren a través del centro de ayuda, pero no aparecen en el Web Widget.
Puede confirmar si se ha establecido un campo de conversación examinando la información del ticket en el espacio de trabajo de agente de Zendesk o con las API de Zendesk. Consulte Using messaging metadata (Uso de los metadatos de mensajería) para ver un ejemplo.
- En el Centro de administración, haga clic en
Objetos y reglas en la barra lateral y luego seleccione Tickets > Campos.
- Haga clic en Agregar campo.
- Seleccione un tipo de campo y luego ingrese un Nombre mostrado.
- (Opcional) Ingrese una Descripción para el campo personalizado. Esto solo lo pueden ver los administradores.
- Bajo Permisos, seleccione Los clientes pueden editar.Nota: Debido a que los valores se pueden establecer a través de una llamada de API pública del lado del cliente, los datos siempre deben tratarse como si los hubiese proporcionado un usuario final. No se recomienda utilizar estas API para datos confidenciales.
- Ingrese un Título mostrado a los clientes.
- Si el agente tiene que completar el campo para resolver el ticket, seleccione Se requiere para resolver un ticket. Esta opción no está disponible en todos los tipos de campos.Nota: Cuando los agentes fusionan un ticket, no es necesario que llenen los campos obligatorios porque los tickets fusionados omiten el estado Resuelto y pasan directamente a Cerrado. Este ajuste también se omite si una regla de negocios cambia el ticket a Resuelto porque el ticket lo resuelve un proceso del sistema en lugar de un agente.
- Si el usuario final tiene que completar este campo para enviar el ticket, seleccione Se requiere para enviar una solicitud.
- Configure las opciones adicionales necesarias según el tipo de campo.
- (Opcional) Especifique un Valor predeterminado para el campo personalizado.Nota: El valor predeterminado en una lista desplegable solo se aplica a los tickets nuevos creados por agentes a través de la interfaz de Support o creados por los usuarios en cualquier parte donde se muestre el formulario de ticket. Si se cambia de un formulario de ticket existente a uno con una lista desplegable y una opción predeterminada, la opción predeterminada no se muestra y el espacio aparece en blanco.
- Haga clic en Guardar, o bien para crear otro campo personalizado, haga clic en el icono desplegable, seleccione Guardar y agregue el campo adicional.
- Guarde la ID de campo del campo que acaba de crear, ya que la necesitará cuando use la API de metadatos.
Una vez creado el campo de conversación, los desarrolladores pueden usar la API /api/v2/ticket_fields
para ver sus datos. Este es un ejemplo de una respuesta:
[
{
url: "https://z3n-lhills.zendesk.com/api/v2/ticket_fields/10093547287955.json",
id: 10093547287955,
type: "integer",
title: "Bike Order id",
raw_title: "Bike Order id",
description:
"An API will populate this bike order id value",
raw_description:
"An API will populate this bike order id value",
position: 9999,
active: true,
required: false,
collapsed_for_agents: false,
regexp_for_validation: "\A[-+]?\d+\z",
title_in_portal: "Bike Order Id",
raw_title_in_portal: "Bike Order Id",
visible_in_portal: true,
editable_in_portal: true,
required_in_portal: false,
tag: null,
created_at: "2022-10-04T04:48:05Z",
updated_at: "2022-10-04T04:48:05Z",
removable: true,
agent_description: "Order id from our bikes catalog",
},
]
Borrar el campo de conversación
Hay ocasiones en las que es necesario borrar los valores del campo de conversación. Esta decisión depende del caso de uso y se toma cuando los datos recuperados ya no son válidos. Por ejemplo, supongamos que está usando campos de conversación para recopilar datos del carrito de compras de un usuario final en Internet. Si el usuario final borra todos los artículos de su carrito, los datos recopilados ya no serán válidos y se podrán borrar esos valores del campo de conversación.
Los campos de conversación se borran mediante la API clearConversationFields(
)
.
Agregar una etiqueta de conversación
Las etiquetas son palabras o combinaciones de palabras que se pueden usar para agregar más contexto a los tickets y temas. Se pueden aplicar etiquetas a tickets, usuarios y organizaciones. Por ejemplo, etiquete todas las solicitudes que sean en realidad consultas de ventas con una etiqueta "ventas" o "sobre_ventas". A continuación, puede crear una vista o un informe para hacer el seguimiento de esas solicitudes.
Si desea más información, consulte Acerca de las etiquetas.
Usar las API de metadatos
Consulte Using messaging metadata (Uso de los metadatos de mensajería) en la documentación para desarrolladores si desea ver un ejemplo de cómo usar las API de metadatos.
Establecer etiquetas y campos de conversación
Los valores del campo de conversación se establecen usando la API setConversationFields
. Por ejemplo, si la ID del campo de ticket personalizado es 10093547287955 y desea establecer su valor en la cadena '548832222', llamaría a:
zE('messenger:set', 'conversationFields', [{ id: '10093547287955',
value: '548832222'}]);
Si utiliza un campo desplegable personalizado o cualquier campo que asocie un valor de campo con una etiqueta, al establecer el valor del campo personalizado también se establecerá el valor de la etiqueta personalizada en el ticket resultante.
API del lado del cliente para establecer los campos de conversación | |
---|---|
Web Widget | zE('messenger:set',
'conversationFields', [{ id: '{field ID}', value:
'{value}'}]) |
iOS | Zendesk.instance.setConversationFields(["{field ID}” :
“{field ID}"]) |
Android | Zendesk.instance.setConversationFields(listOf(
TicketField(id="{field ID}", value="{value}"
))) |
Unity | ZendeskSdk.Instance.Messaging.SetConversationFieldsAsync(Dictionary<string,
object> ticketFields) |
Este es un ejemplo de una respuesta para setConversationFields
:
conversation: {
...
metadata: {
"zen:ticket_field": "30289064739483",
...
},
}
{field ID}
tiene que ser una cadena. De lo contrario, se convertirá en una cadena. {value}
debe ser una cadena, un número o un valor booleano.Los valores de la etiqueta de conversación se establecen mediante la API setConversationTags
. De manera similar a lo que sucede con la API setConversationFields
, si se establece una etiqueta personalizada asociada con un campo personalizado que se puede editar, también se establecerá el campo personalizado. Si la etiqueta personalizada está asociada con un campo personalizado privado (que no se puede editar), el campo personalizado no se establece.
API del lado del cliente para establecer las etiquetas de conversación | |
---|---|
Web Widget | zE('messenger:set',
'conversationTags', ['{tag value}', '{tag
value}']) |
iOS | Zendesk.instance.setConversationTags(["{tag value}",
"{tag value}"]) |
Android | Zendesk.instance.setConversationTags(listOf("{tag
value}", "{tag value}")) |
Unity | ZendeskSdk.Instance.Messaging.SetConversationTags(List<string>
tags) |
Este es un ejemplo de respuesta que usa setConversationTags
:
conversation: {
...
metadata: {
"zen:ticket:tags": "likes-nike-trainers, frequent-shopper",
},
}
Borrar etiquetas y campos de conversación
Las etiquetas y los valores del campo de conversación se pueden borrar cuando cambia el contexto del lado del cliente. Por ejemplo, el usuario final abandona la página de un producto y va a la página de su tienda principal. Los datos recopilados en la página del producto ya no serán válidos.
Para ello, utilice las API ClearConversationFields
y ClearConversationTags
, que borran todas las etiquetas y campos de conversación. No es posible borrar un campo o una etiqueta individual.
API del lado del cliente para borrar las etiquetas y los campos de conversación | |
---|---|
Android |
Zendesk.instance.clearConversationFields()
Zendesk.instance.removeConversationTags()
|
Unity |
ZendeskSdk.Instance.Messaging.ClearConversationFields()
ZendeskSdk.Instance.Messaging.ClearConversationTags()
|
Generador de bots (agentes IA heredados)
Los campos actualizados con las API de metadatos se rellenarán con datos existentes y los usuarios finales podrán editarlos en este paso. Si desea más información, consulte Comprender los tipos de pasos del flujo de respuesta y Crear campos de ticket personalizados.
22 comentarios
Catalin Prata
Hello, thank you for the thorough article!
Is there a way to pass down thses config fields from zendesk to the Ultimate chat bot? I am using that on Android with Zendesk SDK for Android but I don't know how to pull the custom fields to Ultimate dashboard.
Thank you!
1
Jason Kadlec
I'm confused on something pretty basic… I want to use variables in branch by condition steps in the flow builder.
I do not want users to have to set these variables, I want them to be always set by the .js api using things like button clicks or even the current URL the person is on.
In the flow builder, I have to add a "Set Variable" step before the branch by condition step, and I can't save the ‘set variable’ with no value, so I have to type one in.
The problem is that I'm trying to create a default_start answer which I want to check the variable, and based on that variable's content, start up a specific answer that matches the context I know them to be in (by the variable).
But if opening the chat for the first time starts the default_start answer, and the first step of that answer is to set the variable to “start_init” - that will overwrite whatever the API would have passed in when the chat first opens?
What's an alternative way to achieve this goal:
I have a web application and people will start a chat from either clicking on the chat icon, or by clicking on a button.
Clicking on the chat icon ideally needs to load a different Answer/Flow depending on where they are in the app …. I was hoping to pass the current URL into the variable when the chat gets opened.
Clicking on a button in the app to open the chat needs already a specific answer loaded - for example the button says:
[ Click here to give me zebra facts ]
I want the click on that button to not trigger the opening “hi I'm the chat bot how can I help you”.. it should instead load the “Zebra Facts” answer which has the chat bot say a bunch of interesting zebra facts.
[Click here to apply to become a zoo keeper ]
^ this would open the chat bot to an answer that has the application form in the chat window so they can apply/create the ticket etc.
tl/dr - how do I route the initial click on opening a chatbot to go to a specific answer based on a variable set by the .js api.. without the flow builder overwriting the value?
3
Peter Gustafsson
We're building a chat with 100% custom UI using Smooch SDK's.
I have created a custom field for “App Market” which I would like to use to send metadata about the users selected market/country. The idea is to use this value in a trigger to assign tickets to different agents.
But I'm having trouble finding a way to set that metadata from the app using your SDK. We are using Sunshine Conversations for iOS and Android (Smooch)
The class reference for iOS only lists a getter for metadata.
https://docs.smooch.io/api/ios/Classes/SKTConversation.html#/c:objc(cs)SKTConversation(py)metadata
Do we need to use the REST API to set the metadata?
The REST endpoint I'm thinking of using.
https://docs.smooch.io/rest/#operation/updateConversation
0
Walter
Hi Gary,
Can you please confirm if Multi-line can be displayed in the conversation? I've tried, but I can't seem to access it in the Bot Builder.
0
David Lewanda (Dave)
Two questions:
Thanks in advance for your answer.
0
Zaffar Sayed
1263213558789
Thank you for the response. It is helpful.
0
Chad Susa (Gravity CX - Zendesk Partner)
Hi Zaffar Sayed
I believe only drop-down and text fields are supported in the bot builder.
Check out: https://support.zendesk.com/hc/en-us/articles/4766497566106-Why-aren-t-all-my-custom-fields-appearing-as-options-in-the-bot-builder#:~:text=Answer,display%20up%20to%20ten%20values.
1
Zaffar Sayed
1264158216949
I am working on Messaging, Bot and Automation. I want to add custom field for my bot, can you please suggest a way to add these custom field for the Bot. I have created custom field and enabled it for end user. However, I can't see those in my custom field of Bot.
Is there a different way to add custom fields for Bot and automation?. I have searched a lot through the documentation and community but did not get a satisfactory answer.
I am simplifying my requirement, I am moving to Bot and Automation and testing bots for messaging.
Under Admin Centre > Channel > Messaging > Edit Bot > Under responses you get this section as shown in the image.
I have created custom field for Number and other details however and I can't find it under the customer details dropdown. There are only 2 predefined sections here Name and Email. Is there a way to add more fields. Please suggest.
0
Bobby Koch
will there ever be a time we can just call the zendesk crm for this data? we have the user authenticated, we should be able to use that data in the flow by calling the user api. building these out after already doing the authentication peice is going to be hard to get resources allocated to, and it seems lke it should be possible
1
Dane
1
Iniciar sesión para dejar un comentario.