Inicio / Blog / How-To

Cómo conectar n8n con una API de Python

Por Kepa Bilbao Automatización 4 min de lectura Bilbao

n8n es excelente conectando servicios, pero a veces necesitas lógica que ningún nodo cubre: un cálculo, un scraping, un modelo propio. La solución limpia es exponer esa lógica como una pequeña API de Python y llamarla desde el workflow. Así se hace.

01Cuándo tiene sentido

No todo necesita Python. Tira de una API propia cuando: la transformación es demasiado compleja para el nodo Function, necesitas una librería de Python concreta (pandas, un modelo, un PDF parser), o quieres reutilizar la misma lógica desde varios workflows. Para un if sencillo, quédate en n8n.

02Monta una API mínima con FastAPI

FastAPI es la opción más rápida: pocas líneas y documentación automática. Un endpoint que recibe datos y devuelve un resultado:

# main.py
from fastapi import FastAPI, Header, HTTPException
from pydantic import BaseModel

app = FastAPI()

class Cliente(BaseModel):
    nombre: str
    email: str

@app.post("/procesar")
def procesar(data: Cliente, x_api_key: str = Header(None)):
    if x_api_key != "TU_CLAVE_SECRETA":
        raise HTTPException(401, "No autorizado")
    # tu lógica aquí
    return {"nombre": data.nombre.title(), "ok": True}

Levántala con uvicorn main:app --host 0.0.0.0 --port 8000 y despliégala donde puedas (un VPS, Render, Railway o similar). Apunta el dominio o IP — lo necesitarás en n8n.

03Llámala desde n8n con el nodo HTTP Request

En tu workflow, añade un nodo HTTP Request y configúralo así:

El JSON que envías debe coincidir con el modelo de la API:

{
  "nombre": "{{ $json.nombre }}",
  "email": "{{ $json.email }}"
}

La respuesta de Python vuelve a n8n como un item normal: puedes encadenar el resultado ({{ $json.nombre }}) a un nodo de Airtable, Slack o lo que necesites.

04Tres buenas prácticas que evitan dolores

⚡ En la práctica

Este patrón — n8n orquestando + Python haciendo el trabajo pesado — es justo el que uso para automatizar altas de clientes y volcados de datos. n8n decide el «cuándo»; Python resuelve el «cómo».

Y ya está: n8n se encarga de orquestar (cuándo, con qué datos, a dónde va el resultado) y Python hace el trabajo pesado. Esta separación mantiene tus workflows limpios y tu lógica reutilizable.

¿Tienes un proceso que repites a mano?

Te enseño en 30 minutos si se puede automatizar — y cuánto tiempo recuperarías.

Reservar consulta gratis →