PTENES
MÓDULO 4.1

⚙️ Configuración del entorno

Antes de construir cualquier automatización, necesitas un taller listo. Aquí eliges la plataforma, creas cuentas, configuras credenciales y claves de API de forma segura, entiendes la anatomía de un workflow y ejecutas tu primer "hello world".

6
Temas
45
Minutos
Práctico
Nivel
Manos a la obra
Tipo
Plataforma (n8n/Make) Credenciales Variables (.env) Workflow nodes + conexiones Hello World ✓primera ejecución

Ilustrativo: tres capas de configuración alimentan el workflow, que produce su primera ejecución.

1

🧰 n8n o Make — la elección

La primera decisión de la construcción es qué plataforma alojará tus flujos. No necesitas las dos: necesitas dominar una. Las candidatas son n8n (open-source, self-host o cloud, con opción de usar código) y Make (no-code, 100 % alojado, rápido para empezar).

✓ Elige n8n cuando

  • ✓Quieres controlar los datos (self-host) y evitar cobros por operación.
  • ✓Necesitas lógica compleja: nodo Code en JS/Python cuando lo visual no basta.
  • ✓Alto volumen de ejecuciones: costo predecible por instancia, no por paso.
  • ✓Quieres versionar el flujo como JSON y llevarlo de un cliente a otro.

✗ Evita empezar con Make si

  • ✗Va a ejecutar decenas de miles de operaciones al mes: el costo por operación se dispara.
  • ✗Necesitas datos on-premise por cumplimiento — Make es solo cloud.
  • ✗Quieres una lógica que va más allá del no-code; el code custom es más limitado.
  • ✗Quieres evitar el lock-in — exportar/portar es más fácil en n8n.

💡 Consejo práctico

Empieza con n8n cloud (prueba gratuita) para aprender sin instalar nada. Cuando el flujo demuestre su valor y el volumen crezca, migra a self-host (Docker): el mismo JSON del flujo se importa directamente. Aprende la herramienta y luego optimiza el hosting.

Self-host

Controlas los costos y los datos

Cloud

Cero infraestructura, pagas una suscripción

Código

Recurre a la lógica compleja

Lock-in

Portabilidad del flujo

2

👤 Cuentas y credenciales

Una credential guarda el acceso a un servicio una sola vez y se reutiliza en todos los nodos que se conectan a él. Configuras la conexión con Gmail, OpenAI o Supabase una vez; cada nodo solo la referencia.

🔗 Cuenta de servicio dedicada

Nunca conectes tu cuenta personal. Crea una cuenta de servicio solo para la automatización (p. ej., automacao@empresa.com). Así revocas el acceso sin afectar a nadie y sabes exactamente qué tocó la automatización.

  • •Permisos mínimos: solo los alcances que el flujo realmente usa.
  • •OAuth cuando el servicio lo admite (el token vence y se renueva); API key cuando no.
  • •Nombra la credential según el entorno: OpenAI · prod vs OpenAI · staging.
Credential type

Formato por servicio

OAuth vs key

Cuándo usar cada uno

Alcance

Mínimo privilegio

Cuenta dedicada

No usar la cuenta personal

3

🔑 Claves de API y variables de entorno

Todo lo que cambia entre desarrollo y producción — claves, URL, ID de hoja de cálculo — está en variables de entorno, fuera de los nodos. En self-host, esto es un archivo .env; en el flujo lees con $env.

# .env — nunca commitear este archivo
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxx
SUPABASE_URL=https://abcd.supabase.co
SUPABASE_SERVICE_KEY=eyJhbGciOi...
SLACK_ALERT_WEBHOOK=https://hooks.slack.com/services/...
ENVIRONMENT=production
# leyendo la variable dentro de un node (n8n)
// no campo de header de um HTTP Request node:
Authorization: Bearer ={{ $env.OPENAI_API_KEY }}

// escolher comportamento por ambiente:
={{ $env.ENVIRONMENT === 'production' ? 'real' : 'sandbox' }}

💡 Consejo práctico

Mantén un .env.example versionado, con las claves sin valor. Así, cualquier persona (o tú dentro de 3 meses) sabrá qué variables necesita el flujo, sin exponer nunca el secreto real.

4

