Blog · · 5 min de lectura
Cómo avisar a tus clientes cuando falla el cobro recurrente de su tarjeta con n8n e IA
Guía paso a paso para que n8n revise cada mañana tus cobros fallidos en Google Sheets, detecte las tarjetas rechazadas y prepare con IA un aviso educado de reintento en Gmail.

En un gimnasio, una academia, un SaaS pequeño o cualquier negocio con cuotas recurrentes el cobro de la tarjeta falla… y nadie se entera a tiempo. El cliente cree que sigue pagando, tú pierdes la cuota y, cuando te das cuenta, ya han pasado semanas.
En esta guía vas a montar en n8n un flujo que cada mañana revisa un registro de cobros en Google Sheets (export de Stripe, Lemon Squeezy o tu pasarela pegado a mano), detecta los rechazos recientes y redacta con IA un aviso educado de reintento en Gmail. Tú revisas el borrador y lo envías.
Esto no es lo mismo que un recordatorio de facturas impagadas: ahí la factura ya está emitida y sin pagar; aquí el cargo automático de la tarjeta ha fallado (fondos insuficientes, caducada, bloqueo del banco) y quieres recuperar el cobro sin sonar a cobrador.
Qué vas a construir
Un flujo de cinco pasos que funciona solo todos los días:
- Disparador diario: un nodo Schedule Trigger se ejecuta a las 9:20.
- Lectura de cobros: el nodo Google Sheets lee tu hoja «Cobros fallidos».
- Filtro por estado: un nodo Code se queda con los rechazos recientes que aún no han recibido el máximo de avisos.
- Aviso con IA: un nodo Basic LLM Chain escribe un correo cercano que explica el fallo, pide actualizar la tarjeta y cómo reintentar.
- Borrador y registro: Gmail crea el borrador y Google Sheets anota la fase avisada en
aviso_enviado.
Lo que necesitas
- Una instancia de n8n (en la nube o instalada gratis en tu ordenador).
- Google Sheets y Gmail conectados en n8n.
- Una clave de API de OpenAI u otro proveedor de IA, con un límite mensual de gasto configurado en su panel.
- Una hoja «Cobros fallidos» con estas columnas:
cliente,email,plan,importe,fecha_fallo(AAAA-MM-DD),motivo(opcional:fondos,caducada,rechazo),enlace_pago(opcional),notasyaviso_enviado(vacía o1/2).
Puedes rellenar la hoja pegando cada mañana un export CSV de Stripe o Lemon Squeezy, o con otro flujo de n8n que escriba ahí los webhooks de pago fallido. Esta guía asume que las filas ya están en Sheets.
Paso 1: prepara la hoja de cobros fallidos
Lo importante es que fecha_fallo tenga siempre el mismo formato de fecha y que solo dejes filas con cobro realmente rechazado (no reembolsos ni cancelaciones voluntarias). En enlace_pago pon el enlace de tu portal de cliente o el checkout de actualización de tarjeta si lo tienes; si no, déjalo vacío y el prompt no lo inventará. En notas apunta preferencias útiles («prefiere WhatsApp», «ya llamó al banco»).
Paso 2: disparador y lectura
Añade un Schedule Trigger diario a las 9:20 (revisa que la zona horaria del flujo, en Settings, sea Europe/Madrid). Conéctalo a Google Sheets → Get Row(s) apuntando a tu hoja «Cobros fallidos».
Paso 3: filtra los fallos pendientes de aviso
Añade un nodo Code (modo Run Once for All Items) con este código:
const hoy = new Date(); hoy.setHours(0, 0, 0, 0);
const salida = [];
for (const i of $input.all()) {
const c = i.json;
if (!c.email || !c.fecha_fallo) continue;
const dias = Math.round((hoy - new Date(c.fecha_fallo)) / 86400000);
if (dias < 0 || dias > 14) continue; // solo fallos de las últimas 2 semanas
const ya = Number(c.aviso_enviado || 0);
let fase = null;
if (ya < 1 && dias >= 0) fase = 1; // primer aviso al detectar el fallo
else if (ya === 1 && dias >= 3) fase = 2; // segundo aviso a los 3+ días
if (!fase || fase > 2) continue;
salida.push({ json: { ...c, dias, fase } });
}
return salida;
Así cada cobro fallido recibe como máximo dos avisos. Si no hay nada pendiente, el flujo termina sin gastar IA.
Paso 4: redacta el aviso con IA
Añade un Basic LLM Chain con un modelo pequeño y barato (por ejemplo, gpt-4o-mini) y este prompt:
Eres quien atiende a los clientes de [NOMBRE DEL NEGOCIO]. Escribe un correo breve para
{{ $json.cliente }} avisando de que el cobro recurrente de su plan {{ $json.plan }}
(importe {{ $json.importe }}) falló el {{ $json.fecha_fallo }}
(hace {{ $json.dias }} días). Motivo conocido (si existe): {{ $json.motivo }}.
Enlace para actualizar la tarjeta o reintentar el pago (si existe, inclúyelo; si está vacío, no inventes uno): {{ $json.enlace_pago }}
Notas: {{ $json.notas }}
- Tono cercano y profesional, en español, máximo 6 frases.
- Explica el fallo sin culpar ni alarmar; invita a actualizar la tarjeta o responder.
- Si hay enlace_pago, invita a resolverlo con un clic; si no, pide responder a este correo.
- No inventes importes, descuentos, plazos de corte ni enlaces que no estén en los datos.
Devuelve solo el cuerpo del correo.
Los datos salen de tu hoja; la IA solo pone el tono. Si tu pasarela ya manda el primer email automático, usa este flujo solo para el segundo aviso educado.
Paso 5: crea el borrador y marca el aviso
Conecta un nodo Gmail → Create Draft con el destinatario {{ $('Code').item.json.email }}, el asunto No hemos podido cobrar tu {{ $('Code').item.json.plan }} y el texto de la IA en el cuerpo. Usar borradores te deja revisar antes de enviar, igual que en avisos de renovación de suscripciones o avisos de renovación de contratos.
Después, un nodo Google Sheets → Update Row que busque por email + fecha_fallo y escriba la fase en aviso_enviado.
Cuando tengas confianza en los textos, puedes cambiar Create Draft por Send.
Cómo probarlo
- Crea una fila de prueba con tu propio correo y un
fecha_fallode hoy, conaviso_enviadovacío. - Ejecuta el flujo a mano y comprueba que aparece el borrador y que
aviso_enviadopasa a1. - Ejecútalo otra vez: no debe crearse ningún borrador nuevo.
- Cambia
fecha_falloa hace 4 días (dejandoaviso_enviadoen1) y confirma que se prepara el segundo aviso.
Coste y buenas prácticas
- Coste: cada aviso cuesta menos de una décima de céntimo en la API de IA. Pon un límite mensual de gasto en el panel del proveedor.
- No seas pesado: como máximo ~2 avisos por cobro fallido; si no responde, anótalo y pásalo a un flujo de reactivación de clientes inactivos o a una llamada humana.
- No inventes enlaces de pago: si
enlace_pagoestá vacío, el prompt pide responder al correo. - Avisa de errores: activa un flujo de errores para enterarte si Gmail o la hoja fallan, como en gestión de errores en n8n.
- Combínalo con avisos de renovación de suscripciones para avisar antes del cobro, y con recordatorios de facturas impagadas si el fallo ya se convirtió en factura pendiente.
Empieza con plantillas listas para importar
Si quieres tener ya montada la base de atención al cliente en n8n, descarga gratis el agente de WhatsApp o echa un vistazo al pack completo AgentKiosk: 8 agentes probados en español e inglés, con su workflow, su prompt y su guía, listos para importar y combinar con estos avisos de cobro fallido.


