Cómo evitar que un agente repita una acción cuando falla una integración

Diseña reintentos, claves de operación y comprobaciones de estado para que un tiempo de espera no cree pedidos, tareas o mensajes duplicados.

Equipo enginerIT· 3 min de lectura
Antes de repetir, consulta qué hizo ya el primer intento

Una conexión puede perder la respuesta después de que el sistema destino haya creado el registro. Si el agente reintenta sin consultar el estado, puede duplicar pedidos, notificaciones o tareas. La solución combina identificadores de operación, confirmación del sistema y una ruta explícita para los casos que siguen siendo ambiguos.

Diferencia fallo de respuesta y fallo de ejecución

Registra cada etapa: petición preparada, enviada, recibida y confirmada. Un tiempo de espera solo indica que la respuesta no llegó dentro de la ventana esperada; no demuestra que el destino no haya actuado. Presenta ese estado como incierto para que un nuevo intento no se ejecute como si nada hubiera pasado.

Asigna una clave estable a la operación

Relaciona la intención con un identificador de origen, tipo de acción y versión de la solicitud. Usa el mismo identificador si se repite el intento de la misma operación y uno distinto para una modificación nueva. Si el sistema de destino acepta una clave de idempotencia, acuerda su uso con el responsable de la integración y registra cómo se conserva.

Consulta el sistema destino antes de reintentar

Busca por el identificador externo o por una combinación fiable de campos. Si encuentras el registro esperado, confirma la acción y actualiza el flujo. Si aparecen varios candidatos o la búsqueda no es concluyente, detén el reintento. Una coincidencia por nombre y fecha puede no distinguir dos operaciones legítimas.

Separa lectura repetible de acciones con efectos

Volver a consultar un estado suele ser distinto de enviar un mensaje, crear una factura o aprobar una tarea. Define para cada acción si es segura al repetirse y qué efecto tendría una segunda ejecución. No uses una política única de reintentos para todas las herramientas del agente.

Establece límites y pausas de reintento

Para operaciones que el destino confirma como repetibles bajo una clave, define intentos limitados y cuándo consultar el estado. Detén el flujo ante errores de permiso, datos inválidos o respuestas contradictorias; repetirlos no suele resolver la causa. Si la integración permanece inestable, conserva el trabajo pendiente y asigna una revisión en vez de aumentar reintentos indefinidamente.

Diseña una cola para resultados inciertos

Muestra solicitud original, clave de operación, respuesta recibida, registro candidato y último intento. Permite que una persona confirme si se aplicó, cancele o cree una nueva operación con intención explícita. No ocultes el caso en un log técnico que solo puede encontrar quien mantiene la integración.

Reconcilia escrituras parciales

Una cadena puede crear el pedido y fallar antes de publicar la confirmación en CRM. Registra qué pasos quedaron confirmados y cuáles pendientes. El siguiente intento debería continuar desde el paso no resuelto o solicitar revisión, no iniciar todo el proceso desde el principio y crear una segunda orden.

Prueba fallos después del envío

Provoca una respuesta retrasada, desconexión tras escribir, respuesta duplicada y estado no consultable. Comprueba que el flujo no ejecuta dos veces el efecto y que alguien recibe una tarea cuando no puede saberlo. Guarda el resultado y repite la prueba al cambiar la integración o los permisos.

Usa una acción de prueba que pueda generar un duplicado sin afectar producción.

Simula un tiempo de espera después del envío y verifica si el registro ya existe antes del segundo intento. Acuerda el identificador de operación y qué persona resuelve el estado ambiguo.

Cuéntanos qué necesitas →