🔒 Seguridad y gestión de secretos

El error más costoso de un principiante es filtrar una clave. Una key de LLM expuesta en GitHub puede convertirse en una factura de miles de reales en cuestión de horas, porque los bots recorren repositorios públicos en busca de esas claves.

⚠️ Dónde se filtran los secretos (y cómo evitarlo)

  • ✗Pegar la clave en el cuerpo de un nodo en lugar de usar credential/$env.
  • ✗Registrar el objeto completo de la solicitud (que incluye el header Authorization).
  • ✗Devolver por error datos sensibles en la respuesta del webhook.
  • ✗Hacer commit del .env — siempre en el .gitignore.

✓ Prácticas seguras

  • ✓Rota las claves periódicamente y ante la menor señal de filtración.
  • ✓Mínimo privilegio: la clave solo puede hacer lo que el flujo necesita.
  • ✓Enmascarar datos en logs (sk-***).
  • ✓Usar un gestor de secretos cuando la operación crezca.

✗ Hábitos peligrosos

  • ✗Una sola clave "admin" para todo.
  • ✗Enviar una captura del workflow con la clave visible en el chat.
  • ✗Reutilizar la misma clave en staging y producción.
  • ✗Nunca revocar claves de proyectos anteriores.
5

🧩 Estructura de un workflow

Un workflow es un grafo de nodos conectados por conexiones. Cada conexión lleva una lista de elementos en JSON. Interioriza esto: todo es una lista de elementos que fluye de nodo en nodo — este es el modelo mental que desbloquea todo lo demás de la ruta.

1

Trigger

Dónde empieza el flujo

Un nodo especial que inicia la ejecución: manual, webhook, agenda o evento externo. Todo workflow tiene exactamente un punto de partida.

2

Nodos de acción

Qué hace el trabajo

Cada node recibe elementos, los transforma y devuelve elementos. HTTP Request, Set, IF, código, Gmail — todos siguen el flujo entra-elemento / sale-elemento.

3

Elementos y $json

El dato que viaja

Dentro de cualquier nodo, $json es el item actual. Si la entrada tiene 50 items, el node se ejecuta 50 veces (una por item), automáticamente.

# un item típico que viaja entre nodes
{
  "json": {
    "nome": "Ana Souza",
    "email": "ana@empresa.com",
    "valor": 1290.50
  }
}
// no próximo node, acessa com: ={{ $json.email }}
6

👋 Primer "hello world"

La prueba de que el entorno funciona: un Manual Trigger conectado a un node que define un campo. Lo ejecutas, ves el dato aparecer en el primer node y llegar al segundo. Simple — y elimina el 90% de la ansiedad de empezar.

1

Agrega un Manual Trigger

En el canvas vacío, haz clic en «+», busca Manual Trigger. Es el botón "Test workflow".

2

Conéctalo a un nodo Edit Fields (Set)

Crea un campo mensaje con valor Hello World. Conecta la salida del trigger con la entrada del Set.

3

Ejecuta y lee la salida

Haz clic en "Test workflow". Abre el nodo Set y mira el elemento de salida: tu primer dato fluyendo de punta a punta.

# salida esperada del node Set
[
  { "mensagem": "Hello World", "executadoEm": "={{ $now }}" }
]

💡 Consejo práctico

Antes de cualquier flujo real, siempre empieza con un "hello world" de la integración que vas a usar (1 llamada a la API, 1 fila en la hoja de cálculo). Probar la conexión por separado ahorra horas de depuración después.

📌 Resumen del módulo

✓
Plataforma - elige n8n (control, código) o Make (rápido y sin código); domina uno.
✓
Credenciales - cuenta de servicio dedicada, privilegio mínimo, reutilizable entre nodos.
✓
Variables de entorno - configuración fuera del código, leída con $env, nunca incluida en un commit.
✓
Seguridad - filtrar una clave es el error más costoso; rótala, enmascárala, aísla.
✓
Workflow - grafo de nodes; todo es una lista de elementos que fluyen vía $json.
✓
Hello world - trigger → Set, ejecutar, leer la salida: entorno comprobado.

Próximo Módulo:

4.2 - Primera automatización de extremo a extremo (del trigger a la acción, con IA en medio)