n8n blueprint · Internal tools / Knowledge management
Company docs chatbot with the AI Agent node
Employees ask questions in an n8n chat, and an AI Agent answers from company documents using a vector store tool, per-session memory and a chat model reached through Vercel AI Gateway, while a separate scheduled workflow keeps the vector index fresh. It must never present an answer as company policy unless retrieved documents support it, and it must never mix one user's chat history into another user's session.
- Steps
- 9
- Subjective questions
- 33
- Objective questions
- 33
The problem and the outcome
Problem: Policies, runbooks and handbooks are spread across drives and wikis, so employees spend time searching or ask the same questions in Slack. Keyword search misses paraphrased questions and gives no direct answer.
Outcome: Employees get a grounded answer with links to the source documents in one chat. Ingestion runs on a schedule, so edited or deleted documents reach the bot without manual re-indexing, and model provider changes need only a model-name edit in the gateway credential setup.
Architecture
How it works, step by step
- The employee types a question into the Chat Trigger, either the n8n-hosted chat page or the embedded chat widget, with authentication switched on so only staff can reach it; the trigger emits chatInput and a sessionId.
- The AI Agent node receives the message with a system prompt that says: answer only from retrieved company documents, cite the source title and link, and say you do not know when nothing relevant is found.
- The Postgres Chat Memory sub-node loads the last few turns for that sessionId so follow-up questions like 'what about contractors?' keep their context, and it saves the new turn after the reply.
- The agent calls the vector store tool (the vector store node in retrieve-as-tool mode, with a clear tool description); the query is embedded with the same embeddings model used at ingestion and the top-k chunks come back with title, URL and last-updated metadata.
- The OpenAI Chat Model sub-node, pointed at https://ai-gateway.vercel.sh/v1 with an AI Gateway API key, sends the prompt to a model such as anthropic/claude-sonnet-4.5, with gateway fallbacks to another provider if the first one errors.
- The agent returns the grounded answer with source links to the chat, and the turn is written to memory; the execution is logged in n8n for review.
- A separate workflow starts from a Schedule Trigger, lists documents changed since the last run from Google Drive or a wiki API via HTTP Request, and records deletions so stale content can be removed.
- The Default Data Loader and Recursive Character Text Splitter turn each document into overlapping chunks with metadata, the embeddings sub-node vectorises them, and the vector store node in insert mode upserts them after deleting old chunks for the same document ID.
- Failed fetches, embedding errors or exhausted gateway fallbacks trigger an Error Trigger workflow that posts the execution link to a Slack channel; per-node retry-on-fail handles short API blips first.
Tech stack
- n8n (self-hosted in queue mode with Redis workers, or n8n Cloud)
- Chat Trigger and AI Agent node
- OpenAI Chat Model node via Vercel AI Gateway
- Postgres Chat Memory sub-node
- Postgres with pgvector (PGVector Vector Store node)
- Default Data Loader and Recursive Character Text Splitter
- Google Drive or HTTP Request for document sources
- Slack node in an Error Trigger workflow
Key design decisions
- Ingestion is a separate scheduled workflow, not part of the chat path, so slow embedding of large documents never delays an answer and can be retried on its own.
- The vector store is exposed as an agent tool rather than always injecting chunks, so small talk and follow-ups that memory can answer skip retrieval, while the system prompt forces retrieval for any policy question.
- Postgres Chat Memory is used instead of Simple Memory because it survives restarts and works across queue-mode workers, which do not share in-process memory.
- All model calls go through one Vercel AI Gateway credential, so no provider keys live in n8n, spend is tracked in one place and switching from one model to another is a model-name change.
- PGVector in the existing Postgres keeps chunks, metadata and chat history in one managed database, which is enough for a company-sized corpus and avoids another vendor.
Common mistakes
- Changing the embeddings model without re-embedding the whole corpus makes query and document vectors incomparable and silently ruins retrieval.
- Upserting new chunks without deleting the old ones for the same document leaves outdated policy text that the agent may still quote.
- Using a fixed or shared sessionId mixes different employees' conversations in memory; derive it per user and per chat.
- A vague vector store tool description makes the agent skip the tool and answer from model knowledge, producing confident but unsupported answers.
- Indexing restricted documents (HR cases, salaries) into a shared index exposes them to everyone; filter by access level at ingestion or keep separate indexes.
What to measure
- Share of answers that include at least one source link
- Thumbs-up rate or reviewed-answer accuracy on a fixed test set of real questions
- Median and p95 chat response time
- Ingestion freshness: time from a document edit to its chunks being searchable
- Gateway spend per answered question and fallback rate
Most-asked interview questions
Subjective questions 33
1How do you stop the docs chatbot from making things up?Asked almost every time
I attack it at three layers. First, retrieval quality: sensible chunk sizes with overlap, the same embeddings model for ingest and query, and metadata so the agent sees titles and dates. Second, the prompt and tool setup: the system prompt says to answer only from retrieved chunks, cite the source link, and reply that it does not know when nothing relevant comes back, and the vector store tool description tells the agent to use it for any company question. Third, evaluation: I keep a test set of real employee questions with expected sources and rerun it whenever I change chunking, the model or the prompt. In production I track the share of answers with citations and review thumbs-down executions in the n8n execution log.
2Walk me through the end-to-end architecture of this docs chatbot.Asked almost every time
There are two workflows. The chat workflow starts at an authenticated Chat Trigger that emits chatInput and a sessionId. An AI Agent node receives the message with a strict grounding system prompt. It has three sub-nodes. Postgres Chat Memory loads recent turns for that session. A vector store in retrieve-as-tool mode returns top-k chunks with title, URL and last-updated metadata. An OpenAI-compatible chat model points at Vercel AI Gateway. The agent replies with cited sources, memory saves the turn, and n8n logs the execution. The ingestion workflow runs on a Schedule Trigger. It fetches changed and deleted documents, chunks and embeds them, and upserts by document ID. An Error Trigger workflow alerts Slack when either workflow fails.
3How do you guarantee one employee's chat history never appears in another employee's session?Asked almost every time
Memory is keyed strictly by session, so the session key is the main control. First, authentication on the Chat Trigger means only staff can reach the chat. Second, I don't trust a client-supplied sessionId on its own. I build the memory key from the authenticated user identity plus the session ID, so a guessed or replayed ID cannot load someone else's turns. Third, Postgres Chat Memory scopes reads and writes to that key, and no shared global key is ever used. Finally, I test it. I open two users in parallel, check that follow-ups stay isolated, and review the memory table to confirm every row has exactly one owner.
4How does the ingestion workflow avoid duplicate or stale chunks when a document is edited?Asked almost every time
Every chunk carries the source document ID in its metadata. When a changed document comes in, the workflow first deletes all existing chunks with that document ID. It then inserts the freshly split and embedded chunks through the vector store node in insert mode. That turns ingestion into an upsert per document. An edit that shortens a document leaves no orphaned old chunks behind, and re-running the same batch produces the same end state. Without the delete step, the old and new versions would both be retrievable, and the agent could cite an outdated rule as current policy.
5Why did you split ingestion into a separate scheduled workflow instead of doing it inside the chat flow?Very often asked
The two jobs have very different shapes. Chat needs low latency per message, while ingestion is batch work: listing changed files, parsing, chunking, embedding and upserting, which can take minutes and hit rate limits. Keeping them apart means a slow or failing ingestion run never blocks an employee's answer, and I can give ingestion its own retries, Error Trigger alerts and schedule. It also makes incremental updates clean: the scheduled run tracks what changed since last time, deletes old chunks per document ID and inserts new ones. The chat workflow only ever reads from the vector store, so the boundary between them is just the index, which is easy to reason about and test.
6How would you handle documents that only some employees are allowed to see?Very often asked
I would never rely on the model to hide content it has already been given. At ingestion I tag every chunk with an access group taken from the source system's permissions, or I keep separate indexes for sensitive collections. On the chat side the Chat Trigger has authentication, so I know who the user is, and I map them to their groups. Retrieval then filters by that metadata before chunks reach the agent, so restricted text is never in the prompt. Memory is keyed per user session for the same reason. I also re-sync permissions on the ingestion schedule, because access changes as often as content does, and I audit with test accounts from different groups.
7Why must the query be embedded with the same embeddings model that was used at ingestion?Very often asked
Vectors from different embedding models live in different spaces. They can have different dimensions and, even when dimensions match, different geometry. Similarity search only works when the query vector and the chunk vectors come from the same model. With a mismatch, the search either errors on dimension or quietly returns irrelevant chunks. The quiet case is worse, because the agent then says it doesn't know, or cites the wrong document. So I keep the embeddings model in a single shared setting for both workflows and record the model name in chunk metadata or the index name. That makes a mismatch easy to detect.
8How would you choose chunk size and overlap for the Recursive Character Text Splitter?Very often asked
I start from how employees ask questions. Most questions target a single rule or paragraph. Chunks need to be large enough to hold a complete policy statement with its context, and small enough that top-k results don't flood the prompt with unrelated text. Overlap keeps a sentence that crosses a boundary retrievable from either side. The recursive splitter tries paragraph breaks first, then sentences, which keeps sections intact. I don't guess final numbers. I build a golden set of real questions, try a few size and overlap settings, and keep the one where the correct chunk shows up in top-k most often without bloating token use.
9What happens when a document is deleted or unpublished at the source?Very often asked
The scheduled workflow records deletions as well as changes, whether it reads them from Google Drive change data or from the wiki API. For each deleted document ID, it removes every chunk with that ID from the vector store. This matters for both correctness and access. A retired policy must not keep answering questions, and a document pulled for confidentiality reasons must disappear from retrieval. If the source API cannot report deletions, I run a periodic reconciliation. It lists all current IDs, compares them with the IDs in the index, and deletes the difference.
10How does the scheduled workflow know what changed since the last run?Very often asked
It keeps a cursor, either a last-successful-run timestamp or a change token, in a durable store such as a Postgres table. Each run reads the cursor and asks Google Drive or the wiki API for items modified after it. The cursor only advances after every document in the batch has been processed successfully. If a run fails halfway, the next run picks up the same window again. Because ingestion is delete-then-insert by document ID, reprocessing a document is harmless. I also add a small overlap on the time window so I don't miss edits that land right on the boundary.
11Delete-then-insert leaves a window where a document has no chunks. How would you handle that consistency gap?Very often asked
If insert fails after delete, that document becomes unanswerable until the next run. Usually that just means a 'don't know' rather than a wrong answer, but it is still a gap. There are three mitigations. First, embed all chunks before deleting anything, so the slow, failure-prone step finishes before the index changes. Second, write new chunks tagged with a version, then delete the older versions, so there is never a moment with zero chunks. Third, keep the cursor unadvanced on failure so the document is retried. Retry-on-fail on the embedding and vector store nodes covers transient errors, and the Error Trigger alerts on persistent ones.
12How do Vercel AI Gateway fallbacks work here, and what risks do they introduce?Very often asked
The chat model node sends every request to the gateway using one AI Gateway API key. The gateway is configured with a primary model, for example anthropic/claude-sonnet-4.5, and fallback models from another provider. If the first provider errors, the gateway retries with the next one, so n8n never sees the outage. The risk is that models behave differently. A fallback model might follow the grounding prompt less strictly or format citations differently. I test the system prompt and the golden question set against every fallback model. When all fallbacks are exhausted, the error reaches the Error Trigger workflow, which posts to Slack.
13Why route model calls through Vercel AI Gateway instead of storing provider API keys directly in n8n?Very often asked
One credential reaches many providers. The n8n side is just an OpenAI-compatible chat model with the gateway base URL and an AI Gateway API key, and switching models is a matter of changing the model name string. No provider keys live in n8n, which shrinks the blast radius if the instance or a workflow export leaks. The gateway also adds provider fallbacks and spend tracking in one place. The trade-offs are an extra dependency in the request path and the need to trust the gateway with prompts, so I check it against the company's data-handling policy.
14How would this design scale to many concurrent employees?Very often asked
I run n8n in queue mode. The main instance receives chat requests and puts executions on Redis, and multiple workers process them in parallel, so I scale by adding workers. State is kept out of worker memory. Chat history is in Postgres and embeddings are in the vector store, so any worker can serve any turn. The real bottlenecks are usually model latency and provider rate limits, which the gateway helps manage through fallbacks. Next come vector store query capacity and Postgres connections. Ingestion runs as a separate scheduled workflow, so it doesn't compete with chat during peak hours.
15How do retry-on-fail and the Error Trigger workflow divide the job of failure handling?Very often asked
Retry-on-fail is the first line. It is set on the HTTP Request, embeddings and vector store nodes, so short API blips like timeouts or brief rate limits recover without any human noticing. The gateway handles provider-level failures with its own fallbacks. Only when retries and fallbacks are exhausted does the execution fail, and then the Error Trigger workflow posts the execution link to a Slack channel. Someone can open the exact run and inspect it. This layering avoids alert fatigue from transient errors while making sure persistent failures, like a broken wiki credential, get seen quickly.
16How would you evaluate whether the chatbot's answers are actually good?Very often asked
I build a golden set of real employee questions with known correct source documents. It includes questions the documents cannot answer, where 'I don't know' is the right response. For each question I check three things. Did retrieval return the right document? Is the answer supported by the retrieved text? Is the citation's title and link correct? I rerun the set whenever I change the prompt, chunking, top-k, embeddings model or chat model, including fallback models. In production, I sample logged executions and collect user feedback to find gaps, such as missing documents or poorly chunked sections.
17How do you defend against prompt injection hidden inside company documents?Very often asked
Retrieved chunks are untrusted input, even though they come from internal sources. Anyone who can edit a wiki page could write 'ignore your instructions'. The system prompt says retrieved content is reference material, not instructions, and the agent should only use it as evidence. The agent's only tool is a read-only vector search, so even a successful injection can't send email or change data. I restrict which sources are ingested to curated spaces, keep document owners accountable, and review logged executions when answers look odd. I avoid giving this agent write-capable tools for exactly this reason.
18How do you secure the chat endpoint itself?Very often asked
I enable authentication on the Chat Trigger so anonymous users can't reach it, whether they come through the n8n-hosted chat page or the embedded widget. For the widget, I embed it only in an internal, already authenticated page such as the intranet, and restrict which origins can call it. n8n itself sits behind company network controls or SSO where possible. Credentials for Postgres, the vector store and the gateway are stored encrypted in n8n and referenced by nodes, never pasted into Code nodes. I also give the n8n editor role only to the people who maintain the workflow.
19Why use an AI Agent with a retrieval tool instead of a fixed chain that always retrieves?Very often asked
The agent can rewrite follow-ups into better queries, call the tool more than once for multi-part questions, and skip retrieval for small talk like 'thanks'. The cost is less predictability. The model might answer without retrieving, and it may make extra model calls, which adds latency and spend. In this design I reduce that risk with a specific tool description and a prompt that requires retrieval for any company question. If logs showed the agent regularly skipping the tool, I would switch to a fixed retrieve-then-answer flow, which gives up flexibility for guaranteed grounding.
20Why does the vector store tool description matter so much?Often asked
The agent decides whether and how to call a tool based mostly on its name and description. A vague description like 'search' can lead the model to answer from its own knowledge instead of retrieving. That is exactly the ungrounded behaviour we must prevent. I write something specific, such as 'Searches the company's internal policies, HR, IT and process documents. Use for any question about company rules or procedures.' Combined with the system prompt rule to answer only from retrieved documents, this makes retrieval the default path. I confirm it by checking execution logs to see that the tool is actually called on policy questions.
21How do you pick top-k for retrieval?Often asked
Top-k trades recall against noise and cost. If k is too small, the right chunk is missed and the bot says it doesn't know when the answer exists. If k is too large, the prompt grows, latency and spend go up, and loosely related chunks can mislead the model or bury the relevant one. I tune k against a golden set of real employee questions. I measure how often the correct source appears in the results and whether answer quality holds up. I also consider grouping chunks by document so several chunks from one long policy don't crowd out a second relevant source.
22How does a follow-up like 'what about contractors?' get answered correctly?Often asked
Postgres Chat Memory loads the last few turns for that session. When the agent sees 'what about contractors?', it also sees that the previous question was about, say, the leave policy. The agent can then write a self-contained search query, such as 'leave policy for contractors', before calling the vector store tool. Without memory, the retrieval query would be too vague to match anything. I reinforce this in the system prompt by telling the agent to rephrase follow-ups into standalone search queries. After the reply, memory saves the new turn so the next follow-up also has context.
23How many turns should memory keep, and why not keep the whole conversation?Often asked
Only the last few turns. Follow-ups rarely refer back further than that, and every extra turn costs tokens on every call, which adds latency and spend through the gateway. Long histories also cause drift. Old topics and earlier answers can bias retrieval or get repeated without being checked against current documents. I choose the window by testing typical multi-turn conversations. I also make sure older turns still sit in Postgres for audit, subject to retention rules, even though they are not loaded into the prompt.
24How would you do a back-of-the-envelope capacity estimate for this chatbot?Often asked
I would state my assumptions rather than quote numbers I don't know. Daily turns equal active employees times questions per employee per day. Peak concurrency is roughly peak turns per second times average turn duration, and turn duration is dominated by model latency plus retrieval. Each turn costs one embedding call, one vector query, and one or more model calls, since the agent may call the tool and then answer. Token cost per turn is the system prompt plus memory turns plus top-k chunks plus the answer. With those variables, I size worker count, gateway spend and vector store throughput, and then validate against real execution logs.
25Execution logs contain employees' questions. How do you handle that from a privacy angle?Often asked
Questions can reveal sensitive things, like health-related leave, grievances or salary concerns, so the logs are personal data. I limit who can view executions in n8n to the small team that maintains the bot. I configure execution data retention and pruning so logs are kept only as long as needed for debugging and review. I apply the same retention thinking to the Postgres memory table. I tell employees in the chat that conversations are logged for quality review. Before using logs for evaluation, I strip or mask identifiers.
26Why store title, URL, last-updated and document ID as chunk metadata?Often asked
Each field has a job. Title and URL let the agent cite sources, so employees can click through and verify the answer instead of trusting the bot. Last-updated lets the agent, and a reviewing human, judge freshness and resolve conflicts between old and new versions. Document ID is the key for upserts and deletions, so ingestion can remove every chunk of a changed or deleted document. Without document ID, I couldn't keep the index consistent. Without title and URL, answers couldn't be verified, which undermines the rule that policy claims must be backed by documents.
27How do you make sure the citations the agent shows are real and not invented?Often asked
The vector store tool returns each chunk together with its title and URL metadata. The system prompt instructs the agent to cite only sources that appeared in the tool results. As a stronger guard, I can add a Code node after the agent that extracts the cited links and checks them against the URLs actually returned in that execution. Any citation not in the retrieved set is removed, or the answer is flagged. I also check citation correctness in the golden-set evaluation, because a wrong link is almost as harmful as a wrong answer.
28What should the bot do when two retrieved documents conflict?Often asked
It should not quietly pick one and present it as policy. The last-updated metadata helps. If one document is clearly a newer version of the other, the agent can prefer it and mention the date. If they genuinely disagree, such as a regional policy versus a global one, the agent should present both with citations and suggest confirming with the owning team, like HR. Persistent conflicts are also a content problem. I log them and report them to document owners so the outdated source gets retired, and the deletion flow then removes it from the index.
29An employee reports a wrong answer. How do you debug it?Often asked
I find the execution in the n8n log by time and session, then walk the chain. What did memory load? A stale earlier turn may have steered the query. What query did the agent send to the vector store tool, and which chunks came back? If the right document wasn't retrieved, the problem is ingestion, chunking, top-k or embeddings. If it was retrieved but misread, the problem is the prompt or the model, including whether a gateway fallback model answered. If the source document itself is outdated, it goes to the document owner. The fix then becomes a new golden-set case.
30What trade-offs would you weigh when choosing the vector store?Often asked
A Postgres-based vector store, such as pgvector, keeps everything in a database we already run for chat memory. That means one backup story, simple metadata filtering, and fewer vendors. A dedicated vector database may offer better performance at larger scale and richer filtering, but it adds another system, another credential and data leaving our infrastructure. I also check delete-by-metadata support, because the upsert design depends on removing all chunks for a document ID. For a company docs corpus, I would usually start with Postgres and move only if measured query latency or scale demanded it.
31How would you switch to a new embeddings model without breaking the chatbot?Often asked
Vectors from the old and new models can't be mixed, so this is a full re-index, not an incremental change. I create a new index or collection and run a one-off ingestion of the entire corpus into it with the new model, while the chat flow keeps using the old one. Then I run the golden question set against the new index. If it performs better, I switch the chat workflow's vector store and embeddings settings together in one change, so query and index always match. I keep the old index briefly for rollback, then delete it.
32How do you keep model costs under control?Often asked
Vercel AI Gateway gives spend tracking in one place, so I can see cost per model and spot spikes. The main levers sit in the workflow. Keep the system prompt concise, limit memory to a few turns, tune top-k so chunks don't bloat the prompt, and choose a model that meets quality needs rather than the largest available. Because the agent can make multiple calls, I watch tool-call counts in the logs. I also confirm that fallback models are reasonably priced, since outages can shift traffic to them.
33What would you monitor once this is in production?Often asked
For the chat workflow, I track failed executions and Error Trigger alerts in Slack, response latency, how often the agent calls the vector store tool, and the rate of 'I don't know' answers. A rising rate can signal ingestion gaps. For the gateway, I watch spend and how often fallbacks fire. For ingestion, I check that every scheduled run succeeds and that the cursor advances. I also track counts of documents and chunks upserted and deleted, and how fresh the newest indexed content is. Periodic golden-set runs and user feedback catch quality drift that technical metrics miss.
Objective questions 33
1Which memory sub-node does this design use to persist turns per session?Asked almost every time
Why: Postgres Chat Memory loads recent turns for the sessionId and saves each new turn after the reply.
2Why does ingestion delete old chunks for the same document ID before inserting new ones?Asked almost every time
Why: Delete-then-insert by document ID makes each update an upsert. The old version can no longer be cited as current policy.
3When retrieval finds nothing relevant, what should the agent do according to the system prompt?Asked almost every time
Why: The system prompt requires the agent to answer only from retrieved documents and to say it doesn't know otherwise.
4What is the best way to ensure one user cannot load another user's chat memory?Asked almost every time
Why: Scoping memory to a server-verified identity plus session stops guessed or replayed session IDs from exposing others' history.
5In n8n, how does the AI Agent node use a vector store for company documents in this design?Very often asked
Why: Vector store nodes can be attached to the AI Agent as a tool, so the agent decides when to search and receives the matching chunks; memory holds conversation turns, not the document index.
6What base URL does the OpenAI-compatible chat model credential use to reach models through Vercel AI Gateway?Very often asked
Why: Vercel AI Gateway exposes an OpenAI-compatible API at https://ai-gateway.vercel.sh/v1, so one AI Gateway key reaches models like anthropic/claude-sonnet-4.5 or openai/gpt-5.
7Which two values does the Chat Trigger emit that this design relies on?Very often asked
Why: The Chat Trigger emits chatInput, the question, and a sessionId. The sessionId is used to scope chat memory.
8How is the vector store attached to the AI Agent for answering questions?Very often asked
Why: The vector store node runs in retrieve-as-tool mode with a clear description. The agent calls it like any other tool.
9Which vector store mode does the ingestion workflow use?Very often asked
Why: Ingestion upserts chunks with the vector store node in insert mode, after deleting old chunks for the same document ID.
10Which chat model node type reaches Vercel AI Gateway in this design?Very often asked
Why: An OpenAI-compatible chat model node pointed at the gateway base URL uses a single AI Gateway API key to reach many providers.
11What is the most likely result of embedding queries with a different model from the one used at ingestion?Very often asked
Why: Different embedding models produce incompatible vector spaces, so similarity search fails or returns poor matches.
12What happens when gateway fallbacks are exhausted or an embedding call keeps failing?Very often asked
Why: Persistent failures fire the Error Trigger workflow, which posts the execution link to a Slack channel for review.
13What does n8n queue mode need in order to scale executions?Very often asked
Why: In queue mode, executions are queued in Redis and processed by multiple workers.
14Which is a stated benefit of routing models through Vercel AI Gateway?Very often asked
Why: One gateway credential reaches many providers. It adds fallbacks and spend tracking, and keeps provider keys out of n8n.
15Why does the ingestion workflow record deletions from the source?Very often asked
Why: Without deletion handling, retired or withdrawn documents would keep answering questions.
16A wiki page contains text saying 'ignore previous instructions'. What is the right defence?Very often asked
Why: Retrieved content is untrusted input. Prompt rules plus read-only tools limit what an injection can do.
17When should the ingestion cursor (last-run timestamp) be advanced?Very often asked
Why: Advancing only on success means failed runs reprocess the same window. Idempotent upserts make that safe.
18Why is Postgres Chat Memory preferred over Simple Memory when n8n runs in queue mode with several workers?Often asked
Why: In queue mode different executions can run on different workers, so conversation history must be in a shared persistent store keyed by sessionId rather than in process memory.
19Which model name format is used when calling through Vercel AI Gateway?Often asked
Why: Gateway model names use the provider/model format, such as anthropic/claude-sonnet-4.5 or openai/gpt-5.
20Which text splitter does this blueprint use?Often asked
Why: The Default Data Loader and the Recursive Character Text Splitter produce overlapping chunks with metadata.
21What is the main purpose of chunk overlap?Often asked
Why: Overlap stops a sentence or rule split across two chunks from losing its context.
22Which node starts the ingestion workflow?Often asked
Why: Ingestion runs as a separate workflow started by a Schedule Trigger to keep the index fresh.
23What handles short, transient API blips before an alert is raised?Often asked
Why: Retry-on-fail on individual nodes absorbs brief errors, so only persistent failures escalate.
24How are credentials such as the AI Gateway API key handled in n8n?Often asked
Why: n8n stores credentials encrypted and nodes reference them, so secrets don't appear in workflow logic.
25Which node fetches changed documents from a wiki API in the ingestion flow?Often asked
Why: The scheduled workflow lists changed documents from a wiki API with the HTTP Request node, or uses Google Drive.
26Why does the vector store tool need a clear, specific description?Often asked
Why: The agent chooses tools based on their descriptions. A vague description can lead it to answer without retrieving.
27What is the main use of last-updated metadata on chunks?Often asked
Why: Last-updated dates help the agent and reviewers prefer current content and spot outdated sources.
28What is required when the embeddings model is changed?Often asked
Why: Vectors from different models are incompatible, so a full re-index is needed before switching queries.
29What is a downside of setting top-k too high?Often asked
Why: Extra chunks increase prompt size and noise, which can hurt both cost and answer quality.
30What does the Error Trigger workflow post to Slack in this design?Often asked
Why: Posting the execution link lets engineers open the failed run directly without leaking sensitive data.
31What do gateway fallbacks do when the first provider errors?Often asked
Why: The gateway falls back to another provider when the primary errors, keeping the chat available.
32Execution logs contain employees' questions. What is the appropriate control?Often asked
Why: Questions can be sensitive personal data. Limited access and bounded retention protect privacy while still allowing debugging.
33Which n8n node calls a sub-workflow?Sometimes asked
Why: The Execute Workflow node runs another workflow as a sub-workflow.
Track your progress through every blueprint in your dashboard.
Start learning