Saltar al contenido
Gabriel Neuman
Gabriel Neuman

Automatización

Mi automatización nunca me dio un error: tardé dos meses en ver que perdía el 36% de los datos

Cómo saber si tu automatización de marketing funciona de verdad. Seis fallas medidas de mi propio sistema: ninguna dio error y todas entregaban de menos.

Gabriel Neuman
Mi automatización nunca me dio un error: tardé dos meses en ver que perdía el 36% de los datos

Tu automatización puede estar entregando la mitad de lo que promete y reportarte que todo salió bien.

La mía lo hizo durante dos meses. Un proceso que traía a la gente que reaccionaba a un post de LinkedIn devolvía 100 personas cuando existían 157. Perdía el 36% en cada corrida, sin un solo mensaje de error.

Hace unos días escribí sobre el ingeniero de crecimiento y los seis sistemas que arma. Este post es la otra mitad: construí esos seis sistemas y esto es lo que se rompió.

¿Por qué mi automatización dice que funciona si no veo resultados?

Porque "terminó sin error" y "hizo bien su trabajo" son dos cosas distintas, y casi ningún sistema te avisa cuál de las dos pasó.

El proceso de arriba llama a un servicio externo que tiene tope de 100 resultados por página. Le pedía un post, me devolvía 100, y se detenía ahí. La corrida salía verde y la lista se veía completa.

Se veía completa porque una lista de 100 nombres se ve igual de completa que una de 157 cuando no sabes que faltan 57.

Hubo otro caso peor en el mismo sistema. Los datos de los usuarios se guardaban en un archivo dentro del servidor, y ese servidor recrea su disco cada vez que publico código nuevo. Cada publicación borraba la información de todos, en silencio, y quien entraba al día siguiente veía su cuenta vacía sin explicación.

La operación de guardado siempre respondió que sí. Guardaba, nada más que en un lugar que dejaba de existir.

¿Cómo detecto que un proceso está fallando en silencio?

Pregúntale a cada fuente si de verdad trajo datos, no si terminó.

Mi generador de contenido leía los commits de la semana para tener material sobre qué escribir. Esa lectura apuntaba a dos rutas escritas a mano, del tipo c:/Users/Usuario/…, que solo existen en mi computadora.

En el servidor esas rutas no existen. El comando fallaba, el bloque que atrapa errores se lo tragaba, y la función devolvía texto vacío. Cada corrida, durante meses.

El generador nunca se quejó. Siguió escribiendo posts, solo que sin material.

Hoy esa ruta sale de una variable de configuración y viene vacía por default. Una fuente apagada que lo dice vale más que una prendida que miente.

El segundo lugar donde buscar es tu propia revisión de calidad. El comando que yo corría antes de dar algo por bueno se llamaba check y sonaba a que revisaba todo. Revisaba los tipos del código y nada más: las 22 pruebas del proyecto no se corrían nunca, ni en mi máquina ni en el servidor.

Verde en cada corrida, durante semanas, con la mitad de mis pruebas dormidas.

Te dejo algo gratis para arrancar. La guía completa para montar tu primer agente, 18 artículos paso a paso, está en gabrielneuman.com/como-instalar-claude-code. De cero a tenerlo funcionando en un par de horas, sin costo.

¿Cuánto cuesta de verdad una falla que nadie ve?

Cuando la falla toca algo que se paga por unidad, cuesta dinero en cada corrida.

postLeads, el sistema con el que trabajo esto, junta a quien reacciona y a quien comenta un post de LinkedIn, y después busca el correo de trabajo de cada persona. Ese correo se paga por contacto.

Las dos fuentes identifican a la misma persona con direcciones distintas: una manda un identificador opaco y la otra la dirección legible. Si eliminas repetidos comparando direcciones, no eliminas ninguno.

Resultado medido en un post real: 39 personas repetidas sobre 279. Cada una, un correo comprado dos veces en la misma corrida.

Hay una segunda capa del mismo problema que apareció al medirlo con calma. Sin quitar los acentos al comparar, "Juan Pérez" y "Juan Perez" eran dos personas distintas, y dos cobros.

El otro costo no se paga en dinero sino en credibilidad. El 2 de septiembre publiqué un texto de 2,786 caracteres en LinkedIn e Instagram al mismo tiempo. El sistema reportó ambas publicaciones correctas.

Instagram corta el texto en 2,200 caracteres. No rechazó el post: lo publicó cortado a media frase, terminando en "…el changelog en los ~". Se perdieron los últimos 586 caracteres, que eran el remate, y nada avisó.

Un post rechazado se nota y se corrige. Uno cortado sale y se ve mal.

¿Cómo verifico que la IA cumple las reglas que le di?

Sacando la regla del prompt y poniéndola como una revisión que corre después de generar.

Yo tenía una regla de voz: nada de muletillas de inteligencia artificial. Vivía como una petición dentro del prompt, que es la forma más débil de tenerla.

Un prompt pide, no verifica. El modelo recita la regla y la rompe en la misma respuesta, igual que pasa cuando le pides que escriba un blog que posicione sin sonar a IA y sale un texto correcto y vacío.

