Recursos Gratuitos para Desarrolladores
Herramientas listas para usar. Descarga los workflows (Blueprints) JSON e impórtalos directamente en tu instancia de N8N.
Guía: Cómo usar los Blueprints de N8N
Aprende a importar, configurar y personalizar los workflows de N8N que compartimos en este sitio. Guía paso a paso para principiantes.
Esta guía aplica a todos los Blueprints N8N que encontrarás en la sección de recursos. Léela una vez y podrás usar cualquier blueprint.
¿Qué es un Blueprint?
Un blueprint es un archivo .json que contiene un workflow de N8N exportado. Incluye todos los nodos, conexiones y configuraciones (excepto credenciales, que debes agregar tú).
Prerequisitos Generales
Antes de importar cualquier blueprint necesitas:
-
N8N instalado y corriendo
- Local con Docker: ver nuestro tutorial de instalación
- O cuenta en n8n.cloud
-
Credenciales configuradas según el blueprint:
- APIs externas (OpenAI, Notion, Telegram, etc.)
- Conexiones a bases de datos
- Webhooks de servicios externos
Cómo Importar un Blueprint
Paso 1: Descargar el archivo
Descarga el archivo .json desde el botón de descarga del recurso.
Paso 2: Importar en N8N
- Abre tu instancia de N8N
- Click en “Add workflow” (o el botón
+) - Click en los tres puntos (menú) → “Import from file”
- Selecciona el archivo
.jsondescargado
┌─────────────────────────────────────────┐
│ N8N [+] │
├─────────────────────────────────────────┤
│ │
│ ○ ─── ○ ─── ○ ─── ○ │
│ │
│ Workflow importado correctamente │
│ │
└─────────────────────────────────────────┘
Paso 3: Configurar credenciales
Los nodos que requieren autenticación mostrarán un ícono de advertencia. Para cada uno:
- Click en el nodo
- En el campo “Credential”, click en “Create new”
- Ingresa tus API keys o tokens
- Guarda
Paso 4: Ajustar variables
Cada blueprint tiene valores que debes personalizar:
- URLs de webhooks
- IDs de canales/bases de datos
- Filtros y condiciones
- Textos de mensajes
Revisa la documentación específica de cada recurso para saber qué ajustar.
Paso 5: Activar
- Prueba el workflow con el botón “Execute Workflow”
- Si todo funciona, actívalo con el toggle “Active”
Estructura Típica de un Blueprint
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ Trigger │───→│ Procesar │───→│ Decidir │───→│ Acción │
│ │ │ datos │ │ │ │ final │
└──────────┘ └──────────┘ └──────────┘ └──────────┘
│
└── Webhook, Cron, o evento externo
- Trigger: Qué inicia el workflow (webhook, schedule, evento)
- Procesar: Transformar o enriquecer datos
- Decidir: Lógica condicional (IF/Switch)
- Acción: Enviar notificación, guardar en DB, llamar API
Solución de Problemas
| Problema | Causa común | Solución |
|---|---|---|
| Nodo en rojo | Credencial faltante | Configura la credencial del nodo |
| Webhook no responde | Workflow inactivo | Activa el workflow (toggle) |
| Error 401/403 | API key inválida | Revisa tus credenciales |
| Datos vacíos | Payload incorrecto | Revisa el formato de entrada |
Siguiente Paso
Explora los blueprints disponibles y elige el que necesites. Cada uno tiene instrucciones específicas sobre qué credenciales necesitas y qué variables ajustar.
Agente de Soporte IA con Memoria
Workflow completo para crear un chatbot que recuerda el contexto de la conversación usando LangChain y OpenAI.
Crea chatbots que recuerdan el contexto de la conversación. Ideal para soporte técnico, asistentes personalizados o bots de ventas.
Nuevo en N8N? Lee primero la Guía de Blueprints para aprender a importar y configurar.
Flujo del Workflow
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ Webhook │───→│ Memory │───→│ AI Agent │───→│ Response │
│ (chat) │ │ Buffer │ │ LangChain│ │ HTTP │
└──────────┘ └──────────┘ └──────────┘ └──────────┘
│ │
└── Historial ───┘
Prerequisitos
- Cuenta de OpenAI con créditos
- (Opcional) Frontend o cliente que envíe mensajes al webhook
Credenciales Necesarias
| Nodo | Credencial | Dónde obtenerla |
|---|---|---|
| OpenAI | API Key | platform.openai.com/api-keys |
Variables a Personalizar
# En el nodo AI Agent
system_prompt: |
Eres un asistente de soporte técnico para [Tu Empresa].
Responde de forma amable y concisa.
Si no sabes algo, dilo honestamente.
model: "gpt-4o-mini" # o gpt-4o para mejor calidad
# En el nodo Memory Buffer
window_size: 10 # Últimos N mensajes a recordar
session_id: "{{ $json.userId }}" # Identificador único por usuario
Qué Incluye
- Webhook que recibe mensajes de chat
- Buffer de memoria que mantiene contexto por sesión
- Agente LangChain con modelo OpenAI
- Respuesta HTTP con el mensaje del asistente
Formato de Entrada
El webhook espera un JSON así:
{
"userId": "user_123",
"message": "Hola, tengo un problema con mi pedido"
}
Formato de Salida
{
"response": "¡Hola! Lamento que tengas problemas. ¿Podrías indicarme el número de pedido para ayudarte mejor?",
"sessionId": "user_123"
}
Integrar con Frontend
Puedes conectar este webhook con:
- Un widget de chat en tu web
- Un bot de Telegram/WhatsApp
- Una app móvil
- Cualquier cliente HTTP
Backup Automático PostgreSQL a S3
Automatiza backups diarios de tu base de datos PostgreSQL, comprime el dump y lo sube a un bucket S3 con rotación automática de archivos antiguos.
Nunca más te preocupes por perder datos. Configura una vez y olvídate.
Nuevo en N8N? Lee primero la Guía de Blueprints para aprender a importar y configurar.
Flujo del Workflow
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ Cron │───→│ pg_dump │───→│ Gzip │───→│ Upload │───→│ Limpiar │
│ (diario) │ │ SSH │ │ compress │ │ S3 │ │ antiguos │
└──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘
Prerequisitos
- Servidor PostgreSQL accesible (local o remoto)
- Bucket S3 creado (AWS, MinIO, o compatible)
- Si es remoto: acceso SSH al servidor de la base de datos
Credenciales Necesarias
| Nodo | Credencial | Dónde obtenerla |
|---|---|---|
| SSH | Host + usuario + clave SSH | Tu servidor |
| AWS S3 | Access Key + Secret Key | AWS IAM Console |
Variables a Personalizar
# En el nodo Cron
schedule: "0 3 * * *" # 3:00 AM diario (ajustar)
# En el nodo SSH/Execute Command
database_name: "mi_base" # Nombre de tu DB
postgres_user: "postgres" # Usuario de PostgreSQL
# En el nodo S3
bucket_name: "mis-backups" # Tu bucket
prefix: "postgres/" # Carpeta dentro del bucket
# En el nodo Limpiar
retention_days: 30 # Días a mantener backups
Qué Incluye
- Trigger programado (cron diario/semanal)
- Ejecución de
pg_dumpvia SSH o comando local - Compresión con gzip
- Upload a S3 con fecha en el nombre (
backup-2026-01-30.sql.gz) - Limpieza de backups mayores a N días
Verificar que Funciona
- Ejecuta manualmente el workflow
- Revisa tu bucket S3 - debe aparecer el archivo
- Descarga y descomprime para verificar integridad:
gunzip backup-2026-01-30.sql.gz head -50 backup-2026-01-30.sql
Formulario Web a Notion Database
Captura leads o submissions de formularios web y los guarda automáticamente en una base de datos de Notion con campos mapeados.
Ideal para landing pages, formularios de contacto o encuestas. Cada envío crea una fila en tu base de datos de Notion.
Nuevo en N8N? Lee primero la Guía de Blueprints para aprender a importar y configurar.
Flujo del Workflow
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ Webhook │───→│ Validar │───→│ Crear │───→│ Response │
│ (form) │ │ campos │ │ en Notion│ │ OK │
└──────────┘ └──────────┘ └──────────┘ └──────────┘
│
└── Error? → Responder 400
Prerequisitos
- Cuenta de Notion
- Base de datos en Notion con las columnas que quieres guardar
- Integration de Notion conectada a esa base de datos
Credenciales Necesarias
| Nodo | Credencial | Dónde obtenerla |
|---|---|---|
| Notion | Internal Integration Token | notion.so/my-integrations |
Configurar Notion
- Crea una Integration en Notion (Settings → Integrations → New)
- Copia el Internal Integration Token
- En tu base de datos, click ”…” → “Connect to” → selecciona tu integration
- Copia el Database ID (está en la URL:
notion.so/[workspace]/[DATABASE_ID]?v=...)
Variables a Personalizar
# En el nodo Notion
database_id: "abc123..." # ID de tu base de datos
# Mapeo de campos (ajustar a tus columnas)
properties:
Name: "{{ $json.nombre }}"
Email: "{{ $json.email }}"
Message: "{{ $json.mensaje }}"
Source: "{{ $json.source || 'web' }}"
Created: "{{ $now }}"
Qué Incluye
- Webhook para recibir datos del formulario
- Validación de campos requeridos
- Mapeo de campos a propiedades de Notion
- Respuesta de confirmación al frontend
- Manejo de errores
Formato de Entrada
{
"nombre": "María García",
"email": "maria@ejemplo.com",
"mensaje": "Me interesa más información",
"source": "landing-producto"
}
Conectar tu Formulario
En tu HTML/JavaScript:
fetch('https://tu-n8n.com/webhook/form-notion', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
nombre: form.nombre.value,
email: form.email.value,
mensaje: form.mensaje.value
})
}) Notificador de Deploys GitHub
Recibe webhooks de GitHub Actions y notifica al equipo cuando un deploy fue exitoso o falló, con link directo al workflow y commit.
Mantén a tu equipo informado de cada deploy sin revisar GitHub manualmente.
Nuevo en N8N? Lee primero la Guía de Blueprints para aprender a importar y configurar.
Flujo del Workflow
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ Webhook │───→│ Filtrar │───→│ Formatear│───→│ Notificar│
│ (GitHub) │ │ branch │ │ mensaje │ │Slack/Tel │
└──────────┘ └──────────┘ └──────────┘ └──────────┘
Prerequisitos
- Repositorio en GitHub con GitHub Actions
- Canal de Slack, Discord o Telegram para notificaciones
Credenciales Necesarias
| Nodo | Credencial | Dónde obtenerla |
|---|---|---|
| Slack | Webhook URL | api.slack.com/apps |
| Discord | Webhook URL | Canal → Integraciones → Webhooks |
| Telegram | Bot Token + Chat ID | @BotFather |
Configurar Webhook en GitHub
- Ve a tu repositorio → Settings → Webhooks
- Click Add webhook
- Configura:
- Payload URL:
https://tu-n8n.com/webhook/github-deploy - Content type:
application/json - Secret: (opcional, para validar firma)
- Events: Selecciona “Workflow runs”
- Payload URL:
- Click Add webhook
Variables a Personalizar
# En el nodo Filter (opcional: solo ciertas ramas)
branches_to_notify:
- "main"
- "production"
# En el nodo de formateo
message_success: |
✅ Deploy exitoso en {{ $json.repository.name }}
Branch: {{ $json.workflow_run.head_branch }}
Commit: {{ $json.workflow_run.head_sha.substring(0,7) }}
Autor: {{ $json.workflow_run.actor.login }}
🔗 {{ $json.workflow_run.html_url }}
message_failure: |
❌ Deploy FALLIDO en {{ $json.repository.name }}
Branch: {{ $json.workflow_run.head_branch }}
Commit: {{ $json.workflow_run.head_sha.substring(0,7) }}
Autor: {{ $json.workflow_run.actor.login }}
🔗 {{ $json.workflow_run.html_url }}
Qué Incluye
- Webhook que recibe eventos de GitHub Actions
- Parseo del payload (status, branch, commit, autor)
- Filtro por branch (solo main/production)
- Mensaje diferente según éxito o fallo
- Envío a Slack, Discord o Telegram
Payload de GitHub
GitHub envía un JSON extenso. Los campos más útiles:
{
"action": "completed",
"workflow_run": {
"name": "Deploy to Production",
"head_branch": "main",
"head_sha": "abc123def456...",
"conclusion": "success", // success | failure | cancelled
"html_url": "https://github.com/.../runs/123",
"actor": {
"login": "walter"
}
},
"repository": {
"name": "mi-proyecto",
"full_name": "usuario/mi-proyecto"
}
}
Verificar Secret (Opcional)
Para mayor seguridad, valida la firma del webhook:
// En un nodo Function de N8N
const crypto = require('crypto');
const secret = 'tu_secret_configurado';
const signature = $headers['x-hub-signature-256'];
const payload = JSON.stringify($json);
const expected = 'sha256=' + crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
if (signature !== expected) {
throw new Error('Firma inválida');
}
Ejemplo de Notificación
✅ Deploy exitoso en api-backend
Branch: main
Commit: abc123d
Autor: walter
🔗 https://github.com/user/api-backend/actions/runs/123456 Notificador de Errores a Slack/Discord
Captura errores de tus aplicaciones via webhook y envía alertas formateadas a Slack o Discord con detalles del error, stack trace y timestamp.
Monitorea aplicaciones en producción sin depender de servicios de pago. Recibe alertas instantáneas cuando algo falla.
Nuevo en N8N? Lee primero la Guía de Blueprints para aprender a importar y configurar.
Flujo del Workflow
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ Webhook │───→│ Parsear │───→│ Throttle │───→│ Slack/ │
│ (error) │ │ error │ │(antispam)│ │ Discord │
└──────────┘ └──────────┘ └──────────┘ └──────────┘
Prerequisitos
- Workspace de Slack o servidor de Discord
- Webhook URL del canal donde enviar alertas
Credenciales Necesarias
| Plataforma | Tipo | Dónde obtenerla |
|---|---|---|
| Slack | Webhook URL | api.slack.com/apps → Tu app → Incoming Webhooks |
| Discord | Webhook URL | Canal → Editar → Integraciones → Webhooks |
Configurar Slack
- Ve a api.slack.com/apps
- Crea una app o usa una existente
- Activa Incoming Webhooks
- Click “Add New Webhook to Workspace”
- Selecciona el canal y copia la URL
Configurar Discord
- Abre Discord → tu servidor
- Click derecho en el canal → “Editar canal”
- Ve a “Integraciones” → “Webhooks”
- Crea uno nuevo y copia la URL
Variables a Personalizar
# En el nodo HTTP Request (Slack/Discord)
webhook_url: "https://hooks.slack.com/services/..."
# En el nodo de formateo
message_template:
# Para Slack
blocks:
- type: "header"
text: "🚨 Error en {{ $json.app }}"
- type: "section"
text: "{{ $json.message }}"
- type: "context"
text: "{{ $json.timestamp }} | {{ $json.environment }}"
# En el nodo Throttle (antispam)
window_minutes: 5 # Agrupar errores iguales en 5 min
max_per_window: 1 # Solo 1 notificación por error
Qué Incluye
- Webhook de entrada para recibir errores
- Parseo y formateo del mensaje con severidad
- Filtro antispam (evita flood de errores repetidos)
- Envío a Slack o Discord con formato rico
Formato de Entrada
Envía errores desde tu aplicación:
// Node.js / JavaScript
fetch('https://tu-n8n.com/webhook/error-notify', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
app: 'api-backend',
environment: 'production',
level: 'error', // error | warning | info
message: 'Connection refused to database',
stack: 'Error: Connection refused\n at ...',
timestamp: new Date().toISOString(),
metadata: {
userId: 'user_123',
endpoint: '/api/users'
}
})
})
# Python
import requests
requests.post('https://tu-n8n.com/webhook/error-notify', json={
'app': 'worker-python',
'environment': 'production',
'level': 'error',
'message': str(exception),
'stack': traceback.format_exc(),
'timestamp': datetime.now().isoformat()
})
Colores por Severidad
| Level | Color Slack | Emoji |
|---|---|---|
| error | #dc3545 (rojo) | 🚨 |
| warning | #ffc107 (amarillo) | ⚠️ |
| info | #17a2b8 (azul) | ℹ️ |
Plantilla RAG Mínimo con LangChain
Script de Python comentado paso a paso para implementar tu primer sistema RAG (Retrieval Augmented Generation). Aprende a "chatear" con tus propios documentos.
Este recurso es el punto de partida ideal para desarrolladores que quieren salir de la teoría y empezar a construir aplicaciones con LangChain.
¿Qué incluye este script?
Es un archivo .py autocontenido que implementa el flujo RAG completo en menos de 50 líneas de código efectivo:
- Carga de Documentos: Uso de
TextLoaderpara ingerir datos locales. - Splitting: División del texto en fragmentos manejables con
CharacterTextSplitter. - Vectorización: Creación de embeddings usando OpenAI.
- Almacenamiento: Indexación en una base de datos vectorial local (FAISS) que no requiere servidor.
- RetrievalQA: La cadena mágica que une la búsqueda semántica con la generación de texto.
¿Cómo usarlo?
- Descarga el archivo
langchain-rag-starter.py. - Instala las dependencias:
pip install langchain langchain-openai langchain-community faiss-cpu - Configura tu
OPENAI_API_KEY. - Ejecuta
python langchain-rag-starter.py.
¡Es la base perfecta para construir bots de soporte, analizadores de contratos o asistentes de estudio personalizados!
RSS Feed a Telegram
Monitorea feeds RSS de blogs, noticias o releases y envía los nuevos artículos a un canal o grupo de Telegram automáticamente.
Mantente al día con tus fuentes favoritas sin abrir el navegador. Recibe cada artículo nuevo directo en Telegram.
Nuevo en N8N? Lee primero la Guía de Blueprints para aprender a importar y configurar.
Flujo del Workflow
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ Cron │───→│ Leer RSS │───→│ Filtrar │───→│ Enviar a │
│ (15 min) │ │ Feed │ │ nuevos │ │ Telegram │
└──────────┘ └──────────┘ └──────────┘ └──────────┘
Prerequisitos
- Bot de Telegram creado
- Chat ID del canal/grupo donde enviar
- URL(s) de feeds RSS a monitorear
Credenciales Necesarias
| Nodo | Credencial | Dónde obtenerla |
|---|---|---|
| Telegram | Bot Token | @BotFather en Telegram |
Crear Bot de Telegram
- Abre Telegram y busca
@BotFather - Envía
/newboty sigue las instrucciones - Copia el token que te da (formato:
123456:ABC-DEF...) - Agrega el bot a tu canal/grupo como administrador
Obtener Chat ID
Para un canal: usa @username del canal (ej: @micanal)
Para un grupo:
- Agrega el bot
@userinfobotal grupo - Te dirá el Chat ID (número negativo, ej:
-1001234567890)
Variables a Personalizar
# En el nodo Cron
schedule: "*/15 * * * *" # Cada 15 minutos
# En el nodo RSS Feed Read
feed_urls:
- "https://blog.ejemplo.com/rss"
- "https://news.ycombinator.com/rss"
# En el nodo Telegram
chat_id: "@micanal" # o el ID numérico
parse_mode: "HTML" # o Markdown
# Formato del mensaje
message_template: |
<b>{{ $json.title }}</b>
{{ $json.description }}
<a href="{{ $json.link }}">Leer más →</a>
Qué Incluye
- Polling configurable de feeds RSS
- Detección de artículos nuevos (evita duplicados)
- Formateo de mensaje con título, resumen y link
- Envío a bot de Telegram
- Soporte para múltiples feeds
Evitar Duplicados
El workflow usa el nodo “Filter” comparando con los items ya procesados. N8N guarda un registro interno de los GUIDs/links ya enviados.
Si quieres resetear (reenviar todo):
- Ve al nodo de RSS
- Borra el “static data” del workflow
Otros Recursos
Checklist Seguridad APIs
Lista de verificación interactiva para endpoints de producción.
Docker Compose Templates
Próximamente: Stacks listos para PHP, Python y Node.js.