Orquestração de canais
Em pré-visualizaçãoComece com os nossos padrões. Altere apenas o que precisar.
Disponibilidade de canais, regras de remetentes e regulamentações variam por país, e acertar tudo isso leva anos de trabalho. O Bird entrega isso como uma configuração base por país: quais canais funcionam onde, quais remetentes são permitidos e padrões de código sensatos. As suas definições são aplicadas por cima. Você altera uma coisa para um país; tudo o que não tocar herda da camada abaixo. Isso é roteamento por país como um recurso de primeira classe da API — o controle que a maioria das APIs de verificação não oferece.
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
// Send the code, then check it by recipient.
await bird.verify.verifications.create({
to: { phone_number: "+15551234567" },
}).safe();
const { data } = await bird.verify.verifications.check({
to: { phone_number: "+15551234567" },
code: userInput,
}).safe();Você herda os padrões do Bird e constrói sobre eles.
Cada verificação na Bird Verify API resolve as suas definições através de uma cascata. Na base está uma configuração por país que o Bird mantém com anos de experiência em e-mail e SMS — então, antes de você configurar qualquer coisa, uma verificação já é roteada de forma adequada em todos os países. A sua configuração e substituições por país são aplicadas por cima, e uma opção por requisição pode ajustar uma única chamada. Você nunca começa do zero e só é responsável pelas decisões que realmente quer tomar.
A cascata de valores.
A camada mais alta que define um valor prevalece; qualquer coisa que você não definir herda da camada abaixo.
- 01
Opções por requisição.
Campos na chamada de criação (tamanho do código, preferência de canal, idioma) prevalecem para aquela verificação específica. A substituição mais leve e mais local.
- 02
As suas substituições por país.
Altere a ordem dos canais ou um remetente para um país. Uma substituição é mesclada: ela altera apenas os campos que você definir, e o restante daquele país continua herdando da camada abaixo.
- 03
Os seus padrões de configuração.
O seu plano e regras de código para toda a aplicação — a ordem dos canais, tamanho do código, TTL e tentativas que você quer em todos os lugares onde não definiu uma substituição por país.
- 04
Base por país do Bird.
A camada inferior: os padrões por país do próprio Bird, criados a partir da operação de e-mail e SMS em escala. Tudo o que você não definir herda desta camada, então uma verificação sempre resolve para um plano adequado.
Substitua um país, herde o resto.
Defina o seu plano uma vez e altere apenas os países que precisam de algo diferente. Aqui o Brasil começa com WhatsApp, depois SMS; todos os outros países continuam herdando dos seus padrões e da base do Bird.
// Your app-wide default plan.
await bird.verify.verifications.configurations.update("vfc_login", {
channels: [
{ channel: "email", state: "enabled" },
{ channel: "sms", state: "enabled" },
],
}).safe();
// Override one country; the rest inherits.
await bird.verify.verifications.configurations.countries.upsert("vfc_login", "BR", {
channels: [
{ channel: "whatsapp", state: "enabled" },
{ channel: "sms", state: "enabled" },
],
}).safe();O que uma verificação resolve.
Um número brasileiro sob esta configuração resolve através da cascata. A substituição do BR ordena WhatsApp e depois SMS, ambos estão disponíveis, e a verificação reporta o plano ordenado que será usado, com o seu id tipado vrf_.
const { data } = await bird.verify.verifications.create({
configuration_id: "vfc_login",
to: { phone_number: "+5511998765432" }, // Brazil
}).safe();
// Resolved through the cascade + availability/kill-switch ceilings:
// {
// id: "vrf_01k2m9q8e7fh3v0b7m4d2a9xzt",
// status: "pending",
// channels: [{ channel: "whatsapp" }, { channel: "sms" }],
// last_channel: "whatsapp"
// }Dois limites acima da cascata.
A cascata decide os padrões. Dois filtros decidem o que é permitido — eles limitam o plano resolvido em vez de fornecer valores que herdam para baixo:
Disponibilidade por país. Você só pode ativar canais que o Bird realmente oferece naquele país. Ativar um que não é suportado lá é uma operação sem efeito, não uma falha silenciosa — a disponibilidade é uma interseção, nunca uma substituição.
Interruptor global. Quando um provedor tem um incidente, o Bird pode desativar um canal em todos os lugares de uma vez. A sua configuração não é alterada; o plano resolvido simplesmente recorre ao próximo canal e é restaurado quando o interruptor é liberado.
Roteamento que você define, não um ticket que você abre.
Resolvido por verificação, retornado na resposta.
- 01
Rotas por país, pelo número.
O país é derivado do número E.164 do destinatário — você não precisa informá-lo. Defina uma rota para um país e ela substitui a ordem e os remetentes naquele local.
- 02
Ative e desative canais.
Cada canal possui um estado ativado/desativado, para que você possa desligar um canal para um país sem perder a sua posição no plano.
- 03
O plano resolvido está na resposta.
Cada verificação reporta os canais ordenados para os quais resolveu, então o que a cascata decidiu nunca é um mistério.
- 04
O failover automático está sendo implementado.
O avanço orientado por entrega através do plano (tentar o próximo canal quando um não chega) está sendo implementado à medida que o status de entrega é disponibilizado. O plano já é resolvido e retornado hoje.
FAQ sobre orquestração de canais
O que é a cascata de configuração?+
O que me oferece a base por país da Bird?+
Uma substituição por país substitui o plano inteiro?+
Posso ativar um canal que a Bird não oferece num país?+
Como é determinado o país?+
De quem é que os meus utilizadores veem o código?+
O resto da plataforma Verify
Uma API, um conjunto de chaves. Explore as outras capacidades.
O controlo por país que nenhuma outra API de verificação lhe oferece.
A orquestração é uma capacidade do Bird Verify: os canais, o código e os limites vêm incluídos, nos mesmos dois endpoints.