Cómo funciona

Seguimientos programados

Cómo un agente programa trabajo para más tarde y entrega el resultado en el canal por el que llegó — tareas duraderas, reclamación atómica y recuperación.

Hay cosas que no pueden responderse dentro del turno: una comprobación que tarda minutos, un recordatorio para el próximo martes, una conversación de renovación que hay que abrir dentro de seis semanas. El agente puede registrar ese trabajo y dejar que la respuesta llegue cuando esté lista.

El mecanismo

1. Registrar

En mitad del turno, el agente invoca schedule_followup para trabajo que no cabe en el turno: una comprobación que tarda minutos, un recordatorio para el próximo martes, una conversación de renovación dentro de seis semanas.

2. Persistir

La tarea es una fila en Postgres, no un mensaje en un broker. Una tarea pendiente es un dato ya confirmado, así que un redespliegue o una caída no la pierden: la durabilidad sale gratis del almacén que ya se está usando.

3. Sondear

Un sondeador despierta cada pocos segundos y busca las tareas vencidas. El precio es la granularidad: una tarea se dispara en el siguiente sondeo y no al milisegundo, algo que para seguimientos medidos en minutos o semanas no supone una pérdida real.

4. Reclamar

Las tareas vencidas se reclaman con FOR UPDATE SKIP LOCKED. Un solo sondeador no lo necesita, pero escribirlo bien ahora significa que una segunda instancia más adelante no podrá enviar por duplicado, y un seguimiento entregado dos veces cuesta la confianza del cliente en quien lo envía.

5. Generar

Se genera el resultado. Una tarea reclamada por un proceso que después muere vuelve a pendiente mediante una pasada de recuperación, en lugar de quedarse en curso para siempre.

6. Entregar

La entrega vuelve al canal por el que llegó la petición: una burbuja en el widget web, un mensaje en Telegram o en WhatsApp. A quien preguntó por WhatsApp se le responde por WhatsApp.

La herramienta devuelve de inmediato — el cliente recibe su respuesta ahora y el resultado programado después.

La herramienta no bloquea el turno. Escribe una fila y devuelve, de modo que el cliente recibe su respuesta ahora y el resultado programado después.

Por qué la cola es una tabla de la base de datos

No hay Redis ni broker. Las tareas son filas en Postgres, y es una decisión deliberada:

  • Los reinicios no pierden trabajo. Una tarea pendiente es una fila confirmada. El proceso puede redesplegarse a mitad de vuelo y el sondeador recoge la tarea al volver: la durabilidad sale gratis del almacén de datos que ya se usa, en vez de venir de un segundo sistema con sus propios modos de fallo.
  • Una cosa menos que operar. Para un despliegue de un solo proceso, un bucle de sondeo basta.

El precio es la granularidad de la latencia: una tarea se dispara en el siguiente sondeo y no al milisegundo. Para seguimientos medidos en minutos o semanas, eso no es una pérdida real.

La reclamación es atómica

Las tareas vencidas se reclaman con FOR UPDATE SKIP LOCKED. Un solo sondeador no puede necesitarlo, pero escribirlo bien ahora significa que ejecutar una segunda instancia más adelante no provocará envíos duplicados. Un seguimiento entregado dos veces no es un defecto cosmético: es el cliente recibiendo dos veces el mismo mensaje de «su renovación vence» y perdiendo la confianza en quien se lo manda.

SKIP LOCKED también implica que una tarea lenta no bloquea la cola detrás de ella: otros trabajadores pasan por encima de la fila bloqueada y toman la siguiente.

Recuperación

Una tarea reclamada por un proceso que después muere se quedaría en curso para siempre. Una pasada de recuperación devuelve las tareas atascadas a pendiente, de modo que se reintentan en lugar de perderse en silencio.

La entrega sigue al origen

El resultado se empuja de vuelta al canal por el que llegó la petición, no a un canal elegido por la plataforma. A quien preguntó por WhatsApp se le responde por WhatsApp. Las comunicaciones programadas del propio inquilino —avisos de renovación, recordatorios de plazos— funcionan igual, con la cadencia que usted configure.

Qué significa esto en la práctica

  • Un agente puede decir «vuelvo con esto» y cumplirlo de verdad.
  • Los recordatorios sobreviven a un despliegue, a un reinicio y a una caída.
  • Un seguimiento se entrega una sola vez, y llega a la persona allí donde estaba hablando con usted.

El argumento de negocio a favor de los seguimientos que no dependen de que nadie se acuerde está en Recupere su tiempo; la programación es una de las herramientas integradas que se describen en Herramientas y MCP.