A solução de CRM personalizado permite que as empresas aproveitem o portal da Contact Center AI Platform (CCAI Platform) ao usar um CRM que não é uma integração padrão atual com a Contact Center AI Platform. A configuração personalizada funciona ao usar um CRM interno ou qualquer CRM não padrão.
Os agentes lidam com chamadas e chats, e os supervisores podem monitorar e extrair relatórios usando o portal da plataforma CCAI. Todos os detalhes sobre a sessão de chamada ou chat são armazenados em um arquivo de metadados da sessão. Ele pode conter mais de 20 pontos de dados, incluindo informações de sessão, transferências, duração do atendimento, participantes, informações de diagnóstico e muito mais. O arquivo de metadados da sessão pode ser analisado e usado para análise e rastreamento pós-sessão.
Os metadados de sessão e os arquivos de mídia enviados pelo consumidor são enviados para um serviço de armazenamento externo, e os agentes podem ver esses arquivos diretamente no adaptador do agente durante a sessão.
Uma solução de CRM personalizada é implementada com uma combinação dos seguintes componentes. Alguns componentes podem ou não se aplicar à sua configuração:
Gerar o arquivo de metadados de sessão para cada sessão de chamada e chat
Enviar metadados e arquivos de mídia para um serviço de armazenamento externo
Integração genérica de API
URL de pesquisa personalizado
Atualização de registros de CRM por e-mail
Pesquisa de conta ou caso no adaptador do agente
Pré-requisitos
Para usar o recurso de CRM personalizado, primeiro é necessário configurar o armazenamento externo. Consulte Armazenamento externo para soluções de CRM personalizadas para mais informações.
Metadados da sessão
O arquivo de metadados de sessão contém informações detalhadas sobre a sessão. Ele é enviado 15 minutos após o término da sessão. Consulte Arquivo de metadados da sessão para mais informações.
Métodos personalizados de interação e integração com CRM
| API genérica | URL personalizado | |
|---|---|---|
| Pesquisa de conta | Sim | Sim |
| Pesquisa de casos | Sim | |
| Atualização do caso | Sim | Não |
API genérica
O método de integração da API genérica permite usar a API do seu CRM personalizado para estabelecer uma conexão bidirecional com a plataforma CCAI. Esse método integrado é igual à experiência de integração de CRM pronta para uso. O agente não precisa realizar uma ação para criar um registro de CRM para sessões de chamada ou chat, dependendo da configuração exclusiva da API. Ele pode permitir uma pesquisa e atualização de registros sem problemas.
URL personalizado
A opção "Link personalizado" permite que os agentes interajam com o CRM usando um link personalizado criado para cada sessão. Ao contrário da integração padrão do CRM e da experiência da API genérica, o agente precisa realizar uma ação para que um registro do CRM seja criado. Em alguns casos, isso pode ser apenas iniciar uma guia com o link personalizado da sessão e, em outros casos, o agente pode precisar criar o registro manualmente.
Detalhes e configuração de URL de pesquisa personalizada
A funcionalidade básica do URL é realizar uma pesquisa de CRM, mas, dependendo do seu CRM, processos mais complexos podem ser acionados com base no conteúdo do URL personalizado. O URL do CRM personalizado pode ser configurado com variáveis que contêm informações da sessão e fica acessível no adaptador do agente durante a sessão. Depois que o URL for acessado, ele vai acionar o CRM personalizado para fazer uma pesquisa. É assim que os agentes podem usar uma "abertura de tíquete" para a sessão de chat ou chamada ativa. O processo de link personalizado depende apenas da capacidade do CRM personalizado de processar esse link e modificá-lo ou reescrevê-lo, se necessário.
Os metadados da sessão armazenados externamente, as gravações de chamadas e outros arquivos não serão vinculados ao registro do CRM, a menos que o método de atualização de e-mail listado também seja usado.
Nessa configuração, o agente faz login no portal da plataforma CCAI e no CRM em guias separadas. As chamadas e conversas serão processadas na guia "Plataforma da CCAI", e os detalhes do tíquete serão acessados em uma guia do CRM.
Para que essa configuração funcione:
O agente precisa estar conectado ao CRM no navegador.
O agente precisa estar conectado ao portal da plataforma CCAI no navegador.
O URL de consulta personalizado precisa ser pré-configurado
Seu CRM precisa processar o URL personalizado para exibir o registro de CRM relevante.
Comportamento do URL de consulta personalizado
A plataforma CCAI só vai incluir parâmetros no URL que não estejam vazios.
A plataforma CCAI não armazena o URL gerado que contém ANI/UID/e-mail no banco de dados da plataforma CCAI após o término da sessão.
Configuração de URL de pesquisa personalizada
Devido à variação de identificadores exclusivos e recursos e comportamentos de CRM, você precisará criar dois URLs diferentes: um para sessões de IVR/PSTN/SMS e outro para sessões de SDK da Web e para dispositivos móveis. As sessões de IVR/PSTN/SMS vão usar o ANI como identificador exclusivo, enquanto o SDK para Web e dispositivos móveis provavelmente vai usar o CUID e o e-mail.
As seguintes variáveis podem ser usadas para configurar um URL de consulta:
| Variável | Valores |
|---|---|
{CUSTOMER_PHONE_NUMBER} |
O número de telefone do usuário final |
{ANI} |
O número de telefone do usuário final. Mantido para compatibilidade com versões anteriores. |
{CUID} |
ID do usuário personalizado |
{EMAIL} |
E-mail do usuário final |
{MENU_PATH} |
O caminho completo do menu da fila. Por exemplo, "Pedidos/Confirmação de pedido/Informações do pedido". |
{MENU_ID} |
ID do menu |
{CHANNEL} |
O canal da sessão. Valores possíveis:
|
{TYPE} |
O tipo de sessão. Valores possíveis para chamadas:
Valores possíveis para chats:
|
{SUPPORT_PHONE_NUMBER} |
O número de telefone da central de suporte para o qual o usuário final liga. |
{OUTBOUND_NUMBER} |
O número de telefone que um agente usa para fazer uma chamada. |
{SESSION_ID} |
O ID da sessão. Valores possíveis:
|
{CUSTOM_AGENT_ID} |
O campo opcional de ID do agente no objeto user. O ID do agente só pode ser obtido depois que a sessão é estabelecida e um agente é atribuído. Por isso, configure sua instância para atrasar a criação de registros de chamadas ou
chats para que essa variável seja definida. É possível atrasar a criação de registros de chamadas ou chats em Configurações >
Gerenciamento de operações > Detalhes da criação de registros do CRM. Para mais informações, consulte Detalhes da criação de registros do CRM. |
Configuração do portal da plataforma CCAI
Faça login no portal da plataforma CCAI usando uma conta com o papel de administrador atribuído.
Acesse Configurações > Configurações do desenvolvedor.
Na seção "CRM", selecione CRM personalizado.
Em Pesquisa de CRM, insira seus URLs personalizados.
Selecione o formato do número de telefone que será usado nas solicitações do CRM.
Clique em Salvar alterações.
Se ainda não tiver feito isso, configure seu serviço de armazenamento externo. Para mais informações, consulte "Armazenamento externo".
Atualização de registros de CRM por e-mail
Em configurações como o URL de pesquisa personalizada, depois que uma sessão é concluída, os metadados de sessão precisam ser atualizados no CRM. Com esse recurso, a plataforma CCAI pode enviar automaticamente dados de sessão por e-mail. Cerca de 15 minutos após o término de uma sessão, um e-mail é enviado para um local configurado, e o conteúdo do e-mail é usado para atualizar um registro no seu CRM. Esse recurso pode ser configurado globalmente e por fila. Depois que o e-mail for recebido, seu CRM poderá ser configurado para atualizar ou criar um novo registro de CRM para a sessão.
Detalhes de e-mail
Enviado por no-reply@ccaiplatform.com
Contém:
Subject line
Corpo com os metadados de sessão na sintaxe JSON
Anexo em formato TXT com a transcrição do chat, quando aplicável
A CCAI Platform vai aguardar 15 minutos após o término da sessão e, em seguida, enviar o e-mail.
Os e-mails são enviados apenas para sessões concluídas. Ele não é enviado para sessões com falha ou abandonadas.
Configuração global
Faça login no portal da plataforma CCAI usando uma conta com o papel de administrador atribuído.
Acesse Configurações > Configurações do desenvolvedor.
Na seção "CRM", verifique se a opção CRM personalizado está selecionada.
Ative a opção Enviar resultado da sessão por e-mail.
Insira o endereço de e-mail para onde você quer enviar a mensagem.
Clique em Salvar alterações.
Configuração por fila
Faça login no portal da plataforma CCAI usando uma conta com o papel de administrador atribuído.
Acesse Configurações > Fila e selecione qualquer subfila.
Ative a opção Enviar resultado da sessão por e-mail.
Insira o endereço de e-mail para onde você quer que a mensagem seja enviada.

Clique em Salvar configuração personalizada do CRM.
Herança e substituição de configurações
| Configurações | Comportamento |
|---|---|
| Global = NÃO ativado Fila = NÃO ativada |
Não enviar para todas as filas. |
| Global = NOT enabled Queue = Enabled |
A configuração da fila (ou seja, estado ativado/desativado) substitui a configuração global. O e-mail é enviado de uma determinada fila para um endereço de e-mail definido na configuração da fila. |
| Global = Enabled Queue = NOT enabled |
A configuração da fila (endereço de e-mail, estado ativado/desativado) herda a configuração global. O e-mail é enviado de uma determinada fila para um endereço de e-mail definido na configuração global. |
| Global = Enabled Queue = Enabled |
A configuração da fila (endereço de e-mail) substitui a configuração global. O e-mail é enviado de uma determinada fila para um endereço de e-mail definido na configuração da fila. Se o endereço de e-mail estiver vazio, o e-mail não será enviado. |
Experiência com o agente
Pesquisa de registros de CRM
Faça login no portal da plataforma CCAI usando uma conta com o papel de agente atribuído.
Abra o adaptador de chamada ou chat.
Use o botão Abrir em uma nova janela do navegador para acionar a pesquisa.
Use o botão Copiar link para copiar o URL de consulta para a área de transferência.

