Enviar mensajes salientes a través de SMS, WhatsApp y otros canales
Actualmente estás leyendo documentación de mensajería antigua de Flex. Si estás empezando con una nueva implementación de Flex, considera la posibilidad de utilizar Flex Conversations.
Flex permite a tus agentes iniciar conversaciones con los clientes a través de cualquier canal de mensajería de Twilio, como SMS, WhatsApp y Facebook Messenger.
Actualmente, los mensajes salientes requieren de trabajo de desarrollo adicional. En esta página, se describe parte del trabajo que deberás hacer en la actividad en segundo plano, aunque los mensajes salientes también requerirán del uso de un plugin de Flex UI (la interfaz de usuario de Flex) para exponer la funcionalidad en la interfaz de Flex.
Administración de la creación de tareas
Hay dos formas de gestionar la creación de tareas para mensajes salientes: cuando el agente envía mensajes al cliente (de inmediato) o cuando el cliente responde al mensaje saliente (retrasado).
Los mensajes salientes requieren un flujo de Flex con la propiedad ChannelType
configurada como sms
, whatsapp
, facebook
o custom.
.
Estrategia 1: Crear la tarea cuando el agente envíe mensajes al cliente
A través de los siguientes pasos se creará una tarea cuando envíes un mensaje saliente al cliente.
1. Definir un flujo de Flex
En primer lugar, define un flujo de Flex saliente con el tipo de integración task
. Solo tienes que hacerlo una vez. Recuerda también definir que el flujo de Flex utilice un canal de tareas con capacidad de mensajería, como sms
o chat
. Si ya tienes un flujo de Flex que utiliza Studio, debes establecer el parámetro enabled
en false
.
2. Crear un canal de chat Flex
A continuación, crea un canal de chat utilizando la API de Flex para iniciar la mensajería con el cliente. En este ejemplo, la llamada a la API también agrega atributos de tarea, lo que permitirá al canal enrutar la tarea a un agente específico (mediante la expresión de flujo de trabajo targetWorker
).
Debes guardar el SID del canal de chat, ya que lo necesitarás más adelante.
Una vez que la API del canal Flex se ejecute correctamente, ocurrirán dos cosas:
- Se crea un nuevo canal de chat.
- Se crea una nueva tarea y esta se asigna al trabajador especificado en
targetWorker
.
A continuación, si abres Flex UI (la interfaz de usuario de Flex) relacionada con targetWorker
, deberías ver la siguiente nueva reserva:
3. Configurar una sesión de Twilio Proxy
Ahora que tienes un canal, te recomendamos asociarlo a una sesión de proxy. Las sesiones ofrecen una capa útil de estado y metadatos que Flex utiliza para garantizar que los mensajes de los clientes permanezcan conectados correctamente a medida que los procesan los bots, TaskRouter y los agentes.
Tendrás que realizar dos solicitudes:
La primera crea la sesión de proxy e incluye a la persona con la que intentas comunicarte.
La segunda solicitud agrega el canal de chat a la sesión y lo asigna al número de contact center.
Considera la posibilidad de habilitar Channel Janitor (Limpiador de canales) para que te ayude a gestionar las sesiones de chat antiguas.
En el código de ejemplo, debes reemplazar esto:
{{CUSTOMER_NUMBER}} |
El número de teléfono del cliente con el que intentas comunicarte. |
{{SID_FROM_CHANNELS_API}} |
El SID del canal de chat creado en el paso 2. Aquí, se utiliza como un nombre para la sesión de proxy, lo que te ayuda a ti (y a Flex) a encontrarla. |
También tendrás que agregar el agente a la sesión proxy con su SID de canal de chat como identificador y el número de contact center como su identificador proxy, ya que debe parecer como que los mensajes del agente provienen del contact center.
Por último, si deseas que el agente vea el número del cliente cuando responda el chat, asigna el número del cliente al nombre descriptivo del agente.
En el código de ejemplo, debes reemplazar esto:
CONTACT_CENTER_NUMBER |
Es el número de teléfono, número de canal o número de agente del contact center desde el que se enviará el mensaje. Es probable que sea el mismo número que utilizaste como contactIdentity cuando creaste el flujo de Flex. |
CHAT_CHANNEL_SID |
El SID del canal de chat que creaste mediante la API de canal en el paso 2. Esto le indica al proxy que el agente enviará mensajes a través de este canal. |
3. Actualizar los atributos del canal de chat
Actualiza los atributos (attributes
) del canal de chat para incluir el SID de la sesión de proxy que creaste en el paso 3 si aún no está presente. Los atributos del canal de chat deben ser una cadena JSON:
{proxySession: "KCXXXXXXXXXXXXXXXXXXXXXXXX"}
Debes recuperar el objeto de atributos existente, agrega la clave proxySession
y, a continuación, actualizar el parámetro como una cadena.
Ejemplo de Node.js:
.then(
attributes => {
return Object.assign(JSON.parse(attributes.attributes), { proxySession: proxySession.sid })
}
))
4. Comience a chatear
Ahora, vuelve a Flex y acepta la reserva. El agente puede enviar mensajes directamente a la interfaz de chat, y los mensajes se enrutarán al cliente a través de su canal de Twilio.
Estrategia 2: Crear tarea cuando el cliente responda
Los siguientes pasos describen una arquitectura alternativa para enviar un mensaje al cliente. Cuando el cliente responda, el controlador de mensajes entrantes creará una tarea y la reenviará a un agente.
1. Configurar mensajes entrantes
Debes configurar un controlador de mensajes entrantes y prepararlo para crear una tarea. De esta forma, se gestionará la respuesta del cliente al mensaje saliente. Recuerda también definir que el flujo de Flex utilice un canal de tareas con capacidad de mensajería, como sms
o chat
.
Si ya controlas los mensajes entrantes y deseas utilizar esa lógica, puedes utilizar el siguiente ejemplo de código para obtener todos los flujos de Flex de la cuenta. Para ello, solo tienes que elegir el SID de la cuanta que está asociada con el controlador de mensajes actual y vincularlo con el canal deseado (p. ej., el controlador de mensajes SMS).
2. Crear un canal
Crear un canal de chat utilizando el recurso de canales de Flex. Necesitarás el flujo de Flex para los mensajes salientes. Necesitarás un nuevo canal para cada interacción.
Puedes ver varios SID asociados con un flujo, y algunos podrían ser para Twilio Studio. Debes utilizar un SID de flujo de Flex, que comenzará con las letras FO
.
3. Crear una sesión de proxy
Ahora tendrás que crear una sesión de proxy para asociar el canal de chat y el número de teléfono del cliente. Las sesiones ofrecen una capa útil de estado y metadatos que Flex utiliza para garantizar que los mensajes de los clientes permanezcan conectados correctamente a medida que los procesan los bots, TaskRouter y los agentes. Te ayudará a indicar a Flex que, cuando el cliente responda, debe hablar con este agente a través de este canal. Pasa el canal que creaste en el paso 2 como nombre único de la sesión.
Recuerda incluir el nombre descriptivo en la matriz de los participantes.
En el código de ejemplo, debes reemplazar esto:
{{CHAT_CHANNEL_SID}} |
El canal de chat que utilizará el agente para responder al cliente, el que creaste en el paso 2. |
{{CONTACT_CENTER_NUMBER}} |
El ID del agente o contact center (el número desde el que se enviará el mensaje SMS). Es el mismo número que utilizaste como contactIdentity cuando creaste el flujo de Flex. Puede ser un número de WhatsApp o cualquier otro identificador de otro canal de mensajería. |
{{FRIENDLY_NAME}} |
Se debe incluir el nombre descriptivo en los participantes para crear correctamente la sesión de proxy. Recomendamos incluir el número de cliente ({{CUSTOMER_NUMBER }} ) como nombre descriptivo. |
Utiliza otra solicitud para agregar el cliente utilizando su número como identificador. El proxy puede utilizar su propia lógica para seleccionar el identificador del proxy.
4. Actualizar los atributos del canal de chat
Actualiza los atributos (attributes
) del canal de chat para incluir el SID de la sesión de proxy que creaste en el paso 3 si aún no está presente. Los atributos del canal de chat deben ser una cadena JSON:
{proxySession: "KCXXXXXXXXXXXXXXXXXXXXXXXX"}
Debes recuperar el objeto de atributos existente, agrega la clave proxySession
y, a continuación, actualizar el parámetro como una cadena.
5. Enviar el mensaje
Ahora puedes enviar de forma manual tu mensaje saliente a través del canal de chat. Esto activará un webhook posterior al evento y creará la interacción de proxy o el mensaje saliente. Por ejemplo, si utilizas Studio, se activará el flujo de Studio como un mensaje saliente para el cliente.
Te aconsejamos que envíes el mensaje a través del SID del canal, en lugar de usar el SID del proxy para mantener un registro completo de la interacción del chat.
chatServiceSid |
El servicio asociado a tu canal de chat. |
channelSid |
El canal de chat del recurso de canales de Flex. Esto indicará al canal que envíe un mensaje del agente al cliente mediante el uso de los identificadores almacenados en el proxy. |
from |
El ID del agente o contact center (el número desde el que se enviará el mensaje SMS). |
messageText |
Este es el contenido que puedes enviar en el mensaje. Ten en cuenta que es posible que este contenido no aparezca (p. ej., si utilizas un flujo de Studio que no utiliza la propiedad body del widget Trigger). |
Enviar el mensaje al canal de chat
const sendMessage = async function(channelSid, chatServiceSid, client, from, messageText){
try {
console.log("Send Message Function")
return client
.chat
.services(chatServiceSid)
.channels(channelSid)
.messages
.create({
body : messageText,
from : from
})
} catch(error) {
console.log(error);
}
}
El cliente debería recibir un mensaje. Cuando responda, se creará una tarea y podrás enrutarla a un agente que pueda aceptar y manejar la respuesta.
¿Necesitas ayuda?
Todos la necesitamos a veces; la programación es difícil. Obtén ayuda ahora de nuestro equipo de soporte, o recurre a la sabiduría de la multitud visitando Stack Overflow Collective de Twilio o navegando por la etiqueta de Twilio en Stack Overflow.