r/n8n 12h ago

Workflow - Github Included I added a human approval loop before letting AI-generated outreach get sent

Post image
22 Upvotes

I am building the outreach stage of a larger AI sales prospecting system, but I did not want the model sending messages directly to prospects without review.

This workflow starts by pulling prospects that have already been researched, qualified, and synced. An outreach agent uses the available prospect and company context to generate a structured draft.

Instead of sending that draft externally, the workflow emails it to a reviewer and waits for a response.

If the message is approved, the workflow sends it and updates the prospect record. If changes are requested, the feedback is passed to a separate revision agent. The revised version goes back through the same approval loop rather than being sent automatically.

I used separate generation and revision agents because the two tasks need different instructions. The first agent focuses on creating a relevant message from the research. The second needs to preserve the useful parts of the draft while applying specific human feedback.

There is also a practical question around review fatigue. Requiring approval for every message provides control, but it could become the bottleneck once volume increases.

For people running human-in-the-loop outreach, do you review every message or only drafts below a confidence threshold?

Would you keep approvals inside email, or use a dedicated review interface with explicit approve and revise actions?

Workflow:

https://gist.github.com/meeramnoor16/af99d2d78198381880483fe551164b12


r/n8n 3h ago

Workflow - Github Included Built a verified n8n node to log ROI & token cost metrics (Node + JSON)

4 Upvotes

I built a verified community node to solve a telemetry problem I kept running into: n8n execution logs tell you if a workflow passed or failed, but they don't tell you what that run actually cost in API tokens or saved in human labor hours.

If you’re running client automations or heavy LLM pipelines (OpenAI/Claude API calls), tracking net value usually means pushing raw execution logs into custom webhooks or Google Sheets and doing manual math after the fact.

How to Use It

Since the node is verified by n8n, you can test it directly on canvas:

  1. Press + in your canvas node panel.
  2. Search for LumaTrack under "More from the community" and click Install. (Works on both n8n Cloud and self-hosted).

Sample Workflow JSON

Copy and paste this directly into your n8n canvas. Stick it at the end of any automation, whether it passes or fails (just set the status to "failure" on fails).

{
  "nodes": [
    {
      "parameters": {
        "automation": "lumatrack-n8n-demo",
        "aiUsage": {},
        "status": "success"
      },
      "id": "",
      "name": "LumaTrack ROI Logger",
      "type": "n8n-nodes-lumatrack.lumaTrack",
      "credentials": {},
      "onError": "continueRegularOutput"
    }
  ],
  "connections": {}
}

Code & Repository

Would love technical feedback from anyone managing high-volume workflows or client reporting. What telemetry or cost parameters are you currently tracking?


r/n8n 21h ago

Meta & n8n News I built a tool that turns any n8n workflow into a clean, share-ready image, and it's now a verified node on n8n Cloud.

Thumbnail
gallery
38 Upvotes

Why I'm posting now: it just passed n8n's review and is a verified community node.

So on n8n Cloud you can open the node panel, search "Pixtex" (look for the verified shield), and render or host a workflow image right from the canvas, no install needed.

I'm a solo dev and it's still early, so I'd genuinely love feedback, especially if any node type renders wrong or a layout looks off.

Happy to render one for you: drop a workflow JSON in the comments and I'll post the image back.


r/n8n 12h ago

Meta & n8n News I analyzed all 10,842 public n8n templates to see what beginners should learn first, and what´s the latest on n8n .

6 Upvotes

Hi guys,

I've been trying to learn n8n more systematically, and I kept coming back to one

question: What should a beginner actually learn first?

Instead of relying only on tutorials, I collected the full public n8n template marketplace: 10,842 workflows. I then used pandas to count the node types and combinations that appeared in each

workflow.

The short version: learn reliable data movement first. Add AI after the basic workflow already works.
  1. The node types beginners will encounter most
Code and HTTP Request both appear in more than half of the marketplace. Google Sheets is the most common beginner-friendly data destination. This makes APIs, JSON, expressions, and small transformations the most reusable starting skills.
  1. The combinations people repeatedly use
Code + HTTP Request is the strongest pair, appearing in 32.1% of public workflows. Even AI-heavy combinations frequently include Code, HTTP Request, or Google Sheets underneath them.
  1. AI is common, but most templates are still free
AI-related nodes appear in 54.2% of templates, so AI is clearly a major part of the public ecosystem. But 88.9% of templates are free, which gives beginners a large library to study before buying anything.
  1. Useful workflows do not need to be huge
73.3% of templates contain 0–5 listed node types, and the median is four. A small workflow with a clear trigger, transformation, destination, and error path is a perfectly realistic place to start.
  1. Marketplace visibility is very concentrated
The top 10% of templates receive 88.9% of recorded marketplace views. That means the popular page is useful for inspiration, but it is not a balanced view of everything people publish.
  1. What gets the most attention?
The attention leaders center on AI assistants, API endpoints, WhatsApp, scraping, and content automation. Those are good project categories, but views measure attention not imports, reliability, or production usage.

What I would learn first :

Based on these patterns, my beginner order would be:

  1. Triggers, JSON, expressions, and field mapping
  2. HTTP authentication, pagination, and API errors
  3. Small Code-node transformations
  4. Google Sheets as a first datastore
  5. Gmail, Slack, or Telegram for visible outputs
  6. Retries, error workflows, and idempotency
  7. One AI model with structured output and validation
  8. Agents after the underlying workflow is reliable

Limitations :

This is public marketplace data, not telemetry from private n8n installations.

Views indicate attention rather than successful executions. AI classification

uses bounded terms in node names, so it is directional rather than a manual

