How do I create a custom workflow interface n8n
I've learned about automation, but I don't know how to integrate websites with the n8n workflow, and I can't find the resources.
I've learned about automation, but I don't know how to integrate websites with the n8n workflow, and I can't find the resources.
👋 Hey Everyone,
Two weeks back I built a support inbox router for my friend Mike's small company – Gmail trigger, AI classifies each email into Billing / Technical / Sales / Other, scores priority, drops a clean summary into the matching Slack channel. Sarah on his finance team was tired of getting CC'd on bug reports, so the routing actually had to work.
After my last stress test post (the one where I broke our extraction with degraded invoices), a bunch of people asked the obvious follow-up: yeah but how do you stress test a classification workflow? Different problem. There's no "ground truth amount" to compare against – the model is making a judgment call.
So I sat down and wrote 50 deliberately awful emails. The kind of stuff that would actually land in Mike's support inbox on a bad week. Here's what I learned.
If you want to follow along or fork this, the template is published on n8n: https://n8n.io/workflows/15366-route-and-prioritize-support-emails-to-slack-channels-with-easybits/
I grouped them into five buckets, each designed to attack a different assumption the workflow makes:
1. Mixed-language emails – German body, English technical term ("authentication error", "timeout", "404"). Tests whether the language detection holds up when it shouldn't.
2. Tone vs. urgency mismatches – polite rage ("just wanted to flag the export has been broken for three days, no rush! 🙂"), and the inverse: aggressive-sounding emails about trivial issues. Tests whether priority leans too hard on sentiment.
3. Category overlap (requested from community) – billing questions that are actually bugs ("my invoice shows €0 but I was charged €49"), sales leads disguised as technical questions ("does your platform support SAML SSO? we're 200 people evaluating tools"), cancellation emails that are really retention conversations.
4. Adversarial structure – all-caps emails, emails with no subject line, emails that are 90% forwarded thread and 10% actual question, emojis-as-punctuation, single-sentence vague pings ("hey can you help?").
5. The not-actually-support stuff – vendor pitches dressed up as support requests, recruiter spam, customers replying "thanks!" to closed tickets, automated bounce notifications.
Three patterns showed up across the failures, and they're more interesting than the individual misses:
Failure pattern 1: Politeness as a priority sedative
The sentiment-based priority scoring weighted tone heavily. Someone writing "no rush, totally understand" about a three-day outage scored Normal. Someone yelling in all caps about a typo on a pricing page scored Urgent. The model was reading the customer's mood, not the situation's severity.
The fix wasn't a smarter prompt. It was admitting that some signals shouldn't go through the model at all. Words like "broken," "down," "can't login," "charged twice," "still waiting" now force Urgent regardless of how nicely they're phrased.
Failure pattern 2: Single-token language confusion
A German email with one English error message ("Hallo, ich bekomme einen 'authentication error' beim Login...") got routed to Sales. One token of English in a 60-word German email was enough to throw the classifier sideways. Made no sense logically, made total sense if you think about how these models actually work.
The fix here was prompt-level – explicit instruction that the language of the email is determined by the dominant language, not isolated technical terms. Not perfect, but cut the misroutes substantially in re-tests.
Failure pattern 3: Category confidence vs. category correctness
This was the most interesting one. The model was confidently wrong on overlap cases – billing-questions-that-are-bugs, sales-disguised-as-support. High confidence score, wrong category. Confidence was measuring "do I know what category this fits" not "does this email fit cleanly into one category."
This is the case where threshold-based fallback alone doesn't save you, because the model isn't uncertain – it's certain about the wrong answer. The honest fix was to stop treating Billing/Technical/Sales as exclusive – letting the model flag a secondary category for overlap cases, with the secondary channel getting a quiet FYI cross-post.
I haven't pushed this updated prompt to the repo yet. Drop a comment if you want it – happy to share.
Three takeaways, none of them about better prompts:
The "Other" channel – the catch-all for low confidence – turned into the most valuable channel in the whole setup. It's where every interesting edge case lands, and where Mike actually learns something about his customers.
'@easybits/n8n-nodes-extractor' – available out of the box on Cloud (just search for easybits Extractor), one-click install on self-hostedHappy to dig into the test cases, the prompt structure, or why I think category overlap is the underrated problem in support automation. And again – comment if you want the updated overlap prompt when it's ready.
Best,
Felix
Start with one invoice. The AI reads it, but a person checks the amount and due date before the workflow continues.
There are four parts to build:
1.Extract the invoice into structured fields.
2.Put those fields in an editable review screen.
3.Let a person correct and confirm them.
4.Resume the workflow with the saved, corrected values.
Univer is the component for the review screen. It embeds a spreadsheet in your app, so the reviewer can edit cells, use validation and see calculated totals. Its API gives your backend access to the values the person approved.
Carry the same invoice ID through all four parts. When the reviewer confirms, have your backend save the correction before it signals n8n to continue. That keeps the resumed workflow tied to the invoice that was reviewed.
Try it first with an intentionally wrong date. Correct the date in the screen, resume the workflow, and inspect what the next step received. Once that handoff is clear, add a queue for multiple invoices.
Every time I wanted to find what was trending on Instagram, I’d end up opening the same accounts, scrolling through Reels, checking views, saving videos, reading captions… and then trying to remember why I saved half of them.
So I built a Reels Trend Watcher in n8n.
Now the workflow can:
→ Pull a list of Instagram accounts from Notion
→ Find their recent Reels with Apify
→ Track views, likes, comments, saves and shares
→ Detect new vs existing Reels
→ Download new videos
→ Send the actual video to Gemini for analysis
→ Extract the hook + full transcription + category + format
→ Translate the content
→ Store everything back in Notion
So instead of just having:
“This Reel got 80K views.”
I can start getting:
“This Reel got 80K views + this hook + this format + this topic.”
That’s where it gets interesting.
Because once you have enough data, you can start asking better questions:
Which hooks keep showing up in high-performing Reels?
Which formats are actually working?
Which topics are suddenly gaining traction?
Are certain accounts consistently outperforming their baseline?
The scraping part was fairly straightforward.
The harder part, IMO, is figuring out what to do with all the data after you collect it.
Right now I’m using n8n + Apify + Gemini + Notion for the workflow.
Next step is turning this from a “Reels database” into an actual trend detection system that tells me what patterns are worth paying attention to.
If you were building this, what would you prioritize first:
1. Viral hook detection
2. Trend/topic detection
3. Competitor monitoring
4. Predicting which Reels might take off
I kept running into the same problem: I'd scroll through accounts in my niche for "inspiration" and end up either wasting an hour or subconsciously drifting toward recreating what they'd already posted. So I built a small n8n workflow to do the research part for me, with one hard rule: it suggests ideas, it never rewrites someone else's post.
How it works
The prompt is the important part
Roughly what I'm telling the model:
>You'll receive a caption from a creator's post. Do NOT paraphrase, summarize, or restructure it. Identify the broader theme or audience question behind it. Then suggest 3 original post ideas on that theme, each with a different angle (personal story, contrarian take, how-to, etc.). Ideas should be clearly distinct from the source post in hook, format, and wording.
Framing it as "what's the conversation here, and what could I add to it" rather than "make me something like this" made a huge difference. The output reads like a brainstorming partner, not a copy machine.
What you could do to improve the workflow:
Happy to share the workflow JSON or the full prompt if anyone wants it. Also curious how others are handling the "inspired by vs. copying" line when using AI for content research.
👋 Hey n8n for Beginners Community,
Tax season always sneaks up on me, and every year it is the same scramble: digging through email for invoice PDFs, saving them by hand, typing them into a sheet, and hoping I did not log the same one twice. This time I built a workflow so future me does not have to.
I connected it to my billing@ address, so from now on every incoming invoice gets processed automatically and I never touch it manually again. And for invoices that land on other addresses, I just forward them to billing@ and they get picked up the same way.
When a new invoice arrives by email, it gets read, logged, and announced, with no manual steps.
What it does:
Two things worth stealing:
Workflow JSON is here: https://github.com/felix-sattler-easybits/n8n-workflows/tree/e8dd8e754b87c02462942e2ae89149550979b066/easybits-invoice-intake-and-logging-workflow
It sits alongside 25+ other free n8n workflows in my repo, including plenty of finance ones, so a star is appreciated if it helps.
How is everyone else prepping for tax season in n8n?
Best,
Felix