BriefGate for n8n
n8n-nodes-briefgate is a community node for n8n that wraps BriefGate's client intake — create an intake, chase-and-wait, and read typed results — as workflow nodes, an AI Agent tool, and a trigger for BriefGate's webhook events.
It is a verified n8n community node: on n8n Cloud you add it straight from the canvas, and on self-hosted n8n you can install it the same way or by package name — see Installation below.
Installation
Installing on n8n Cloud
- Make sure Verified Community Nodes is enabled in your instance's Admin Panel (the owner or an admin can switch it on).
- On the workflow canvas, open the nodes panel, search for BriefGate, and drag the node into your workflow.
If the node doesn't show up in search yet, restart the instance from the Admin Panel — n8n Cloud picks up newly verified nodes on restart.
Installing on self-hosted n8n
Verified nodes also appear in the canvas search on self-hosted n8n, as long as verified community nodes are enabled on your instance. You can install by package name instead:
- Go to Settings → Community Nodes.
- Select Install.
- Enter
n8n-nodes-briefgate. - Agree to the risk notice (n8n shows it for any package installed by name) and select Install.
Or from the command line, if you manage your n8n instance's dependencies directly:
npm install n8n-nodes-briefgateBoth nodes and the credential type appear after n8n restarts (Docker/npm installs) or immediately (the Community Nodes panel installs without a restart).
Self-hosted and data residency. Running n8n yourself already keeps your workflow logic and credentials on infrastructure you control. BriefGate's hosted API pairs with that: per its GDPR documentation, all data is processed exclusively in the EU — application hosting in Germany, file storage in Cloudflare R2 under the EU jurisdiction restriction. Worth knowing if residency is part of why you self-host n8n; it isn't a reason to pick BriefGate on its own.
Credential: BriefGate API
Both nodes authenticate with a BriefGate API key.
- In the BriefGate dashboard, open API Keys and create one. Use a
bg_test_…key while you build the workflow — it behaves normally but never emails or texts a real client; switch tobg_live_…when you're ready to go live. - In n8n, create a new BriefGate API credential and paste the key into API Key. Leave Base URL at
https://api.briefgate.devunless you're pointed at a staging or self-hosted BriefGate deployment. - The BriefGate Trigger node specifically needs a key with the
adminscope — registering a webhook subscribes to events across the whole account, sointakes:read/intakes:writearen't enough. See API key scopes.
Operations (BriefGate node)
The BriefGate node has one Operation field with five choices:
| Operation | What it does | Key fields |
|---|---|---|
| Create Intake | Starts a new intake and emails the client their portal link | Project Name, Client Email, Client Name, Items (fixed fields or raw JSON), Additional Fields (chase schedule, due date, retention, folder, idempotency key…) |
| Get Many | Lists intakes with optional filters | Filters: Status, Client Email, Folder ID, Search; Return All / Limit |
| Get Results | Typed values for approved (optionally also submitted-but-unapproved) items | Intake ID; Options: Only New, Include Pending |
| Get Status | Item statuses, chase history and progress for one intake | Intake ID |
| Send Reminder | Manually triggers a chase message outside the automatic schedule | Intake ID, Channel (Email/SMS) |
Example — Create Intake
Items can be built with the Items fixed-collection field (Key, Label, Type, Required, Assignee, Help Text, and an optional Advanced (JSON) field for constraints/options/schema), or switch Specify Items to Using JSON and paste an array directly:
[
{ "key": "logo", "label": "Company logo", "type": "image", "required": true },
{ "key": "colors", "label": "Brand colors", "type": "color_list", "required": false }
]Set Project Name to Bella Napoli — Website, Client Email/Client Name to the client's details, and under Additional Fields set Chase Schedule to Default and Due Date to 2026-12-01. Running the node emails the client their portal link and returns the created intake, including its id — pass that downstream as intakeId for Get Status / Get Results / Send Reminder.
Example — Get Results
Set Intake ID to {{$json.id}} (from an earlier Create Intake or Trigger node) and, under Options, enable Include Pending if you want submitted-but-not-yet-approved items in the response too. The node returns typed values per item key, signed file URLs for file/image items, and a missing array naming anything still outstanding.
Example — Get Many
Leave Filters empty to list every intake, or set Status to In Progress and Search to a client name to narrow it down. Turn on Return All to page through every match instead of stopping at Limit.
Using BriefGate as an AI Agent tool
The BriefGate node is usable as a tool: connect it to the Tool input of an AI Agent node the same way you'd attach any other n8n tool node. The agent sees it as BriefGate with all five operations available, and decides for itself — from its system prompt and the conversation — when to call Create Intake, check Get Status, or pull Get Results. This is the same use case BriefGate's MCP server covers for Claude Code and other MCP clients, just wired through n8n's own Agent instead.
A typical setup: an AI Agent node with a chat trigger, the BriefGate node attached as a tool (with a BriefGate API credential), and a system prompt telling the agent when a task is blocked on something only a human client can provide (see BriefGate's own guidance on this — the same reasoning applies whether the agent runs in n8n or in an MCP client).
BriefGate Trigger — webhook events
The BriefGate Trigger node starts your workflow when one of these events fires on your account:
intake.completed— every required item has been submitteditem.submitted— the client submitted or filled in one itemclient.viewed— the client opened their portalchase.bounced— a reminder hard-bounced or was reported as spamintake.stalled— the intake used up its reminder allowanceintake.overdue— the due date passed with required items outstanding
Pick one or more in the Events field (multi-select). Activating the workflow registers a webhook endpoint on your BriefGate account pointing at n8n's webhook URL; deactivating the workflow removes it again — there's nothing to clean up by hand on either side. Every delivery is verified against BriefGate's X-BriefGate-Signature header (HMAC-SHA256, 5-minute replay window) before your workflow sees it. See webhooks.md for the full payload shape of each event.
Example workflows
New client, one click. A form (Typeform, or an n8n Form trigger), a CRM webhook (deal marked won), or a plain Webhook node feeds BriefGate: Create Intake the project name, client email, and client name, plus the items your team always asks for at kickoff — logo (Image), hero_copy (Long Text), wp_admin (Secret), for example. Running the node emails the client their portal link immediately and returns the intake's id, which every workflow below needs as intakeId. If the trigger is a webhook, set Additional Fields → Idempotency Key to something stable from the source event (a CRM deal ID, say): CRMs and form providers retry deliveries, and without one a retried webhook creates a second intake for the same client — reusing the same key returns the original intake instead.
Files land in your own storage automatically. BriefGate Trigger (Intake Completed) → BriefGate: Get Results → one node per file. Get Results returns typed values keyed by item: a file or image item comes back as { url, filename, mime, size, checksum_sha256 } with a 24-hour signed URL, and a text item as the plain value — reference the keys you defined yourself (results.logo.url, results.hero_copy) rather than looping over an unknown shape. Feed a file's signed URL into an HTTP Request node set to return binary data, then write it with Write Binary File, a Google Drive node, or an S3/MinIO node. A secret item (an admin login, an API key) needs an API key with the secrets:read or admin scope to read, and its value comes back exactly once — store it the moment this workflow runs, since every call after that reports secret_unavailable: true instead. Keep this workflow instant rather than batching it: the signed URL only lasts 24 hours.
Ask who still owes you something. Two ways to get this, depending on whether you want it pushed to you or pulled on demand. Pushed: a Schedule Trigger (e.g. weekdays at 08:00) → Get Many (Status: In Progress, Return All: on) → loop with Get Status on each → a Filter keeping progress.outstanding > 0 → post the list to Slack or email. Get Status is the lightweight endpoint for this step — item statuses, chase history, and an outstanding count, without pulling file content, which is what makes calling it once per intake on a schedule reasonable rather than expensive. Pulled: wire the BriefGate node into an AI Agent node's Tool input (see above) and just ask it — "which clients still owe me materials?" — and let the agent call Get Many and Get Status itself.
An overdue intake gets a deliberate nudge. intake.overdue fires once, the first time a periodic sweep notices an intake passed its due date with a required item still outstanding — independent of the automatic reminder schedule, and meant to tell you, not the client. BriefGate Trigger (Intake Overdue) → BriefGate: Send Reminder (Channel: Email or SMS, the latter needing the sms feature and a positive credit balance) turns that into an actual message going out. intake.stalled pairs with the same pattern — it fires once the reminder allowance is exhausted and the chase engine has cancelled the rest, handing the intake back to you — so add it alongside Intake Overdue in the trigger's Events field to escalate there too.
Every event payload above carries intake_id, and every one except chase.bounced also carries project_name — none carries the client's own email address, deliberately, since a workflow's execution log has a wider audience than the intake itself. chase.bounced is the exception, since its whole point is naming which recipient address failed. For anything else about the client, call Get Status or Get Results rather than expecting the trigger payload to carry it. Full field lists for all six events are in webhooks.md.
Three ready-to-import templates built on these ideas are on GitHub.
Resources
- npm: n8n-nodes-briefgate
- GitHub: sekera-radim/n8n-nodes-briefgate (source, README, workflow templates)
- n8n community nodes documentation
- BriefGate REST API reference
- BriefGate webhooks reference
- Item types and their constraints
- How the automatic reminders work
- BriefGate MCP tools — the equivalent integration for MCP-capable AI assistants (Claude Code, Cursor, etc.)