Armazenamento externo para soluções de CRM personalizadas
O armazenamento externo para soluções personalizadas permite o uso de um serviço de armazenamento externo para armazenar e recuperar metadados de sessão da plataforma CCAI, gravações de chamadas, transcrições de chat e arquivos de mídia enviados pelo consumidor. Os arquivos são armazenados fora de um CRM.
Para configurar o armazenamento externo, você precisa ter:
Uma conta válida da CCAI Platform com as funções de administrador e agente atribuídas para configuração e teste
Um serviço de armazenamento externo
Estrutura da pasta
A estrutura de pastas a seguir será organizada no armazenamento externo em Caminho da pasta:
ujet-chat-transcripts
ujet-media
ujet-metadata
ujet-voice-recordings
ujet-voicemails
Formatos de arquivo e convenções de nomenclatura
Os seguintes tipos de arquivo podem ser enviados para o serviço de armazenamento externo. Os arquivos são criptografados durante o trânsito usando HTTPS:
| Arquivo | Nome |
|---|---|
| Gravações de ligações | - call-{id}.mp3 - call-{id}.wav |
| Arquivos de mídia | - call-{id}-photo-{photo-id}.jpg - call-{id}-video-{video-id}.mp4 - chat-{id}-photo-{photo-id}.jpg - chat-{id}-video-{video-id}.mp4 |
| Transcrições de chats | - chat-{id}.txt |
| Metadados de sessão | - call-{id}.json - chat-{id}.json |
Experiência do agente e do supervisor
Durante a sessão de chamada ou chat, as fotos e os vídeos enviados pelo consumidor usando ações inteligentes são mostrados no adaptador do agente.
Se você estiver usando a interação do CRM com URL personalizado combinada com o método de atualização por e-mail do arquivo de metadados da sessão, os agentes e supervisores poderão acessar as informações da sessão usando seu servidor externo.
Configurar o serviço de armazenamento externo
Siga estas etapas para configurar o armazenamento externo:
Faça login no portal da plataforma CCAI usando uma conta com o papel de administrador atribuído.
Acesse Configurações > Configurações do desenvolvedor.
Na página "Developer Settings", acesse a seção External Storage.
Ative o armazenamento de informações fora dos servidores de CRM, alternando a chave para Ativado, e selecione os tipos de arquivos que serão armazenados.
Na seção "Configuração do servidor", selecione seu tipo de armazenamento e conclua as etapas de configuração: Servidor SFTP, bucket Google Cloud .
Servidor SFTP
Insira o host do SFTP (URL ou endereço IP).
Digite o número da porta.
Insira o ID do usuário de login do SFTP.
Se o servidor SFTP exigir uma senha para autenticação, insira-a no campo Senha.
Se o servidor SFTP exigir uma chave privada para autenticação, marque a caixa de seleção Chave privada SSH.
Insira (copie e cole) a chave privada SSH.
Digite a senha longa da chave privada. Se as informações da sessão precisarem ser armazenadas em uma pasta específica no servidor SFTP, marque a caixa de seleção Caminho da pasta e insira o caminho da pasta do SFTP.
Clique em Salvar alterações.
Cloud Storage
Insira o Nome do bucket de destino Google Cloud .
Insira o Google Cloud ID do cliente.
Insira a Google Cloud chave secreta do cliente.
Se as informações da sessão precisarem ser armazenadas em uma pasta específica no bucket do Google Cloud , marque a caixa de seleção Caminho da pasta e insira o caminho da pasta doGoogle Cloud .
Clique em Vincular e salvar.
Como testar a configuração do armazenamento externo
Para CRMs com integração padrão:
Faça login no CRM.
Faça login na CCAI Platform no CRM usando as credenciais da CCAI Platform com um papel de agente atribuído.
Faça uma ligação ou envie uma mensagem. O registro de CRM associado à sessão é exibido.
Quando a sessão terminar, o arquivo de transcrição será enviado em segundos.
Navegue até a pasta de armazenamento do servidor externo diretamente e verifique se o arquivo está disponível.
Como enviar arquivos de sessão para o CRM
Quando o armazenamento externo está ativado, as configurações do desenvolvedor de URLs de armazenamento do CRM e armazenamento externo permitem enviar arquivos de sessão e decidir qual fonte usar para mostrar arquivos no adaptador do agente.
Para acessar essas configurações, ative o armazenamento externo em Configurações > Configurações do desenvolvedor > Armazenamento externo. Ative a opção Ativar o armazenamento de informações fora dos servidores do CRM.
Armazenamento de CRM
Acesse Configurações > Configurações do desenvolvedor > Armazenamento externo > Armazenamento do CRM.
Marque a caixa ao lado de Também enviar arquivos de sessão para o CRM para enviar arquivos de sessão, como gravações de chamadas ou transcrições de chat, para o CRM e para o armazenamento externo configurado.
Clique em Salvar alterações.
Se a caixa de seleção estiver marcada, as gravações serão armazenadas no CRM e no armazenamento externo.
URLs de armazenamento externo
O URL de armazenamento externo é usado em dois lugares:
O adaptador do agente.
Relatórios: mostra o URL da mídia no relatório e nos menus, como "Configurações", "Chamadas" e "Concluídas".
Acesse Configurações > Configurações do desenvolvedor > Armazenamento externo > URLs de armazenamento externo.
Selecione a fonte URLs de CRM ou URLs de armazenamento externo para mostrar os arquivos no adaptador do agente.
Clique em Salvar alterações.
Armazenamento de CRM
Se a caixa de seleção do armazenamento do CRM estiver desmarcada, as gravações serão armazenadas apenas no armazenamento externo, e um link para o CRM será usado.
Se a caixa de seleção estiver marcada, as gravações serão armazenadas no CRM e no armazenamento externo.
URLs de armazenamento externo
O URL é usado em dois lugares:
Uma delas mostra a mídia no adaptador da plataforma CCAI. O armazenamento externo ou CRM.
A outra está no relatório. Revelamos o URL de mídia nos relatórios e nos menus, como "Configurações", "Chamadas" e "Concluídas".
Mostrar CRM personalizado no portal da CCAI Platform
Ao usar a integração personalizada do CRM com seu próprio CRM criado sob medida, você pode carregar o CRM em uma página dedicada no portal da plataforma CCAI. Depois de ativada, a guia "CRM" no portal da plataforma CCAI é carregada e mostra sua página de CRM personalizada. Isso pode ser configurado em Configurações do desenvolvedor > CRM.
Esse recurso permite que os agentes lidem com sessões de suporte em tempo real usando os adaptadores de chamada e chat da plataforma CCAI enquanto trabalham no CRM personalizado. Isso inclui analisar detalhes de contas e registros abertos automaticamente, além de arquivos e dados específicos da sessão transmitidos pelo app para dispositivos móveis ou pelos consumidores, tudo usando o portal da plataforma CCAI.
Configurar uma página de CRM personalizada
Para configurar uma página personalizada do CRM, siga estas etapas:
No portal da plataforma CCAI, clique em Configurações > Configurações do desenvolvedor. Se o menu Configurações não aparecer, clique em Menu.
No painel CRM, clique em CRM personalizado.
Clique no botão Mostrar CRM no portal da plataforma CCAI para ativar.
Em URL de visualização, insira o URL da sua página de CRM personalizada e clique em Salvar.
Abrir pop-up de tela de URL personalizado
Use Abrir URL personalizado para exibir um pop-up de tela de URL personalizado quando um contato não for encontrado no sistema. Crie um registro de CRM com um ID de conta temporário e acionar um link personalizado com parâmetros com base na configuração do nível da fila.
Ativar o pop-up de tela por fila
Acesse Configurações > Fila > URA e clique em uma fila para editar.
Acesse Abrir URL personalizado no painel.
Insira um URL para abrir uma tela pop-up.
Inclua os parâmetros de variável {ACCOUNT_ID} e {PHONE_NUMBER} no URL.
Confira um exemplo.
- Clique em Salvar.
Integração de API genérica de CRM personalizado
O método de integração de API genérico permite usar a API do seu CRM para estabelecer uma conexão bidirecional com o CCAI Platform. Esse método integrado tem a mesma aparência da experiência de integração de CRM pronta para uso.
O agente não precisa fazer nada para criar um registro de CRM para sessões de chamada ou chat. Dependendo da configuração exclusiva da API, ela pode permitir uma pesquisa e atualização de registros sem problemas.
Terminologia
Período do contrato |
Descrição |
Conta |
É usado para se referir à entidade Conta/Contato/Cliente/Lead no CRM. Seu CRM pode ter outro nome para essa entidade. As contas contêm registros. |
Gravar |
É usado para se referir à entidade de caso/tíquete/conversa/incidente no CRM. Seu CRM pode ter outro nome para essa entidade. Os registros pertencem às contas. |
Comentário |
Ele é usado para se referir à entidade de comentário/observação no CRM. Seu CRM pode ter outro nome para essa entidade. Os comentários pertencem aos registros. |
Configurações da API
Esta seção descreve as configurações específicas da API de CRM personalizada.
Método de autenticação
A plataforma de CCAI oferece suporte a três métodos de autenticação para seu CRM:
Autenticação básica: configure as credenciais de autenticação que incluem Nome de usuário e Senha.
Cabeçalho personalizado: configure os pares de chave-valor do cabeçalho personalizado: Chave do campo e Valor do campo. Insira quantos pares forem necessários.
OAuth: a CCAI Platform é compatível com o protocolo padrão do setor para autorização OAuth 2.0. Especifique as informações do OAuth se precisar ativar a opção Incluir o URL de redirecionamento como parte do URL de autorização e do URL do token.
Configure os seguintes valores:
URL de autorização (obrigatório)
URL do token (obrigatório)
ID do cliente (obrigatório)
Chave secreta do cliente (obrigatória)
Escopo
Estado
Tipo de acesso
Formato do número de telefone
Selecione o formato do número de telefone que será usado nas solicitações de CRM:
Automático: criar: +1 222 333 4444, pesquisar: *222*333*4444
E.164: +12223334444
EUA (local): 2223334444
Padrão local dos EUA: (111) 222-3333
Internacional: +1 222 333 4444
Tempo limite da solicitação de API
Configure o tempo limite da solicitação de API de 1 a 10 segundos usando o menu suspenso. Esse tempo limite será aplicado a todos os endpoints que você configurar.
URLs de consulta de CRM
Especifique URLs de pesquisa que serão usados para direcionar um agente para a conta e o registro atuais.
Insira os URLs de pesquisa como aparecem no CRM quando você tem uma conta ou página de registro aberta no navegador.
Também é possível usar URLs de pesquisa de CRM com o SDK da Web e os SDKs para dispositivos móveis. É possível configurar os SDKs para procurar informações de conta e registro de CRM para exibir no adaptador do agente. Para uma lista completa de URLs de pesquisa de CRM, consulte Parâmetros de URL de solicitação.
URL de pesquisa de conta
Use a variável {ACCOUNT_ID} para inserir o ID da conta real.
Exemplo:
https://www.example.com/contact/{ACCOUNT_ID}
URL de pesquisa de registro
Use a variável {RECORD_ID} para inserir o ID do registro real.
Exemplo:
https://www.example.com/record/{RECORD_ID}
Endpoints de API
Essa é a configuração mais importante para a API genérica.
Para disponibilizar a pesquisa de conta para seus agentes, é necessário configurar os endpoints Encontrar uma conta e Criar uma conta.
Além disso, é possível configurar os endpoints Encontrar um registro e Criar um registro para permitir que os agentes pesquisem ou criem registros. Para isso, é necessário configurar a conta da etapa anterior.
Por fim, se você inserir os endpoints Atualizar um registro, Fazer upload de um arquivo e Comentar, as atualizações de registro serão ativadas. Para isso, é necessário configurar o registro da etapa anterior.
Configuração do endpoint
Defina as configurações a seguir:
URL da solicitação: URL do endpoint de API.
Escolha o método de solicitação entre POST, GET, PUT ou PATCH.
Especifique os parâmetros da solicitação. Você pode usar as variáveis definidas da plataforma de CCAI para transmitir as informações necessárias (consulte a tabela abaixo). Além disso, é possível inserir texto simples ou números como valores de parâmetros. Você pode adicionar quantos parâmetros quiser.
Se o endpoint for POST/PUT/PATCH, a CCAI Platform oferece controles de ajuste sobre como a solicitação é criada. Escolha Formato dos dados da solicitação em Propriedade ou Contêiner. Ele especifica o formato do JSON de solicitação.
Property. Isso indica que o objeto de solicitação é um mapa de propriedades básicas quando a plataforma CCAI cria o corpo da solicitação com base em parâmetros.
Contêiner. Isso indica que os dados do objeto de solicitação a serem enviados precisam estar aninhados em uma estrutura. Escolha Tipo de contêiner em Mapa ou Matriz. Insira o Nome do contêiner. Ele é usado como o nome do objeto pai ao criar o corpo da solicitação com base em parâmetros.
Exemplo: Map: { container_name : { ...parameters } }
Exemplo: matriz: {container_name : [ { ...parameters } ] }
Insira o Local dos dados de resposta. Ele é usado para localizar o objeto de resposta de destino na resposta JSON.
Parâmetros de URL de solicitação
| Parâmetro | Variável | Comentário |
|---|---|---|
| ID do agente | {AGENT_ID} |
O ID interno do agente. |
| ID personalizado do agente | {AGENT_CUSTOM_ID} |
Campo opcional do perfil do usuário. |
| E-mail do agente | {AGENT_EMAIL} |
O e-mail do agente de atendimento, se aplicável. |
| Nome do usuário final | {NAME} |
|
| Nome do usuário final | {FIRST_NAME} |
Com base em Name |
| Sobrenome do usuário final | {LAST_NAME} |
Retirado de Name, o padrão é -- se estiver ausente. |
| ID externo | {UJET_ID} |
ID do usuário final da plataforma CCAI |
{EMAIL} |
||
| Tipo de chamada/tipo de sessão | {SESSION_TYPE} |
|
| Número de telefone do usuário final | {PHONE_NUMBER} |
Formatado usando a opção de configuração |
| ID da ligação | {Call_ID} |
ID da chamada da plataforma CCAI. |
| ID do chat | {Chat_ID} |
ID do chat da plataforma CCAI. |
| Idioma | {LANG} |
|
| UID personalizado | {CUSTOM_USER_ID} |
Para dispositivos móveis: é o lado esquerdo do e-mail. Por exemplo, test.user3 de test.user3@test.co |
| ID da conta | {ACCOUNT_ID} |
Encontrado ao chamar o endpoint "Encontrar/Criar contato". |
| ID do registro | {RECORD_ID} |
Encontrado ao chamar o endpoint de registro de localização/criação. |
| ID da sessão | {SESSION_ID} |
ID da sessão da plataforma CCAI |
| Caminho do menu | {MENU_PATH} |
|
| Número de telefone de saída | {OUTBOUND_PHONE_NUMBER} |
Formatado usando a escolha de configuração |
| Nome da fila | {QUEUE_NAME} |
|
| ID da fila | {QUEUE_ID} |
O ID interno da fila. |
| Nome do SDK | {SDK_NAME} |
Nome de usuário final, conforme indicado no SDK da Web ou para dispositivos móveis. |
| E-mail do SDK | {SDK_EMAIL} | Endereço de e-mail do usuário final, conforme indicado no SDK da Web ou para dispositivos móveis. |
| Smartphone SDK | {SDK_PHONE} | Número de telefone do usuário final, conforme indicado no SDK da Web ou no SDK para dispositivos móveis. |
| Identificador do SDK | {SDK_IDENTIFIER} |
Identifica um usuário final ou uma conta do SDK para Web ou dispositivos móveis. Não inclua PII nesta propriedade. Ao criar uma conta, esse identificador é obrigatório na solicitação. |
| ID da sessão do SmartAction | {SMART_ACTION_SESSION_ID} |
|
| SmartAction: verification | (Em breve) | |
| SmartAction: entrada de texto | (Em breve) | |
| Classificação | {RATING} |
Disponível apenas se um usuário tiver deixado uma |
| Mensagem de feedback | {FEEDBACK} |
Disponível apenas se um usuário tiver deixado |
| Duração da chamada | {CALL_DURATION} |
No formato mm:ss |
| Tempo de espera | {HOLD_TIME} |
Em mm:ss |
| Tempo de espera | {WAIT_TIME} |
No formato mm:ss |
| Duração do trabalho após a ligação | (Em breve) | |
| Tipo de dispositivo | {DEVICE_TYPE} |
|
| Desconectado por | {DISCONNECTED_BY} |
|
| Canal | {CHANNEL} |
|
| Assunto do registro | {TICKET_SUBJECT} |
Usado como título do registro |
| Descrição do registro | {TICKET_DESCRIPTION} |
|
| HTML da descrição do registro | {TICKET_DESCRIPTION_HTML} |
Igual à descrição, mas formatada para HTML. |
| Corpo do comentário | {COMMENT_BODY} |
Disponível apenas na situação de adicionar comentário (salvar classificação, encerrar chamada/chat, chamada/chat iniciado) |
| Dados de arquivo | {FILE_DATA} |
Disponível apenas no endpoint de upload de arquivo, mas contém o base64 ou os dados para formulário multipart. |
Funções de parâmetro de URL de solicitação
As funções são fornecidas para ajudar com as variáveis dinâmicas da plataforma CCAI. Essas funções estão disponíveis apenas para uso na seção Parâmetro de solicitação das configurações do endpoint.
O valor resultante criado de uma função será uma string. Se nenhum valor for retornado pela função, o parâmetro será removido da lista de parâmetros na solicitação antes da execução.
| Função | Sintaxe da função | Descrição |
|---|---|---|
| Valor padrão | =DEFAULT_VALUE(val1, val2) |
O valor vai usar val1, a menos que seja nulo ou vazio, e vai voltar para
val2. |
Concatenação Or | =CONCAT_OR(val1, val2,
val3) | Concatenação de vários valores com
or. Exemplo: "val1 ou val2 ou val3" |
Concatenação And | =CONCAT_AND(val1, val2,
val3) | Concatenação de vários valores com
and. Exemplo: "val1 and val2 and val3" |
Exemplos
Veja a seguir alguns exemplos de uso da função de parâmetro de URL de solicitação.
Padrão
O exemplo a seguir usa DEFAULT_VALUE em Create a Record Endpoint.
A chave e o valor para a configuração do agente usam a função padrão para ter um substituto em
caso de um valor vazio para um e-mail de agente. O e-mail do agente pode estar vazio na criação do registro por alguns motivos: um cliente pode ter encerrado a chamada de URA antes que um agente atribuído atendesse a chamada recebida ou, no caso de chats, um registro será criado antes que um agente responda. Dessa forma, os parâmetros obrigatórios podem ser
definidos como valores seguros até atualizações posteriores ou em casos de chamadas abandonadas.

