Prompt Library

n8n AI Agent prompts for routing, summaries and triage

30 copy-paste prompts

Paste these into the AI Agent System Message or the user prompt on a node. Name only tools you connected. Do not invent API fields. Tag gaps [VERIFY].

In short: This page contains 30 copy-paste ready prompts, organized into 6 categories with a description and pro tip for each. The first 5 prompts are free instantly, no signup needed. Drafted with AI writing assistance and checked against our editorial policy.

Louis Corneloup
By Louis Corneloup · Founder, Techpresso
Last updated ·Drafted with AI assistance (how we make prompts)

Lead Routing

5 prompts

Inbound form to owner queue

1/30

✨ What it does

Routes a pasted lead payload to one owner from your list and names the next tool to call. Missing keys are tagged instead of guessed, so the CRM write does not create fake fields.

You are the n8n AI Agent that routes inbound leads. Connected tools you may call, and only these: [CONNECTED TOOL NAMES]. Incoming payload: [PASTE LEAD JSON]. Allowed owners: [OWNER LIST]. Routing rule I already use: [ROUTING RULE]. Return JSON with keys owner_email, reason, and next_tool. Pick owner_email only from [OWNER LIST]. Copy field names from the payload exactly; if a key you need is missing, write [VERIFY] as its value. Do not invent an API field, endpoint or owner that I did not list.

💡

Pro tip: Paste one real form submission, including empty fields, so the agent learns your true shape.

Territory and language match

2/30

✨ What it does

Maps a lead's stated country and language onto your territory table and names an owner alias. Blank geo fields stay tagged, so nobody is assigned from a guess.

Match this lead to a territory. Lead country and language as supplied: [COUNTRY AND LANGUAGE]. Territory table: [TERRITORY TABLE]. Output a two-column table with rows Territory, Matched language, Owner alias and Confidence. Use only rows from [TERRITORY TABLE]. If country or language is blank, put [VERIFY] in that cell and stop before calling a write tool. Inventing a region would send the lead to the wrong queue, so leave it unmarked rather than guessing.

💡

Pro tip: Keep the territory table as country code plus language, not prose.

Fit score from stated fields

3/30

✨ What it does

Builds a 0 to 100 fit score from company size, role and use case with visible arithmetic. A missing input blocks the total instead of padding the score.

Score this lead from 0 to 100 using only the fields I named. Company size: [COMPANY SIZE]. Role: [ROLE]. Use case: [USE CASE]. Must-have signals: [MUST HAVE SIGNALS]. Output four lines: Size points, Role points, Use case points, Total. Show the arithmetic. If any of the three inputs is missing, write [VERIFY] on that line and omit a total. Do not invent headcount, budget or a buying stage I did not paste. Cap each line at 40 points so the total cannot exceed 100.

💡

Pro tip: Give size as a number or a band you already use in the CRM, not a guess.

Duplicate lead check

4/30

✨ What it does

Compares a new lead with lookup rows on email, domain and company, then labels same person, same company or new. A missing email blocks the update so you do not merge the wrong records.

Decide if this inbound record is a duplicate. New record: [NEW LEAD FIELDS]. Possible matches from the lookup node: [LOOKUP RESULTS]. Compare email, domain and company name only. Output a table with columns Match, Shared fields and Verdict (same person, same company, or new). If the lookup returned no rows, say none found. Do not invent a match id or a CRM record I did not paste. When email is missing on the new record, write [VERIFY] beside Verdict and do not call an update tool.

💡

Pro tip: Run the lookup node first and paste its items, not a memory of who might exist.

Rep handoff note

5/30

✨ What it does

Turns qualifying notes into a 90 word handoff with who they are, what they asked and a 24 hour next step. Missing meeting times are tagged, and no extra product is added.

Write a 90 word handoff note for [OWNER EMAIL] about this lead. Facts you may use: [PASTE QUALIFYING NOTES]. Include three labelled parts: Who they are, What they asked, What to do in 24 hours. Stay inside the notes. If the notes lack a next meeting time, write [VERIFY] in that part rather than inventing a slot. Do not add a product they did not mention or a promise I did not write. End with one question the rep should ask on the first call.