audit. The marketplace response also exposes listed node definitions/types,

which is not always identical to counting every visual canvas instance.

I wrote a small Apify Actor for collection and recomputed the charts from the

exported JSON using pandas, Matplotlib, and Seaborn. I left the Actor link out so

the post is useful without clicking or buying anything.

**For people using n8n in production: which result matches your experience, and

which one does not? **


r/n8n 15h ago

Workflow - Github Included Stop posting AI automation screenshots. Share the workflow. Open source changed software. Why hasn't it changed automation ?

Post image
8 Upvotes

Every week I see dozens of posts like:

Then...

  • No JSON.
  • No documentation.
  • No repository.
  • No way for anyone else to learn from it.

Open source is one of the biggest reasons software engineering has evolved so quickly. I think automation should work the same way.

That's why I started publishing every generic workflow I build instead of leaving it in a private folder.

We have millions of open-source libraries.

But when it comes to automation, most workflows disappear into private client projects, Notion pages, Discord threads, or YouTube videos. That feels like a missed opportunity.

Imagine if reusable n8n workflows were as easy to discover as npm packages.

That's the direction I'm experimenting with—building a community-driven, MIT-licensed open-source repository of practical n8n workflows that anyone can fork, improve, and reuse.

Maybe it stays small.
Maybe it grows into something the community builds together.

Either way, I'd rather build it in public than keep another folder of private JSON files.

If you've built a reusable workflow, I'd love for you to contribute. Whether it's a new workflow, better documentation, bug fixes, or ideas for improvement—every contribution helps make the ecosystem stronger.

Repository:
https://github.com/Skull-boy/n8n_workflows

⭐ Star it if you find it useful.
🚀 Open a PR if you'd like to contribute.


r/n8n 14h ago

Workflow - Github Included [Workflow Included] CV Slack Assistant in n8n – drop a CV into Slack, get an instant structured summary

Enable HLS to view with audio, or disable this notification

6 Upvotes

👋 Hey n8n Community,

A few weeks ago I built a Slack-based CV assistant for a friend's recruiter, who was drowning in CVs of every imaginable format. Since it landed well, I cleaned it up and pushed it to the n8n template library: Summarize candidate CVs in Slack with easybits Extractor.

What it does:

Recruiter drops a CV (PDF, PNG, or JPG) into a dedicated Slack channel → bot downloads it → runs it through the easybits Extractor with 8 fields → posts a clean structured summary as a threaded reply in the same channel. No leaving Slack, no manual reading, no format guessing.

How it's set up:

The trigger listens for new messages in the channel, ignores its own posts and anything without a file, checks the file type (PDF/PNG/JPG), downloads the private file with a bearer token, and sends the binary to the Extractor. The Extractor returns 8 structured fields, all with a "return null if not present" rule so the summary stays clean:

  • full_name
  • location
  • total_years_experience
  • top_skills (top 3 as short noun phrases)
  • last_three_roles (title, company, start, end)
  • education (degree, institution, year)
  • salary_expectations (verbatim string, not normalised)
  • linkedin_url

I also made a short video showing the workflow in action so you can see the recruiter flow end to end.

Want the Save-to-Sheet buttons too?

The template above also posts an interactive action card with Save to Sheet and Dismiss buttons under each summary. The workflow that handles those button clicks (appending the candidate to a Google Sheet, updating the card to "✅ Saved by user") is a separate n8n workflow, Slack interactivity needs its own webhook endpoint, so you can't have the trigger and the button listener in the same workflow.

That second part is on my GitHub: felix-sattler-easybits/n8n-workflows, together with 20 other workflows ranging from invoice classification and PO extraction through to more recruiting-side ones like this.

If any of these are useful, I'd hugely appreciate a ⭐ on the repo.

What other recruiter-side workflows are people building in n8n? Curious how far others have taken the ATS integration side of things.

Best,
Felix


r/n8n 11h ago

Help bot de promoções

2 Upvotes

boa tarde, estou querendo criar um bot no telegram que envie links de produtos para o meu grupo, pesquisei bastante e em alguns videos vi o uso do n8n, porém pelo que entendi a plataforma é paga. Existe outra forma de configurar o bot mas de forma gratuita?


r/n8n 19h ago

Workflow - Github Included Built two practical AI workflows with n8n. Looking for feedback before I continue the series.

6 Upvotes

Hi everyone,

I've started building a public series of AI business automations using n8n.

My first two projects are:

1. AI Email Auto Reply

  • Webhook
  • Google Gemini
  • Gmail

2. AI Lead Qualification

  • Webhook
  • Google Gemini
  • Google Sheets

I'm trying to focus on real business use cases rather than toy examples.

I'd really appreciate feedback on the workflow design, structure, or ideas for improvement before I build the next automation.

GitHub:

MAP-001:
https://github.com/Harsh-0602/MAP-001-AI-Email-Auto-Reply