Concatenação
O exemplo a seguir usa CONCAT_OR no endpoint Find an Account by Query. Este exemplo é específico do Zoho CRM, mas mostra como CONCAT_OR pode ser usado. CONCAT_AND segue as mesmas regras, mas conecta valores com and
em vez de or. Consulte os casos a seguir para ver os valores presentes no endpoint
no momento da execução e o valor resultante transmitido como o parâmetro
da solicitação.

| Chaves presentes | Valor resultante |
|---|---|
ACCOUNT_ID |
(Id:equals:<uuid>) |
ACCOUNT_ID, EMAIL |
(Id:equals:<uuid>) ou (Email:equals:kim@example) |
PHONE_NUMBER, EMAIL |
(Phone:equals:+12223334444) ou (Email:equals:kim@example) |
Conta de API
Os endpoints de conta da API são compatíveis com a integração com contas no CRM.
As chamadas para endpoints que retornam um erro 400 são repetidas. As chamadas que retornam outros erros não são repetidas. As novas tentativas continuam por uma semana, diminuindo com uma redução exponencial. Para informações sobre fluxos de API, consulte API genérica de CRM personalizado: fluxos.
Encontrar uma conta por endpoint de consulta (antigo endpoint de localização de conta)
Esse endpoint é usado para encontrar uma conta por número de telefone, e-mail ou ID interno de CRM. Este é o endpoint padrão usado para encontrar uma conta.
Exemplo de resposta:
{
"id": 123,
"name": "Kim",
"phone": "11234567890",
"email": "Kim@agents.co"
}
Encontrar uma conta pelo endpoint de ID
Esse endpoint é usado para encontrar uma conta pelo ID. Geralmente, esse ID faz parte do URL. A validação de URL também vai considerar se o URL não foi formado com o ID. Nesse caso, o endpoint não será usado. Isso vai seguir os padrões REST. Se um erro 404 for retornado em uma pesquisa com falha, a próxima etapa será "Encontrar por consulta".
Exemplo de resposta:
{
"id": 123,
"name": "Kim",
"phone": "11234567890",
"email": "Kim@agents.co"
}
Criar um endpoint de conta
Esse endpoint é usado para criar uma conta se não encontrarmos uma. A maioria dos CRMs exige que os registros sejam anexados às contas. Para criar um fluxo unificado, aplicamos esse requisito a todos os CRMs.
Registro de API
Os endpoints de registro da API permitem a integração com registros ou casos no seu CRM.
Encontrar um registro por consulta (antigo endpoint de encontrar um registro)
Esse endpoint é usado para encontrar um registro por um critério. Em geral, isso é usado para encontrar registros associados a uma conta. Se a CCAI Platform estiver configurada para reutilizar registros, o registro encontrado será usado. Esse é o endpoint padrão usado para encontrar um registro.
Exemplo de resposta:
{
"id": 456,
"subject": "Record title",
"status": "open", // enumerated status open/closed, or 1,2,3
"contactId": 123, // contact attached to ticket
"phone": "11234567890", // contact phone
}
Criar um endpoint de registro
Esse endpoint é usado para criar um registro. Um novo registro será criado se não for encontrado um registro na solicitação Encontrar um registro ou se a plataforma CCAI estiver configurada para não reutilizar registros existentes.
Exemplo de solicitação:
{
"id": 123,
"subject": "Record title",
"description": "A longer description of the record, can be formatted in html",
"phone": "11234567890", // can be saved in multiple formats
"contactId": 123,
"sourceType": "PHONE", // PHONE/CHAT
"menu": "queue1",
"direction": "outgoing",
"rating": 5, // 1-5 scale
"feedback": "the agent was great!" // description of rating
}
Atualizar um endpoint de registro
Esse endpoint é usado para atualizar um registro. Ele atualiza o título e a descrição do registro. Esse endpoint também funciona opcionalmente para atualizar o registro de acordo com os eventos da plataforma CCAI, como salvar a classificação de CSAT, eventos de encerramento de chamada ou chat, filas selecionadas, verificação de usuários e outros.
Fazer upload de um endpoint de arquivo
Esse endpoint é usado para fazer upload de um anexo.
Escolha o Tipo do endpoint de upload.
Formulário codificado em Base64
Formulário de várias partes
Selecione os arquivos que você quer anexar
Gravações de chamadas
Transcrição do chat
Mensagens de voz
Google Fotos
Vídeos
Arquivo de metadados da sessão
Escolha Tipo de anexo em ID e URL do anexo. Ele especifica o formato do JSON de resposta.
ID
ID do anexo. Insira o local de um parâmetro na resposta JSON para o ID do anexo. Ele estará disponível para o URL do criador de anexos como {ATTACHMENT_ID}.
URL do criador de anexos. Insira o URL para fazer o download do anexo do arquivo. RECORD_ID e ATTACHMENT_ID são variáveis disponíveis.
Exemplo:
https://www.example.com/Accounts/{RECORD_ID}/Attachments/{ATTACHMENT_ID}URL do anexo
Insira o local de um parâmetro na resposta JSON para o URL de download do arquivo.
Marque a caixa de seleção Adicionar comentário ao registro do CRM se quiser que a plataforma CCAI deixe um comentário em um registro quando um arquivo for enviado. A configuração de formato de texto do endpoint de comentário será respeitada para esses comentários.
O exemplo a seguir é um formulário de várias partes que usa POST/PUT/PATCH:
{
"file": <file data>
"id": 123, // optional, this can also just be part of the URL;
// for example https://example-customer.com/upload/record/{RECORD_ID}
}
Exemplo de resposta:
Exemplo A: um URL de download existe
{
"id": 123,
"url": "https://some-hosted-url.com"
}
Exemplo B
Nesse caso, não há um URL de download, mas há um endpoint de anexo de download
que usa esse ID. Por exemplo, https://www.customer-api.com/record/{RECORD_ID}/Attachments/{ATTACHMENT_ID}.
{
"id": 123
}
Endpoint de comentário
Esse endpoint é usado para adicionar um comentário a um registro. Se o endpoint estiver configurado, a plataforma CCAI vai adicionar comentários aos registros com os eventos:
início da ligação ou do chat
fim da ligação ou do chat
Classificação e comentário de CSAT
pacote de dados do cliente
transferir comentários
código de disposição e observações
perguntas e respostas da pesquisa
Escolha Formato de texto para comentários. Se a caixa de seleção Converter texto em HTML estiver marcada, o texto estará no formato HTML ou em texto simples, caso contrário.
Exemplo de solicitação, POST/PUT/PATCH:
{
"comment": "Some text",
// string can also be formatted on ujet side as html
"id": 123,
// optional, this can also just be part of the URL;
// for example https://example-customer.com/comment/record/{RECORD_ID}
}
API genérica de CRM personalizada: fluxos
Nesta seção, mostramos fluxogramas para os fluxos da API genérica de CRM personalizado.
Fluxogramas básicos

