Crie um sistema de sobrecarga de ligações com Twilio Studio e Twilio Serverless

March 31, 2021
Escrito por
Liz Moy
Twilion
Revisado por
Susan Lucas Collins
Contribuidor
As opiniões expressas pelos colaboradores da Twilio são de sua autoria

Crie um sistema de sobrecarga de ligações com Twilio Studio e Twilio Serverless

Atualmente, os sistemas de telefonia dos escritórios dos provedores de saúde estão sobrecarregados com chamadas devido à programação de agendamento de vacinas. À medida que a distribuição generalizada aumenta em todo o mundo, é importante que os sistemas de saúde prevejam esse aumento de volume. Neste artigo, você aprenderá a criar um sistema de Unidade de Resposta Audível (URA) baseado em nuvem com o Twilio Studio e o Twilio Serverless. Esse sistema gerencia as chamadas recebidas para que nenhuma chamada de paciente seja perdida, bem como armazena a solicitação do paciente em um banco de dados que pode ser usado por um profissional de saúde para análise e acompanhamento.

Você pode estar se perguntando onde exatamente armazenaria a solicitação do paciente. Provavelmente, essa informação estará no EHR (Electronic Health Record, registro eletrônico de saúde) do paciente. De acordo com o cms.gov, um EHR é uma versão eletrônica do histórico clínico de um paciente, que é mantido pelo provedor ao longo do tempo e pode incluir todos os principais dados clínicos administrativos relevantes para o atendimento dessa pessoa por um determinado provedor. Alguns exemplos de EHRs incluem Epic e Cerner, que podem ser acessados de várias maneiras seguras, por exemplo, usando middleware como Redox Engine ou ELLKAY.

Para criar esse protótipo, usaremos o Airtable, um banco de dados semelhante a uma planilha em nuvem, para simular o EHR que você usa para armazenar com segurança os dados do paciente. Se você não estiver familiarizado com o Airtable, aprenderá o passo a passo de como configurar uma base.

É importante observar que o Airtable não deve ser usado na produção e somente deve ser usado para este tutorial.

Primeiramente, configure o fluxo do Twilio Studio para lidar com as chamadas recebidas. Em seguida, configure a base Airtable no Twilio Serverless. Por fim, adicione o código node.js que coleta os dados enviados do Twilio Studio e os grava na base Airtable.

Pré-requisitos

  • Uma conta da Twilio. Se você se inscrever para uma nova conta por meio deste link, receberá um crédito extra de 10 dólares ao fazer a atualização.
  • Um número de telefone Twilio. As instruções sobre como obter um estão aqui.
  • Uma Conta Airtable.

Como configurar o fluxo da URA do Twilio Studio

Primeiramente, crie um sistema para gerenciar as chamadas recebidas com o Twilio Studio, um criador de workflow visual dinâmico. O Twilio Studio é hospedado pela Twilio, portanto, não é necessário configurar seu próprio servidor nem realizar uma implantação separadamente. Ele usa o Twilio Programmable Voice para coletar os dados por meio de pressionamento de tecla ou correio de voz.

Para fazer um novo fluxo do Twilio Studio, faça login na sua conta Twilio e acesse o dashboard do Studio. Em seguida, clique no sinal de adição azul e nomeie seu fluxo "Controlador de sobrecarga de chamadas". Clique no modal de configuração, role para baixo e escolha "Import from JSON" (Importar do JSON) nos modelos fornecidos.

imagem da opção de modelo 'Import from JSON' (Importar do JSON) no Twilio Studio

Abra esse gist e copie o JSON para a área de transferência. Retorne à janela de configuração do Twilio Studio para excluir os colchetes vazios do espaço reservado e colá-los no JSON copiado do gist. Depois de concluir a configuração, você verá um fluxograma como o abaixo. Pressione o botão "Publish" (Publicar) na parte superior do fluxo.

imagem da primeira parte do fluxo do Studio onde ele solicita o nome, o sobrenome e a idade do autor da chamada

O sistema solicita informações ao paciente assim como em uma pesquisa interativa. Na próxima etapa, conecte esse fluxo a um número de telefone programável da Twilio de modo que, quando alguém discar o número, esse fluxo iniciará no widget acionador. O fluxo solicitará ao autor da chamada seu nome, sobrenome, idade e CEP. Cada vez que o autor responde, a resposta é armazenada no contexto global da execução do fluxo. Para entender melhor como as variáveis são armazenadas nos fluxos do Studio, leia a documentação do Twilio Studio.