💡

Pro tip: Paste the form answers and the chat log, not your summary of them.

Summaries

5 prompts

Call transcript to CRM note

6/30

✨ What it does

Compresses a call transcript into a JSON CRM note using only the fields you allow, with one short customer quote. Unsupported fields are tagged so the Set node does not receive extra keys.

Turn this call transcript into a CRM note of at most 160 words. Transcript: [PASTE TRANSCRIPT]. Allowed CRM note fields: [ALLOWED NOTE FIELDS]. Output only those fields as a JSON object. Quote the customer once, under 25 words, using their wording. If a field in [ALLOWED NOTE FIELDS] has no support in the transcript, set it to [VERIFY]. Do not invent a close date, amount or competitor. Do not add keys beyond the allowed list, because extra keys break the later Set node.

💡

Pro tip: List the exact property names your CRM node already maps, nothing extra.

Email thread digest

7/30

✨ What it does

Reduces an email thread to five bullets on the ask, decisions, open questions, dates and people. Unwritten dates are tagged, so later reminder nodes do not fire on fiction.

Summarise this email thread for the next node. Thread: [PASTE EMAIL THREAD]. Audience of the digest: [INTERNAL TEAM]. Return five bullets: ask, decisions, open questions, dates named, and people named. Keep the whole digest under 140 words. Use names and dates only if they appear in the thread. If a date is referred to but not written, mark it [VERIFY]. Never invent a deadline or a commitment the sender did not make.

💡

Pro tip: Paste the thread oldest first, including the subject line on each message.

Action items from a meeting

8/30

✨ What it does

Turns meeting notes into a 12 row table of owner, task, due date and source line. Unnamed owners and dates stay tagged, and questions are listed separately from work.

Extract action items from [MEETING TITLE] held on [MEETING DATE]. Notes: [PASTE NOTES]. Output a table with columns Owner, Task, Due date and Source line. Owners must match names in the notes. If a task has no owner or no due date, write [VERIFY] in that cell. Do not invent a teammate who was not named. Limit the table to 12 rows. After the table, list any task that is a question rather than work, in one line each.

💡

Pro tip: Leave the date blank on purpose when the notes never set one, so the tag is honest.

Weekly ops digest from runs

9/30

✨ What it does

Builds a four-part weekly digest from execution notes for workflows you name, quoting real error text. Missing errors and counts stay tagged rather than padded.

Write a weekly ops digest from these n8n execution notes for week [WEEK DATES]. Notes: [PASTE EXECUTION NOTES]. Cover only workflows I named: [WORKFLOW NAMES]. Output four short sections: Ran as expected, Failed and why (quote the error text), Skipped, and Ask for a human. If an error text is missing, write [VERIFY] in Failed and why. Do not invent a success count, duration or node name I did not supply. Keep the digest under 180 words.

💡

Pro tip: Export the week's failed executions first, then paste those rows only.

Customer recap without promises

10/30

✨ What it does

Writes a 110 word customer recap from facts you approved, with a subject line and one closing question. Missing dates are tagged, and no delivery or refund is added.

Draft a customer recap email of about 110 words to [CUSTOMER NAME] after [EVENT]. Facts you may state: [FACTS I APPROVED]. Tone: plain and warm, no exclamation marks. Do not invent a delivery date, feature or refund. If the facts skip a date the recap would need, write [VERIFY] in that sentence. Close with one question that uses only a topic from [FACTS I APPROVED]. Output subject line, then body.

💡

Pro tip: Approve the facts list before the agent runs, then paste that list only.

Support Triage

5 prompts

Ticket category from a closed list

11/30

✨ What it does

Picks one category from your closed list and quotes the evidence from the ticket. Tickets that fit none of the list are tagged, so no new label is created in the helpdesk.

Classify this support ticket into one category from my list and nothing else. Ticket: [PASTE TICKET TEXT]. Allowed categories: [CATEGORY LIST]. Return JSON with keys category, evidence_quote (under 30 words from the ticket), and confidence (high, medium, low). If the ticket fits none of the categories, set category to [VERIFY] and explain in one sentence. Do not invent a category, product version or account id. Do not call a write tool until category is one of the allowed values.

