Agentes
📬

Enqueuer

🔧 Herramienta

⚠️ NO es un agente — sin IA. Mete prospectos empaquetados en la cola de envío respetando el límite diario. Última pieza automática — después de esto el sistema espera a que el prospecto responda

En cola

0

prospectos esperando

Ejecuciones

50

50 logs

Costo total

$0

acumulado total

Errores

0

100% éxito

Último run

14/8, 11:00 a. m.

Parte del pipeline lineal diario (sin hora fija propia) — corre apenas termina Panel Generator, dentro de esa misma corrida

Descripción

Agregado al CRM el 04/07/2026 — existía en el código (src/queue/enqueuer.js) desde antes pero no tenía ficha en /agents (regla de oro "todo lo que existe debe estar visible en el CRM"). Toma prospectos status=packaged, elige canal (WhatsApp si hay teléfono, si no email) y los inserta en message_queue con status=pending, respetando el límite diario. El status del prospecto pasa a queued → sender lo manda → status=sent. De ahí en más el sistema queda a la espera: no hay nada más automático hasta que el prospecto responda (webhook de WhatsApp → response-analyzer/sales-closer toman la posta). Rediseño 04/07/2026 (audit de Gregory): (1) se borró el comentario del archivo que decía "tiempos escalonados 8-25 min entre mensajes" — nunca fue así, todos los mensajes de un batch se encolan con el mismo scheduled_at (confirmado, no es bug, es el diseño real: se manda todo junto). (2) El límite diario dejó de ser una env var fija — ahora vive en la tabla system_settings (columna daily_send_limit, default 100) y es editable desde /settings en el CRM sin tocar Oracle ni redeployar, con fallback a DAILY_SEND_LIMIT si la fila no existiera. (3) Se corrigió pendingTodayCount() — antes contaba TODOS los mensajes pending de siempre (sin filtro de fecha), ahora solo los de hoy (scheduled_at >= inicio del día), igual que sentTodayCount(). (4) Se borró código muerto (SMS_COUNTRIES/isSmsFriendly, nunca se llamaba).

Tareas

  • Contar mensajes ya enviados hoy + pendientes de hoy en cola (message_queue)
  • Traer prospectos status=packaged con preview_slug (límite = daily_send_limit disponible, editable en /settings)
  • Elegir canal: WhatsApp si tiene teléfono, si no email — sin ninguno → status=discarded
  • Insertar en message_queue (status=pending) y avanzar el prospecto a status=queued

Últimas ejecuciones (system_logs)

14/8, 11:00 a. m.

No hay prospectos en packaged para encolar

14/8, 11:00 a. m.

Enqueuer iniciado — límite diario: 100

13/8, 11:00 a. m.

No hay prospectos en packaged para encolar

13/8, 11:00 a. m.

Enqueuer iniciado — límite diario: 100

12/8, 11:00 a. m.

No hay prospectos en packaged para encolar

12/8, 11:00 a. m.

Enqueuer iniciado — límite diario: 100

11/8, 11:00 a. m.

No hay prospectos en packaged para encolar

11/8, 11:00 a. m.

Enqueuer iniciado — límite diario: 100

10/8, 11:00 a. m.

No hay prospectos en packaged para encolar

10/8, 11:00 a. m.

Enqueuer iniciado — límite diario: 100

7/8, 11:01 a. m.

No hay prospectos en packaged para encolar

7/8, 11:01 a. m.

Enqueuer iniciado — límite diario: 100

6/8, 11:01 a. m.

No hay prospectos en packaged para encolar

6/8, 11:01 a. m.

Enqueuer iniciado — límite diario: 100

5/8, 11:01 a. m.

No hay prospectos en packaged para encolar

5/8, 11:01 a. m.

Enqueuer iniciado — límite diario: 100

4/8, 11:01 a. m.

No hay prospectos en packaged para encolar

4/8, 11:01 a. m.

Enqueuer iniciado — límite diario: 100

3/8, 11:01 a. m.

No hay prospectos en packaged para encolar

3/8, 11:01 a. m.

Enqueuer iniciado — límite diario: 100

31/7, 11:02 a. m.

No hay prospectos en packaged para encolar

31/7, 11:02 a. m.

Enqueuer iniciado — límite diario: 100

30/7, 11:02 a. m.

No hay prospectos en packaged para encolar

30/7, 11:02 a. m.

Enqueuer iniciado — límite diario: 100

29/7, 11:01 a. m.

No hay prospectos en packaged para encolar

Modelo IA

Ninguno — sin IA

Costo estimado (sin datos reales todavía)

$0.00

Script

src/queue/enqueuer.js

Variables de entorno

daily_send_limit

Tope de mensajes/día — tabla system_settings, editable en /settings del CRM (default 100)

DAILY_SEND_LIMIT

Fallback por env si la tabla no existiera (default 100)

Capa

Pipeline operativo