Creé el Mailchimp de los agentes de IA: lo que el producto necesita
Mike Codeur
Mailchimp me costaba más de 4.000 € al año. Utilizaba una pequeña parte del producto, pero pagaba por una plataforma que había crecido mucho más allá de mis necesidades. Construí AgentsMail, un SaaS de email marketing centrado en mis campañas, mis secuencias y el trabajo delegado a agentes.
El producto ya es público. Lo interesante no es solo la interfaz. Enviar un email parece fácil hasta que hay que proteger un template, procesar 25.000 contactos, evitar duplicados, seguir los bounces y explicar por qué un contacto no recibió nada.
Primero el producto, después el método
AgentsMail cubre el flujo que utilizo de verdad:
- contactos, listas y etiquetas;
- templates con zonas editables controladas;
- campañas y programación;
- secuencias con estado por contacto;
- estadísticas de entrega, clic, bounce y baja;
- una API disponible para personas y agentes.
Un agente puede preparar un borrador desde un template. Rellena las zonas autorizadas y deja la campaña en un estado que una persona puede revisar. No programa ni envía automáticamente. La validación humana permanece antes de la acción sensible.
Esa frontera importa. Un producto diseñado para agentes no debe limitarse a exponer más acciones. Debe hacer visibles los estados, los permisos y las aprobaciones.
Una campaña no es un bloque de texto
El borrador sigue siendo un objeto de negocio con asunto, contenido, template, audiencia, estado y CTA. El editor protege la estructura mientras un agente o una persona modifica el contenido.
El mismo email debe funcionar en Gmail, Outlook y Apple Mail, en móvil y escritorio, con tema claro y oscuro. El HTML de email no sigue las mismas reglas que una página Web moderna. Un componente que funciona en el navegador puede romperse en un cliente de correo antiguo.
El template actúa como límite. El agente escribe dentro de zonas definidas en lugar de reconstruir libremente toda la estructura.
Enviar a 25.000 contactos sin enviar dos veces
Una petición HTTP que recorre 25.000 destinatarios es frágil. Puede agotar el tiempo, fallar a mitad o repetir envíos después de un reintento.
AgentsMail divide el trabajo en lotes con Inngest, limita la concurrencia y mantiene el progreso visible. Cada tarea debe ser idempotente: repetir un intento no puede enviar un segundo email al mismo contacto.
| Riesgo | Respuesta técnica | Prueba esperada |
|---|---|---|
| Timeout de una petición grande | lotes asíncronos | progreso visible |
| Fallo parcial | retry del lote afectado | errores y recuperación registrados |
| Envío duplicado | clave de idempotencia | un evento de envío por contacto |
| Sobrecarga del proveedor | concurrencia limitada | caudal estable y errores controlados |
El resultado no es un botón más rápido. Es la capacidad de reanudar el trabajo sin perder el estado ni enviar dos veces.
La entregabilidad cierra el bucle
Amazon SES transporta el email. No sustituye todo el producto que lo rodea.
AgentsMail debe verificar dominios, tener en cuenta SPF y DKIM, recibir eventos de entrega, tratar bounces y quejas, y actualizar el contacto, la campaña y la secuencia. Una baja debe detener inmediatamente los siguientes pasos.
El historial de cada contacto responde preguntas concretas:
- ¿cuándo entró en la secuencia?
- ¿qué email se preparó y se envió?
- ¿la entrega funcionó?
- ¿qué enlace recibió un clic?
- ¿qué condición eligió la siguiente rama?
- ¿por qué está bloqueado el próximo mensaje?
Sin ese historial, los gráficos agregados pueden verse bien, pero no permiten diagnosticar un caso real.
No reconstruí todo Mailchimp
La velocidad empieza por el alcance que rechacé. Conservé las funciones necesarias para mi uso y descarté un CRM generalista, landing pages, publicación social y años de compatibilidad histórica.
El PRD describe lo que hay que construir. Un cementerio de funciones registra también lo que no se construirá. Cada rechazo reduce el plazo, el riesgo y el mantenimiento futuro.
AgentsMail es más pequeño que Mailchimp. Debe ser completo dentro de su alcance, no imitar cada menú.
Una story contiene el contexto necesario
Para una función como el envío de campañas, preparo una carpeta completa:
- investigación del código actual y las APIs existentes;
- diseño del recorrido y los estados;
- plan con tareas, dependencias, tests y Definition of Done;
- ejecución en una rama dedicada;
- revisión separada con los tests ejecutados de nuevo;
- validación del comportamiento visible y los casos de fallo.
Delego un resultado verificable, no una larga secuencia de micro-prompts. Las stories avanzan en paralelo solo cuando sus dependencias están listas. Contactos y templates permiten construir campañas; las campañas permiten después trabajar en entregabilidad y estadísticas.
Esta organización me permitió avanzar rápido sin confundir velocidad con falta de control.