Depois de perguntas como o nome, o sistema coletará a resposta com base no que o usuário diz usando o reconhecimento de fala. Para perguntas como idade e CEP, o sistema coletará a resposta das teclas pressionadas. Depois que todas as perguntas forem respondidas, os dados serão enviados para a base Airtable (seu EHR simulado) por meio de uma função do Twilio Serverless. Se os dados forem enviados com êxito, o autor da chamada receberá uma mensagem de despedida e a chamada será encerrada. No entanto, se ocorrer um erro no processo, você pode informar que algo deu errado e transferir os dados para um agente/programador ativo.

imagem da próxima parte do fluxo onde ele reúne o número de telefone e o CEP, grava no Airtable e diz uma mensagem de despedida

Como conectar seu número de telefone ao fluxo para testar a URA

Em seguida, navegue até o console de números de telefone e clique no número de telefone que você comprou para este protótipo. Role para baixo até "when a call comes in" (quando uma chamada é recebida) e, nos menus suspensos, escolha "Studio Flow" (Fluxo do Studio) e o fluxo que você acaba de criar. Pressione o botão "Save" (Salvar).

imagem da parte do console de números de telefone do Programmable que anota a escolha do fluxo do Studio no menu suspenso 'A Call Comes In' (Uma chamada recebida)

Agora você pode tentar ligar para o seu número de telefone da Twilio e passar pela URA.

Imagem de um iPhone que foi chamado com êxito em um número de telefone programável adquirido

Como você ainda não configurou a função ou o Airtable, nenhum dado será enviado. No entanto, se você quiser ver se as variáveis estão sendo armazenadas corretamente no contexto do Studio, poderá verificar os registros do Studio. Navegue de volta para o editor de fluxo do Studio e, no menu lateral, abaixo de "Editor" (Editor), escolha "Logs" (Registros).

Imagem dos registros do Twilio Studio

Em seguida, você pode clicar no widget de triângulo de divulgação junto a cada ação com carimbo de data e hora. Se você clicar em um que seja precedido de "set_", verá a variável que está definida. Por exemplo, se você clicar em "set_firstName", verá o nome que forneceu quando passou pelo fluxo.

Imagem de uma parte aberta dos registros do Twilio Studio que mostra onde a variável firstName está definida

Os registros do Twilio Studio podem ser muito úteis para depuração ou para melhor compreensão da execução do fluxo. E, se o seu fluxo ficar preso, você pode optar por encerrar as execuções ativas para começar novamente.

Em seguida, você configurará o Airtable.

Como configurar o Airtable

Copie esta base Airtable pressionando "Copy Base" (Copiar base) no canto superior direito. Nomeie sua base como "Call Overflows" (Sobrecarga de chamadas) e sua tabela como "Patients" (Pacientes).

Veja esta captura de tela dos dados de amostra na tabela "appointments" (agendamentos) na base "patients" (pacientes). A exibição de grade da base será semelhante a esta:

Uma base do Airtable que mostra quatro linhas de dados fictícios.

Você precisa da chave de API do Airtable e de um ID de base para a próxima etapa da criação do protótipo. Gere uma chave de API do Airtable na página da sua conta. Obtenha o ID de base da documentação da API gerada automaticamente ao clicar na base de agendamentos. Você pode extraí-lo do URL ou da seção de introdução. Ele é precedido por "app".

Como adicionar o código do Serverless para acessar os dados de agendamento do Airtable

Em seguida, escreva um código para leitura e atualização dos dados de agendamento do Airtable usando o Twilio Functions. Abra o dashboard de serviços e clique em "Create Service" (Criar serviço). Dê ao seu novo serviço o nome de "call-overflow" (sobrecarga de chamadas).

Em configurações, clique em "Environment Variables" (Variáveis de ambiente) e adicione suas credenciais do Airtable como AIRTABLE_API_KEY e AIRTABLE_BASE_ID. Tenha cuidado para não confirmar sua chave de API do Airtable em qualquer lugar, pois ela pode dar a alguém acesso total à sua conta Airtable.

