Notificações de marketing por SMS e MMS com Ruby e Sinatra
Pronto para implementar notificações de marketing por SMS e MMS em seu aplicativo Ruby e Sinatra?
Veja como isso funcionará em um nível alto:
- Um possível cliente envia um SMS para um número de telefone da Twilio que você anuncia em algum lugar.
- Seu aplicativo confirma que o usuário deseja receber notificações via SMS e MMS da sua empresa.
- Um administrador ou gerente de campanha de marketing usa um formulário da web para criar uma mensagem que será enviada a todos os assinantes por meio de mensagem SMS/MMS.
Blocos de construção
Para fazer isso, você trabalhará com as seguintes ferramentas:
- TwiML e o verbo <Message>: Usaremos o TwiML para gerenciar interações iniciadas pelo usuário via SMS.
- Messages Resource (Recurso de mensagens): Usaremos a API REST para transmitir mensagens para todos os assinantes.
- Sinatra Framework (Estrutura Sinatra): Usaremos Sinatra para estruturar o aplicativo.
- DataMapper: Usaremos o DataMapper para definir o modelo e mantê‐lo.
Vamos começar! Clique no botão abaixo para passar para a próxima etapa do tutorial.
O modelo de assinante
Para enviar notificações de marketing a um assinante, precisamos fornecer o modelo certo.
phone_number
armazenará onde enviar as notificações.subscribed
permite que o aplicativo identifique quais assinantes estão ativos (somente um assinante ativo receberá notificações).
Em seguida, vamos ver como lidar com mensagens recebidas.
Lidar com mensagens recebidas
Esse é o endpoint que será chamado toda vez que nosso aplicativo receber uma mensagem.
Ele verifica se o comando enviado na mensagem é um dos comandos que esperamos. Dependendo disso, ele retorna uma mensagem formatada no TwiML, uma confirmação ou uma mensagem útil com nossos comandos legais.
A Twilio pode enviar ao seu aplicativo da Web uma solicitação HTTP quando certos eventos ocorrem, como uma mensagem de texto recebida para um dos números de telefone da Twilio. Essas solicitações são chamadas de webhooks ou retornos de chamada de status. Para mais informações, consulte o nosso guia Introdução aos webhooks da Twilio. Encontre outras páginas do webhook, como um guia de segurança e perguntas frequentes na seção Webhooks dos documentos.
Vamos ver como criar novos assinantes a seguir.
Criar novos assinantes
Em uma mensagem recebida, procuramos no banco de dados um número correspondente. Se não houver um, criamos um novo Subscriber
. Se isso acontecer, validaremos o comando do corpo da mensagem e enviaremos uma resposta do TwiML apropriada.
E isso é tudo o que queremos nesta etapa! Criamos um modelo Subscriber
para acompanhar as pessoas que solicitaram nossas mensagens. Também salvamos suas informações no banco de dados depois de receber uma mensagem de texto com um comando “add” (adicionar).
Agora, vamos ver como nossos usuários podem gerenciar suas assinaturas.
Gerenciamento de assinaturas
Queremos fornecer aos nossos usuários dois comandos de SMS para gerenciar o status de assinatura deles: add
e remove
.
Esses comandos alternarão um indicador booleano para um registro Subscriber
no banco de dados e determinarão se nosso usuário receberá ou não mensagens da nossa campanha de marketing. Nós não os aceitamos automaticamente. Em vez disso, precisamos que eles confirmem se desejam receber nossas mensagens.
Para que isso aconteça, precisaremos atualizar a lógica do controlador que lida com a mensagem de texto recebida para fazer algumas coisas:
- Se for um comando
add
ouremove
, crie/atualize sua assinatura do usuário com o status correto no banco de dados. - Se for um comando que não reconhecemos, então envie uma mensagem explicando os dois comandos disponíveis.
Em seguida, vamos ver como enviar notificações.
Envio de notificações
Quando recebemos um envio de formulário do front‐end, primeiro pegamos o texto da mensagem e o URL da imagem opcional. Em segundo lugar, fazemos loop em todos os assinantes e chamamos o método send_message
para enviar a mensagem.
Quando as mensagens estiverem a caminho, renderizamos a página de índice com uma mensagem de sucesso (e agrade a equipe de marketing).
Vamos analisar ainda mais detalhadamente como enviar notificações SMS ou MMS.
Enviar notificações SMS ou MMS
No método send_message
, criamos um Twilio REST API client (client de API REST da Twilio) que pode ser usado para enviar mensagens SMS e MMS. O cliente requer suas credenciais de conta da Twilio (um Account SID (SID da conta) e um Auth Token (Token de autenticação)), que podem ser encontrados in the console (no console):
Em seguida, basta chamarmos o objeto create
client.messages
para enviar nossa mensagem. A chamada à API de mensagens da Twilio requer um parâmetro from
, to
e body
. O media_url
é opcional.
É isso! Acabamos de implementar um processo de aceitação (opt-in) e uma interface administrativa para executar uma campanha de marketing via SMS e MMS.
Em seguida, vamos ver quais outros recursos você pode querer implantar.
Para onde ir em seguida?
Twilio e Ruby misturam‐se incrivelmente bem. Para provar isso, aqui estão dois excelentes tutoriais sobre como adicionar outros recursos:
Employee Directory (Diretório de colaboradores)
Adicione uma interface ao seu diretório de colaboradores para procurar informações de contato por meio do seu telefone.
Automated Survey (Pesquisa automatizada)
Siga este tutorial simples para ver o código necessário para implementar pesquisas automatizadas que se integram diretamente ao seu CRM e ao banco de dados do cliente.
Isso ajudou?
Obrigado por conferir este tutorial! Envie um tuíte para @twilio para nos dizer o que você acha!
Precisa de ajuda?
Às vezes, todos nós precisamos; a programação é difícil. Receba ajuda agora da nossa equipe de suporte, ou confie na sabedoria da multidão navegando pelo Stack Overflow Collective da Twilio ou buscando a tag Twilio no Stack Overflow.