Hoy solo el canal
call es despachable. SequenceChannel también define whatsapp y email, pero esos canales están diferidos. POST /sequences solo acepta channel: "call".Ciclo de vida
Una secuencia atraviesa un conjunto fijo de estadosSequenceStatus:
draft— recién creada. Editable y eliminable. Aún no se encola nada.running— lanzada. El worker de despacho está procesando la cola de contactos.paused— detenida temporalmente. Reanuda para continuar donde quedó.completed— se establece automáticamente cuando la cola se vacía (cada contacto alcanzó un estado terminal). Terminal.
400 BAD_REQUEST:
| Acción | Permitida desde | Notas |
|---|---|---|
PATCH (editar) | solo draft | Una vez lanzada, la configuración queda congelada. |
DELETE | solo draft | Las secuencias lanzadas conservan su historial de contactos y no se pueden eliminar. |
launch | solo draft | Requiere una audiencia no vacía de máximo 5000 leads elegibles. |
pause | solo running | |
resume | solo paused |
Listar secuencias
sequences:read. Devuelve todas las secuencias de la organización, las más recientes primero. Este endpoint no está paginado — devuelve un array plano data.
Query parameters
| Parámetro | Tipo | Notas |
|---|---|---|
status | enum | Opcional. Filtrar por SequenceStatus: draft, running, paused o completed. Un valor inválido devuelve 400 VALIDATION_ERROR. |
Response 200
Cada secuencia incluye un objetoprogress derivado de su cola de contactos.
El objeto progress
Conteos de contactos por SequenceContactStatus. total es la suma del resto.
| Campo | Descripción |
|---|---|
total | Total de contactos enrolados en la secuencia. |
pending | En cola, aún sin intentar. |
inProgress | En despacho actualmente (in_progress). |
sent | Despachados correctamente. |
failed | El despacho falló tras los reintentos. |
skipped | Omitidos (p. ej. el lead se dio de baja o dejó de ser elegible). |
Crear una secuencia
sequences:write. Crea una secuencia en estado draft. No se encola nada hasta que la lanzas.
Request body
| Campo | Requerido | Notas |
|---|---|---|
name | sí | 1..120 caracteres (con trim). |
channel | no | Por defecto call. Solo se acepta call (SequenceChannel). |
criteria | sí | Filtro de audiencia. Ver abajo. |
throttle | sí | Reglas de ritmo. Ver abajo. |
criteria — filtro de audiencia
Todos los campos son opcionales y se combinan con AND. Un objeto vacío {} matchea todos los leads de la organización.
| Campo | Tipo | Notas |
|---|---|---|
statuses | string[] | Matchea leads cuyo status sea uno de estos valores de LeadStatus. |
stageIds | string[] (uuid) | Matchea leads en cualquiera de estas etapas del pipeline. Descubre los IDs de etapa con GET /pipeline/stages. |
sources | string[] | Matchea leads cuyo source sea uno de estos valores de LeadSource. |
minScore | integer (0–100) | Matchea leads con score >= minScore. |
throttle — ritmo y horario hábil
Todos los campos son requeridos.
| Campo | Tipo | Notas |
|---|---|---|
maxPerMinute | integer (1–60) | Máximo de contactos despachados por minuto. |
businessHoursStart | string "HH:MM" | Inicio de la ventana diaria de despacho, en hora local de timezone. |
businessHoursEnd | string "HH:MM" | Fin de la ventana diaria de despacho. |
timezone | string | Timezone IANA (p. ej. America/Santo_Domingo), 1..64 caracteres. |
weekdays | integer[] | Días de la semana ISO en que la secuencia puede despachar (Lun=1 … Dom=7). Mínimo uno, máximo siete. |
Response 201
Errores comunes
400 VALIDATION_ERROR— body inválido (p. ej.namevacío,channeldistinto decall,throttlemalformado).
Obtener una secuencia
sequences:read. Devuelve la misma forma que un ítem del listado, incluyendo el objeto progress. 404 NOT_FOUND si la secuencia no existe o pertenece a otra org.
Actualizar una secuencia
sequences:write. Solo drafts — editar una secuencia lanzada devuelve 400 BAD_REQUEST.
Request body
Todos los campos opcionales; envía solo lo que quieras cambiar.channel no se puede cambiar.
criteria y throttle se reemplazan por completo cuando se envían — manda el objeto completo, no un patch parcial.
Response 200
Errores comunes
400 BAD_REQUEST—"Only draft sequences can be edited".400 VALIDATION_ERROR— body inválido.404 NOT_FOUND— secuencia desconocida.
Eliminar una secuencia
sequences:write. Solo drafts. Las secuencias lanzadas son dueñas de su cola e historial de contactos (a quién se llamó, resultados, referencias de proveedor), por lo que se conservan como registro y no se pueden eliminar.
Response 200
Errores comunes
400 BAD_REQUEST—"Only draft sequences can be deleted; launched sequences keep their contact history".404 NOT_FOUND— secuencia desconocida.
Previsualizar la audiencia
sequences:read. Cuenta cuántos leads coinciden actualmente con un conjunto de criterios — sin crear ni lanzar nada. Úsalo para dimensionar una audiencia antes de comprometerte, y para confirmar que está por debajo del tope de 5000 leads del lanzamiento.
Request body
criteria sigue el mismo schema que en la creación.
Response 200
Lanzar una secuencia
sequences:write. Solo drafts. Resuelve la audiencia a partir de los criterios de la secuencia, enrola cada lead que coincide en la cola de contactos y pasa la secuencia a running.
Response 200
enqueued es la cantidad de contactos enrolados (la cantidad de unidades cobradas).
Errores comunes
400 BAD_REQUEST—"Only draft sequences can be launched"(ya está running, paused o completed).400 BAD_REQUEST—"No eligible leads match this sequence's criteria"(audiencia vacía).400 BAD_REQUEST—"Audience too large (over 5000 eligible leads). Narrow the criteria before launching."404 NOT_FOUND— secuencia desconocida.
Pausar una secuencia
sequences:write. Solo running. Detiene el despacho; los contactos en vuelo terminan, pero no se toman nuevos contactos.
Response 200
Errores comunes
400 BAD_REQUEST—"Only running sequences can be paused".
Reanudar una secuencia
sequences:write. Solo paused. Devuelve la secuencia a running y el worker continúa con los contactos pending restantes.
Response 200
Errores comunes
400 BAD_REQUEST—"Only paused sequences can be resumed".