How do I build an AI agent that can "remember" previous steps or store long-term context?
How do I build an AI agent that can "remember" previous steps or store long-term context?
How do I build an AI agent that can "remember" previous steps or store long-term context?
I run a few n8n workflows in prod and I've been pulling templates from n8n website and GitHub. Last month I got curious about how safe they actually are if I just import them and wire my credentials. So I wrote a scanner and ran it on all of them.
12,750 templates total. 1,000 from n8n website (the top by views), 11,752 unique from the 8 biggest community repos on GitHub (88k combined stars, the ones you find when you Google "awesome n8n").
2,488 of them have at least one path where a request from the public internet ends up in a sensitive place: shell command, SQL query, AI prompt, HTTP request to an attacker-picked host. No login needed. Anyone who finds the webhook URL can hit them.
Some examples I tested end-to-end against my own synthetic targets:
What I learned that I wish someone had told me sooner: A template is not a finished product. It's a JSON file an author tested with their own credentials, on their own network, against their own threat model. None of that comes with it when you import. The view counter does not measure safety.
Before activating any community template, the two things to check first:
Every HTTP Request node's URL field. If it has `={{ $json.x }}` anywhere in the host part, that's an SSRF. Hardcode the host, put the dynamic part in path or query, validate it.
Every database node's query field. If the query string has `{{ }}` inside it, switch to the parameterised binding the node already supports.
The agent generating the SQL is not a real boundary.
Also: if the trigger is a public webhook, a public form, or a Telegram/chat bot, anyone on the internet is in your threat model. The README walkthroughs almost never say this.
If you've imported a template and now you're nervous, the post has a "what to check" section at the end. If you've shipped a template yourself, the same section is the patch list.
Just finished a build for a client. Week of work, does what they need, runs fine on my end.
Then I tried to hand it over.
They're non-technical. Like really non-technical. Anything involving accounts, API keys, that kind of stuff and they check out immediately. Sending them the workflow wasn't going to work.
So I kept it on my own instance. But now they have no idea if it's actually running(Message me every few days asking). And if something breaks that's on me at any hour.
I thought about building a small dashboard so they have something to look at. Maybe trigger it manually, see the status. But that's basically a second project on top of the first and I don't know if that's what people normally do or if I'm overcomplicating this.
Also still need to get paid. Invoice is just sitting in their email somewhere.
How do you handle this? Do you use any tools for that?
I am using https://muapi.ai along with the claude skill from here. It has the most powerful seedance 2 with realistic faces support https://github.com/SamurAIGPT/Generative-Media-Skills/blob/main/library/motion/freeze-effect-video/SKILL.md
After about 40 failed runs, I finally cracked the "Quicksilver / Zack Snyder
time-stop" effect in pure AI — the one where the character snaps their
fingers, the world freezes mid-explosion (beer droplets hanging in midair,
popcorn floating, people locked mid-cheer), they stroll through the frozen
scene, snap again, and reality slams back to life.
Standard image-to-video completely fumbles this. Either (a) the whole shot
freezes including the protagonist so nothing happens, (b) you get this jittery
half-motion glitch where the "frozen" extras are doing weird micro-twitches
that scream AI, or (c) the model just ignores you and renders a normal bar
scene with vibes. 15 seconds of "one person moves, 47 other people don't, but
the scene still feels alive" is too many physics-violating instructions for a
single vague i2v prompt to hold together.
The fix turned out to be three layered tricks that the freeze-effect-video
skill bakes in by default.
The Winning Workflow:
Step 1 — bytedance-seedance-2-0-reference-to-video-fast takes ONE reference
photo of the subject (the only person who'll actually move) as @Image1. That
identity anchor is what survives the full 15s without face drift, and
crucially it tells the model "everyone else in frame is not @Image1, therefore
freeze them." The selfie does double duty as casting and as a hard masking
signal.
Step 2 — Time-segmented director brief with FIVE explicit beats, hard
timecoded:
- [0:00–0:03] Sports bar packed, blurred TVs showing a championship
celebration, subject walks confidently through the chaos and snaps their
fingers
- [0:03–0:06] A spherical shockwave bursts from the fingertips, air distortion
+ light refraction rippling outward, EVERYTHING freezes — golden arcs of beer
suspended midair, popcorn floating, neon catching dust and liquid, absolute
silence
- [0:06–0:09] Only @Image1 moves. Soft echoing footsteps. Camera tracks
backward as they duck under a suspended arc of beer and pluck a single
floating popcorn kernel from the air
- [0:09–0:11] They stop in front of a frozen fan locked mid-scream,
mid-high-five, tilt their head, adjust the brim of their cap, whisper
"perfect"
- [0:11–0:15] Snap again, reverse shockwave ripples outward, motion explodes
back — beer splashes, cheers return, people land mid-jump, camera pushes
through the celebrating crowd, fade to black
Step 3 — The load-bearing trick most people skip: an explicit Sound Design
line at the bottom of the prompt — "deafening bar celebration → snap → deep
shockwave bass drop → absolute silence → footsteps → sharp popcorn crunch →
'perfect' → snap → reverse shockwave → deafening celebration returns."
Seedance 2.0 generates audio natively, and if you omit this, the model fills
the silent freeze section with random ambient noise that completely murders
the effect.
The crazy part: I expected to have to comp the bass-drop and the dead-air
myself in DaVinci with a separate foley pass. Nope. Seedance writes the
silence into the timeline at the exact frame the shockwave hits. The cheer
cuts off mid-syllable. The popcorn crunch is on a clean track. The
reverse-snap re-explodes the crowd noise. It just shows up correct.
Side by side it's not even close — generic "snap fingers time stops" i2v gives
you something that looks like a video buffering bug by second 4. The
freeze-effect skill version genuinely looks like a 15s hero shot pulled from a
superhero teaser.
And it's not just bars. Swap the scene in the skill — frozen wedding reception
with rice and confetti hanging in midair, freeze-walking through a nightclub
at peak drop, freeze a stadium during the championship goal with foam
suspended above the crowd, freeze a busy NYC crosswalk with cabs caught
mid-honk, freeze a paintball arena with pellets hanging in midair. The
five-beat snap → freeze → walk → snap → resume structure holds for any
high-energy crowd scene where the contrast between chaos and absolute
stillness carries the shot. I think this is currently one of the strongest
pipelines for hero-character cinematic moments where you need a
physics-violating effect to read as intentional instead of as an AI artifact.
Highly recommend the open-source Freeze Effect Video skill — it ships with the
5-beat director brief, the shockwave/reverse-shockwave symmetry, the "only
@Image1 moves" identity lock, and the native sound-design arc baked in. Drop
in any selfie, change the venue, ship it.
Who else is making time-stop or bullet-time style hero clips with this stack?
Drop your best freeze moments, snap-and-stop scenes, or wildest "everyone but
me is paused" experiments below 👇
Let's see who can freeze the wildest scene! ❄️ 🎬⏸️
Been building lead gen workflows in n8n and tried a few different enrichment options. Here's what I found:
Clearbit/Breeze Intelligence - now part of HubSpot, great data but expensive and enterprise focused. Overkill for most n8n workflows.
Hunter.io - solid for email finding, $34/month, but returns emails only and needs extra parsing to work in n8n.
Apollo - all in one platform, $49/month, but built for humans not automation pipelines.
SiteEnrich - lightweight API I've been testing, $19/month, returns clean JSON directly into HTTP Request node with no parsing. All failures return 200 with error field so workflow never breaks. Still early but works well for first pass enrichment.
What are others using for company enrichment in their n8n workflows? Always looking for better options.
Hey guys what AI automations are selling right now ? And how to sell them and which industry shall I target I’m running an agency right now
Anyone tried the new Google model? How's it compare?
I am using a compose.yaml file to run my self-hosted n8n and I want to use the .env to store my sensitive information and use it in any workflow. I used the attribute env_file but it is still not working. When trying to create the env variable in the UI there is a warning message that says basically I have to pay to use this feature. How do you use you env variables in your workflows?
I've been heads down with n8n for a while now and I've built a decent number of workflows that are actually running in production, not just test stuff. At some point I realized most of what I learned came from breaking things repeatedly rather than any documentation or YouTube video.
So I figured I'd share some of the stuff that genuinely caught me off guard, because I see the same questions pop up here and I remember how frustrating these were when I hit them.
The expression syntax is probably the thing that messed with my head the longest. The difference between when you need double curly braces and when you don't, why a value shows up correctly in one node and then breaks in the next... that took me embarrassingly long to fully internalize. Once it clicked it became second nature but those early weeks were rough.
Error handling is the other one. I built workflows that worked perfectly for two weeks and then silently failed and I had no idea until someone told me a record was missing. Now I treat error branches as non-negotiable, not optional. Every workflow gets one. The built-in error trigger node is underused by most people starting out.
The webhook timing issues with some third party services also genuinely surprised me. Some platforms fire multiple events for what feels like one action and if your workflow isn't idempotent you end up with duplicate records everywhere. The deduplication logic I eventually settled on is something I wish someone had just handed me on day one.
And honestly the biggest thing... keeping workflows readable for future you. I've gone back to something I built four months ago and had zero idea what I was thinking. Adding sticky notes, keeping node names descriptive, splitting one giant workflow into smaller connected ones. Sounds obvious but I ignored it early on and paid for it.
None of this is groundbreaking but I genuinely think it would have saved me weeks if someone had laid it out plainly. Happy to go deeper on any of it if it's useful.
Workflow Code:
https://gist.github.com/iamvaar-dev/6544545160d058f716b121e7e38e52bc
Pre-requesties:
- Apaleo Client id and secret.
- Apaleo basic authentication key which we recieve just after creation of the dev app.
- seam.co Api key as we need it to generate smart lock pin.
- Twillio API
This is the primary workflow that runs whenever a room is assigned to a guest.
reservation/unit-assigned). As soon as a staff member assigns a physical room to a booking, this node triggers the automation.BookingReservationsByIdGet) to Apaleo to grab the full details of the reservation, specifically the arrival and departure times needed for the smart lock.locker_id and prepares a clean JSON payload containing the device ID, reservation ID, and the exact start/end times for the lock access./access_codes/create) using the data prepared in the previous step. Seam generates a unique PIN that will automatically activate at check-in time and expire at check-out time.primaryGuest and booker profiles. This is required to get the guest's email address and phone number.Because the Apaleo Bearer token (used in the "Fetch Customer Contact Data" node) likely expires every 60 minutes, this background workflow runs independently to refresh it.
identity.apaleo.com/connect/token) using a static Basic Auth key to request a brand new, short-lived access token.Drop a dm for the highres image....
check out the GitHub link to profile -- AxZyzz
Would love to help with any new updates or changes, do let me know..
Github link to profile--- AxZyzz
Is there a way I can influence or prevent the LLM from hallucinating or 'guessing' data when extracting info?
Hey,
So I'm a fresh medical doctor and for the past few months I've been building automation workflows on Make like patient triage, WhatsApp reminders, auto-routing intake forms to the right doctor. Stuff that actually makes sense clinically because I understand the workflows from the inside.
Now I'm looking at n8n because anything touching patient data basically needs to be self hosted. Can't argue with that.
But honestly? The more I think about selling this, the more I talk myself out of it.
Doctors are scared of litigation. Like, genuinely scared. Getting them to trust a third party automation guy with patient data isn't a two call close. It's months of "let me run this by our legal team" and then silence. I'd be doing weeks of free education and hand holding before a single rupee comes in. That sales cycle sounds soul crushing.
And then there's the bigger worry that Epic, Zoho Health, and every major EMR is quietly building this stuff natively. Why would a clinic pay me when their existing software rolls it out as a feature update?
I keep getting told my clinical background is the differentiator. And okay, maybe. I do understand why a triage workflow needs to be built a certain way, not just how to connect the nodes. But is that actually enough for someone to pay thousands when Claude and built in tools exist?
I want to stick with this but I also need to earn something within a reasonable time to not lose my mind. If first income is 12 months away I'm cooked.
Anyone here who's actually sold automation to healthcare clients? How long did it take, and was the compliance angle a genuine selling point or just more friction?
Hey Makers,
Does a platform exist where n8n makers can publish their workflows and non-technical users can subscribe to get the output without setting up n8n themselves?
Looking for something like a marketplace between workflow builders and end users.
👋 Hey n8n Community,
You might remember Mike – friend of mine who runs a small company. Most of the automations I've built over the last months have been for him and his finance colleague Sarah (duplicate invoice detector, Slack approvals, invoice classification, the whole thing).
This time it wasn't a finance problem. Mike called me last week because the company's going through a bigger hiring phase right now, and he has exactly one recruiter – let's call her Lisa – who's drowning.
The problem:
Lisa goes through dozens of CVs every day. The annoying part isn't reading them – it's that every single CV looks different. Different layouts, different sections, different orders. Some are PDFs, some are screenshots, some are exports from LinkedIn. Lisa already knows exactly what she cares about for the first-pass screen:
But to extract those 6 things from a CV that's structured however the candidate felt like structuring it, she has to read the whole thing every time. Multiply by 30 a day. That's hours.
Mike asked: "Can you build her something that just shows her those 6 things, in the same format, every time?"
The build:
I wanted Lisa to be able to use this from where she already works – which is mostly Slack. So the flow ended up being:
The Sheet is a placeholder for now – Mike's actually still in talks with different ATS providers, so once they pick one I'll just swap the Sheets node for whatever API the ATS exposes. Same workflow shape, different endpoint.
What ended up being harder than I expected:
I had to split this into two workflows. Workflow A handles the trigger and posts the summary + card. Workflow B catches button clicks from the card and does the Sheet append. Same pattern as the Slack invoice approval I shared a while back — Slack interactivity needs its own webhook endpoint, and you can't have both a trigger and a webhook listener in the same workflow without conflicts.
The other annoying gotcha: the n8n Slack node has a bug right now where Block Kit payloads sometimes just don't render – you get the fallback text only ("Action menu") with no buttons. Worked around it by posting the action card via a direct HTTP call to chat.postMessage instead of using the Slack node. Documented this in the sticky notes so anyone running into it knows the fix.
Why CV screening fits extraction so well:
The interesting thing here is that this is exactly the kind of task that has historically been done with custom CV parsers or expensive ATS resume-parsing add-ons. But once you treat a CV as just another structured document, the easybits Extractor handles it the same way it handles invoices or contracts. 8 fields, description per field, return null when not present – same pattern I've been using all year.
The whole thing runs on the free plan since it's under 10 fields.
The templates:
Sticky notes cover the full setup – Slack app config, scopes, credentials, Sheet schema. Both workflows together take about 20 min to wire up if you've done a Slack integration before.
Curious if anyone else has built recruiter tooling in n8n – would love to hear what fields you found most useful, or if you've gone deeper into ATS integration than I have so far.
Best,
Felix
I am using the AI Agent Node within a workflow. This node, in turn, utilizes three AI Agent Tool Nodes. I want to set the prompts for these Tool Nodes dynamically and contextually. Typically, in a linear workflow, I would load or define the prompt beforehand; however, the Tool Nodes are isolated from the "preceding" nodes. Are there still ways to achieve this?
When will I know that I’m actually ready?
I’ve been learning and building a few workflows over the past months, but I still feel lost about the next step. I’m not sure what I should focus on improving, how to practice better.
I’d really appreciate honest feedback on my portfolio and what skills I should work on next:
https://www.notion.so/Ibrahim-Mohammed-349717056dd78051a246f2bb0c7866f4?source=copy_link
Any advice from people who already went through this stage would help a lot.
Thanks in advance.
Quick share for anyone still on the fence.
Before this, my workflow was the usual dance. I’d go on claude.ai, describe what I wanted to build, copy the JSON, paste it into n8n, watch it fail, go back to Claude to debug, paste the error, get a fix, try again. It worked but it was slow and I was the bottleneck.
Then I installed n8n-MCP (the one from czlonkowski on GitHub, pretty well known in the community now) and plugged it into Claude Code. Honestly it changed how I work.
Now I just write a clear prompt. Claude reads the MCP, picks the right nodes, builds the workflow, deploys it, checks if it ran, sees where it failed, fixes itself and iterates until the thing actually works. I just sit there, test the output, tell it what to tweak, what I prefer, and move on. I’m basically a reviewer now. A guy who checks if it works and gives directions.
Productivity is roughly 5x for me. Workflows I would have given up on a few months ago I now ship in an afternoon. Stuff with weird branching, custom code nodes, error handling, all of it.
That said, there’s a thing that bugs me a bit. I miss the craft. Before, I was building these workflows by hand, breaking them, fixing them, and there was a real satisfaction when it finally clicked. Now it’s faster and more reliable but that feeling is mostly gone. And honestly I’m a little scared of losing my hands-on skills. I still keep the logic in my head, I still know why a workflow is structured a certain way, but the muscle memory of actually building it node by node, that’s fading.
Now here’s the thing I really want to say, especially to people just getting into automation.
I’m genuinely glad I learned n8n the hard way. Manually, iterating, failing, rebuilding, getting actual results at the end. Because that’s what makes the AI agent useful in the first place. If you already did the craft, if you already wrote workflows by hand, broke them, tested them, fixed them, then when you switch to Claude Code or any coding agent your productivity goes through the roof and you make way fewer mistakes than someone who never built anything themselves. You can actually dictate what you want because you know what’s possible.
Think about someone who spent three hours on n8n and jumps straight into an agent. What are they going to tell it? Nothing useful. They don’t know the field of possibilities. They don’t know what n8n can or can’t do, so they can’t ask for the right thing.
Same logic for code. If you want to vibe code, fine, but at least master one programming language first. Do it the hard way. Build stuff manually. Break it. Get frustrated. Because in the end you’ll have a real mental map of what’s possible, you’ll spot bugs faster, and you’ll get way more out of the agent.
The combo is craft first, agent second. Not the other way around.
Curious if anyone else feels the same tension between speed and craft. And if you’re using n8n-MCP too, drop your setup, always interested in how other people prompt this thing.