💡

Pro tip: Keep the category list short and mutually exclusive, or the agent will hedge.

Urgency from stated SLA words

12/30

✨ What it does

Assigns P1, P2 or P3 from your SLA glossary and quotes the term it used. Tickets with no glossary term stay tagged, so paging does not fire on invented outages.

Set urgency using only words that appear in the ticket and in my SLA glossary. Ticket: [PASTE TICKET]. SLA glossary: [SLA GLOSSARY]. Output a line: Urgency = P1, P2 or P3, then a 25 word reason that quotes the glossary term you used. If the ticket never uses a glossary term, write [VERIFY] for Urgency. Do not invent an outage, a number of users affected, or a contractual deadline. After the reason, name the next node that should run: notify, queue, or stop.

💡

Pro tip: Put the exact phrases that mean P1 in the glossary, not paraphrases.

First reply draft

13/30

✨ What it does

Drafts a 100 word first reply with acknowledge, known facts, a question and a reply window. Missing windows are tagged, and no fix is promised that you did not list.

Draft a first support reply of about 100 words to [CUSTOMER DISPLAY NAME] about [ISSUE SUMMARY]. Known facts: [KNOWN FACTS]. Macros I allow you to echo: [ALLOWED MACRO NAMES]. Structure: acknowledge, what we know, what we need, when we will write again using [REPLY BY WINDOW]. If [REPLY BY WINDOW] is blank, write [VERIFY] there. Do not invent a fix, a workaround, or a status. Do not promise a result I did not list in [KNOWN FACTS].

💡

Pro tip: Paste the public status you already published, not the internal incident doc.

Escalation packet

14/30

✨ What it does

Assembles a four-block escalation packet from symptom, steps tried, customer impact and a one-sentence ask. Empty blocks are tagged, and no stack trace is fabricated.

Build an escalation packet for [ENGINEERING CHANNEL] about ticket [TICKET ID]. Include four labelled blocks: Symptom (from [PASTE SYMPTOM]), Steps already tried ([STEPS TRIED]), Impact as the customer stated it ([IMPACT QUOTE]), and Ask of engineering in one sentence. If a block has no source text, write [VERIFY] in that block. Do not invent a stack trace, a commit, or a severity. End with the exact tool name from [CONNECTED TOOL NAMES] that should post the packet, or write none if I listed none.

💡

Pro tip: Name the Slack or email tool exactly as it appears on the AI Agent node.

Duplicate ticket matcher

15/30

✨ What it does

Compares a new ticket with retrieved summaries on product area, error text and account, then recommends a merge only on a clear yes. Missing account names block the merge.

Decide whether ticket A is a duplicate of tickets I already retrieved. Ticket A: [TICKET A TEXT]. Retrieved tickets: [RETRIEVED TICKET SUMMARIES]. Compare product area, error text and account name only. Output a table with columns Other ticket, Shared tokens and Duplicate (yes, no, unsure). If account name is missing on A, write [VERIFY] under Duplicate for every row. Do not invent a ticket id. Recommend merge only when Duplicate is yes on one row and the shared tokens include the error text.

💡

Pro tip: Retrieve candidates with a search node first, then paste those summaries into the agent.

Like these prompts? There are full tutorials behind them.

Learn the workflows, not just the prompts. Easy-to-follow tutorials inside AI Academy, and the library keeps growing.

Try AI Academy Free

System Messages

5 prompts

Purpose and exact tool names

16/30

✨ What it does

Produces a short System Message that states the agent's purpose and one line per connected tool. An empty tool list is tagged, so the agent does not call a tool you never attached.

Write a System Message of at most 180 words for my n8n AI Agent. Purpose of the agent: [AGENT PURPOSE]. Tools actually connected on this node: [CONNECTED TOOL NAMES]. For each tool, write one line: when to call it, and what it must receive. State that the agent may call only those tools. If I listed no tools, write [VERIFY] in the tools section and tell the agent to return text only. Do not invent a tool, credential or API path. End with: if a required input is missing, stop and return [VERIFY].