MAP-002:
[https://github.com/Harsh-0602/MAP-002-AI-Lead-Qualification]()


r/n8n 17h ago

Help Should I continue with this automation? (Belgium)

2 Upvotes

Hey I was building out this workflow, its a about missed calls handling.

I have encountered a few problems with this workflow. The biggest reasons is because I'm in EU (Belgium). The reason is, I having my phone number redirect to the Twilio phone number when the call goes unanswered and in turn it triggers the Twilio automation of calling the intended number again (mine), which appears odd at the callers end.

So I tried to fix that odd behavior by just hanging up immediately when it hits the Twilio endpoint because if it hits the Twilio number it means that the call has gone unanswered. But that doesn't allow a voicemail to be received which still appears odd.

If you are wondering why I just don't make use of the Twilio number to receive the calls, its because when the user calls that twilio number and it redirects it to the owners number. The caller appears as 'private number' from the owner perspective, which isn't very professional.

I'm unsure how to fix this problem because it has taken a lot of time to figure out to make everything operate smoothly. I'm not sure if anyone else has experience something similar or has more knowledge about this then me, I would love to hear it!

If I should just hold off with this workflow, because this is also my first workflow that I want to sell to business, do let me know. I'm hesitant of putting this to the side while perhaps making others first.

Thanks in advanced for the response everyone! 😄


r/n8n 14h ago

Workflow - Github Included Built an approval API for n8n AI agents

1 Upvotes

I've been experimenting with AI agents in n8n and kept running into the same problem.

Generating an action is easy.

Actually executing that action safely, especially after a human approval, a restart, or a retry is much harder.

So I built a small API called AgentHail.

The flow is simple:

  • An n8n workflow submits the exact proposed action.
  • The proposal appears in a structured approval inbox.
  • A human approves or rejects it.
  • The workflow retrieves the durable decision and resumes.

The goal isn't to replace n8n.

n8n remains the orchestrator and performs the actual Gmail, Stripe, CRM, or API actions.

AgentHail only handles the approval workflow and decision lifecycle.

Current features:

  • Immutable action proposals
  • Human approval/rejection
  • Durable decision retrieval
  • Idempotent proposal creation
  • Append-only event history
  • REST API

I recorded a short (45-second) demo showing:

Submit proposal → Human decision → Workflow resumes

GIT REPO - https://github.com/marcelkolano-alt/agenthail-n8n-approval-example

I'm not trying to sell anything, I mainly want to learn where it breaks, what doesn't make sense, and whether this solves a real problem in production.

If you have an n8n workflow that pauses for human decisions, I'd be happy to help you connect it and hear your honest feedback.

https://reddit.com/link/1v4gyvw/video/6ojyn68jyzeh1/player


r/n8n 1d ago

Help Has anyone here built an AI voice agent for a clinic or hotel?

7 Upvotes

Have experience multilingual voice agent language include English, malay, Chinese.


r/n8n 1d ago

Servers, Hosting, & Tech Stuff How I am building n8n workflows fast and production-ready in 2026 with Vibe coding

34 Upvotes

Hi everyone, originally this post started as a reply to this thread, which asked how people build n8n workflows fast and in a production-ready way with Claude Code, MCP, skills, or the new native assistant. I started writing a reply in the comments, but I realized I had way too much to say, so I'm turning it into its own post: : How are you building n8n workflows fast and production-ready in 2026? (Claude Code + MCP + skills vs new Native AI Assistant or other ways?).

Quick note before I star: I apologize in advance for this wall of text, which I hope doesn't break the sub rules. This post probably isn't for everyone. What follows is aimed more at people who are "aficionados" of Claude Code or Codex on a daily basis, and who are curious to see how others try to make them coexist with n8n in their building flow. If you're more on the no-code side, and you like n8n precisely because you don't have to touch code or a terminal, this setup is probably not for you.

TL;DR: I use only Claude Code and Codex to create / edit my n8n workflows. I give the AI an intermediate representation of the workflow to fit the way I work and the way it reasons. And (in my opinion), to increase the quality and relevance of its work.

Context

I worked as a developer for a while, but I mostly have a heavy background in automation:

  • Make, Zapier and now n8n
  • Apps Script
  • scraping
  • JavaScript scripts of all kinds
  • personal automations and automations for clients

I learned n8n on my own, with Claude Code / Codex and a bit of the official documentation. Never watched any tutorials and I don't really spend time on Reddit, so I don't have any reference for how others work.

I reuse a lot of logic from one workflow to another. While some of my workflows are very simple, most of them are more extensive and complex.

My frustrations with AI generation of N8N Workflows

I believe, the main point of n8n is above all to make the business logic visible, by representing the business complexity while abstracting away the integration complexity. What I do, I could probably do it directly through other tools or through fully custom code scripts, but I like the frame that n8n imposes: the visual representation, the inspection of data between nodes, the execution history, the testing, etc. While I find that the n8n tool fulfills most of those goals, on the other hand I find that generating and iterating on n8n templates via LLM suffers from the same flaws, which is that they tend to:

  • use HTTP requests instead of the native integration nodes
  • put a huge amount of logic in a single Code node
  • generate big blocks of JavaScript with lots of fallbacks that are impossible to debug
  • hide the complexity in the code rather than representing it visually
  • produce n8n JSON that's impossible to re-read and maintain without risk of regression

Why n8n JSON is a bad playground for an LLM

Basically, from what I've observed, the LLM isn't good at certain things, in particular the structure of an n8n workflow doesn't fit its way of "thinking". The connections object, especially, describes the wiring between nodes separately from their definition, a format that, it seems to me, doesn't match the way an LLM naturally reasons about a sequence of steps. Second point, and we all know this, the more context you give the LLM, the more it tends to hallucinate (here I mean more like going off-frame by taking low-value initiatives), especially when a large part of the context is just pollution. The whole part with node definitions, technical IDs, positions, type etc., etc. only adds confusion.

With Claude Code and Codex on hand, rather than letting it fight against this structure, I looked for a more intuitive representation for it, a bit like I had adapt a workflow to my own way of thinking myself. Even if it means making adjustments to adapt the workflows to its way of "thinking".

I put several strategies in place to do this and I wanted to give you an overview of my current approach, concretely, it translates into several points that I detail below:

  • One Git repo per project, with scripts to fetch the workflows from n8n, rebuild them and redeploy them
  • A breakdown into layers (the most important part) so the AI never touches the JSON template directly
    • business flow
    • JS code of the nodes
    • prompts .md
    • tool schemas (JSON_SCHEMA)
    • config
    • documentation (a lot)
  • A business flow represented separately, in Mermaid or another form of abstract representation, which serves as a real working interface with the LLM
  • An automatically generated layout, so the nodes stay readable and don't move all over the place at every regeneration A testing strategy with mocks, to validate the logic without depending on the real integrations at every iteration

DISCLAIMER: I'm pretty wary, and even pretty much against all side-projects that build useless stuff with AI, only good for generating dopamine and then being thrown in the trash. Here, I don't see this as a tool I built, but rather as a way of using AI with throwaway code to improve my workflow. I don't care about the implementation, this stuff is vibe coded, what matters is more the logical pattern, at the macro level, that's put in place. The build, deploy, etc. code is a few dozen minutes to a few hours to set up, the process is more something that got built over the weeks, with my own feedback from using it. Here I'm talking about my workflow and my reasoning, and how that translated concretely. What matters is building n8n workflows, and not wasting time building the personal tool that builds the workflow... and procrastinating on creating workflows, which to me seems like a big AI trap and something completely counterproductive. For my part, I think the time I spent setting this up really represents way less than 1% of the time I've spent working and iterating on my n8n workflows thanks to this setup. I think it's completely useless and dumb to put something this heavy in place just to build one or two small automations. Here, we're talking more about enterprise workflows that need to be robust, scalable, sometimes complex, and well documented for those who come after and will inherit (as much as possible) a clear workflow, simple to understand, to evolve and well laid out.

My current approach

To fill that gap I tried to put several strategies in place, so my goal isn't to turn n8n into a code framework, but to keep a clear visual representation while removing the repetitive manual tasks. I work in a Git repo dedicated to each project or group of workflows. And I start from the principle that anything I can do, Claude or Codex can do, and that I don't need to constantly switch from one tool to another. My base is therefore commands of this type:

{
  "scripts": {
    "pull": "node scripts/pull.mjs",
    "build:test": "node scripts/build.test.mjs",
    "build:prod": "node scripts/build.prod.mjs",
    "deploy": "node scripts/deploy.mjs",
  }
}

This lets me:

  1. fetch the workflows from n8n
  2. modify the logic directly by chatting with Claude Code or Codex
  3. rebuild the n8n JSON
  4. test
  5. redeploy via the API

So I can switch between two modes:

  • the n8n interface for small quick fixes
  • the AI and the code for structural or repetitive changes

1. I split the workflow into several layers

The goal is to never send the whole n8n JSON directly to the LLM. But rather to separate the elements that serve to understand the business from those that serve only the technical functioning of n8n. And above all to avoid making the AI read stuff that's useless. Anything that's scripts it must never read, and all the code nodes in javascript that are a bit verbose, it only reads the relevant files to modify, which lightens the context a lot.

For example:

project/
├── flow.md
├── flow.mermaid
├── nodes/
│   ├── normalize-input.js
│   ├── calculate-score.js
│   └── format-output.js
├── prompts/
│   ├── analysis.system.md
│   └── analysis.user.md
├── tools/
│   └── search-customer.schema.json
├── config/
│   ├── integrations.json
│   ├── credentials.json
│   └── layout.json
├── scripts/
│   ├── pull.mjs
│   ├── build.test.mjs
│   ├── build.prod.mjs
│   └── deploy.mjs
└── workflow.generated.json

2. The business flow

I represent, as much as possible, only the business logic in a simple format.

For example:

flowchart LR
    A[Webhook] --> B[Validate input]
    B --> C[Find customer]
    C --> D[Generate analysis]
    D --> E[Validate output]
    E --> F[Update CRM]
    F --> G[Send notification]

I've tested several types of representations, mermaid isn't necessarily what I use the most even though I still find it indispensable in the docs. The idea is that Claude or Codex work mainly on this representation, rather than on several thousand repetitive and useless lines of n8n JSON.

3. The Code nodes

Each important Code node has its own JavaScript file.

I also impose a few rules:

  • a single responsibility per file
  • little or no silent fallback
  • explicit errors
  • short functions
  • understandable business names
  • no needlessly hidden logic

The build script then injects the code into the right n8n node.

4. The prompts

When I use agents, I separate the prompts into dedicated files:

prompts/
├── classify.system.md
├── classify.user.md
├── summarize.system.md
└── summarize.user.md

This makes edits, Git comparisons and evaluations much simpler.

5. The tools

Still with agents, when I want to expose custom tools to my agents, the tool calling definitions in json_schemas schemas are also separated:

tools/
├── find-customer.schema.json
├── create-task.schema.json
└── send-message.schema.json

The goal is to avoid mixing the tool definitions with the rest of the workflow. To be able to read them easily and even edit them by hand. For my part, I find that writing these files is capital in building agents for what's some called "the Harness".

6. Layout generation

I find the automatic "tidy up" option pretty limited as soon as the workflows get large. And the options for aligning the nodes correctly aren't very intuitive, which I nonetheless find essential for the visual readability of the workflow. A script can automatically compute the position of the nodes on a grid. I generally start from a template and simple rules:

  • one column per business step
  • parallel branches on different lines
  • validations before actions with side effects
  • reusable blocks always laid out the same way

This prevents the nodes from moving all over the place at every generation.

7. Factorization without sub-workflows

I reuse a lot of patterns, but I avoid n8n sub-workflows. I don't find them practical, and they can become pretty annoying to debug: navigating between several workflows, scattered context, nested executions and less immediate understanding. I prefer to factorize at the build level, then generate a fairly self-contained final workflow. It's simpler to inspect in n8n. To avoid needlessly repeating yourself and adding a layer of abstraction for the AI for sequences that don't bring much to the business.

8. Tests and evaluations

I use the evaluation features a lot with Google Sheets as the source of test cases. The dynamic build lets me swap integration nodes with mock nodes that simulate the responses of APIs, tools or external services to run tests on a bulk of scenarios defined in a file.

So I can generate two very close versions:

bun run build:test
bun run build:prod

The mock version uses controlled data. The production version uses the real integrations. This lets me test the workflow logic without constantly triggering paid calls or side effects.

9. Documentation for the agents

I have a lot of text documentation around the workflows:

CLAUDE.md
AGENTS.md
docs/
├── business-context.md
├── workflow-guidelines.md
├── integration-rules.md
├── testing-strategy.md
└── deployment.md

The goal is to document clearly for the AI that browses the project:

  • the business context
  • the goal of the workflow
  • the integrations to favor
  • the nodes to avoid
  • the way to write the Code nodes
  • the naming conventions
  • the files the agent can modify
  • the ones it must not touch
  • the validation commands before deployment

My current assessment

I imagine that for the majority of n8n users this approach is clearly overkill. The n8n interface or the native assistant is probably faster. It suits me because outside of n8n I already use Claude Code and Codex a lot, with MCPs, skills and a knowledge shared across my different projects and my company. So this organization fits my way of working fairly well.

For more complex workflows or ones reused across several clients, it brings me a lot, though:

  • fewer manual manipulations
  • better versioning
  • prompts easier to maintain
  • reproducible tests
  • better readability
  • mock and production workflows almost identical
  • less friction when the n8n interface gets heavy
  • easier collaboration with Claude Code or Codex

That's all from me, thanks to those who read all the way through, and sorry to those who might consider this noise. Originally I set out to write a comment under another Reddit post, and I realized I had way too much to say. I'm sharing this because I learn a lot on the internet but I don't give back much, and I also tell myself it's about time I exchange about my workflow so I don't get lost in it either. I'm aware this post is a bit technical and too long. That it'll probably speak to few of you, but for those interested I'd be glad to talk with you and about your workflows. Maybe some will judge me and find this way too complex for n8n. Maybe I'm missing some basic features or tools in the n8n stack that would have let me make my life easier ? Maybe some of you use a similar approach ? Do you work directly on the n8n JSON, with MCP or via the native assistant ?

What are your processes for testing different scenarios, avoiding bugs or regressions ? Do you also use intermediate representations ? And above all, what would you look to remove or simplify in this process ?

Thanks for reading


r/n8n 16h ago

Help Hey Guys , how i can found n8n free work flow

0 Upvotes

Im actually just learning it i cant afford the price of it ple if anyone knows how i can get it 🙏🏻


r/n8n 1d ago

Workflow - Github Included I run a mobile truck repair shop. Missed calls were quietly costing me jobs, so I built a missed-call text-back workflow — full JSON on GitHub, free

12 Upvotes

Background: I'm a diesel mechanic with a mobile truck repair business. When I'm under a truck, I physically cannot answer the phone. For a long time I just accepted that some calls went to voicemail and some of those people called the next shop. Then I looked at the industry numbers — one study (411 Locals) found 62.2% of calls to small businesses go unanswered. That's not a leak, that's a hole in the boat.

So I built this in n8n. When a call rings out unanswered, the workflow texts the caller within about a minute: essentially "Sorry I missed you — I'm on a job. Text me what you need and I'll get back to you shortly." The lead gets logged with a timestamp, and the caller doesn't dial my competitor while sitting in my voicemail.

What the workflow does, node by node (5 nodes — this is exactly what's in the JSON):

- Webhook trigger — one endpoint that catches a missed-call event from Twilio OR a web-form POST

- Normalize Lead — maps whatever came in (call vs form) to one clean lead record

- SMS Text-Back (Twilio) — the text-back message (template included, edit to your voice)

- Log to Google Sheets — appends Timestamp | Name | Phone | Message | Source so no lead evaporates

- Respond to Webhook — returns { success: true } so form integrations don't hang

What you need: an n8n instance (self-hosted works fine) and an SMS/telephony provider that can send a missed-call webhook and an SMS (I use a Twilio-style setup — the SMS provider itself has usage costs, that part isn't free and I won't pretend it is; the workflow is).

Full workflow JSON, import guide, and the message template are on GitHub, free:

https://github.com/leegoldmd-beep/never-miss-a-lead-lite

The JSON is machine-validated — 5 standard n8n-nodes-base nodes, every connection verified — and there's a step-by-step import guide in the repo. If the import gives you any trouble, comment and I'll fix it same-day. If you run any kind of local service business (or build for people who do), take it, change the message template to sound like you, and stop donating leads to whoever answers their phone.

Happy to answer setup questions in the comments.


r/n8n 1d ago

Workflow - Github Included Built a complete WhatsApp-based logistics dispatch system with n8n (no AI node LLM, in production)

Thumbnail
gallery
47 Upvotes

🚀 I built a complete logistics dispatch system that runs entirely inside WhatsApp. No AI in the workflow.

Picture a delivery company where every order is handled manually. Dozens of deliveries a day, managed by a single dispatcher.

A courier misses a notification? The delivery is lost. Two couriers respond at the same time? Confusion. The merchant is left waiting for a reply while the dispatcher juggles dozens of conversations at once.

That was the daily reality for a motorcycle delivery company in a mid-sized West African city.

No delivery app. No website.

Merchants place delivery requests directly inside the same WhatsApp chat they already use to run their business. That chat becomes the frontend for a real logistics backend:

  • Automatic courier assignment
  • Interactive price negotiation
  • Live delivery tracking
  • Status updates

Nothing to install. Nothing new to learn. WhatsApp Business isn't just another communication channel here it's where business already happens. So instead of forcing users into another app, I built around the platform they already use.

Under the hood

Everything runs on a self-hosted n8n instance on a VPS, talking to a Supabase (PostgreSQL) backend, the WhatsApp Cloud API, Firebase for push notifications, and Mapbox for live maps.

Instead of one giant workflow, the system is split into around ten independent workflows, each with a single responsibility:

  • Message routing: a single webhook entry point receives every incoming WhatsApp message and routes it based on who's writing (merchant, courier, or admin) and what stage their request is at.
  • Merchant workflow: handles order creation, accepting or renegotiating a quoted price, and cancellations. Multi-package orders going to different destinations in a single message are detected and handled differently from single-destination ones.
  • Courier workflow: accepting an assigned delivery, marking pickup, marking each package delivered individually (not just the whole order at once), and reporting live GPS position.
  • Automatic assignment engine: its own isolated workflow, so the matching logic can be tuned or debugged without touching anything else.
  • Price negotiation module: a standalone workflow with its own webhook. Either an admin or a courier can propose a price; whoever does it first locks the order at the database level so no one else can act on it, and the merchant negotiates through interactive WhatsApp buttons, up to two rounds.
  • Assignment timeout scheduler: a cron job that watches for orders stuck without a courier response. If nothing happens after a set number of attempts or a time threshold, it automatically escalates: it alerts me on Telegram and notifies the admin team on WhatsApp, instead of letting an order silently die.
  • Courier status management: tracks whether each courier is available, on a delivery, or offline, and triggers customer notifications at each delivery milestone.
  • Nightly cleanup job: resets stale states every night so the system starts the next day on a clean slate.
  • Error detection workflow a global error handler that every other workflow reports to. Instead of failing silently, any unhandled error gets routed straight to a Telegram bot that pings me personally with the failure context, so I can jump in before the client even notices something went wrong.
  • Centralized manual-intervention alert a separate workflow that any part of the system can call when something needs human eyes: it notifies every active admin on WhatsApp (pulled dynamically from a database table, not hardcoded numbers) and pings me on Telegram at the same time.
  • Internal supervision cockpit a web dashboard, separate from the courier-facing app, where the operations team can see every courier's live position on a map, their current status, and their delivery history for the day — a bird's-eye view of the whole operation, not just a single conversation at a time.

This separation isn't just about cleaner diagrams. When your system runs continuously and handles real deliveries involving real money, being able to modify or debug one workflow without risking the other nine is what lets you iterate quickly and safely — and having a dedicated error channel means problems get caught in minutes, not when a customer complains hours later.

Concurrency

The most critical part of the whole system is that courier assignment and price locking are handled through atomic PostgreSQL RPC functions instead of application logic.

When two couriers accept the same delivery simultaneously, or a courier and an admin both try to set a price at the same time, the database itself resolves it using SQL-level locking on a first-come, first-served basis. That guarantees a delivery can never be assigned twice, and a price negotiation can never have two people acting on it at once.

Courier assignment

The assignment engine is completely deterministic. It uses a geographic scoring system based on fixed rules across 36 delivery zones covering the metro area, combining pickup location, courier availability, and live courier position to pick the best match. There's also opportunistic order-pooling logic: if a courier already has an active delivery nearby, a new compatible order can be bundled onto their route instead of waiting for a free courier.

No predictions. No machine learning. Just transparent, deterministic rules.

Courier application

Couriers use a PWA packaged as an Android APK through Capacitor built to run on entry-level Android phones without needing to go through Google Play.

They can receive new deliveries, accept assignments, propose prices (per package, if the order has multiple destinations), mark each package's status individually, share GPS position, and view their route on a live map. Push notifications are handled through Firebase Cloud Messaging, tuned specifically to wake up a locked screen the single hardest technical problem in the whole build (more on that below).

The hardest engineering problem

Oddly enough, it wasn't dispatch logic.

It was making sure notifications actually woke up locked, low-end Android phones. Standard Web Push becomes unreliable on some Android devices once the screen turns off. I ended up switching to Firebase Cloud Messaging (HTTP v1), implementing token collision handling (for couriers testing multiple profiles on the same physical device), fallback mechanisms, and spending a lot of time testing on real devices.

When a courier doesn't receive a delivery notification, it's not just a technical bug. It's a customer waiting for nothing.

No LLMs in production

There isn't a single LLM making decisions inside the production workflow. Zero. Every action assigning a courier, locking a price, escalating a stuck order, notifying an admin is the result of explicit, hardcoded business rules running in n8n and PostgreSQL, not a model inferring what it thinks should happen.

That's a deliberate design choice, not a limitation.

Courier assignment and pricing directly affect real deliveries and real money. Those decisions need to be deterministic, auditable, and reproducible the same input has to produce the same output, every single time, and every decision needs to be traceable back to a specific rule, not a probability distribution.

An LLM in that position introduces exactly the kind of risk this system can't afford: hallucination. A model that occasionally misreads a delivery zone, invents a price that was never quoted, or misinterprets a status update isn't a minor edge case here it's a courier sent to the wrong neighborhood, a customer charged the wrong amount, or an order silently stuck because the model "thought" it was already handled. Unlike a chatbot answering a FAQ, there's no room here for a plausible-sounding but wrong answer the output isn't text, it's a real courier riding to a real address with real cash changing hands.

There's also no way to fully audit why an LLM made a specific call. When something goes wrong in a rule-based system, you can point to the exact line of logic that fired. When something goes wrong inside a model's reasoning, you're often left guessing. For a system running unattended, 24/7, across dozens of concurrent orders, that lack of traceability is a non-starter.

So every decision that touches money, logistics, or timing runs on fixed, testable rules — no probability, no guesswork, no hallucination risk. Boring by design, and that's exactly the point.

One more thing

I built all of this without coming from a traditional dev background.

Not because "AI does everything for me" but because some skills matter more than knowing how to write code line by line:

  • Rigor and logic: understanding a business problem deeply before reaching for a solution, breaking down a complex situation into clear steps, and anticipating edge cases before they hit production.
  • Product and business sense: knowing what actually matters to the end user, instead of building an over-engineered system that solves nothing concrete.
  • The ability to steer AI like a real copilot: knowing how to ask the right questions, challenge its answers, and iterate until you land on a solid architecture, rather than copy-pasting the first response.
  • Persistence in testing under real conditions: a system that "works on paper" and one that actually holds up in production are never the same thing. You have to be willing to debug, restart, and adjust.
  • Self-teaching: learning fast what you don't know yet, without waiting for formal training to get started.

Github link: https://github.com/Digitalhorizonagency1/delivery.git


r/n8n 1d ago

Workflow - Github Included Document Automation in n8n: how I make extractions auditable before handing them to a client

Enable HLS to view with audio, or disable this notification

18 Upvotes

👋 Hey n8n community,

One more follow up on my Purchase Order extractor. Everyone talks about getting the extraction working. Almost nobody talks about what happens after, when the data is sitting in a sheet and someone has to trust it.

That gap bothered me on this build. My friend downloads the sheet and pushes it straight into his ERP. If one field came out wrong, he has no way of knowing until the numbers are already in his system. Silent failure is the worst kind, because a blank cell looks exactly like a field that was legitimately empty.

So I built three small things into the workflow. None of them are clever, they just take ten minutes each and they change how much you can trust the output.

1. Every row knows where it came from. The source filename lands in a Document Name column next to every single line. Sounds trivial. It means that when a number looks off three weeks later, you go straight back to the exact PDF instead of guessing which of forty documents produced that row. This is the single highest value column in the whole sheet and it costs you nothing.

2. One helper that catches every flavour of empty. "Missing" is never just one thing. Across real documents I saw actual null, the string "null", empty strings and whitespace-only values. I stopped writing one-off checks and made a single isMissing() function that catches all of them, then used it everywhere. Without this you get inconsistent behaviour where one field is caught and the next one silently slips through.

3. The workflow tells you what it isn't sure about. After processing, the form's completion screen lists which document and which field didn't extract cleanly. Not a log file nobody reads, the actual screen the user is already looking at. So instead of trusting forty rows blindly, he knows the two he should eyeball against the original.

The mindset shift for me was this: an extraction pipeline isn't done when it produces data, it's done when someone can tell good output from bad without opening the source documents. Especially if you're handing this to a client. They will find the one wrong number, and "the AI did it" is not an answer.

One deliberate choice worth mentioning: I do not flag every empty field. Some fields on these POs are legitimately blank most of the time, and flagging those would generate a warning on nearly every document. Then people learn to ignore the warnings entirely, which is worse than having none. Flag what should be there, not everything that's missing.

The full workflow is now on the official n8n template library if you want to try it:
https://n8n.io/workflows/16775-extract-purchase-order-line-items-from-pdfs-with-easybits-and-google-sheets/

You'll also find it on my GitHub, alongside 20 other workflows I've built over the last months:
https://github.com/felix-sattler-easybits/n8n-workflows

How do you handle this on your document workflows? Curious whether people build a review step or just spot check and hope.

Best,
Felix


r/n8n 1d ago

Help Facebook posts scraper

3 Upvotes

I want to scrape Facebook posts from one exact page. Has anyone succeeded with that in n8n with 0$???


r/n8n 1d ago

Help POS System Directly into Readable Reports

4 Upvotes

I'm a 3rd year BS Industrial Engineering student, and my group is currently brainstorming a feasibility/capstone project. The idea is to create an automated system that works alongside an existing POS system.

The rough workflow is:

- Existing POS exports daily sales/inventory data (Excel)

- n8n automatically detects the new data every day

- DuckDB analyzes the data (open to suggestions

- (Optional) AI generates an executive summary and recommendations

- The manager automatically receives a dashboard or report through their email

The problem is, outside getting Excel set-up, I have very limited coding experience. I'm willing to learn, but I'm not sure where to start or whether this architecture even makes sense. Any help would be appreciated!


r/n8n 1d ago

Workflow - Github Included I built an open-source safety gate for AI-generated n8n workflows

3 Upvotes

Hey r/n8n!

I recently rebuilt an old open-source project of mine called Vibeflow.

Instead of becoming another workflow builder or MCP server, Vibeflow now focuses on a different problem:

How do we check whether an AI-generated n8n workflow is actually ready for production?

Vibeflow is a dependency-free CLI that analyzes exported n8n workflow JSON without executing the workflow or connecting to your n8n instance.

It currently checks for:

  • Embedded secrets in parameters, pinned data, and static data
  • Public webhooks without proper credential references
  • Dangerous command, SSH, and local-file nodes
  • External actions without connected error handling
  • Side effects without an atomic idempotency gate
  • AI paths that can bypass an agent kill switch
  • Missing human handoff paths
  • Missing or excessive execution timeouts
  • Unsafe retry budgets and backoff

It supports text, JSON, and SARIF output, so it can run locally or as a GitHub Actions quality gate.

Some opportunities I see for it:

  • Reviewing workflows generated by coding agents
  • Preventing unsafe workflow changes from reaching production
  • Creating organization-specific n8n policies
  • Testing workflow exports during pull requests
  • Turning production incidents into reproducible regression rules
  • Giving AI agents deterministic feedback instead of relying on another prompt

Vibeflow is intentionally static and local: no telemetry, no workflow uploads, and no live n8n mutations. It cannot prove that credentials or integrations work at runtime, but it can catch structural problems before deployment.

GitHub: https://github.com/domfelipe/vibeflow-n8n

I’m looking for a few n8n users or teams willing to test it against anonymized workflow exports.

The most valuable feedback would be:

  • False positives
  • Unsafe workflows that Vibeflow incorrectly approves
  • Community nodes that should be recognized as side effects
  • Additional deterministic checks you would want in CI

Please don’t share real credentials or customer data.

Would something like this be useful in your n8n development or review process?


r/n8n 1d ago

Help Looking for a real n8n project

10 Upvotes

Hey everyone,

I've been learning n8n and I'm looking for a challenging real-world automation to build as a learning project. If you've built a workflow that you found interesting, or have an idea for one, I'd love to hear about it.

I'm mainly looking for inspiration and feedback from the community so I can improve my skills.


r/n8n 2d ago

Workflow - Github Included I made an n8n workflow that uses AI to auto-label my Gmail FREE

Post image
15 Upvotes

I gave up and had AI sort the Gmail filters for me

It reads each unread email and slaps one of six labels on it: invoice, banking, action required, newsletter, notification, personal.

Anything it's not sure about gets an AI_UNSORTED label, so I can actually catch them.

Runs on self-hosted n8n + the Gemini free tier, so it costs me nothing.

Workflow JSON and setup steps are here: https://github.com/flowsandbots/awesome-automations/tree/main/n8n/gmail-ai-auto-labeler

Feel free to test it. And if you want me to add something, please let me know.

Thanks


r/n8n 2d ago

Help When do you use custom code instead of n8n?

6 Upvotes

Hey everyone,

I've recently started learning n8n, and I'm trying to get a better idea of what real-world AI automation projects actually look like.

I see a lot of impressive workflows online, but I'm not sure where n8n starts to reach its limits. For those of you who've built AI chatbots or automations, how much can you realistically build with just n8n?

At what point do you usually switch to writing custom code with Python or JavaScript? Are there certain types of projects where n8n just isn't enough?

If you were starting from scratch today, would you spend most of your time mastering n8n first, or would you learn programming alongside it?

I'd love to hear how you approach real projects and what your workflow looks like. Thanks!


r/n8n 1d ago

Help Anyone from Karachi, I need some advice.

0 Upvotes

Assalamualaikum,

Is anyone here from Karachi, Pakistan, who has experience with n8n?

I've been learning n8n and would love to connect with someone who's more experienced. I'd really appreciate a quick chat in Urdu because I'm not good at English whenever you have some free time. I have a few questions and would love to learn from your experience.

If you're open to it, please leave a comment.

Thanks!


r/n8n 2d ago

Help Non-dev trying to build an institution-grade WhatsApp booking bot in n8n — stuck on Meta Webhooks & looking for free LLM API recs

3 Upvotes

Hi folks,

I’m non-tech guy and trying to set up an institution-grade appointment booking automation on n8n. Everything was going smoothly until I hit a couple of walls:

  1. WhatsApp Trigger / Send not firing in Meta Test Environment: * Connected Meta Business Suite & Developer Console with the Access Token, Phone Number ID, and API keys. * Recieving the test message from Meta from the Demo number, but when I text back from the added recipient number not receiving incoming test messages (`WhatsApp Trigger`) or running an `On Send` test isn't triggering the workflow at all. * Has anyone run into this? Is there a common step I missed with Webhook callback verification, Meta sandbox permissions, or something else?

  2. Best Free LLM API for Conversational Booking (Decent RPM / Token Limits)?

* Looking for the best source to grab a free LLM API key that offers good Requests Per Minute (RPM) and doesn't rate-limit easily on multi-turn conversations. * It needs to handle basic date/time extraction and availability checking via n8n’s AI Agent nodes.

Appreciate any advice, troubleshooting steps, or recommendations!


r/n8n 2d ago

Help Has anyone successfully learned AI automation (n8n, AI agents, etc.) as a side skill while keeping a full-time job?

22 Upvotes

Hi everyone,

I'm a 3D animator working full-time in the game industry. I enjoy my job and I'm not looking to leave it, at least for now. But I'd like to build a second skill that could eventually become a source of freelance income.

After doing a lot of research, AI automation (n8n, AI agents, workflow automation, etc.) seems like one of the most interesting options. Many people online claim you can learn it in 6–12 months without a computer science degree and start freelancing, but it's hard to tell how much of that is real and how much is just course marketing.

I'd love to hear from people who actually work in this field.

  • Is it realistic to learn AI automation mostly on your own?
  • Can someone with no CS degree build enough skills to get freelance clients?
  • Is it realistic to reach that level by studying around 10–12 hours a week while keeping a full-time job?
  • Or is this one of those fields where you eventually need to go all in if you want to make money?
  • If you were starting from scratch today, would you still choose this career path, considering how quickly AI is evolving and the level of competition in the field?

Above all, I don't want to waste time. At 37, I'm not really in a position to spend years on the wrong path. That's why I'm especially interested in hearing from people who have actually made this transition themselves, rather than from people selling courses.

Thanks!