# n8n in 45 minutes. The one page you need today.

Bodo Buschick, Exasync, Vibe Sprint 2026. Files (workflows to import, app prompt, this page): link on the screen.

## The three words

Trigger: what starts the workflow (a webhook call, a schedule, a new row). Node: one step. Webhook: a URL your app can send data to.

## Connect your Lovable app to n8n in five steps

1. n8n: new workflow, add node "Webhook", method POST, path `ask`, Respond "Using Respond to Webhook node".
2. Add the node that does the work (OpenAI, HTTP Request, Google Sheets, Set). Read incoming fields as `{{ $json.body.FIELD }}`.
3. Add node "Respond to Webhook", Respond With JSON, body `{ "answer": ... }`.
4. Save, switch the workflow to Active, copy the Production URL (not the Test URL).
5. Lovable prompt: "Send a POST request with JSON body { question } to <URL>, header Content-Type application/json, show the field answer from the response."

## Three building blocks (import from file, change two fields, done)

- `01-lovable-form-to-ai.json`: app asks, AI answers. Change: your OpenAI credential (or use the Set node instead of AI).
- `02-baustein-schedule-digest.json`: every morning fetch something, format, send. Change: the URL and the recipient.
- `03-baustein-webhook-to-sheet.json`: every form submit becomes a row in a Google Sheet. Change: sheet ID, column names.

## Five mistakes everyone makes today

1. Test URL in the app instead of Production URL. Works once, then 404.
2. Workflow not activated. Production URL answers 404.
3. Reading `$json.question` instead of `$json.body.question`. Empty value.
4. CORS error in the browser. Webhook node, Options, Allowed Origins: `*`.
5. Respond mode set to "Respond to Webhook node" but no such node in the workflow. The app waits forever.

## Where to look when it does not work

n8n left menu, Executions. Every call shows up there with the data of every node. Red node = the problem is there. Bring that screen to the mentor table, not the error text.

## Free stuff that needs no key

Open APIs for HTTP Request: open-meteo.com (weather), api.frankfurter.app (exchange rates), pokeapi.co, restcountries.com, dummyjson.com (fake products and users for demos).