💡

Pro tip: Copy the tool names from the node panel, including spelling and spaces.

JSON output contract

17/30

✨ What it does

Writes a System Message that locks the JSON keys your next node expects and fills gaps with a tag. The example object uses placeholders, so you can paste it without leaking customer data.

Write a System Message that forces this output shape and no extra keys: [REQUIRED JSON KEYS]. Each key's meaning: [KEY MEANINGS]. Downstream node that will read the object: [DOWNSTREAM NODE]. Instruct the model to fill a key with [VERIFY] when the user payload lacks that value, and never to invent a key. Include one valid example object that uses placeholder strings, not real customer data. Keep the message under 160 words. Mention that extra keys will break [DOWNSTREAM NODE].

💡

Pro tip: Keep the key list identical to the Set or Code node that follows the agent.

Out of scope refusal

18/30

✨ What it does

Builds a System Message that refuses work outside your allowed tasks and returns a small JSON object with no tool calls. A blank allowed list is tagged so the agent does not invent a policy.

Write a System Message for an n8n AI Agent that must refuse work outside [ALLOWED TASKS]. If the user message asks for anything else, the agent returns a JSON object with keys status (refused) and reason, and calls no tools. Allowed tasks: [ALLOWED TASKS]. User message examples that must be refused: [REFUSAL EXAMPLES]. Do not invent a policy, a legal basis or a penalty. If [ALLOWED TASKS] is blank, put [VERIFY] in the allowed list and tell the agent to refuse everything until I fill it. Keep the message under 150 words.

💡

Pro tip: Give two real off-topic asks you have already seen, so the refusal matches production.

Redact before tool calls

19/30

✨ What it does

Creates a System Message that replaces listed secret patterns with your token before tools run. Vague patterns are tagged and skipped, so the agent does not invent extra secret types.

Write a System Message that redacts secrets before any tool call. Secret patterns I care about: [SECRET PATTERNS]. Replacement token: [REDACTION TOKEN]. The agent must scan the user payload [PAYLOAD DESCRIPTION], replace matches with [REDACTION TOKEN], then call tools from [CONNECTED TOOL NAMES] only. If a pattern is too vague to match, write [VERIFY] beside it in the message and skip matching that pattern. Do not invent extra secret types such as passport numbers unless I listed them. Keep the message under 170 words.

💡

Pro tip: List patterns you can actually regex, such as a labelled API key prefix, not 'anything sensitive'.

Stop after a set number of steps

20/30

✨ What it does

Writes a System Message that stops the agent after a step cap you set and tags unfinished required keys. It names only tools you connected and does not add a second agent.

Write a System Message that caps the agent at [MAX STEPS] tool calls. After that many calls, it must return whatever it has, with a key named stop_reason. If it still lacks [REQUIRED OUTPUT KEYS], those keys must be [VERIFY], not guesses. Purpose: [AGENT PURPOSE]. Connected tools: [CONNECTED TOOL NAMES]. Do not invent a loop, a memory store or a second agent. Tell it that repeating the same tool with the same arguments is wasted work and must stop. Keep the message under 140 words.

💡

Pro tip: Set the cap just above the number of tools you expect in a happy path, then watch one failed run.

Tool Instructions

5 prompts

HTTP tool with listed endpoints

21/30

✨ What it does

Specifies an HTTP tool with only the methods, paths and parameter names you listed. Needed-but-missing parameters return a tag instead of a made-up query string.

Write the instruction text for an HTTP Request tool used by my n8n AI Agent. Allowed methods and paths: [ALLOWED METHODS AND PATHS]. Base host: [BASE HOST]. The agent may fill query or body keys only from [ALLOWED PARAMETER NAMES]. If it needs a parameter I did not list, it must not call the tool and must return [VERIFY] instead. Do not invent a header, a path segment or a status code meaning. Include one example request using placeholders, then one line on what to do when the response is empty.

💡