Encontrar ou criar fluxo de conta

Encontrar ou criar fluxo de registro

Fluxo de ações pós-chamada ou chat

Fluxo de atualização de registros

Fluxo de comentários

Fluxo de upload de arquivos

Adaptadores de agente
Um CRM personalizado oferece um método genérico para integrar adaptadores (widgets UI) aos sistemas de CRM. O sistema de CRM precisa ser capaz de processar a forma como os adaptadores são ativados e acionados nele.
Para integrar adaptadores de interface do usuário, geralmente é necessário um software ou aplicativo de CRM. Já oferecemos essa capacidade para vários softwares de CRM, como Salesforce, Kustomer, Zendesk e outros.
iFrame
Os adaptadores de agente podem ser integrados a um CRM ou a qualquer outra ferramenta usando uma tag de iframe. Para saber mais sobre a tag de iframe HTML, consulte Tag de iframe HTML.
No entanto, o CRM precisa processar como os adaptadores são apresentados ao usuário. Por exemplo, ele pode ter botões UI para mostrar e ocultar os adaptadores. Além disso, os adaptadores podem ser projetados para serem arrastáveis, permitindo que o agente os reposicione na tela quando quiser. Os exemplos a seguir demonstram o formato do URL.
Adaptador de chamada:
https://tenant.loc.ccaiplatform.com/agent/?type=call&from=custom
Adaptador de chat:
https://tenant.loc.ccaiplatform.com/agent/?type=chat&from=custom
Modelo de iframe
Adaptador de chamada:
html
<iframe src="https://tenant.loc.ccaiplatform.com/agent/?type=call&from=custom" allow="microphone; camera; geolocation" width="290" height="600"></iframe>
Adaptador de chat:
html
<iframe src="https://tenant.loc.ccaiplatform.com/agent/?type=chat&from=custom" allow="microphone; camera; geolocation" width="450" height="590"></iframe>
Ao incorporar os adaptadores, observe o seguinte:
O atributo
allowé obrigatório. O adaptador de chamada usa WebRTC e precisa demicrophone.cameraegeolocationsão necessários para o compartilhamento de tela e recursos de reconhecimento de local. Se as permissões não forem delegadas ao iframe, o navegador vai bloqueá-las silenciosamente, e o agente não poderá receber chamadas.Incorpore um adaptador por iframe. Cada adaptador mantém a própria conexão em tempo real. Assim, os adaptadores de chamada e chat são dois iframes separados e postam eventos de forma independente.
O adaptador detecta que está incorporado pelo fato de que a janela pai está em uma origem diferente. Disponibilize a página do host no seu próprio domínio, em vez de usar o domínio do locatário da plataforma CCAI.
Parâmetros de URL
Os parâmetros de URL podem ser usados para fornecer mais informações ao software, como o tipo de interação (ligação ou chat), a origem da interação (personalizada) e outros detalhes relevantes.
Se a configuração de CRM do locatário não estiver disponível nas listas, o parâmetro De precisará ser definido como Personalizado.
Tipo
- Ligar
- Chat
De
- Personalizado (precisa corresponder à configuração de CRM do locatário). Ele precisa ser sempre custom para qualquer CRM que não esteja nas listas. Se não houver uma configuração de CRM, pule esse parâmetro.
Eventos em adaptadores de agentes
Os adaptadores de agente publicam eventos que podem ser conectados pelo sistema de CRM, que processa as atualizações no CRM. Para isso, o CRM precisa detectar as postagens da janela mãe e ler os dados delas. Com base nos dados, ele pode acionar ações como abrir uma guia de tíquete para um ID de sessão específico.
Os adaptadores de chamada e de chat têm eventos específicos que podem ser usados para melhorar os recursos do CRM.
Adaptador de chamada
- Nova chamada
- O consumidor entrou
- A remoção de informações sensíveis da chamada foi iniciada
- A edição da chamada foi encerrada
- Encerrar chamada
Adaptador de chat
- Novo chat
- Chat ativo
- Mensagem de entrada do chat
- Mensagem de saída do chat
- Formulário enviado
- Formulário preenchido
- Encerrar chat
- Chat dispensado
Ambos os adaptadores
- Login do agente
- Sessão de compartilhamento de tela iniciada
- O controle remoto da sessão de compartilhamento de tela mudou
- A sessão de compartilhamento de tela do dispositivo foi alterada
- A sessão de compartilhamento de tela foi encerrada
- Transferir
- Festa adicionada
- O agente se conecta à sessão
- Sair do agente
- Agent Assist adicionado
- O Assistente virtual de tarefas entrou
- Assistente de tarefas virtual saiu
- Variáveis de sessão de assistência com tarefas virtual recebidas
- Pop-up de registro de CRM
- Abrir página de terceiros
Formato de mensagem
Cada evento é enviado com a API
window.postMessage()
do navegador do iframe do adaptador para a janela pai direta (window.parent). A
janela pai recebe o evento como um
MessageEvent.
A mensagem tem as seguintes características:
event.dataé uma string JSON, não um objeto. Sempre chameJSON.parse(event.data)antes de ler. Como outros scripts na página também podem usarpostMessage()com payloads que não são JSON, envolva a análise em umtry/catch.O objeto analisado tem exatamente duas chaves de nível superior:
{ "type": "<event type>", "data": { ... } }typeé uma das strings listadas em Tipos de eventos.datacontém os campos de evento descritos em Dados para eventos. Todos os campos específicos do evento estão dentro dedata, nunca no nível superior.Os campos vazios são omitidos. Antes de postar, o adaptador remove qualquer campo em
datacujo valor sejanull,undefinedou uma string vazia. Trate todos os campos como potencialmente ausentes e não confie na presença de uma chave com um valornull.O adaptador faz postagens com uma origem de destino de
*, então a mensagem é entregue a qualquer página que incorpore o iframe. O adaptador não restringe quem pode receber os eventos. O listener precisa compararevent.origincom o host do locatário (por exemplo,https://tenant.loc.ccaiplatform.com) e ignorar mensagens de qualquer outra origem para que um iframe diferente na mesma página não possa falsificar eventos do adaptador.Os valores de
typediferenciam maiúsculas de minúsculas e não são uniformes. A maioria éTitle_Case(New_Call,End_Chat). Algumas são minúsculas (call_redaction_started,call_redaction_ended,agent_assist_added) ou camelCase (openThirdPartyPage). Compare com as strings exatas neste documento.Os eventos só são postados enquanto o adaptador está incorporado (a janela principal é uma janela diferente). Se o adaptador for aberto como uma página de nível superior, nada será postado.
O exemplo a seguir mostra um listener mínimo que aplica essas regras:
// Replace with the origin of your tenant.
const ADAPTER_ORIGIN = 'https://tenant.loc.ccaiplatform.com'
window.addEventListener('message', (event) => {
if (event.origin !== ADAPTER_ORIGIN) {
return
}
let message
try {
message = JSON.parse(event.data)
} catch (e) {
// Not an agent adapter event; another script on the page posted it.
return
}
const { type, data = {} } = message
switch (type) {
case 'New_Call':
// data.call_id, data.agent_id, data.queue_id, ...
break
case 'New_Chat':
// data.chat_id, data.agent_id, data.queue_id, ...
break
case 'CRM_Record_Pop':
// data.recordUrl
break
default:
// Ignore event types you don't handle; new types may be added over time.
break
}
}, false)
Mensagens para o adaptador de agente
A comunicação é principalmente unidirecional (adaptador para host), mas a página do host pode enviar um pequeno conjunto de comandos ao adaptador de chamada com postMessage(). Essas mensagens
são objetos simples (não strings JSON) com o seguinte esquema:
iframe.contentWindow.postMessage({
channel: '<channel name>',
eventType: '<event type>'
}, ADAPTER_ORIGIN)
Os comandos a seguir são compatíveis com o canal api:redaction. Eles são
usados para pausar e retomar a gravação para edição de chamadas na página do host.
eventType |
Descrição |
|---|---|
start_call_redaction |
Pause a gravação da chamada ativa para iniciar a edição. |
stop_call_redaction |
Retome a gravação da chamada ativa para interromper a redação. |
Observe o seguinte:
Os comandos só são executados quando a edição de chamada está ativada para o locatário e há uma chamada ativa. Caso contrário, o adaptador registra que a mensagem foi ignorada e não faz nada.
Quando o adaptador age no comando, ele envia o evento
call_redaction_startedoucall_redaction_endedcorrespondente de volta ao host, para que você possa confirmar que o estado da gravação realmente mudou.Sempre transmita a origem do locatário como o segundo argumento para
postMessage(), em vez de*, para que o comando não seja entregue a uma página diferente se o iframe for navegado.O canal
crm:authorityanterior com os tipos de eventosredact_call:starteredact_call:stopainda é aceito pelo adaptador de CRM personalizado para compatibilidade com versões anteriores, mas as novas integrações precisam usarapi:redaction.
Para mais informações, consulte Encobrimento de chamadas.
Dados de eventos
call_id: é um identificador para uma ligação recebida por voz com IVR (unidade de resposta audível).chat_id: identificador de uma ligação recebida de mensagens (chat na Web ou para dispositivos móveis).cobrowse_session_id: é um identificador de uma sessão de compartilhamento de tela. Uma sessão de compartilhamento de tela pode ser iniciada em uma chamada ou sessão de chat.session_type: é o tipo de sessão, como voz, chat ou mensagem.va_data_parameters: todas as variáveis configuradas na fila para enviar ao agente virtual. Isso só é necessário para eventos que envolvem o agente virtual. Opcional.session_variable: todas as variáveis do agente virtual que são enviadas para a plataforma CCAI no payload. Opcional.custom_sip_headers: permite que cabeçalhos SIP personalizados de chamadas SIP recebidas apareçam no log de eventos POST. Ele só é obrigatório se forem usados cabeçalhos SIP personalizados. Opcional.custom_data_secured: contém dados personalizados assinados do seu servidor. Opcional.custom_data_not_secured: contém dados personalizados não assinados da sua página da Web. Para mais informações, consulte Dados personalizados não assinados do Chat. Opcional.
IDs de agente
agent_id: é um identificador de um agente.from_agent_id: usado ao encaminhar chamadas ou chats de um agente para outro, para indicar o agente de origem.to_agent_id: usado ao encaminhar chamadas ou chats de um agente para outro, para indicar o agente de destino.agent_custom_id: é um ID de agente do perfil de usuário, se tiver sido inserido no perfil. Opcional.from_agent_custom_id: usado ao encaminhar chamadas ou chats de um agente para outro, para indicar o agente de origem.to_agent_custom_id: usado ao encaminhar chamadas ou chats de um agente para outro, para indicar o agente de destino.agent_email: o endereço de e-mail do agente.from_agent_email: usado ao encaminhar chamadas ou chats de um agente para outro, para indicar o agente de origem.to_agent_email: usado ao encaminhar chamadas ou chats de um agente para outro, para indicar o agente de destino.
IDs de agentes virtuais
virtual_agent_id: o número de ID atribuído a um agente virtual específico.
IDs de fila
queue_id: é o identificador de uma fila da plataforma CCAI e só existe quando a chamada se origina de uma fila.from_queue_id: usado ao encaminhar chamadas ou chats de uma fila para outra, para indicar a fila de origem.to_queue_id: usado ao encaminhar chamadas ou chats de uma fila para outra, para indicar a fila de destino.queue_path: é o caminho para uma fila da plataforma CCAI e só existe quando a chamada se origina de uma fila.from_queue_path: usado ao encaminhar chamadas ou chats de uma fila para outra, para indicar a fila de origem.to_queue_path: usado ao rotear chamadas ou chats de uma fila para outra, para indicar a fila de destino.
Campaign ID
campaign_id: ID da campanha da CCAI Platform. Eles só são incluídos se o tipo de chamada for uma chamada de campanha.campaign_name: um nome de campanha da plataforma CCAI. Eles só serão incluídos se o tipo de chamada for uma chamada de campanha.
Mensagem
message: evento que indica que uma nova mensagem do consumidor foi recebida, além do conteúdo da mensagem.
Tipos de sessão
session_type: um tipo de sessão da CCAI Platform.cobrowse_session_remote_control: indica o status de uma sessão de compartilhamento de tela de controle remoto solicitada. Valores:off,requested,rejected,on.cobrowse_session_full_device: indica o status de uma sessão de compartilhamento de tela de dispositivo completo. Valores:off,requested,rejected,on.
Participantes
type: tipo de participante:end_user;agent; (da resposta participants.type de /api/v1/calls ou /api/v1/chats).cobrowse_session_requested_by: indica quem iniciou uma sessão de compartilhamento de tela. Os valores possíveis sãoagentouend_user.cobrowse_session_ended_by: indica quem encerrou uma sessão de compartilhamento de tela. Os valores possíveis sãoagent,end_userouapi.end_user_id:participants.end_user_idde/api/v1/callsou resposta/api/v1/chats. Esse campo só está presente se o tipo forend_user.
Tipos de interação / sessão
Tipos de chamada
- Entrada de voz: chamadas PSTN padrão.
- Entrada de voz (URA usando dispositivos móveis): substitui chamadas PSTN feitas pelo SDK para dispositivos móveis.
- Entrada de voz (dispositivos móveis): posicionada por consumidores usando um SDK para dispositivos móveis instalado.
- Retorno de chamada de voz (Web): iniciado pelo SDK para Web.
- Entrada de voz (API): iniciada usando a API.
- Voz programada (dispositivo móvel): programada usando um SDK para dispositivos móveis instalado.
- Voz programada (Web): programada usando um SDK da Web instalado.
- Voz de saída: iniciada por um agente ao discar um número.
- Voz de saída (API): iniciada usando a API.
- Campanha de voz: iniciada usando um discador de saída (campanha).
Tipos de chat
- Mensagens (WhatsApp): iniciada usando o WhatsApp.
- Mensagens de entrada (SMS)
- Mensagens de saída (SMS)
- Mensagens de saída (SMS usando API)
- Mensagens (Web): iniciadas usando um SDK da Web instalado.
- Mensagens (dispositivos móveis): iniciadas usando um SDK para dispositivos móveis instalado.
Tipo de ligação ou chat
- Sessão de compartilhamento de tela: iniciada por um agente ou usuário final durante uma chamada ou um chat.
Tipos de evento
Confira os tipos de eventos postados pelo adaptador do agente. A coluna type
é a string exata, diferencia maiúsculas de minúsculas, que aparece no campo type da
mensagem.
O listener precisa ignorar os valores de type que não reconhece. Novos tipos de eventos
podem ser adicionados ao longo do tempo, e o adaptador também publica mensagens destinadas a outras
superfícies da plataforma CCAI (por exemplo, quando ele é hospedado no
desktop do agente da plataforma CCAI) que não fazem parte deste contrato.
Login do agente
Um evento de login do agente ocorre quando o agente faz login no adaptador.
Confira um exemplo de evento Agent_Login:
{
"type": "Agent_Login",
"data": {
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "Kim@example.com",
}
}
Confira as descrições dos campos de dados de eventos:
agent_id: o identificador do agenteOpcional:
agent_custom_id: o identificador personalizado do agente, se ele foi inserido no perfil do agente.agent_email: o endereço de e-mail associado à conta do agente.
Nova chamada
Um novo evento de chamada ocorre quando um agente atende uma chamada. Esse evento contém informações como quando a ligação começou, qual agente atendeu e de onde ela foi feita.
Confira um exemplo de evento New_Call:
{
"type": "New_Call",
"data": {
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "Kim@example.com",
"queue_id": 8469,
"queue_path": "Developers / Kim",
"campaign_id": 1432,
"campaign_name": "Survey Movie",
"call_id": 103646,
"session_type": "Voice Campaign (UJET)"
}
}
Confira as descrições dos campos de dados de eventos:
agent_id: o identificador do agenteagent_custom_id: o identificador personalizado do agente, se tiver sido inserido no perfil dele. Opcional.agent_email: o endereço de e-mail associado à conta do agente.queue_id: o identificador da fila de origem da chamada. Esse campo é incluído quando a chamada é originada de uma fila. Opcional.queue_path: o caminho da fila de onde a chamada se originou. Esse campo é incluído quando a chamada é originada de uma fila. Opcional.campaign_id: o identificador da campanha. Esse campo é incluído em uma chamada de campanha. Opcional.campaign_name: o nome da campanha. Esse campo é incluído em uma chamada de campanha. Opcional.call_id: o identificador da chamadasession_type: o tipo de sessãovirtual_agent_id: o identificador do agente virtual. Esse campo é incluído em eventos que envolvem o agente virtual. Opcional.va_data_parameters: as variáveis configuradas na fila para enviar ao agente virtual. Este campo é incluído para eventos que envolvem o agente virtual. Opcional.session_variable: todas as variáveis do agente virtual que são enviadas para a Contact Center AI Platform. Opcional.custom_sip_headers: permite que cabeçalhos personalizados do protocolo de início de sessão (SIP) de chamadas SIP recebidas apareçam no log de eventos POST. Esse campo será incluído se cabeçalhos SIP personalizados forem usados. Opcional.custom_data_secured: contém dados personalizados assinados do seu servidor. Opcional.custom_data_not_secured: contém dados personalizados não assinados da sua página da Web. Para mais informações, consulte Chat com dados do cliente não assinados. Opcional.
Consumidor entrou
Um evento de entrada do consumidor ocorre em uma chamada de campanha (discador de saída) quando o registro do consumidor é resolvido e carrega uma chave do gerenciador de campanhas de lista (LCM, na sigla em inglês). Ele permite que a página do host procure o contato discado no próprio sistema antes que o restante dos dados da chamada chegue. Esse evento só é postado para chamadas de campanha em que o contato tem uma chave de LCM.
Veja um exemplo de evento Consumer_Joined:
{
"type": "Consumer_Joined",
"data": {
"lcmKey": "acqueon:12345",
"custom_sip_headers": {
"X-Account-Id": "A-100"
},
"va_data_parameters": {
"param1": "one"
},
"session_variable": {
"key_one": "value"
}
}
}
Confira as descrições dos campos de dados de eventos:
lcmKey: a chave do Campaign Manager da lista do contato discado.custom_sip_headers: cabeçalhos SIP personalizados da chamada. Esse campo será incluído se cabeçalhos SIP personalizados forem usados. Opcional.va_data_parameters: as variáveis configuradas na fila para enviar ao agente virtual. Opcional.session_variable: as variáveis do agente virtual que são enviadas para a Contact Center AI Platform. Opcional.
A edição da chamada foi iniciada
Um evento de início de edição de chamada ocorre quando uma edição de chamada é iniciada e não está sendo gravada. Os dados de eventos consistem no ID do agente que atendeu a ligação e no ID da ligação.
O type desse evento está em letras minúsculas: call_redaction_started.
agent_id: o ID do agente que atendeu à chamada.call_id: o ID da chamada.
Confira um exemplo de evento "Redação de chamada iniciada":
{
"type": "call_redaction_started",
"data": {
"agent_id": 2896,
"call_id": 97939
}
}
A edição de chamadas foi interrompida
O evento de interrupção da redação de chamada ocorre quando uma redação de chamada termina e
a gravação é retomada. Esse evento consiste no ID do agente que processou
a chamada e no call ID.
O type deste evento está em letras minúsculas: call_redaction_ended.
agent_id: oIDdo agente que atendeu à chamadacall_id: oIDda chamada
Veja um exemplo de dados de evento de interrupção de encobrimento de chamada:
{
"type": "call_redaction_ended",
"data": {
"agent_id": 2896,
"call_id": 97939
}
}
Encerrar chamada
Um evento de encerramento de chamada ocorre quando uma ligação é encerrada. Esse evento contém informações como quando a chamada terminou, qual agente a processou e de onde ela veio.
Veja um exemplo de evento End_Call:
{
"type": "End_Call",
"data": {
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "Kim@example.com",
"queue_id": 8469,
"queue_path": "Developers / Kim",
"campaign_id": 1432,
"campaign_name": "Survey Movie",
"call_id": 103646,
"session_type": "Voice Campaign (UJET)"
}
}
Confira as descrições dos campos de dados de eventos:
agent_id: o identificador do agenteagent_custom_id: o identificador personalizado do agente, se tiver sido inserido no perfil dele. Opcional.agent_email: o endereço de e-mail associado à conta do agente.queue_id: o identificador da fila de origem da chamada. Esse campo é incluído quando a chamada é originada de uma fila. Opcional.queue_path: o caminho da fila de onde a chamada se originou. Esse campo é incluído quando a chamada é originada de uma fila. Opcional.campaign_id: o identificador da campanha. Esse campo é incluído em uma chamada de campanha. Opcional.campaign_name: o nome da campanha. Esse campo é incluído em uma chamada de campanha. Opcional.call_id: o identificador da chamadasession_type: o tipo de sessãovirtual_agent_id: o identificador do agente virtual. Esse campo é incluído em eventos que envolvem o agente virtual. Opcional.va_data_parameters: as variáveis configuradas na fila para enviar ao agente virtual. Este campo é incluído para eventos que envolvem o agente virtual. Opcional.session_variable: todas as variáveis do agente virtual que são enviadas para a Contact Center AI Platform. Opcional.custom_sip_headers: permite que cabeçalhos personalizados do protocolo de início de sessão (SIP) de chamadas SIP recebidas apareçam no log de eventos POST. Esse campo será incluído se cabeçalhos SIP personalizados forem usados. Opcional.custom_data_secured: contém dados personalizados assinados do seu servidor. Opcional.custom_data_not_secured: contém dados personalizados não assinados da sua página da Web. Para mais informações, consulte Dados personalizados não assinados do chat (opcional). Opcional.
Novo chat
Um novo evento de chat ocorre quando um agente atende uma sessão. Esse evento indica quando o chat começou e contém informações como qual agente lidou com o chat de onde ele se originou.
Confira um exemplo de evento New_chat:
{
"type": "New_Chat",
"data": {
"chat_id": 73522,
"session_type": "messaging inbound (web chat)",
"agent_id": 1,
"agent_email": "ariel@example.com",
"queue_id": 7678,
"queue_path": "HB TEAM / Ariel"
}
}
Confira as descrições dos campos de dados de eventos:
chat_id: o identificador do chatsession_type: o tipo de sessãoagent_id: o identificador do agenteagent_custom_id: o identificador personalizado do agente, se tiver sido inserido no perfil dele. Opcional.agent_email: o endereço de e-mail associado à conta do agente.queue_id: o identificador da fila de origem da chamada. Esse campo é incluído quando a chamada é originada de uma fila. Opcional.queue_path: o caminho da fila de onde a chamada se originou. Esse campo é incluído quando a chamada se origina de uma fila. Opcional.custom_data_secured: contém dados personalizados assinados do seu servidor. Opcional.custom_data_not_secured: contém dados personalizados não assinados da sua página da Web. Para mais informações, consulte Dados personalizados não assinados do Chat (opcional). Opcional.
Encerrar chat
Um evento de encerramento de chat ocorre quando uma sessão de chat termina. Esse evento indica quando a conversa terminou e contém informações como qual agente atendeu o chat e de onde ele veio.
Veja um exemplo de evento End_Chat:
{
"type": "End_Chat",
"data": {
"chat_id": 73522,
"session_type": "Messaging Inbound (Web Chat)",
"agent_id": 1,
"agent_email": "ariel@example.com",
"queue_id": null,
"queue_path": null,
"agent_custom_id": null
}
}
Confira as descrições dos campos de dados de eventos:
chat_id: o identificador do chat.session_type: o tipo de sessão.agent_id: o identificador do agente.agent_custom_id: o identificador personalizado do agente, se tiver sido inserido no perfil dele. Opcional.agent_email: o endereço de e-mail associado à conta do agente.queue_id: o identificador da fila de origem da chamada. Esse campo é incluído quando a chamada é originada de uma fila. Opcional.queue_path: o caminho da fila de origem da chamada. Esse campo é incluído quando a chamada é originada de uma fila. Opcional.custom_data_secured: contém dados personalizados assinados do seu servidor. Opcional.custom_data_not_secured: contém dados personalizados não assinados da sua página da Web. Para mais informações, consulte Dados personalizados não assinados do Chat (opcional). Opcional.
Chat ativo
Um evento de chat ativo ocorre quando o agente muda para uma guia de chat no adaptador de chat.
Confira um exemplo de evento Active_Chat:
{
"type": "Active_Chat",
"data": {
"chat_id": 73521,
"session_type": "messaging inbound (web chat)",
"agent_id": 1,
"agent_email": "ariel@example.com",
"queue_id": 7678,
"queue_path": "HB TEAM / Ariel"
}
}
Confira as descrições dos campos de dados de eventos:
chat_id: o identificador do chatsession_type: o tipo de sessãoagent_id: o identificador do agenteagent_custom_id: o identificador personalizado do agente, se tiver sido inserido no perfil dele. Opcional.agent_email: o endereço de e-mail associado à conta do agente.queue_id: o identificador da fila de origem da chamada. Esse campo é incluído quando a chamada é originada de uma fila. Opcional.queue_path: o caminho da fila de origem da chamada. Esse campo é incluído quando a chamada é originada de uma fila. Opcional.custom_data_secured: contém dados personalizados assinados do seu servidor. Opcional.custom_data_not_secured: contém dados personalizados não assinados da sua página da Web. Para mais informações, consulte Dados personalizados não assinados do chat (opcional). Opcional.
Mensagem recebida no chat
Um evento de mensagem de chat recebida indica que uma nova mensagem de cliente foi recebida. Inclui o conteúdo da mensagem.
Os dados dos seguintes campos são informados para um evento de mensagem de entrada de chat:
chat_id: identifica a sessão de chat.session_type: indica o tipo de sessão que está sendo criada, como mensagens recebidas pelo chat na Web.agent_id: identifica o agente que está lidando com a sessão de chat.agent_custom_id: esse campo só existe se o perfil do agente incluir um ID personalizado. Opcional.agent_email: o endereço de e-mail do agente que está lidando com a sessão de chat. Esse campo só é incluído quando o chat é originado de uma fila. Opcional.queue_id: o ID da fila de origem da sessão de chat. Esse campo é incluído apenas quando o chat se origina de uma fila.queue_path: o caminho da fila de origem da sessão de chat. Esse campo é incluído apenas quando o chat se origina de uma fila.message: um evento que indica que uma nova mensagem do consumidor foi recebida, além do conteúdo da mensagem.custom_data_secured: permite a transmissão de dados personalizados seguros do SDK. Opcional.custom_data_not_secured: permite a transmissão de dados personalizados não seguros do SDK. Opcional.
Veja um exemplo de evento Chat_Inbound_Message:
{
"type": "Chat_Inbound_Message",
"data": {
"chat_id": 73522,
"session_type": "messaging inbound (web chat)",
"agent_id": 1,
"agent_email": "ariel@example.com",
"queue_id": 7678,
"queue_path": "HB TEAM / Ariel",
"message" : "Can you help me with my order tracking number?"
}
}
Mensagem de chat enviada
Um evento de mensagem de saída do chat ocorre quando uma nova mensagem do consumidor é recebida. Inclui o conteúdo da mensagem.
Os dados dos campos a seguir são informados para um evento de mensagem de saída do chat:
chat_id: identifica a sessão de chat.session_type: indica o tipo de sessão que está sendo criada, como mensagens recebidas pelo chat na Web.agent_id: identifica o agente que está cuidando da sessão de chat.agent_custom_id: este campo só será incluído se o perfil do agente tiver um ID personalizado. Opcional.agent_email: o endereço de e-mail do agente que está lidando com a sessão de chat. Esse campo só é incluído quando o chat é originado de uma fila. Opcional.queue_id: o ID da fila de origem da sessão de chat. Esse campo só é incluído quando o chat se origina de uma fila.queue_path: o caminho da fila de origem da sessão de chat. Esse campo é incluído apenas quando o chat se origina de uma fila.message: o evento indica que uma nova mensagem do consumidor foi recebida, além do conteúdo da mensagemcustom_data_secured: permite a transmissão de dados personalizados protegidos do SDK. Opcional.custom_data_not_secured: permite a transmissão de dados personalizados do SDK não seguros. Opcional.
Veja um exemplo de evento Chat_Outbound_Message:
{
"type": "Chat_Outbound_Message",
"data": {
"chat_id": 73522,
"session_type": "messaging inbound (web chat)",
"agent_id": 1,
"agent_email": "ariel@example.com",
"queue_id": 7678,
"queue_path": "HB TEAM / Ariel",
"message" : "Please give me a moment to look up your account information"
}
}
Formulário enviado
Um evento de envio de formulário ocorre quando um formulário é enviado ao consumidor durante uma sessão de chat. Ambos os eventos são postados pelo adaptador de chat quando o chat recebe a mensagem do sistema correspondente.
Confira um exemplo de evento Form_Sent:
{
"type": "Form_Sent",
"data": {
"chat_id": 73522,
"session_type": "Messaging Inbound (Web Chat)",
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "Kim@example.com",
"end_user_id": 5512,
"form_external_id": "payment-details",
"form_name": "Payment details",
"form_type": "secure",
"queue_id": 7678,
"queue_path": "HB TEAM / Kim",
"queue_language_id": "en",
"timestamp": 1727853575000
}
}
Confira as descrições dos campos de dados de eventos:
chat_id: o identificador do chatsession_type: o tipo de sessãoagent_id: o identificador do agenteagent_custom_id: o identificador personalizado do agente, se ele foi inserido no perfil do agente. Opcional.agent_email: o endereço de e-mail associado à conta do agenteend_user_id: o identificador do consumidor no chat. Opcional.form_external_id: o identificador externo do formulário que foi enviado. Opcional.form_name: o nome do formulário que foi enviado. Opcional.form_type: o tipo de formulário que foi enviado. Opcional.queue_id: o identificador da fila de origem do chat. Esse campo é incluído quando o chat se origina de uma fila. Opcional.queue_path: o caminho da fila de origem do chat. Esse campo é incluído quando o chat se origina de uma fila. Opcional.queue_language_id: o idioma da fila. Opcional.timestamp: o horário em que o evento foi postado, em milissegundos desde a época Unix.va_data_parameters: as variáveis configuradas na fila para enviar ao agente virtual. Opcional.session_variable: todas as variáveis do agente virtual que são enviadas para a Contact Center AI Platform. Opcional.custom_data_secured: contém dados personalizados assinados do seu servidor. Opcional.custom_data_not_secured: contém dados personalizados não assinados da sua página da Web. Para mais informações, consulte Chat unsigned custom data. Opcional.
Formulário preenchido
Um evento de formulário concluído ocorre quando o consumidor envia um formulário que foi enviado durante uma sessão de chat. Os dados de eventos têm os mesmos campos do evento Formulário enviado.
Confira um exemplo de evento Form_Completed:
{
"type": "Form_Completed",
"data": {
"chat_id": 73522,
"session_type": "Messaging Inbound (Web Chat)",
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "Kim@example.com",
"end_user_id": 5512,
"form_external_id": "payment-details",
"form_name": "Payment details",
"form_type": "secure",
"queue_id": 7678,
"queue_path": "HB TEAM / Kim",
"queue_language_id": "en",
"timestamp": 1727853601000
}
}
Chat dispensado
Um evento de chat dispensado ocorre quando o agente fecha a guia de chat no adaptador de chat.
Veja um exemplo de evento Dismissed_Chat:
{
"type":"Dismissed_Chat",
"data":{"chat_id":73522,
"session_type":"Messaging Inbound (Web Chat)",
"agent_id":1,
"agent_email":"ariel@example.com"
}
}
Confira as descrições dos campos de dados de eventos:
chat_id: o identificador do chatsession_type: o tipo de sessãoagent_id: o identificador do agenteagent_custom_id: o identificador personalizado do agente, se ele foi inserido no perfil do agente. Opcional.agent_email: o endereço de e-mail associado à conta do agente.queue_id: o identificador da fila de origem da chamada. Esse campo é incluído quando a chamada é originada de uma fila. Opcional.queue_path: o caminho da fila de origem da chamada. Esse campo é incluído quando a chamada é originada de uma fila. Opcional.custom_data_secured: contém dados personalizados assinados do seu servidor. Opcional.custom_data_not_secured: contém dados personalizados não assinados da sua página da Web. Para mais informações, consulte Dados personalizados não assinados do chat (opcional). Opcional.
Sessão de compartilhamento de tela iniciada
Um evento Sessão de compartilhamento de tela iniciada ocorre quando uma sessão de compartilhamento de tela é iniciada por um agente ou um usuário final. Uma sessão de compartilhamento de tela pode ser iniciada durante uma ligação ou um chat. Para mais informações, consulte Compartilhamento de tela.
Veja um exemplo de um objeto JSON para um evento de início de sessão de compartilhamento de tela:
{
"type": "Cobrowse_Session_Started",
"data": {
"agent_id": 5,
"chat_id": 791,
"cobrowse_session_id": "Y1zYY6XIYX4oapqpEz3qHw",
"cobrowse_session_requested_by": "agent",
"cobrowse_session_remote_control": "off",
"cobrowse_session_full_device": "off"
}
}
Confira as descrições dos campos de dados de eventos:
agent_id: o identificador do agente.call_id: o identificador de uma ligação recebida no canal de IVR (unidade de resposta audível). Esse campo será incluído se a sessão de compartilhamento de tela tiver sido iniciada durante uma chamada.chat_id: o identificador de um chat recebido no canal da Web ou para dispositivos móveis. Esse campo será incluído se a sessão de compartilhamento de tela tiver sido iniciada durante um chat.cobrowse_session_id: o identificador de uma sessão de compartilhamento de tela.cobrowse_session_requested_by: indica quem iniciou uma sessão de compartilhamento de tela. Os valores sãoagenteend-user.cobrowse_session_remote_control: indica o status de uma sessão de compartilhamento de tela de controle remoto. Os valores sãoon,rejected,requestedeoff.cobrowse_session_full_device: indica o status de uma sessão de compartilhamento de tela de dispositivo completo. Os valores sãoon,rejected,requestedeoff.custom_data_secured: contém dados personalizados assinados do seu servidor. Opcional.custom_data_not_secured: contém dados personalizados não assinados da sua página da Web. Para mais informações, consulte Dados personalizados não assinados do chat (opcional). Opcional.
O controle remoto da sessão de compartilhamento de tela mudou
Um evento de mudança de controle remoto da sessão de compartilhamento de tela ocorre quando o status de uma sessão de compartilhamento de tela de controle remoto muda. Esse evento indica o status da sessão de compartilhamento de tela do controle remoto. Para mais informações, consulte Compartilhamento de tela.
Veja um exemplo de um objeto JSON para um evento Cobrowse_Session_Remote_Control_Changed:
{
"type": "Cobrowse_Session_Remote_Control_Changed",
"data": {
"agent_id": 5,
"chat_id": 791,
"cobrowse_session_id": "Y1zYY6XIYX4oapqpEz3qHw",
"cobrowse_session_remote_control": "requested"
}
}
Confira as descrições dos campos de dados de eventos:
agent_id: o identificador do agente.call_id: o identificador de uma ligação recebida no canal de IVR (unidade de resposta audível). Esse campo é incluído se a sessão de compartilhamento de tela foi iniciada durante uma chamada.chat_id: o identificador de uma conversa recebida no canal da Web ou para dispositivos móveis. Esse campo é incluído se a sessão de compartilhamento de tela foi iniciada durante uma conversa.cobrowse_session_id: o identificador de uma sessão de compartilhamento de tela.cobrowse_session_remote_control: indica o status de uma sessão de compartilhamento de tela de controle remoto. Os valores sãoon,rejected,requestedeoff.custom_data_secured: contém dados personalizados assinados do seu servidor. Opcional.custom_data_not_secured: contém dados personalizados não assinados da sua página da Web. Para mais informações, consulte Dados personalizados não assinados do chat (opcional). Opcional.
Sessão de compartilhamento de tela: dispositivo completo alterado
Um evento de mudança de dispositivo completo em uma sessão de compartilhamento de tela ocorre quando o status de uma sessão de compartilhamento de tela em um dispositivo completo muda. Esse evento indica o status da sessão completa de compartilhamento de tela do dispositivo. Para mais informações, consulte Compartilhamento de tela.
Confira um exemplo de evento Cobrowse_Session_Full_Device_Changed:
{
"type": "Cobrowse_Session_Full_Device_Changed",
"data": {
"agent_id": 5,
"cobrowse_session_id": "9-Kshrag-gn6ZSuIxoMtWQ",
"cobrowse_session_full_device": "rejected"
}
}
Confira as descrições dos campos de dados de eventos:
agent_id: o identificador do agente.call_id: o identificador de uma ligação recebida no canal de IVR (unidade de resposta audível). Esse campo é incluído se a sessão de compartilhamento de tela foi iniciada durante uma chamada.chat_id: o identificador de uma conversa recebida no canal da Web ou para dispositivos móveis. Esse campo é incluído se a sessão de compartilhamento de tela foi iniciada durante um chat.Cobrowse_session_id: o identificador de uma sessão de compartilhamento de tela.Cobrowse_session_full_device: indica o status de uma sessão de compartilhamento de tela de dispositivo completo. Os valores sãoon,rejected,requestedeoff.custom_data_secured: contém dados personalizados assinados do seu servidor. Opcional.custom_data_not_secured: contém dados personalizados não assinados da sua página da Web. Para mais informações, consulte Dados personalizados não assinados do Chat (opcional). Opcional.
A sessão de compartilhamento de tela foi encerrada
Um evento de início de sessão de compartilhamento de tela ocorre quando uma sessão de compartilhamento de tela é encerrada por um agente, um usuário final ou a API. Para mais informações, consulte Configurar o compartilhamento de tela.
Veja um exemplo de evento Cobrowse_Session_Ended:
{
"type": "Cobrowse_Session_Ended",
"data": {
"agent_id": 5,
"cobrowse_session_id": "9-Kshrag-gn6ZSuIxoMtWQ",
"cobrowse_session_requested_by": "end_user",
"cobrowse_session_ended_by": "agent",
"cobrowse_session_remote_control": "on",
"cobrowse_session_full_device": "rejected"
}
}
Confira as descrições dos campos de dados de eventos:
agent_id: o identificador do agente.call_id: o identificador de uma ligação recebida no canal de IVR (unidade de resposta audível). Esse campo é incluído se a sessão de compartilhamento de tela foi iniciada durante uma chamada.chat_id: o identificador de uma conversa recebida no canal da Web ou para dispositivos móveis. Esse campo é incluído se a sessão de compartilhamento de tela foi iniciada durante um chat.cobrowse_session_id: o identificador de uma sessão de compartilhamento de tela.cobrowse_session_ended_by: indica quem encerrou a sessão de compartilhamento de tela. Os valores sãoagent,end-usereapi.cobrowse_session_remote_control: indica o status de uma sessão de compartilhamento de tela de controle remoto. Os valores sãoon,rejected,requestedeoff.cobrowse_session_full_device: indica o status de uma sessão de compartilhamento de tela de dispositivo completo. Os valores sãoon,rejected,requestedeoff.custom_data_secured: contém dados personalizados assinados do seu servidor. Opcional.custom_data_not_secured: contém dados personalizados não assinados da sua página da Web. Para mais informações, consulte Dados personalizados não assinados do chat (opcional). Opcional.
Transferir
Um evento de transferência ocorre quando uma chamada ou um chat é transferido. Ela pode se referir a uma transferência cega ou interna.
Os campos de evento a seguir fazem parte de um evento de transferência.
chat_idoucall_id: identifica a sessão de ligação ou chat.session_type: indica o tipo de sessão que está sendo criada, como uma mensagem recebida por chat na Web.campaign_id: o ID da campanha. Esse campo só está presente se o call type for uma chamada de campanha. Opcional.campaign_name: o nome da campanha. Esse campo só estará presente se o tipo de chamada for uma chamada de campanha. Opcional.from_agent_id: usado ao encaminhar chamadas ou chats de um agente para outro, para indicar o agente de origem.from_agent_custom_id: usado ao encaminhar chamadas ou chats de um agente para outro, para indicar o agente de origem. Opcional.from_agent_email: usado ao encaminhar chamadas ou chats de um agente para outro, para indicar o agente de origem.to_agent_id: usado ao encaminhar chamadas ou chats de um agente para outro, para indicar o agente de destino.to_agent_custom_id: usado ao encaminhar chamadas ou chats de um agente para outro, para indicar o agente de destino. Opcional.to_agent_email: usado ao encaminhar chamadas ou chats de um agente para outro, para indicar o agente de destino.from_queue_id: usado ao rotear chamadas ou chats de uma fila para outra, para indicar a fila de origem.from_queue_path: usado ao rotear chamadas ou chats de uma fila para outra, para indicar a fila de origem.to_queue_id: usado ao encaminhar chamadas ou chats de uma fila para outra para indicar a fila de destino.to_queue_path: usado ao rotear chamadas ou chats de uma fila para outra para indicar a fila de destinovirtual_agent_id: o ID atribuído a um agente virtual. Opcional.va_data_parameters: todas as variáveis configuradas na fila para enviar ao agente virtual. Isso só é necessário para eventos que envolvem o agente virtual. Opcional.session_variable: todas as variáveis do agente virtual que são enviadas para a CCAI Platform no payload. Opcional.custom_sip_headers: permite que cabeçalhos SIP personalizados de chamadas SIP recebidas apareçam no log de eventos POST. Ele só é obrigatório se cabeçalhos SIP personalizados forem usados. Opcional.custom_data_secured: permite a transmissão de dados personalizados protegidos do SDK. Opcional.custom_data_not_secured: permite a transmissão de dados personalizados do SDK não seguros. Opcional.
Confira um exemplo de evento de transferência:
{
"type": "Transfer_Chat",
"data": {
"chat_id": 103646,
"session_type": "Messaging Inbound (SMS)",
"campaign_id": 1432,
"campaign_name": "Survey Movie",
"from_agent_id": 1,
"from_agent_custom_id": "007",
"from_agent_email": "Ira@example.com",
"to_agent_id" : 5
"to_agent_custom_id": "100"
"to_agent_email" : "ariel@example.com"
"from_queue_id": 8469,
"from_queue_path": "Developers / Ariel",
"to_queue_id" : 1234,
"to_queue_path" : "Schemes / Auric"
}
}
Parte adicionada
Um evento de adição de parte se refere a qualquer transferência. Pode ser uma transferência de chamada ou de chat.
Um evento de adição de grupo contém os seguintes dados:
chat_idoucall_id: identifica a chamada ou sessão de chat.session_type: indica o tipo de sessão que está sendo criada, como uma mensagem recebida por chat na Web.agent_custom_id: esse campo só existe se o perfil do agente incluir um ID personalizado. Opcional.agent_email: o endereço de e-mail do agente que está atendendo a chamada ou a sessão de chat.queue_id: o ID da fila de origem da sessão de chat. Esse campo é incluído apenas quando o chat se origina de uma fila. Opcional.queue_path: o caminho da fila de origem da sessão de chat. Esse campo é incluído apenas quando o chat se origina de uma fila. Opcional.campaign_id: o ID da campanha. Esse campo só é incluído quando o tipo de chamada é uma chamada de campanha. Opcional.campaign_name: o nome da campanha. Esse campo só é incluído quando o tipo de chamada é uma chamada de campanha. Opcional.type: o tipo de participante, por exemplo, um end_user ou agent. Esse campo é retornado como parte do participants.type da resposta/api/v1/callsou/api/v1/chats.end_user_id: o end_user_id. Esse campo é retornado como parte da resposta de/api/v1/callsou/api/v1/chats. Esse campo só está presente em chamadas ou chats de usuários finais que são encaminhados de um agente para outro, para indicar o agente de destino. Opcional.virtual_agent_id: o identificador atribuído a um agente virtual. Opcional.va_data_parameters: todas as variáveis configuradas na fila para enviar ao agente virtual. Isso só é necessário para eventos que envolvem o agente virtual. Opcional.session_variable: todas as variáveis do agente virtual que são enviadas para a CCAI Platform no payload. Opcional.custom_sip_headers: permite que cabeçalhos SIP personalizados de chamadas SIP recebidas apareçam no log de eventos POST. Ele só é obrigatório se cabeçalhos SIP personalizados forem usados. Opcional.custom_data_secured: permite a transmissão de dados personalizados protegidos do SDK. Opcional.custom_data_not_secured: permite a transmissão de dados personalizados não seguros do SDK. Opcional.
Veja um exemplo de evento Party_Added.
{
"type": "Party_Added",
"data": {
"chat_id": 103646,
"session_type": "Messaging Inbound (SMS)",
"campaign_id": 1432,
"campaign_name": "Survey Movie",
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "ariel@example.com",
"queue_id": 8469,
"queue_path": "Developers / Ariel",
"type" : "agent"
}
}
O agente se conecta à sessão
Um evento de conexão do agente com a sessão ocorre quando um agente se conecta a uma sessão. Há dois tipos diferentes de eventos. O tipo é determinado pelo fato de ser uma ligação ou um chat.
Os campos de evento a seguir fazem parte de um evento de conexão do agente com a sessão.
agent_id: identifica o agente que está atendendo a chamada ou a sessão de chat.agent_email: o endereço de e-mail do agente que está atendendo a chamada ou a sessão de chat.agent_custom_id: esse campo só existe se o perfil do agente incluir um ID personalizado. Opcional.chat_idoucall_id: identifica a sessão de ligação ou chat.virtual_agent_id: o ID atribuído a um agente virtual específico. Opcional.campaign_id: o ID da campanha. Esse campo só é incluído quando o tipo de chamada é uma chamada de campanha. Opcional.campaign_name: o nome da campanha. Esse campo só é incluído quando o tipo de chamada é uma chamada de campanha. Opcional.queue_id: o ID da fila de origem da sessão de chat. Esse campo é incluído apenas quando o chat se origina de uma fila. Opcional.queue_path: o caminho da fila de origem da sessão de chat. Esse campo é incluído apenas quando o chat se origina de uma fila. Opcional.session_type: indica o tipo de sessão que está sendo criada, como uma mensagem recebida pelo chat na Web.virtual_agent_id: o ID atribuído a um agente virtual. Opcional.va_data_parameters: todas as variáveis configuradas na fila para enviar ao agente virtual. Isso só é necessário para eventos que envolvem o agente virtual. Opcional.session_variable: todas as variáveis do agente virtual que são enviadas para o UJET no payload. Opcional.custom_sip_headers: permite que cabeçalhos SIP personalizados de chamadas SIP recebidas apareçam no log de eventos POST. Ele só é obrigatório se cabeçalhos SIP personalizados forem usados. Opcional.custom_data_secured: permite a transmissão de dados personalizados protegidos do SDK. Opcional.custom_data_not_secured: permite a transmissão de dados personalizados do SDK não seguros. Opcional.
Veja um exemplo de dados de eventos de Agent_Joined_Chat:
{
"type": "Agent_Joined_Chat",
"data": {
"chat_id": 103646,
"campaign_id": 1432,
"campaign_name": "Survey Movie",
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "ariel@example.com",
"queue_id": 8469,
"queue_path": "Developers / Ariel",
"session_type": "Messaging Inbound (SMS)",
}
}
Saída do agente
Um evento de logout do agente ocorre quando um agente sai do adaptador de agente.
Os campos de evento a seguir fazem parte de um evento Agent_Logout.
agent_id: o identificador do agente que fez login;agent_email: o endereço de e-mail associado à conta do agente.agent_custom_id: o ID personalizado do agente, se ele foi inserido no perfil do agente. Opcional.
Confira um exemplo de evento Agent_Logout:
{
"type": "Agent_Logout",
"data": {
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "ariel@example.com",
}
}
Agent Assist adicionado
Um evento de adição do Agent Assist ocorre quando um atendente ativa o Agent Assist durante uma sessão de chamada ou chat.
Observações sobre esse evento:
O
typedeste evento está em letras minúsculas:agent_assist_added.O campo de carimbo de data/hora é chamado de
Timestamp(T maiúsculo) e é o número de milissegundos desde a época Unix.
Veja um exemplo de evento agent_assist_added:
{
"type": "agent_assist_added",
"data": {
"conversation_id": "12345",
"queue_id": 65,
"agent_id": 1,
"session_id": "78534G4RT4284",
"queue_language_id": "en",
"Timestamp": 1727853575000
}
}
Confira os campos de evento:
conversation_id: o identificador da conversa. Esse campo é incluído quando a sessão usa um perfil de conversa. Opcional.queue_id: o identificador da fila. Opcional.agent_id: o identificador do agentesession_id: o identificador da sessão. Opcional.queue_language_id: o idioma da fila. Opcional.Timestamp: o horário em que o evento foi postado, em milissegundos desde a época Unix.
O assistente de tarefas virtual entrou
Um evento de entrada de um assistente virtual de assistência com tarefas ocorre quando um assistente virtual de assistência com tarefas (VTA, na sigla em inglês) entra em uma chamada ou sessão de chat.
Confira um exemplo de evento Task_VA_Joined:
{
"type": "Task_VA_Joined",
"data": {
"chat_id": 103646,
"campaign_id": 1432,
"campaign_name": "Survey Movie",
"virtual_agent_id": 1,
"virtual_agent_name": "Order status assistant",
"participant_id": 1,
"queue_id": 8469,
"queue_path": "Developers / Kim",
"queue_language_id": "en",
"session_type": "Messaging Inbound (SMS)",
"conversation_id": "12345",
"session_id": "78534G4RT4284",
"timestamp": 1727853575000,
"data_parameters": {
"param1": "one",
"param2": "two"
}
}
}
Confira os campos de evento:
call_idouchat_id: o identificador da chamada ou do chatcampaign_id: o identificador da campanha. Esse campo é incluído em uma chamada de campanha. Opcional.campaign_name: o nome da campanha. Este campo é incluído em uma chamada de campanha. Opcional.virtual_agent_id: o identificador da VTAvirtual_agent_name: o nome do VTA conforme configurado no portal da plataforma CCAIparticipant_id: o identificador do participante do VTA na sessão.queue_id: o identificador da fila de origem da sessão. Opcional.queue_path: o caminho da fila de origem da sessão. Opcional.queue_language_id: o idioma da fila. Opcional.session_type: o tipo de sessãoconversation_id: o identificador da conversa. Esse campo é incluído quando a sessão usa um perfil de conversa. Opcional.session_id: o identificador da sessão. Opcional.timestamp: o horário em que o evento foi postado, em milissegundos desde a época Unix.data_parameters: as variáveis configuradas no portal da plataforma CCAI e enviadas ao VTA. Opcional.
Assistente de tarefas virtual à esquerda
Um evento de saída do assistente virtual de tarefas ocorre quando o VTA sai da sessão. Além dos campos do evento O Assistente de tarefas virtual entrou, ele inclui o motivo do encerramento da sessão do VTA e as variáveis de sessão capturadas pelo VTA.
Veja um exemplo de evento Task_VA_Left:
{
"type": "Task_VA_Left",
"data": {
"chat_id": 103646,
"virtual_agent_id": 1,
"virtual_agent_name": "Order status assistant",
"participant_id": 1,
"queue_id": 8469,
"queue_path": "Developers / Kim",
"queue_language_id": "en",
"session_type": "Messaging Inbound (SMS)",
"conversation_id": "12345",
"session_id": "78534G4RT4284",
"timestamp": 1727853600000,
"finish_reason": "Task VA completed",
"data_parameters": {
"param1": "one"
},
"captured_variables": [
{
"intent_name": null,
"variables": {
"order_number": "A-100"
},
"captured_at": "2024-11-15 16:46:31 UTC",
"timestamp": 1727853590000
}
]
}
}
Os campos extras de evento são:
finish_reason: o motivo pelo qual a sessão de VTA terminou.captured_variables: as variáveis de sessão capturadas pelo VTA, cada uma com a intent que as capturou e quando foram capturadas. Opcional.
Variáveis de sessão de assistência com tarefas virtual recebidas
Um evento de variáveis de sessão recebidas do Assistente de tarefas virtuais ocorre sempre que o
VTA envia um payload de variável de sessão personalizada durante a sessão. O evento tem
os mesmos campos que o evento Virtual Task Assistant left,
exceto finish_reason, e captured_variables contém as variáveis recebidas
até o momento.
Veja um exemplo de evento Task_VA_Variables_Received:
{
"type": "Task_VA_Variables_Received",
"data": {
"chat_id": 103646,
"virtual_agent_id": 1,
"virtual_agent_name": "Order status assistant",
"participant_id": 1,
"queue_id": 8469,
"queue_path": "Developers / Kim",
"queue_language_id": "en",
"session_type": "Messaging Inbound (SMS)",
"conversation_id": "12345",
"session_id": "78534G4RT4284",
"timestamp": 1727853590000,
"data_parameters": {
"param1": "one"
},
"captured_variables": [
{
"intent_name": null,
"variables": {
"order_number": "A-100"
},
"captured_at": "2024-11-15 16:46:31 UTC",
"timestamp": 1727853590000
}
]
}
}
Somente as variáveis em que capture_type inclui event no payload da variável de sessão personalizada do agente virtual são incluídas, e as chaves listadas em invisible_to_adapter_events são excluídas.
Pop-up em segundo plano
O recurso de pop-up de tela permite que os agentes façam um pop-up de tela do CRM em segundo plano, o que significa que as informações do cliente são exibidas na tela do agente sem que ele precise fazer nenhuma ação necessária. Isso oferece uma experiência mais integrada para os consumidores e reduz o tempo de atendimento dos agentes.
Abertura de registros do CRM
O evento CRM_Record_Pop é um evento do lado do servidor que é acionado quando um tíquete
precisa ser exibido. Esse evento inclui um parâmetro chamado recordUrl que
contém o URL do registro do CRM, permitindo que você realize um pop-up de tela
inscrevendo-se em eventos POST se estiver usando adaptadores incorporados.
Confira um exemplo de evento CRM_Record_Pop:
{
"type": "CRM_Record_Pop",
"data": {
"recordUrl": "https://crm.example.com/tickets/4711"
}
}
O evento tem um único campo:
recordUrl: o URL do registro de CRM a ser exibido.
Para isso, o exemplo a seguir demonstra como adicionar um listener de eventos que detecta mensagens enviadas de outro frame ou janela. Esse snippet de código foi projetado para permitir a comunicação entre diferentes frames ou janelas e atualizações dinâmicas no conteúdo exibido no iframe com base nas mensagens recebidas.
// Replace with the origin of your tenant.
const ADAPTER_ORIGIN = 'https://tenant.loc.ccaiplatform.com'
// name is the html property of the iframe that shows the CRM record
const iframeTarget = document.querySelector('iframe[name="target_iframe_adapter"]')
// example usage of add event listener
// https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
window.addEventListener('message', (e) => {
// Only accept events posted by the agent adapter.
if (e.origin !== ADAPTER_ORIGIN) {
return
}
let message
try {
message = JSON.parse(e.data)
} catch (err) {
// Not an agent adapter event.
return
}
const { type, data = {} } = message
console.log('EventListener: ', type)
switch (type) {
case 'CRM_Record_Pop': {
const recordUrl = data.recordUrl
if (!recordUrl) {
return
}
console.log(`Opening recordUrl in iframe ${iframeTarget.getAttribute('name')}`)
// changing an iframe target to the record URL pop
iframeTarget.src = recordUrl
break
}
case 'New_Chat':
console.log('Chat started...')
// handling here for New_Chat events
break
case 'End_Chat':
console.log('Chat ended...')
// handling here for End_Chat events
break
default:
// code handling for other types
break
}
}, false)
Abrir página de terceiros
O evento openThirdPartyPage é postado pelo adaptador de chamada quando uma chamada carrega
uma chave de terceiros (por exemplo, uma chave do gerenciador de campanhas de lista em uma chamada de campanha)
e o adaptador está prestes a abrir a página correspondente de terceiros. Se você estiver usando
adaptadores incorporados, poderá se inscrever nesse evento para abrir a página na sua própria
UI.
Veja um exemplo de evento openThirdPartyPage:
{
"type": "openThirdPartyPage",
"data": {
"thirdPartyKey": "acqueon:12345",
"callId": 103646
}
}
Confira os campos de evento:
thirdPartyKey: a chave de terceiros associada à chamada.callId: o identificador da chamada