Entrega alertas de pedidos, recordatorios y notificaciones por SMS.
Llega a tus clientes en su teléfono con actualizaciones de envío, recordatorios de reservas y alertas de cuenta desde un número registrado o un remitente de marca. Bird devuelve la codificación de caracteres y el número de segmentos al aceptar el mensaje, evita textos duplicados cuando tu app reintenta una solicitud que agotó el tiempo de espera y envía en tiempo real a tu webhook las actualizaciones de entrega del operador.
Tu pedido n.º 4821 está listo para recoger.
Mensaje
Detalles
La entrega es un acuse del operador. No demuestra que alguien lo haya leído.
Tu pedido n.º 4821 está listo para recoger.
Mensaje
Detalles
La entrega es un acuse del operador. No demuestra que alguien lo haya leído.
Tu pedido n.º 4821 está listo para recoger.
Mensaje
Detalles
La entrega es un acuse del operador. No demuestra que alguien lo haya leído.
Envía tu primer mensaje en minutos.
Haz pruebas seguras antes de escribir a clientes reales.
Con la API de SMS de Bird, una sola llamada desde tu backend envía una confirmación de pedido, una actualización de entrega o una alerta de cita. Antes de escribir a clientes reales, dirige los envíos de prueba al número sandbox de EE. UU. +15005550006 desde un remitente estadounidense activo. Así verificas tu integración y la gestión de webhooks sin entregar ningún mensaje a un teléfono real.
// Install the SDK
// npm install @messagebird/sdk
const msg = await bird.sms.send({
from: "+15557654321",
to: "+14155550100",
text: "Your verification code is 123456.",
category: "authentication",
});
console.log(msg.id, msg.status);¿Necesitas verificar a un usuario al iniciar sesión o al pagar? En lugar de generar y almacenar tú mismo los códigos de un solo uso, usa Bird Verify para emitir, caducar y comprobar códigos de verificación automáticamente.
Mantén predecible la entrega de SMS en producción.
Evita cargos inesperados por segmentos, textos duplicados por reintentos de red y fallos silenciosos del operador.
- 01
Consulta el número de segmentos en la propia respuesta.
Cada envío aceptado devuelve la codificación de caracteres aplicada y el número de segmentos. Además, puedes pasar tus borradores por la calculadora de segmentos antes de publicar una nueva plantilla.
- 02
Gestiona GSM-7 y Unicode sin conjeturas.
Los mensajes estándar en GSM-7 caben en un segmento de 160 caracteres, y los textos con emojis o alfabetos no latinos pasan automáticamente a Unicode de 70 unidades. Los mensajes más largos se dividen limpiamente y se reensamblan como un solo texto en el teléfono del cliente.
- 03
Envía hasta 100 mensajes personalizados en una sola llamada.
Envía una cola de recordatorios de citas o avisos de turnos en una sola solicitud por lotes. Bird valida el lote por adelantado para que las entradas mal formadas fallen enseguida y después sigue la entrega del operador por separado para cada destinatario.
- 04
Reintenta solicitudes que agotaron el tiempo de espera sin enviar dos veces.
Adjunta una clave de idempotencia cuando tu worker envíe un mensaje. Si un tiempo de espera de red provoca un reintento con la misma clave y el mismo contenido, Bird devuelve la respuesta original en lugar de poner en cola un texto duplicado.
- 05
Sabe cuándo el operador entrega o rechaza un mensaje.
Recibe webhooks firmados a medida que un mensaje pasa de aceptado a enviado, entregado o fallido. Así tu app puede actualizar el estado del pedido o recurrir a otro canal cuando un número no está disponible.
Migra desde Twilio con unas pocas líneas de código.
Asigna tus números remitentes, campos de destinatario y gestores de webhooks actuales a Bird sin rediseñar tu servicio de notificaciones. Sincroniza tu lista de bajas y verifica la entrega con el número sandbox antes de migrar el tráfico real.
import twilio from "twilio";
const client = twilio(accountSid, authToken);
await client.messages.create({
from: "+14155550172",
to: "+15005550006",
body: "Your code is 123456.",
});import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
await bird.sms.send({
from: "+14155550172",
to: "+15005550006",
text: "Your code is 123456.",
category: "authentication",
});Detecta mensajes de varios segmentos antes de que inflen tu factura.
Una sola comilla tipográfica, un emoji o una letra acentuada en el nombre de un cliente puede pasar un mensaje de la codificación GSM-7 de 160 caracteres a Unicode de 70 unidades y dividir un texto en varios segmentos facturables. Bird devuelve el número de caracteres, la codificación y el total de segmentos en la respuesta del envío, para que tu equipo detecte pronto las plantillas costosas.
const { data, error } = await bird.sms.send({
from: "Bird",
to: "+31612345678",
text: "Your code is 123456.",
category: "authentication",
}).safe();
if (error) throw error;
console.log(data.segments);
// → { characters: 20, count: 1, encoding: "GSM_7BIT" }
Envía hasta 100 recordatorios personalizados en una sola solicitud.
Cuando una tarea programada envía los recordatorios de citas de mañana o los avisos de franja de entrega, agrupa hasta 100 mensajes en una sola llamada a la API en lugar de recorrer solicitudes individuales. Cada destinatario recibe su propio texto personalizado con un estado de entrega independiente, y la validación previa detecta las entradas mal formadas antes de poner el lote en cola.
const { data: batch, error } = await bird.sms
.sendBatch(
users.map((u) => ({
from: "Bird",
to: u.phone,
text: `Hi ${u.name}, your appointment is tomorrow at ${u.time}.`,
})),
)
.safe();
if (error) throw error;
console.log(`queued ${batch.data.length} messages`);Sigue la entrega del operador y gestiona los mensajes fallidos en tiempo real.
Como el traspaso al operador ocurre de forma asíncrona después de que tu llamada de envío se complete, Bird publica eventos de webhook firmados a medida que avanza el mensaje. Actualiza tu base de datos cuando un texto llegue al teléfono, o activa un correo electrónico alternativo y marca los números no válidos cuando la entrega falle.
import { bird } from "@/lib/bird";
export async function POST(req: Request) {
const event = bird.webhooks.unwrap(
await req.text(),
Object.fromEntries(req.headers),
);
switch (event.type) {
case "sms.delivered":
await markDelivered(event.data.sms_id);
break;
case "sms.failed":
await flag(event.data.to, event.data.error?.description);
break;
}
return new Response(null, { status: 204 });
}Cada evento de fallo incluye el motivo concreto, para que distingas los problemas temporales del teléfono de los números no válidos. Las respuestas de baja como STOP suprimen automáticamente los futuros envíos de marketing, mientras que los fallos de entrega normales no cambian el consentimiento del destinatario.
sms.acceptedBird aceptó tu solicitud y puso el mensaje en cola para su enrutamiento al operador.sms.sentBird entregó el mensaje al operador móvil de destino.sms.deliveredEl operador de destino confirmó la entrega en el teléfono del destinatario.sms.failedNo se pudo entregar el texto. Incluye el motivo del error para que tu app avise al soporte o pruebe otro canal.
Profundiza en las guías para desarrolladores.
Verifica los webhooks firmados, protege tus workers de envío frente a textos duplicados con claves de idempotencia y usa la referencia de errores para gestionar automáticamente números no válidos o destinos desactivados.
Preguntas antes de construir
¿Elijo yo el remitente?
¿Cómo evitan los reintentos un mensaje duplicado?
¿Aceptado significa entregado?
¿Es lo mismo un lote que una difusión?
El resto de la plataforma SMS
Aprovisiona números remitentes, recibe respuestas de clientes y supervisa la entrega del operador desde el mismo espacio de trabajo.
Escala sin
perder el control.
Organiza equipos en espacios de trabajo, controla el acceso a la API y rastrea cambios en los registros de auditoría.
Organización
Harbor
El acceso permanece en su espacio de trabajo.
Producción/Claves de API
Agente de entrega
ActivoAlex Lee
Admin
Hoy · UTC
Registro de auditoría
Organización
Harbor
El acceso permanece en su espacio de trabajo.
Producción/Claves de API
Agente de entrega
ActivoAlex Lee
Admin
Hoy · UTC
Registro de auditoría
Organización
Harbor
El acceso permanece en su espacio de trabajo.
Producción/Claves de API
Agente de entrega
ActivoAlex Lee
Admin
Hoy · UTC
Registro de auditoría