Blog · · 5 min de lectura
Cómo avisar a tus clientes antes de que acabe su periodo de prueba con n8n e IA
Guía paso a paso para que n8n revise cada mañana los periodos de prueba en Google Sheets, detecte los que vencen pronto y prepare con IA un aviso claro en Gmail antes de que se corten.

Un cliente prueba tu academia, tu SaaS o tu servicio… y el día que acaba la prueba no se ha enterado a tiempo. Tú pierdes la conversión y él cree que «ya no funciona» sin haber tenido la oportunidad de decidir con calma.
En esta guía vas a montar en n8n un flujo que cada mañana revisa un registro de periodos de prueba en Google Sheets, detecta los que vencen en 3 o 1 día y redacta con IA un aviso claro en Gmail. Tú revisas el borrador y lo envías.
Esto no es lo mismo que un aviso de renovación de suscripción: ahí el cliente ya paga y el plan se renueva; aquí aún está en prueba gratis (o trial de pago simbólico) y necesita decidir si continúa. Tampoco sustituye a un aviso de cobro fallido: ese llega cuando el cargo ya ha rebotado.
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 trials: el nodo Google Sheets lee tu hoja «Periodos de prueba».
- Filtro por días hasta el fin: un nodo Code se queda con las filas que vencen en ~3 o ~1 día y aún no han recibido el aviso de esa fase.
- Aviso con IA: un nodo Basic LLM Chain escribe un correo cercano que resume el valor probado, indica la fecha de fin y facilita el enlace para activar el plan.
- 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 «Periodos de prueba» con estas columnas:
cliente,email,producto,fecha_fin(AAAA-MM-DD),uso_resumen(opcional: qué ha usado),enlace_activar(opcional),notasyaviso_enviado(vacía o1/2).
Puedes rellenar la hoja a mano al dar de alta un trial, o con otro flujo de n8n que escriba ahí cada alta. Esta guía asume que las filas ya están en Sheets.
Paso 1: prepara la hoja de periodos de prueba
Mantén fecha_fin con formato de fecha coherente y deja solo trials activos (archiva los ya convertidos o cancelados). En uso_resumen anota algo útil si lo tienes («3 clases reservadas», «12 facturas importadas», «habló con el agente 8 veces»); si no, déjalo vacío. En enlace_activar pon el enlace al checkout, portal o «activar plan»; si no tienes uno fijo, déjalo vacío. En notas apunta preferencias («prefiere WhatsApp», «pidió extensión», «empresa de 5 personas»).
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 «Periodos de prueba».
Paso 3: filtra los trials próximos a vencer
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_fin) continue;
const fin = new Date(c.fecha_fin); fin.setHours(0, 0, 0, 0);
const dias = Math.round((fin - hoy) / 86400000);
if (dias < 0 || dias > 5) continue;
const ya = Number(c.aviso_enviado || 0);
let fase = null;
if (ya < 1 && dias <= 3 && dias >= 2) fase = 1; // ~3 días
else if (ya <= 1 && dias <= 1) fase = 2; // hoy o mañana
if (!fase) continue;
salida.push({ json: { ...c, dias, fase } });
}
return salida;
Así cada trial 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 gestiona altas de [NOMBRE DEL NEGOCIO]. Escribe un correo breve para
{{ $json.cliente }} avisándole de que su periodo de prueba de «{{ $json.producto }}»
termina el {{ $json.fecha_fin }} (quedan {{ $json.dias }} días).
Resumen de uso (si existe, menciónalo; si está vacío, no inventes actividad): {{ $json.uso_resumen }}
Enlace para activar el plan (si existe, inclúyelo; si está vacío, no inventes uno): {{ $json.enlace_activar }}
Notas: {{ $json.notas }}
- Tono cercano y profesional, en español, máximo 7 frases.
- Recuerda el valor de la prueba sin presión agresiva; invita a decidir con calma.
- Si hay enlace_activar, invita a activar el plan con un clic; si no, pide responder a este correo.
- No inventes precios, descuentos ni fechas 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 (Lemon Squeezy, Stripe…) ya manda su propio email de fin de trial, usa este flujo como segundo aviso más humano o para trials que gestionas a mano.
Paso 5: crea el borrador y marca el aviso
Conecta un nodo Gmail → Create Draft con el destinatario {{ $('Code').item.json.email }}, el asunto Tu prueba de {{ $('Code').item.json.producto }} termina pronto 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 caducidad de tarjeta.
Después, un nodo Google Sheets → Update Row que busque por email + fecha_fin 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_findentro de ~3 días, 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 (fuera de la ventana de fase 1).
- Cambia
fecha_fina mañana (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 trial; si no convierte, anótalo y, si aplica, pasa a un flujo de reactivación de clientes inactivos más adelante.
- No inventes enlaces ni precios: si
enlace_activarestá 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 cuando el trial se convierte en plan de pago, y con avisos de caducidad de tarjeta si el cliente deja tarjeta para el primer cobro.
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 fin de periodo de prueba.


