Ação utilizada para transferência entre soluções Zenvia dentro da plataforma Zenvia NLU.
Poderá ser utilizada quando desejar transferir o atendimento pelo bot para plataformas de atendimento humano da Zenvia, como Zenvia Conversion e Zenvia Chat.
⚠️Atenção:: para realizar a transferência, o contato deve estar utilizando uma integração Zenvia via Stargate.
Siga as orientações abaixo para efetivar a ação:
- Acesse o Builder na plataforma Zenvia NLU;
- Crie um nó que será responsável pela transferência;
- Configure uma ação do tipo “
product_transfer” dentro deste nó; - Clique no Helper (?) e selecione a opção Transferência de produto Zenvia;
- Preencha as informações necessárias no novo template iniciado na etapa anterior.
💡 Dica: para saber como criar um nó ou configurá-lo, acesse nossa documentação Configurações do nó
Estrutura
Agora que você já sabe como iniciar o processo de transferência para um produto Zenvia, vamos mostrar como se dá a estrutura desta ação.
Esta etapa está dividida entre a transferência para o Zenvia Chat e para o Zenvia Conversion.
Exemplo de payload da ação de transferência para o Zenvia Chat
{
"name": "product_transfer",
"parameters": {
"product": "livechat",
"access_token": "meu_token_de_acesso",
"department_id": 123,
"agent_id": 123456,
"customer": {
"name": "Cesar Augusto",
"email": "cesar.augusto@mail.com",
"phone": "+5535988001122",
"document": null
},
"extra": {
"name": "Cesar Augusto",
"user_id": 123,
"active": true
},
"session": {
"properties": {
"name": "Cesar Augusto",
"user": {
"id": 123
},
"active": true
}
},
"before_action_messages": [
"Estamos transferindo para o Zenvia Chat",
"Aguarde..."
]
},
"result_variable": "zenvia_transfer_response"
}
Atributos:
- version (opcional): versão de transferência de produto. Possíveis valores: “v1”, “v2”. Produto “livechat” aceita apenas o valor “v2”
- product: produto de destino para o qual será feita a transferência do contato. Possíveis valores: “livechat” (Zenvia Chat) e conversion (Conversion)
- access_token: token de acesso do produto de destino
- department_id: id do departamento(habilidade/skill) que deve realizar o atendimento do usuário
- agent_id (opcional): id do atendente que deve realizar o atendimento do usuário
- customer (opcional): informações pessoais do contato. É possível definir:
- name (opcional): nome do contato
- email (opcional): email do contato
- phone (opcional): telefone do contato
- document (opcional): cpf ou cnpj do contato
- extra (opcional): informações extras que se deseja enviar. Extra deve ser um objeto JSON
- session (opcional):
- properties (opcional): informações a serem definidas na sessão do contato antes da transferência. Properties deve ser um objeto JSON.
💡 Dica: após a transferência do atendimento pelo bot, a conversa cairá em uma fila de atendimento no Zenvia Chat. Para prosseguir, acesse o artigo sobre Dashboard, aonde fala sobre a fila de espera e saiba mais.
Exemplo de payload da ação de transferência para o Zenvia Conversion
{
"name": "product_transfer",
"parameters": {
"version": "v1",
"product": "conversion",
"apiKey": "minha_chave_de_api",
"groupId": "62d9557abe28c50018fef98b",
"userId": null,
"industry": "vehicle",
"lead": {
"firstName": "Cesar"
"email": "cesar.augusto@mail.com",
},
"session": {
"properties": {
"name": "Cesar Augusto",
"user": {
"id": 123
},
"active": true
}
},
"before_action_messages": [
"Estamos transferindo para o Conversion",
"Aguarde..."
]
},
"result_variable": "zenvia_transfer_response"
}
O resultado da transferência estará disponível na variável de contexto definida em “result_variable”. Estrutura da variável de resposta:
{
"status": "ok | error"
}
Response:
status: status do resultado da transferência. Possíveis valores:
ok: a transferência foi realizada com sucesso
error: houve um erro durante a transferência
⚠️Atenção: na ação de transferência do builder, os produtos “conversion” e “livechat” se referem à Zenvia Conversion e Zenvia Chat, respectivamente.
Após uma transferência com sucesso, o contato não acessará mais o bot do Zenvia NLU. A conversa ocorrerá diretamente entre o contato e o produto de destino.
Ao finalizar o atendimento no produto de destino, há a possibilidade de o contato ser transferido de volta para o bot do Zenvia NLU. Os produtos Conversion e Livechat sempre devolverão o contato.
Aqui, é necessário criar um nó no builder que irá esperar pela volta do contato.
Neste nó, configure o input da seguinte forma:
O input de recebimento de transferência possui a seguinte estrutura a seguir e pode ser usado para, por exemplo, definir fluxo de encerramento do bot, salvar dados do agente, entre outros.
{
"product_transfer": {
"success": true,
"state": "ENDED",
"department": {
"id": 16251,
"name": "Atendimento"
},
"agent": {
"id": 28078,
"name": "Isaias Valle",
"email": "isaias.valle@corp.com"
},
"transfer_id": "63c34e7b-ceae-4586-939a-5b4418786ff4"
}
}
Atributos:
- success: define se o produto de destino conseguiu atender o usuário. Possíveis valores: true, false
- state: . Possíveis valores:
- ENDED: atendimento realizado
- MISSED: atendimento não realizado por falta de atendentes.
- Department: último departamento que realizou atendimento ao cliente.
- Agent: último agente humano que realizou atendimento ao cliente (opcional)
- transfer_id: id único da transferência que foi realizada e finalizada. Atualmente usamos este valor para avaliar uma transferência após o contato ter sido devolvido ao bot. É utilizada na ação do bot "
product_info" quando "action" é "update_transfer".
Ação de Informação de Produto
Antes de realizar uma transferência, algumas informações podem ser necessárias para decidir se a transferência será realizada e para direcionar uma transferência para um departamento ou atendente específico.
Zenvia NLU permite consultar informações de outros produtos, como departamentos, atendentes e horários de atendimento, além de permitir avaliar uma transferência.
Para isso, siga as instruções abaixo:
- Acesse o Builder na plataforma Zenvia NLU;
- Crie um nó que será responsável pela transferência;
- Configure uma ação do tipo “
product_info” dentro deste nó; - Clique no Helper (?) e selecione a opção Informação de produto Zenvia;
- Preencha as informações necessárias no novo template iniciado na etapa anterior.
Exemplo de payload da ação de troca de informações com soluções Zenvia
{
"name": "product_info",
"parameters": {
"product": "livechat",
"access_token": "Token de acesso",
"action": "list_departments | list_agents | get_office_hours | has_agent "department_id": "Id do departamento",
"agent_id": "Id do agente",
"transfer_id": "Id da transferência",
"nps": "0 - 10",
"stars": "1 - 5",
"rating": "POSITIVE | NEGATIVE"
"before_action_messages": [
"Aguarde, estamos buscando as informações..."
]
},
"result_variable": "product_transfer_response"
Atributos:
- product: produto com o qua será feita a troca de informações. Possíveis valores: “
livechat”; - access_token: token de acesso do produto de destino;
- action: tipo de informação que será trocada. Possíveis valores:
- list_departments: listar todos os departamentos disponíveis em um produto;
- list_agents: listar os agentes de um determinado departamento. Campos obrigatórios: “
department_id” - get_office_hours: verificar se um departamento está em horário de atendimento ou se é feriado. Campos obrigatórios: “
department_id” - has_agent_online: verificar se um atendente está disponível ou se há atendentes de um determinado departamento disponíveis. Campos opcionais: “
department_id”, “agent_id”; - update_transfer: fornecer a avaliação do usuário sobre um atendimento após este ter sido finalizado. Campos obrigatórios: “
transfer_id”, uma opção entre (“nps”, “stars”, “rating”)
- department_id (opcional): id de um departamento disponível no produto requisitado;
- agent_id (opcional): id de um atendente disponível no produto requisitado;
- transfer_id (opcional): id de uma transferência já finalizada;
- nps (opcional): avaliação NPS de uma transferência já finalizada. Possíveis valores: número inteiro entre 0 e 10;
- stars (opcional): avaliação em estrelas de uma transferência já finalizada. Possíveis valores: número inteiro entre 1 e 5;
- rating (opcional): avaliação positiva ou negativa de uma transferência já finalizada. Possíveis valores: “POSITIVE”, “NEGATIVE”
Após a execução da ação, o resultado da transferência estará disponível na variável de contexto definida em “result_variable”. Estrutura da variável de resposta:
{
"status": "ok | error",
"type": "params | request | timeout",
"message": "mensagem de erro"
}
Response:
status: status do resultado da ação. Possíveis valores:
ok: a troca de informações foi realizada com sucesso
error: houve algum erro de validação de parâmetros ou a resposta não foi recebida em tempo hábil
Campos presentes caso status seja “ok”:
- info: informação recebida do produto requisitado
Campos presentes caso status seja “error”:
- type: tipo de erro caso o status da ação seja “error”. Possíveis valores:
- params: um ou mais parâmetros da ação não foram fornecidos adequadamente. Um parâmetro pode estar com um tipo ou valor não esperado ou um parâmetro obrigatório não foi fornecido;
- request: o produto de destino processou a requisição mas retornou um erro;
- timeout: nenhuma resposta foi recebida em tempo hábil;
- message: mensagem descritiva do erro ocorrido.
Exemplo de informações presentes no campo “info” para cada tipo “action”:
01. Action “list_departments”
"info": {
"departments": [
{
"id": 17935,
"name": "Vendas"
},
{
"id": 17937,
"name": "Suporte"
},
{
"id": 18232,
"name": "Recepção"
}
]
}
02. Action “list_agents”
"info": {
"agents": [
{
"id": 22748,
"name": "Ana Maria Macedo"
},
{
"id": 22749,
"name": "João Pedro Silva"
},
{
"id": 18232,
"name": "Recepção"
}
]
}
03. Action “get_office_hours”
"info": {
{
"office_hours_info": "",
"in_office_hours": true,
"holiday": false
}
}
04. Action “has_agent_online”
"info": {
{
"online": true
}
}
05. Action “update_transfer”
"info": {}