Ahora esa lista de frases vive como una constante del código con dos usos. El prompt la enumera y una revisión posterior la verifica, con el mismo conjunto de patrones. Hay una prueba que toma las frases que el prompt enumera y comprueba que la revisión rechace cada una.

Escribir esa prueba destapó dos huecos reales: un patrón que por un detalle técnico no coincidía nunca con nada, y una palabra que el prompt daba como prohibida y que ninguna regla verificaba.

Lo que dejé fuera de la lista importa igual. "Hoy en día" y "la clave está en" son español legítimo, y cazarlos volvería la revisión ruidosa. Una revisión ruidosa se apaga a los tres días.

Vale la pena contar cómo terminó esto. Pasé el borrador de este post por esa misma guarda y lo rechazó en el primer intento, porque yo estaba citando frases prohibidas como ejemplo y la revisión no distingue entre usar una frase y mencionarla. Reescribí el párrafo.

Ese es el estado correcto de las cosas: la regla me estorbó a mí antes de dejar salir un texto flojo.

¿Qué reviso antes de construir la siguiente automatización?

Cinco cosas, en este orden.

Que cada fuente diga cuándo está vacía. El bloque que atrapa errores y devuelve un valor en blanco es el enemigo. Una fuente sin datos tiene que gritarlo.

Qué corre de verdad tu comando de calidad. Ábrelo y lee qué ejecuta. El mío decía check y revisaba un tercio de lo que yo creía.

Un conteo manual de un caso. Toma una corrida, cuenta a mano lo que debió traer y compáralo. Treinta segundos de aritmética contra dos meses de datos incompletos.

Las reglas que te importan, en código. Si la regla vive solo en el prompt, es una sugerencia.

Mide antes de apilar la siguiente capa. Yo agregué flujos, revisiones y bots encima de un generador al que le faltaba materia prima.

Ahí está el remate honesto de todo esto. Tapé los seis agujeros, cada uno con su prueba, y el sistema hace lo que prometí que iba a hacer.

Los resultados de contenido no se movieron por eso. Cuando medí mi blog completo con Search Console, el 88% de las páginas no recibía un solo clic, y arreglar la maquinaria no cambió ese número.

El cuello no estaba en la máquina. Estaba en la materia prima que le daba de comer, y eso es otro trabajo.

Si estás armando algo parecido y quieres comparar notas sobre dónde se te está mintiendo el tuyo, escríbeme.

Preguntas frecuentes

¿Cómo sé si mi automatización de marketing está funcionando?

Que termine sin error no prueba nada. Compara lo que entregó contra una fuente independiente: cuenta a mano un caso y revisa si el número cuadra. En mi sistema, un proceso que reportaba éxito traía 100 personas de 157 que existían. El error habría sido visible en treinta segundos con un conteo manual, y nadie lo hizo durante dos meses.

¿Por qué una automatización falla sin avisar?

Porque casi siempre está programada para seguir adelante ante un problema. El bloque que atrapa errores devuelve un valor vacío, el proceso continúa y el reporte final sale en verde. En marketing esto pesa más que en otras áreas: la salida es texto, y el texto se ve bien aunque esté mal.

¿Cuánto puede costarme una falla silenciosa?

Depende de qué se paga por unidad. En mi caso, un proceso contaba a la misma persona dos veces porque las dos fuentes la identificaban distinto: 39 duplicados sobre 279 personas. Como el correo de cada contacto se paga por contacto, eso fue pagar 39 veces de más en una sola corrida.

¿Sirve pedirle a la IA en el prompt que cumpla una regla?

Sirve poco. Un prompt pide, no verifica: el modelo recita la regla y la rompe en la misma respuesta. La regla que te importa tiene que vivir como una revisión en código que corra después de generar, y salir de la misma definición que el prompt para que nadie cambie una y olvide la otra.

¿Cada cuánto debo revisar una automatización que ya funciona?

Antes de construir la siguiente capa encima. Ese es el momento en que un dato mal traído se propaga a todo lo que venga después. Yo agregué flujos, revisiones y bots sobre un generador al que le faltaba materia prima, y ordenarlo al revés me habría ahorrado dos meses.

¿Vale la pena automatizar si puede fallar así?

Sí, con una condición: que cada pieza pueda demostrar que hizo su trabajo. Una fuente apagada que lo dice vale más que una prendida que miente. El costo de instrumentar es una tarde; el de no hacerlo fueron dos meses en mi caso.

Tema completo

Este artículo es parte de Growth Hacking. Ahí tienes el panorama completo.

Ver Growth Hacking

¿Te sirvió este artículo?

Recibe la siguiente táctica en tu correo.

Una guía práctica de automatización e IA cada viernes. 3,000+ founders en LATAM. Gratis.

Resume este artículo con IA

Gabriel Neuman

Quién escribe esto

Gabriel Neuman

Consultor en automatización e IA con más de 15 años de experiencia. Ayudo a dueños de negocios a recuperar su tiempo con sistemas que trabajan solos. Fundador de GNB Labs.

Sigue leyendo

También te puede interesar...

¿Y si lo montamos juntos?

Automatizar lo repetitivo empieza con una llamada de 30 minutos.

Reviso tu operación, te digo qué se puede sistematizar y qué no vale la pena tocar todavía. Sin costo y sin presentación de ventas.