Pro tip: Copy paths from your OpenAPI or from a working HTTP node, not from memory.

Call workflow tool briefing

22/30

✨ What it does

Briefs the Call n8n Workflow tool with the workflows and input fields you named. Missing required fields block the start, so a child workflow never runs on invented inputs.

Write the tool description for a Call n8n Workflow tool. Workflows the agent may start: [WORKFLOW NAMES]. Input fields each workflow expects: [EXPECTED INPUT FIELDS]. Instruct the agent to pass only those fields, using names exactly as written. If a required field is absent from the user payload, return [VERIFY] and do not start the workflow. Do not invent a workflow id, a wait node or an extra input. Add one sentence on what the parent agent should do with the child workflow's returned JSON.

💡

Pro tip: Use the workflow names as they appear in n8n, not nicknames.

Sheet write column lock

23/30

✨ What it does

Locks a sheet write to your named columns in order and fills unknown cells with a tag. Extra payload keys are listed as unused instead of becoming new columns.

Write instructions for a Google Sheets or similar write tool. Spreadsheet: [SPREADSHEET NAME]. Tab: [TAB NAME]. Columns the agent may write, in order: [COLUMN NAMES]. The agent must emit one row as an array matching that order. Empty cells it cannot fill from [SOURCE PAYLOAD DESCRIPTION] must be the text [VERIFY]. Do not invent a column, a formula or a row number. If the payload has extra keys, drop them and list the dropped keys in a sidecar field named unused_keys.

💡

Pro tip: Put the header row in the prompt exactly as it appears in the tab.

Structured parser keys

24/30

✨ What it does

Defines parser keys, types and the rule that required gaps become a tag while optional gaps are omitted. The examples use placeholders so you can paste them into the parser node.

Write the instruction that sits with my structured output parser. Required keys: [REQUIRED KEYS]. Optional keys: [OPTIONAL KEYS]. Types I expect (string, number, boolean, or array of strings): [KEY TYPES]. Tell the model to output JSON only. Required keys with no source in [USER PAYLOAD] must be the string [VERIFY], not null and not an invented value. Optional keys with no source must be omitted. Do not invent a nested object I did not define. Include one valid and one invalid example, both using placeholders.

💡

Pro tip: Keep types boring. A string tag is easier for the next node than a nested guess.

When to retry a tool

25/30

✨ What it does

Sets retryable signals, a retry cap and a small failure object with the real error text. Empty error text is tagged, and non-retryable signals are listed so the agent does not loop.

Write retry rules for tools on this agent. Tools: [CONNECTED TOOL NAMES]. Retry only when the tool returns [RETRYABLE SIGNALS]. Maximum retries: [MAX RETRIES]. After that, return JSON with keys failed_tool, last_error_text and next_human_step. Copy last_error_text from the tool; if it is empty, write [VERIFY]. Do not invent an HTTP status, a timeout or a queue name. Do not retry on [DO NOT RETRY SIGNALS]. Keep the whole instruction under 160 words so it fits in the tool description field.

💡

Pro tip: Treat auth failures as do-not-retry. Loops will not fix a missing credential.

Go from copy-pasting to actually mastering AI.

AI Academy: hands-on tutorials on ChatGPT, Claude, Midjourney, and many other tools. New tutorials are added regularly.

Start Your Free Trial

Guardrails and Tests

5 prompts

Dry run against a sample payload

26/30

✨ What it does

Walks a System Message against one sample payload as a table of would-be tool calls, without executing them. Missing arguments are tagged so you can fix the message before go-live.

Dry-run this System Message against one sample without calling tools. System Message: [PASTE SYSTEM MESSAGE]. Sample user payload: [SAMPLE PAYLOAD]. Output a table with columns Step, Tool it would call, Arguments it would pass and Risk. If the message would require a tool I did not connect ([CONNECTED TOOL NAMES]), mark that row as blocked. If an argument is not in the sample, write [VERIFY] in Arguments. Do not invent a tool result. End with a one-sentence go or no-go for production.

💡

Pro tip: Use a payload that failed last week, not a happy-path example.

Hallucinated field audit

