niiko/developers

Miira · leads y WhatsApp v1 vigente

miira.broadcast_sent

Envía la difusión de WhatsApp presupuestada por miira.broadcast_quoted, exactamente a quienes y como dijo el presupuesto. Si algo cambió (ventana, consentimiento, tarifa) se niega con el presupuesto nuevo para confirmarlo otra vez. Cuesta dinero cuando hay plantillas: no lo llames sin que la persona haya visto el coste.

Última actualización

POST /api/v1/actions/miira.broadcast_sent
Alcance de la llave
miira.broadcast_sent@1
Permiso del workspace
api.miira.broadcast_sent apagado por defecto
Vigilada
Sí — el coste de la petición se registra y puede tener tope por workspace.
Dos permisos, no uno

Hacen falta las dos cosas: una llave con ese alcance, y que el dueño del workspace haya encendido el permiso. Tener la llave no basta — son dos decisiones de personas distintas.

Petición

campotiporeglas
quotestringobligatoriomin 1 · max 65536

Respuesta — output cuando status es done

campotiporeglas
queuedobject[]obligatorio
costUsdstringobligatorio

queued[]

campotiporeglas
clientIdstringobligatorio
clientNamestringobligatorio
mode"free_text" | "template"obligatorio
outboxIdstringobligatorio

Ejemplo

# One request, one idempotency key: retrying with the same key never runs twice.
curl -X POST https://niiko.org/api/v1/actions/miira.broadcast_sent \
  -H "Authorization: Bearer nk_…" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "quote": "…"
  }'
# 200 → done · 202 → pending_approval (a person signs later) · 4xx → refused, with a named reason

Por qué puede negarse

Cada motivo dice quién puede arreglarlo y cómo. Con motivo stale, detail.message dice qué hacer.

presupuesto_invalidopresupuesto_vencidopresupuesto_cambiadoplantilla_invalidatarifas_vencidassin_permiso

En los clientes

@vorluno/niiko-sdkniiko.sentBroadcast()
niiko (Python)niiko.sent_broadcast()
niiko-cliniiko run miira.broadcast_sent
n8n-nodes-niikomiiraBroadcastSent
niiko-mcp-servermiira_broadcast_sent

Historial