Enviar mensagens de saída por SMS, WhatsApp e outros canais
No momento, você está lendo a documentação do Flex Legacy Messaging. Se você estiver começando com uma nova implementação do Flex, considere usar o Flex Conversations.
O Flex permite que seus agentes iniciem conversas com seus clientes por meio de qualquer canal de mensagens do Twilio, incluindo SMS, WhatsApp e Facebook Messenger.
Atualmente, as mensagens de saída exigem um trabalho de desenvolvimento adicional. Esta página descreve parte do trabalho que você precisará fazer para o back‐end, mas as mensagens de saída também exigirão um plugin do Flex UI (IU do Flex) para expor a funcionalidade na interface do Flex.
Gerenciar a criação de tarefas
Há duas maneiras de lidar com a criação de tarefas para mensagens de saída: quando o agente envia mensagens ao cliente (imediatamente) ou quando o cliente responde à mensagem de saída (atrasado).
As mensagens de saída requerem um fluxo do Flex ChannelType
de sms
, whatsapp
, facebook
ou custom.
Estratégia 1: Criar tarefa quando o agente enviar mensagens ao cliente
As etapas a seguir criarão uma tarefa quando você enviar uma mensagem de saída ao cliente.
1. Definir um fluxo do Flex
Primeiro, defina um fluxo do Flex de saída com um tipo de task
de integração. Você só precisa fazer isso uma vez. Certifique‐se de que você também esteja definindo seu fluxo do Flex para usar um Canal de tarefas compatível com mensagens, como sms
ou chat
. Se você já tiver um fluxo do Flex que esteja usando o Studio, o parâmetro enabled
deverá ser definido como false
.
2. Criar um canal de chat do Flex
Em seguida, crie um Canal de chat usando a API Flex para iniciar o envio de mensagens para o cliente. Nesse exemplo, a chamada de API também adiciona atributos de tarefa, o que permitirá que o canal roteie a tarefa para um agente específico (usando a expressão de fluxo de trabalho targetWorker
).
Certifique‐se de salvar o SID do Canal de chat. Você precisará dele mais tarde!
Depois que a API do canal Flex for executada com sucesso, duas coisas acontecem:
- Um novo canal de chat é criado
- Uma nova tarefa é criada e atribuída ao funcionário especificado em
targetWorker
Em seguida, se você abrir o Flex UI (IU do Flex) para targetWorker
, verá a seguinte nova reserva:
3. Configurar uma sessão do Twilio Proxy
Agora que tem um canal, você vai querer associá‐lo a uma sessão de proxy. As sessões oferecem uma camada útil de estado e metadados que o Flex usa para garantir que as mensagens dos seus clientes permaneçam encadeadas adequadamente à medida que são processadas por bots, TaskRouter e agentes.
Você precisará fazer duas solicitações:
A primeira cria a sessão de Proxy e inclui a pessoa com quem você está tentando entrar em contato.
A segunda solicitação adiciona o canal de chat à sessão e o mapeia para o número do Contact Center.
Considere habilitar o Channel Janitor para ajudar a gerenciar qualquer sessão de chat obsoleta.
No código de exemplo, você precisa substituir:
{{CUSTOMER_NUMBER}} |
O número de telefone do cliente com quem você está tentando entrar em contato |
{{SID_FROM_CHANNELS_API}} |
O SID do Canal de chat criado na etapa 2. Aqui, ele está sendo usado como um nome para a sessão do Proxy, o que ajuda você (e o Flex) a encontrá‐lo. |
Você também precisará adicionar o agente à sessão de Proxy, usando o SID do Canal de chat como identificador e o número do Contact Center como identificador de Proxy, já que as mensagens do agente devem ser parecidas com as que vêm do Contact Center.
Por fim, se você quiser que o agente veja o número do cliente quando ele responder ao chat, faça com que o nome amigável do agente seja o número do cliente.
No código de exemplo, você precisa substituir:
CONTACT_CENTER_NUMBER |
Esse é o número de telefone do contact center, o número do canal ou o número do agente do qual a mensagem será enviada. É provável que esse seja o mesmo número usado como contactIdentity quando você criou o fluxo do Flex. |
CHAT_CHANNEL_SID |
O SID do canal de chat que você criou usando a API de Canal na etapa 2. Isso informa ao Proxy que o agente enviará mensagens por este canal. |
3. Atualizar os atributos do Canal de chat
Atualize os attributes
do Canal de chat para incluir o SID da sessão de Proxy que você criou na etapa 3, caso ainda não esteja lá. Os atributos do canal de chat devem ser uma string JSON:
{proxySession: "KCXXXXXXXXXXXXXXXXXXXXXXXX"}
Certifique‐se de recuperar o objeto de atributos existente, adicionar a chave proxySession
e, em seguida, atualizar o parâmetro como uma string.
Exemplo de Node.js:
.then(
attributes => {
return Object.assign(JSON.parse(attributes.attributes), { proxySession: proxySession.sid })
}
))
4. Comece a conversar
Agora, volte ao Flex e aceite a reserva. Seu agente pode enviar mensagens diretamente para a interface de Chat, e as mensagens são roteadas para o cliente em seu canal da Twilio.
Estratégia 2: Criar tarefa quando o cliente responder
As etapas a seguir descrevem uma arquitetura alternativa para enviar uma mensagem ao cliente. Quando o cliente responder, o processador de mensagens de entrada criará uma tarefa e a encaminhará a um agente.
1. Configurar mensagens de entrada
Certifique‐se de configurar um processador de mensagens de entrada e de que ele esteja configurado para criar uma tarefa. Com isso, a resposta do cliente sera processada para a mensagem de saída. Certifique‐se de que você também esteja definindo seu fluxo do Flex para usar um Canal de tarefas compatível com mensagens, como sms
ou chat
.
Se você já lida com mensagens de entrada e deseja usar essa lógica, pode usar o exemplo de código abaixo para recuperar todos os fluxos do Flex na conta. Basta escolher o SID do associado ao processador de mensagens atual para o canal desejado (por ex., o processador de mensagens SMS).
2. Criar um canal
Crie um canal de chat usando o recurso Flex Channel. Você precisará do fluxo do Flex para mensagens de saída. Você precisará de um novo canal para cada interação.
Você pode ver vários SIDs associados a um fluxo. Alguns podem ser para o Twilio Studio. Você precisa usar um SID do fluxo do Flex, que começará com as letras FO
.
3. Crie uma sessão de proxy
Agora você precisará criar uma sessão de Proxy para associar o Canal de chat e o número de telefone do cliente. As sessões oferecem uma camada útil de estado e metadados que o Flex usa para garantir que as mensagens dos seus clientes permaneçam encadeadas adequadamente à medida que são processadas por bots, TaskRouter e agentes. Isso ajudará a informar ao Flex que, quando o cliente responder, ele deve falar com esse agente neste canal. Passe o canal que você criou na etapa 2 como o nome exclusivo da sessão.
Certifique‐se de incluir o “FriendlyName” na matriz de participantes.
No código de exemplo, você precisa substituir:
{{CHAT_CHANNEL_SID}} |
O canal de chat, que você criou na etapa 2 e que o agente usará para responder ao cliente. |
{{CONTACT_CENTER_NUMBER}} |
O ID do agente/contact center (o número do qual o SMS será enviado). Esse é o mesmo número usado como contactIdentity quando você criou o fluxo do Flex. Pode ser um número do WhatsApp ou qualquer outro identificador para outro canal de mensagens. |
{{FRIENDLY_NAME}} |
O nome amigável precisa ser incluído nos participantes para criar corretamente a sessão de proxy. Recomendamos incluir o número do cliente ( {{CUSTOMER_NUMBER }} ) como o nome amigável. |
Use outra solicitação para adicionar o cliente, usando seu número como identificador. O proxy pode usar sua própria lógica para selecionar o identificador de proxy.
4. Atualizar os atributos do Canal de chat
Atualize os attributes
do Canal de chat para incluir o SID da sessão de Proxy que você criou na etapa 3, caso ainda não esteja lá. Os atributos do canal de chat devem ser uma string JSON:
{proxySession: "KCXXXXXXXXXXXXXXXXXXXXXXXX"}
Certifique‐se de recuperar o objeto de atributos existente, adicionar a chave proxySession
e, em seguida, atualizar o parâmetro como uma string.
5. Enviar a mensagem
Agora você pode enviar manualmente sua mensagem de saída pelo canal de chat. Isso acionará um webhook pós‐evento, criando a interação de proxy ou a mensagem de saída. Por exemplo, se você estiver usando o Studio, ele acionará o Studio Flow como uma mensagem de saída para seu cliente.
Recomendamos que você envie a mensagem através do SID do canal em vez do SID do Proxy para manter um registro completo da interação do chat.
chatServiceSid |
O Serviço associado ao seu Canal de Chat. |
channelSid |
O Canal de chat para o recurso Flex Channel. Isso informará ao Canal que envie uma mensagem do agente ao cliente usando os identificadores armazenados no Proxy. |
from |
O ID do agente/contact center (o número do qual o SMS será enviado). |
messageText |
Este é o conteúdo da mensagem que você pode enviar na mensagem. Observe que esse conteúdo pode não ser exibido (por ex., se você estiver usando um Studio Flow que não usa a propriedade body do widget Trigger. |
Enviar a mensagem para o 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);
}
}
Agora, seu cliente deve receber uma mensagem. Quando eles respondem, uma tarefa será criada e você poderá encaminhá‐la a um agente que possa aceitar e lidar com a resposta.
Precisa de ajuda?
Às vezes, todos nós precisamos; a programação é difícil. Receba ajuda agora da nossa equipe de suporte, ou confie na sabedoria da multidão navegando pelo Stack Overflow Collective da Twilio ou buscando a tag Twilio no Stack Overflow.