27/30

✨ What it does

Compares agent output with the input and allowed keys, then rewrites invented keys as tags. Derived values without evidence are treated as invented, which catches silent extras.

Audit this agent output for keys that do not exist on the input. Input: [PASTE INPUT]. Output: [PASTE AGENT OUTPUT]. Allowed output keys: [ALLOWED KEYS]. List every output key. Mark each as copied, derived with evidence, or invented. For invented keys, quote the value and replace it with [VERIFY] in a rewritten object. Do not add new keys while rewriting. If a derived value has no evidence in the input, treat it as invented. Keep the rewritten object to the allowed keys only.

💡

Pro tip: Run this on the JSON the next node actually received, not on the chat preview.

Confidence gate before a write

28/30

✨ What it does

Holds or releases a write based on required keys being present and untagged. Missing values get no defaults, so a half-filled object cannot reach the write node.

Decide whether this agent result is safe to send to a write node. Result: [PASTE RESULT]. Write node: [WRITE NODE NAME]. Require these keys to be present and not [VERIFY]: [MUST BE PRESENT KEYS]. If any required key is missing, tagged, or empty, output action = hold and list the gaps. If all required keys are present, output action = write and a 20 word summary of what will be written. Do not invent a default for a missing key. Do not lower the bar because the rest of the object looks complete.

💡

Pro tip: Put this gate in a Code node after the agent, using the same key list.

Golden case table

29/30

✨ What it does

Turns production examples into a 10 row golden table with expected labels you already know. Unlabelled examples stay tagged, and two watch cases are named for later regressions.

Turn these production examples into a golden case table I can replay. Examples: [PASTE EXAMPLES]. For each example write a row: Input summary (under 20 words), Expected category or owner from [EXPECTED LABELS], and Notes. If an example has no expected label, write [VERIFY] in that cell. Do not invent an expected label. Limit the table to 10 rows. After the table, name two cases that would catch a regression if the System Message drifts, and say which field to watch.

💡

Pro tip: Include at least one case the current agent already gets wrong.

Regression after a prompt edit

30/30

✨ What it does

Diffs old and new System Messages on shared inputs and flags new fields that were not in the input. The close is keep, revert or edit again, with no made-up score.

Compare the agent on the same inputs before and after my prompt edit. Old System Message: [OLD MESSAGE]. New System Message: [NEW MESSAGE]. Shared test inputs: [TEST INPUTS]. For each input, write a row: What stayed the same, What changed, and Whether the change is intended given [INTENDED CHANGE]. If an output field appears in the new run but not in the input, mark it [VERIFY] as a possible invention. Do not invent a pass or fail score. End with keep, revert, or edit again, in one sentence.

💡

Pro tip: Freeze the test inputs in a pin in n8n so the comparison stays honest.

Free tool

Prompt Optimizer

Turn a rough idea into a structured, professional AI prompt.

Try it free →

Frequently Asked Questions

Put the long instruction in the AI Agent node's System Message. Put the payload, ticket or transcript in the user prompt or in the field that the previous node maps in. Tool-specific rules go in that tool's description, not in the System Message.
Later nodes map keys by name. A key the CRM, sheet or HTTP API does not have will fail the run or write garbage. These prompts tell the model to copy names you listed and to tag gaps instead of making keys up.
Use the names shown on the AI Agent node after you connect each tool sub-node. Paste that exact list into [CONNECTED TOOL NAMES]. If a name is missing from the list, the prompts tell the agent not to call it.
Yes. The prompts are model-agnostic instructions for the AI Agent node. The quality of JSON still depends on the model, so keep the output contract short and run the hallucinated-field audit on the first live payloads.
Treat it as a stop sign. Route those items to a human or to a hold path. Do not let a write node send a tagged field to a customer, a CRM or a sheet until you replace it with a real value from your systems.

Prompts are the starting line. Tutorials are the finish.

A growing library of hands-on tutorials on ChatGPT, Claude, Midjourney, and many other AI tools. New tutorials are added regularly.

Start 7-Day Free TrialCancel anytime.
Explore AI for Product Managers