PSA: 3 of the most-copied n8n templates ship a silent bug (an expression missing its leading `=`). Fix inside

I built a checker and ran the 50 most-copied templates on n8n.io. 10 of 50 won’t import-and-run unmodified, and a few run green while silently producing wrong output. Sharing the three biggest, since a lot of people here probably use them.

Same root cause in all three: an expression field missing its leading =, so n8n stores the {{ }} as literal text instead of evaluating it.

Angie, personal AI assistant (368k views): the agent’s systemMessage ships Today's date is {{ $now }} with no =, so the assistant is told its own date is the literal string {{ $now }}. Anything date-aware is quietly wrong. Fix: put a leading = on the field so the interpolation runs.

Generate AI videos with Veo3, save to Drive, upload to YouTube (271k views): the Update YouTube URL step writes https://youtu.be/{{ $json.results.youtube.video_id }} to the sheet verbatim, braces and all, every run. Fix: one character, the leading =.

Automated job-applications tracker (95k views): seven fields unevaluated, including email subjects sent as Status Update: {{ $json.Company }} - {{ $json.Position }} literally, and Sheets ranges like D{{ $json.row_index }}:F{{ ... }}. Six fix cleanly with the =; the seventh (a cover-letter field) uses bare {{position}}/{{company}} and also needs the right $json reference.

The fix is basically one character each. The point is that nothing in n8n warns you: it imports, every node is green, it “works,” and it’s wrong.

PSA: if you run a popular template, check whether your expression fields actually start with =. Happy to share the fixed JSONs if anyone wants them.

1 Like

Ran into this exact issue reviewing templates I’d imported - the missing = is especially sneaky because the node executes without error, it just stores the literal string.

One extra thing worth knowing: when you open the expression editor on a field that’s in static text mode, you’ll see the raw {{ }} text displayed as-is rather than evaluated. Clicking the expression toggle on the field (the small pill icon or the = toggle in the editor) and re-saving forces n8n to treat it as an expression. A fast way to audit imported templates is to click through each node and glance at whether fields with {{ in them have the orange/blue expression indicator active.

1 Like

Exactly — and on a fresh import the field lands in fixed/text mode, so the {{ }} just sits there as a literal string with zero warning. The expression toggle being off (instead of the active =) is the only visual tell, which is why it reads as “done” on the canvas. Good addition — that editor angle is the fastest way to catch it by eye.