Orquestación de canales

En vista previa

Parte de nuestros valores predeterminados. Sobrescribe solo lo que necesites.

Configura en:
Cursor

La disponibilidad de canales, las reglas de remitentes y las regulaciones varían según el país, y dominarlas requiere años de trabajo. Bird lo entrega como una configuración base por país: qué canales funcionan dónde, qué remitentes están permitidos y valores predeterminados de código razonables. Tu configuración se aplica por encima. Cambias una cosa para un país; todo lo que no tocas se hereda de la capa inferior. Eso es enrutamiento por país como recurso de primera clase de la API, el control que la mayoría de las API de verificación no te ofrecen.

verify.ts
200 · pending
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();

Heredas los valores predeterminados de Bird y luego construyes sobre ellos.

Cada verificación en Bird Verify API resuelve su configuración a través de una cascada. En la base hay una configuración por país que Bird mantiene a partir de años operando email y SMS — así que antes de que configures algo, una verificación ya se enruta de forma sensata en cada país. Tu configuración y sobrescrituras por país se aplican encima, y una opción por solicitud puede ajustar una llamada individual. Nunca partes de cero, y solo gestionas las decisiones que realmente quieres tomar.

La cascada de valores.

El nivel más alto que establece un valor prevalece; todo lo que dejes sin definir se hereda del nivel inferior.

  1. 01

    Opciones por solicitud.

    Los campos en la llamada de creación (longitud del código, preferencia de canal, idioma) prevalecen para esa verificación. La sobrescritura más ligera y local.

  2. 02

    Tus sobrescrituras por país.

    Cambia el orden de canales o un remitente para un país. Una sobrescritura se fusiona: modifica los campos que defines, y el resto de ese país sigue heredando de la capa inferior.

  3. 03

    Tus valores predeterminados de configuración.

    Tu plan general y reglas de código para toda la aplicación — el orden de canales, longitud del código, TTL e intentos que deseas en todos los lugares donde no hayas definido una sobrescritura por país.

  4. 04

    Base por país de Bird.

    La capa inferior: los valores predeterminados por país de Bird, derivados de operar email y SMS a escala. Todo lo que dejes sin definir se hereda de aquí, así que una verificación siempre se resuelve con un plan razonable.

Sobrescribe un país, hereda el resto.

Define tu plan una vez, luego toca solo los países que necesiten algo diferente. Aquí Brasil lidera con WhatsApp, luego SMS; todos los demás países siguen heredando de tus valores predeterminados y la base de Bird.

orchestration.ts
200
// 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();

Lo que resuelve una verificación.

Un número brasileño bajo esta configuración se resuelve a través de la cascada. La sobrescritura de BR ordena WhatsApp y luego SMS, ambos están disponibles, y la verificación reporta el plan ordenado que usará, con su id tipado vrf_.

resolved.ts
200
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"
// }

Dos límites superiores están por encima de la cascada.

La cascada decide los valores predeterminados. Dos filtros deciden qué está permitido — limitan el plan resuelto en lugar de proporcionar valores que se hereden:

Disponibilidad por país. Solo puedes habilitar canales que Bird realmente ofrece en un país. Habilitar uno que no soportamos ahí es una operación nula, no un fallo silencioso — la disponibilidad es una intersección, nunca una sobrescritura.

Interruptor de emergencia global. Cuando un proveedor tiene un incidente, Bird puede retirar un canal en todos los países a la vez. Tu configuración no se modifica; el plan resuelto simplemente recurre al siguiente canal, y se restaura cuando el interruptor se restablece.

Enrutamiento que tú defines, no un ticket que envías.

Resuelto por verificación, devuelto en la respuesta.

  1. 01

    Rutas por país, según el número.

    El país se deriva del número E.164 del destinatario — no lo pasas tú. Define una ruta para un país y sobrescribe el orden y los remitentes allí.

  2. 02

    Activa y desactiva canales.

    Cada canal tiene un estado de activado/desactivado, para que puedas desactivar uno en un país sin perder su lugar en el plan.

  3. 03

    El plan resuelto está en la respuesta.

    Cada verificación reporta los canales ordenados que resolvió, así que lo que decidió la cascada nunca es un misterio.

  4. 04

    El failover automático se está implementando.

    El avance basado en entrega a través del plan (intentar el siguiente canal cuando uno no llega) se está implementando a medida que el estado de entrega esté disponible. El plan ya se resuelve y devuelve hoy.

Preguntas frecuentes sobre orquestación de canales

¿Qué es la cascada de configuración?+
Es cómo se resuelven los ajustes de una verificación: opciones por solicitud, luego tus anulaciones por país, después los valores predeterminados de tu configuración y finalmente la base por país de Bird. El nivel más alto que establece un valor prevalece, y todo lo que dejes sin configurar se hereda del nivel inferior — así solo configuras lo que quieres cambiar.
¿Qué me aporta la base por país de Bird?+
Un punto de partida coherente en cada país sin necesidad de configuración: qué canales vale la pena probar, qué remitentes están permitidos y valores predeterminados razonables para los códigos, mantenidos por Bird con años de experiencia gestionando email y SMS. Construyes sobre esa base en lugar de redescubrirla.
¿Una anulación por país reemplaza todo el plan?+
No — se fusiona. Estableces los campos que difieren para ese país y el resto sigue heredando de tu configuración y la base de Bird, así que una anulación es un cambio pequeño y específico en lugar de una re-especificación completa.
¿Puedo habilitar un canal que Bird no ofrece en un país?+
No. La disponibilidad por país es un techo, no un valor predeterminado: solo puedes habilitar lo que Bird soporta allí. Habilitar un canal no disponible es una operación sin efecto en lugar de un fallo silencioso, así que un plan nunca puede prometer un canal que realmente no puede enviar.
¿Cómo se determina el país?+
A partir del número de teléfono E.164 del destinatario, en el momento de la resolución. No pasas un país; Bird lo deriva y aplica la ruta correspondiente. El email es independiente del país.
¿De quién ven mis usuarios el código?+
Authifly, la marca de verificación de Bird. Es la identidad en cada código que reciben tus usuarios: el email llega desde otp@verify.authifly.com o tu propio dominio verificado, y SMS y WhatsApp llevan la marca Authifly. authifly.com es una página pública que asegura a los destinatarios que Authifly envía códigos de un solo uso legítimos en nombre de una empresa. Bird es la plataforma sobre la que construyes; Authifly es lo que ve el destinatario.

El control por país que ninguna otra API de verificación te ofrece.

La orquestación es una capacidad de Bird Verify: los canales, el código y los límites vienen incluidos, en los mismos dos endpoints.

Empieza con un canal.
Añade los demás cuando estés listo.

Una clave API de prueba es tuya de inmediato. El acceso a producción se desbloquea cuando añades un método de pago y verificas un remitente.

¿Usas Claude Code, Cursor o Codex? Copia un prompt de configuración y tu agente instalará el Bird CLI y las habilidades por ti. Elige el tuyo:

Cursor