[ Mr. Day] Estudo de API para envio de mensagens via WhatsApp
Objetivo
O objetivo deste estudo é analisar maneiras de enviar mensagens via WhatsApp, inicialmente para atualizações de status das solicitações dentro do Mr.Day.
Introdução
Dentro deste estudo, apresentaremos a ideia inicial, as soluções propostas, passos para implementação das soluções e os riscos de cada solução em conjunto com as vantagens.
O estudo surgiu, a partir de uma necessidade da Governadoria de informar alguns usuários via mensagem de WhatsApp sobre alterações em status de solicitações dentro do sistema Mr.Day, e para atender essa necessidade, foram encontradas algumas soluções pagas e gratuitas, para esse envio de mensagens via WhatsApp.
Soluções Propostas
Para atingir o objetivo e atender a necessidade da Governadoria, encontramos algumas soluções baseadas em APIs REST para enviar mensagens à usuários do WhatsApp que estão relacionados diretamente às solicitações do Mr.Day.
Solução 1 - Plataforma de Comunicação Zenvia
Essa solução é composta pela utilização da plataforma de comunicação Zenvia, a qual possui uma API REST para envio de mensagens via WhatsApp com numero incluso e cobrança por mensagem enviada conforme figura 1.
Figura 1: Preço e funcionalidades da plataforma Zenvia
Solução 2 - API WhatsApp Business Twillio
Essa solução é composta pela utilização da API REST da Twillio que utiliza a API Business oficial do WhatsApp em back-end, que também é uma solução paga com custo por mensagem conforme figura 2.
Figura 2: Preço e funcionalidades da plataforma Twillio
Solução 3 - API REST OpenSource MyZap
Essa solução é gratuita com código OpenSource, é baseada no WhatsApp Web onde uma aplicação desenvolvida em NodeJS, que tem como objetivo utilizar um telefone existente que inicia uma sessão virtual no WhatsApp Web para poder enviar mensagens para as pessoas, não tem restrição de mensagens e é 100% gratuita, conforme figura 3.
Figura 3: Introdução a API REST OpenSource MyZap
Riscos
Após a formulação das soluções, foram analisados os riscos que cada uma possui dentro do contexto onde estão incluídas.
Solução 1: Entendemos como risco nessa solução, o valor à ser pago por mês e também a dependência de um suporte de terceiros.
Solução 2: Entendemos como risco nessa solução, o valor à ser pago por mensagem, a dependência de um suporte de terceiros, a documentação complexa e suporte pago à parte.
Solução 3: Entendemos como risco nessa solução, projeto com muitas dependências e curva de aprendizado para implementação da API.
Vantagens
Após a formulação das soluções, além dos riscos, foram também analisadas as vantagens de cada solução.
Solução 1: Console de gerenciamento intuitivo, suporte por e-mail, numero incluso e segurança.
Solução 2: Console de gerenciamento intuitivo, plano de suporte, fácil implementação.
Solução 3: Gratuito, OpenSource, possibilidade de hospedar a API no ambiente da SETIC, suporte próprio.
Conclusão
Através das soluções propostas acima, bem como, toda problemática explanada, identificamos como melhores opções a Solução 3 seguida da Solução 1, pois não foram identificados riscos relevantes dentro do contexto onde as soluções estão inseridas que tornem inviáveis as implementações.
Glossário
API - É um conjunto de definições e protocolos usado no desenvolvimento e na integração de software de aplicações.
REST - É um estilo de arquitetura de software que define um conjunto de restrições a serem usadas para a criação de web services.
Superintendente
Delner Freire
Diretor
Maico Moreira da Silva
Gerente de Desenvolvimento
Janderson de Castro Thomaz
Product Owner
Adriano Bonazoni Sol Sol de Oliveira
Scrum Master
Wagner Moreira Melo
Time de Desenvolvimento
Tambaquis
Membros do Time Scrum |
Adriano Bonazoni Sol Sol de Oliveira |
Gabriel Santi Binda |
Taillon Miguel Gonçalves |
Raissa de Sousa Stolduski |
Wagner Moreira Melo |