Como deve ser a configuração da variável de ambiente no serviço Twilio Serverless

Nas configurações em "Dependencies" (Dependências), adicione a biblioteca auxiliar airtable (não é necessário fornecer um número de versão).

A seção de dependências do Twilio Serverless, que inclui o Airtable

Agora você criará uma nova função. Clique no botão azul "Add" (Adicionar) e nomeie sua função /write-to-airtable (mantenha a barra inicial). Exclua o código do espaço reservado.

O código abaixo gravará os dados que o autor da chamada enviou por meio da URA no Airtable. Ele também gerará a data atual para preencher a coluna lastCalled. Copie e cole essas informações em seu código write-to-airtable.

exports.handler = function (context, event, callback) {
  let [month, date, year] = new Date().toLocaleDateString("en-US").split("/")
  let input = {
    firstname: event.firstName,
    lastname: event.lastName,
    age: event.age,
    phoneNumber: event.phoneNumber,
    zipcode: event.zipcode,
    lastCalled: [month, date, year],
  };
  var Airtable = require("airtable");
 var base = new Airtable({ apiKey: context.AIRTABLE_API_KEY })
 .base(context.AIRTABLE_BASE_ID);

  base("Patients").create(input, function (err, record) {
    if (err) {
      console.error(err);
      return callback(err);
    }
    console.log(record.getId());
    callback(null, record);
  });
};

Observe que o Airtable diferencia maiúsculas de minúsculas, portanto, você deve usar o mesmo formato de letras dos nomes das colunas. Se você receber uma mensagem de erro, significa que algo está errado com as variáveis de ambiente e você provavelmente não configurou suas credenciais do Airtable corretamente.

Em seguida, você deve definir a função /write-to-airtable como "Protected" (Protegida) usando o menu suspenso à direita, para que o endpoint fique acessível e possamos configurar no fluxo do Studio.

A função de gravação no Airtable do Twilio Serverless com seleção protegida no menu suspenso


Pressione "Deploy all" (Implantar tudo) e, em seguida, conectaremos a função ao fluxo do Studio.

Como atualizar o widget "Executar função" no seu fluxo do Studio

Volte ao seu fluxo do Studio e clique em qualquer lugar dentro do widget airtablewrite. No menu do widget à direita, escolha o serviço e a função que acabou de escrever no menu suspenso. Se você estiver usando o mesmo nome desta publicação, ele será parecido com a imagem abaixo.

O widget airtablewrite juntamente com a configuração e o serviço de estouro de chamadas selecionado no menu suspenso

Todos os parâmetros de função são configurados para serem extraídos dos widgets; portanto, não é necessário alterar nada neles, a menos que você tenha renomeado os widgets.

Agora você pode ligar novamente para seu número e passar pelo fluxo mais uma vez. Fique atento à sua base Airtable. Você verá os dados exibidos na tabela se a chamada for bem-sucedida.

A base do airtable com a nova linha de dados adicionada depois que uma chamada é concluída com êxito

Observe que no fluxo atual, se a chamada da função falhar, informaremos ao autor da chamada que ocorreu um erro e o transferiremos para um agente/programador ativo. No protótipo, há um número de espaço reservado com uma mensagem automatizada. No entanto, se você quiser usar esse sistema, precisará substituí-la.

O widget no Twilio Studio que mostra o que acontece quando ocorre um erro e como ele é transferido para um widget que conecta o autor da chamada a uma nova linha.

Conclusão: use um sistema de sobrecarga de chamadas para melhorar o engajamento com o paciente

Se você trabalha para um sistema de saúde que teve problemas com sobrecarga de chamadas nos últimos meses, esperamos que agora você se sinta capacitado para criar uma solução para o problema. Este protótipo é um ótimo ponto de partida, e existem recursos adicionais que você pode acrescentar, como correio de voz ou integração a outro sistema.

Se quiser compartilhar o que está criando, envie um e-mail para lleao [arroba] twilio [ponto] com.

Este artigo foi traduzido do original "Build a Call Overflow System with Twilio Studio and Serverless". Enquanto melhoramos nossos processos de tradução, adoraríamos receber seus comentários em help@twilio.com - contribuições valiosas podem render brindes da Twilio.