Skip to main content
De cero a tu primera llamada en cola en pocos pasos. Antes de todo: contrata un número, déjalo activo en el workspace (la llamada sale de esa línea) y ten saldo o créditos — la voz se cobra por minuto.

En resumen

  • Contrata un número y actívalo — es la línea desde la que sale la llamada (campo from).
  • Elige quién llama y quién recibe (from y to). Al contestar, usa type + payload — igual que SMS y WhatsApp.
  • Sigue y controla el estado por API o webhooks.
Contexto: Introducción. Ámbitos: Ámbitos de la API Key. Número: Números de teléfono.

Antes de empezar

Autenticación: Authorization: Bearer sk_live_... o x-api-key. URL base: https://api.notifique.dev. Números de destino en formato internacional, solo dígitos, sin + (ej.: 5511999887766). La API normaliza internamente.

Estructura del body (POST /v1/voice/calls)

El contrato canónico sigue el mismo patrón que los otros canales: to, type, payload. Los campos extra van en la raíz del JSON o en options — no dentro de payload.
La API aún acepta alias legados en la raíz (speakText, playAudioUrl, gather suelto), pero prefiere type + payload — es el patrón documentado e igual a los otros canales.

1. Hacer una llamada

1A — Por el panel

  1. Voz → Nueva llamada
  2. Desde qué número vas a llamar y quién va a recibir
  3. Al contestar: mensaje automático (texto o audio) o llamada en vivo (WebRTC)
  4. Opcional: traducir, programar, grabar o webhook solo de esta llamada
  5. Dispara (o programa)
El IVR por panel fue descontinuado — usa type: ivr en la API (IVR y flujos).

1B — Por la API v1

Ámbito: voice:call. Ejemplo completo — hablar texto, grabar, correlacionar con CRM, webhook solo de esta llamada y metadatos:
Respuesta 202:
Guarda los messageIds para consultar y controlar cada destino. Otros type y payload (misma estructura — solo cambian type y el contenido de payload): El from acepta el id del número en el workspace o el E.164 — debe estar activo.

2. Listar y consultar

Ámbito: voice:read. Con includeEvents=true, la respuesta trae la línea de tiempo (marcó, contestó, colgó…).

3. Controlar llamada en curso

POST /v1/voice/calls/:id/actions/{action} — ámbito voice:control. La llamada debe estar contestada.

4. Descargar grabación

Ámbito: voice:read. Webhook: voice.call.recording.ready.

5. Llamadas recibidas (inbound)

Cuando alguien llama a tu número, configura la línea en Números de teléfono: reenviar, hablar mensaje y colgar, o controlar vía webhook.

6. Webhooks globales vs webhook de esta llamada

Globales — registra en el workspace los eventos voice.call.* (Eventos de webhooks). Solo de esta llamada — usa options.webhook en el body (HTTPS pública + secret opcional). Los eventos de esta llamada van a esa URL en lugar de los webhooks globales del workspace para esta llamada.

7. Programar marcado

Panel — chip Programar en Nueva llamada (plan de pago, dentro del límite de días del workspace). La ruta API v1 POST /v1/voice/calls aún no acepta schedule — el agendamiento por API de voz está en el roadmap, alineado a los otros canales. En el panel, el body usa campos legados (speakText en la raíz); en la API v1, usa siempre type: "speak" y payload.text.

8. Traducir el texto hablado

En la raíz del body, igual que SMS y correo:
Modo manual — textos por idioma en i18n (claves speakText y gatherPrompt):
Detalles: Localización e i18n.

Voces TTS


Próximos pasos