You are viewing the Portuguese (Brazil) site, but your language preference is set to English. Switch to English site →

Menu

Expand
Classifique esta página:

Automação do fluxo de trabalho com Node.js e Express

Um dos conceitos mais abstratos que você lidará ao criar sua empresa é como será o fluxo de trabalho.

Em sua essência, a configuração de um fluxo de trabalho padronizado é permitir que seus provedores de serviços (agentes, hosts, representantes de atendimento ao cliente, administradores e o restante da equipe) atendam melhor aos seus clientes.

Para ilustrar um exemplo muito real, hoje vamos construir um webapp do Node.js e Express para encontrar e reservar propriedades de férias, chamado provisoriamente de Airtng.

Veja como ficará:

  1. Um host cria uma listagem de propriedades de férias
  2. Um hóspede solicita uma reserva para um estabelecimento
  3. O host recebe um SMS notificando‐o sobre a solicitação de reserva. O host pode aceitar ou rejeitar a reserva
  4. O hóspede é notificado se uma solicitação foi rejeitada ou aceita

Saiba como a Airbnb usou o Twilio SMS para simplificar a experiência de aluguel para mais de 60 milhões de viajantes em todo o mundo.

Blocos de construção do fluxo de trabalho

Usaremos a API REST da Twilio para enviar mensagens aos nossos usuários em encontros importantes. Veja um pouco mais sobre nossa API:

Pronto para começar? Clique com ousadia no botão logo após esta frase.

Vamos avançar com ousadia para a próxima etapa

Autenticar nossos usuários

Para que esse fluxo de trabalho funcione, precisamos lidar com a autenticação do usuário. Vamos utilizar o Passport para Node.js.

Cada User precisará ter um countryCode e phoneNumber que serão necessários para enviar notificações via SMS mais tarde.

Loading Code Sample...
        
        
        models/user.js

        User Model to handle authentication

        models/user.js

        Em seguida, vamos modelar as propriedades de férias.

        Next

        Modelo de propriedade de férias

        Para construir nossa empresa de locação, precisaremos de uma maneira de criar as listas de propriedades.

        O Property pertence ao User que o criou (chamaremos esse usuário de host para avançar) e contém apenas duas propriedades: uma description e uma imageUrl.

        Loading Code Sample...
              
              
              models/property.js

              The Vacation Property Model

              models/property.js

              Em seguida, o modelo de reserva.

              Next

              Modelo de reserva

              O modelo Reservation está no centro do fluxo de trabalho para este aplicativo.

              É responsável por manter o controle de:

              • O guest que realizou a reserva
              • O vacation_property que o hóspede está solicitando (e host associado)
              • O status da reserva: pending, confirmed ou rejected
              Loading Code Sample...
                    
                    
                    models/reservation.js

                    The Reservation Model

                    models/reservation.js

                    Em seguida, vamos analisar o acionamento da criação de uma nova reserva.

                    Next

                    Criar uma reserva

                    O formulário de criação de reserva contém apenas um campo único: a mensagem que será enviada ao host ao reservar uma de suas propriedades. O restante das informações necessárias para criar uma reserva é retirado da propriedade de férias.

                    Uma reserva é criada com um status padrão pending, portanto, quando o host responde com uma resposta accept ou reject, nosso aplicativo sabe qual reserva atualizar.

                    Loading Code Sample...
                          
                          
                          routes/reservations.js

                          Reservation creation

                          routes/reservations.js

                          Na próxima etapa, veremos como a notificação via SMS é enviada ao host quando a reserva é criada.

                          Next

                          Notificar o host

                          Quando uma reserva é criada, queremos notificar o proprietário da propriedade mencionada que alguém fez uma reserva.

                          É aqui que usamos a Twilio Node Helper Library (Biblioteca auxiliar do Node da Twilio) para enviar uma mensagem SMS ao host, usando nosso número de telefone da Twilio. Como você pode ver, enviar mensagens SMS usando a Twilio é apenas algumas linhas de código.

                          Agora, precisamos apenas esperar que o host envie uma resposta SMS aceitando ou rejeitando a reserva para que possamos notificar o hóspede e o host de que as informações da reserva estão atualizadas.

                          Loading Code Sample...
                                
                                
                                Notificar por SMS o host da nova reserva

                                Send out reservation notifications

                                Notificar por SMS o host da nova reserva

                                A próxima etapa mostra como lidar e configurar a resposta SMS do host.

                                Next

                                Tratamento de mensagens recebidas

                                O endpoint reservations/handle lida com nossa solicitação da Twilio recebida e faz três coisas:

                                1. Verifica se há uma reserva pendente do usuário de entrada.
                                2. Atualiza o status da reserva.
                                3. Responde ao host e envia notificação ao hóspede.
                                Next

                                Configurar os webhooks da Twilio

                                No Console da Twilio, você deve alterar o webhook "A Message Comes In (Uma mensagem chega)" para chamar o endpoint do seu aplicativo na rota /handle:

                                SMS Webhook

                                Uma maneira de expor sua máquina ao mundo durante o desenvolvimento é usar o ngrok. Seu URL para o webhook do SMS em seu número de telefone deve ter a seguinte aparência:

                                http://<subdomain>.ngrok.io/handle

                                Uma solicitação recebida da Twilio vem com alguns itens úteis, incluindo o número de telefone From e a mensagem Body.

                                Usaremos o parâmetro From para pesquisar o host e verificar se ele tem alguma reserva pendente. Se ele fizer isso, usaremos o corpo da mensagem para verificar se ele aceitou ou rejeitou a reserva.

                                Loading Code Sample...
                                      
                                      
                                      routes/reservations.js

                                      Lidar com respostas do host

                                      routes/reservations.js

                                      Na última etapa, usaremos o TwiML da Twilio e instruiremos a Twilio a enviar mensagens SMS ao hóspede.

                                      Next

                                      Resposta do TwiML

                                      Depois de atualizar o status da reserva, devemos notificar o host que ele confirmou ou rejeitou a reserva com êxito. Se nenhuma reserva for encontrada, enviaremos uma mensagem de erro.

                                      Se uma reserva for confirmada ou rejeitada, enviaremos um SMS adicional ao hóspede para passar pelas notícias.

                                      Usamos o verbo Message do TwiML para instruir o servidor da Twilio de que ele deve enviar mensagens SMS.

                                      Loading Code Sample...
                                            
                                            
                                            routes/reservations.js

                                            Criar a resposta do TwiML

                                            routes/reservations.js

                                            E está pronto! Em seguida, vamos dar uma olhada em outros recursos que você pode aproveitar em seu aplicativo.

                                            O que mais posso criar?

                                            Para onde ir em seguida?

                                            O Node.js funciona muito bem com a ajuda da Twilio... vamos provar:

                                            IVR (URA): Phone Tree (Árvore telefônica)

                                            Encaminhe facilmente os autores da chamada para as pessoas e informações certas com um sistema URA (unidade de resposta audível).

                                            Automated Survey (Pesquisa automatizada)

                                            Colete instantaneamente dados estruturados de seus usuários com uma pesquisa realizada por uma chamada de voz ou mensagens de texto SMS.

                                            Isso ajudou?

                                            Obrigado por conferir este tutorial! Envie um tweet para nós em @twilio com o que você está criando!

                                            Kevin Segovia Daniel Erazo
                                            Classifique esta página:

                                            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.

                                            Loading Code Sample...
                                                  
                                                  
                                                  

                                                  Obrigado pelo seu feedback!

                                                  Selecione o(s) motivo(s) para seu feedback. As informações adicionais que você fornece nos ajudam a melhorar nossa documentação:

                                                  Enviando seu feedback...
                                                  🎉 Obrigado pelo seu feedback!
                                                  Algo deu errado. Tente novamente.

                                                  Obrigado pelo seu feedback!

                                                  thanks-feedback-gif