BriefGate for Zapier

The BriefGate Zapier integration connects client intake to the apps you already run on Zapier — start an intake when a deal closes in your CRM, send the finished files to Google Drive, post in Slack when a client opens their portal.

It is a private beta: the integration is not listed in Zapier's app directory yet. Anyone can use it today through the invite link below; it becomes public once it passes Zapier's review.

Join the BriefGate Zapier beta →


Connecting your account

  1. Open the invite link above while signed in to Zapier and accept the invitation. BriefGate then shows up in the app picker of the Zap editor.
  2. In the BriefGate dashboard, open API Keys and create a key.
    • Actions and searches need the intakes:read and intakes:write scopes.
    • The triggers need the admin scope, because a trigger registers a webhook on your account. See API key scopes.
    • A bg_test_… key never emails or texts a real client, so it is the safest choice while you build a Zap. Switch to a bg_live_… key when the Zap goes live.
  3. In Zapier, add a BriefGate step, choose Sign in, and paste the key.

Scopes are set per key, so one key per Zap is fine but not required — add a second, narrower key with just intakes:read and intakes:write if you want an actions-only Zap to run on something less powerful than an admin-scoped one.


Triggers

All four triggers are instant: turning the Zap on registers a webhook on your BriefGate account, and turning it off removes it again. Every delivery is checked against BriefGate's X-BriefGate-Signature header before the Zap runs. Payloads are described in webhooks.

Trigger Fires when
Intake Completed Every required item on an intake has been submitted.
Item Submitted The client submits or fills in one item.
Client Viewed Portal The client opens their portal for the first time. Refreshing the page does not fire it again.
Intake Overdue The due date passes with required items still outstanding. Fires once per intake.

Actions

Action What it does
Create Intake Starts a new intake and emails the client their portal link. Set Send Immediately to false to keep it as a draft.
Send Reminder Sends a chase message outside the automatic schedule, by email or SMS (SMS needs the SMS feature and credit). Limited to one manual reminder per intake per hour; fails with "Nothing to chase" when the intake is already completed.

Searches

Search What it returns
Find Intake One intake by ID: status, due date, progress, item statuses and chase history.
Get Intake Results Typed values for approved items (optionally also submitted ones), signed file URLs, and the list of items still missing.

Secrets are never returned to Zapier. Zapier keeps every step's output in your Zap history, and a secret item (a password or API key the client entered) can be revealed only once. Get Intake Results therefore always sends exclude_secrets=true: secret items are left out without being revealed, with meta reporting secret_unavailable: true, and you read them in the BriefGate dashboard instead — where the one-time reveal is spent deliberately, not logged into a Zap run you can't un-log. The value itself is encrypted on the server with a libsodium sealed box before it's ever written to the database, so it's never plaintext, and never "end-to-end" or "zero-knowledge" — BriefGate itself holds the decryption key.


Example Zaps

Deal won → intake sent

Trigger: your CRM (Pipedrive, HubSpot, Copper, …) on Deal Won / Stage Changed → Action: BriefGate Create Intake.

Map Project Name, Client Email, and Client Name from the deal, and Items from the set you always ask for at kickoff — each item takes a Key, Label, Type (text, longtext, file, image, file_list, url, boolean, select, multiselect, color_list, structured, or secret), and whether it's Required. Set Due Date from the deal's close date plus your standard turnaround, and Chase Schedule to default (Free plan) or gentle/aggressive on Solo and up. Set Send Immediately to false if you'd rather review the intake before it emails the client — it's created as a draft, and you send it later from the dashboard; Create Intake and Send Reminder are the only two actions today.

A few Free-plan limits worth knowing before testing this: Create Intake fails once you already have an active intake, and an intake with more than ten items is rejected — both show up as a plan_required or validation error in the Zap's run history. Free also sends at most 10 invitations per UTC day: a Create Intake run past that still succeeds, but the intake is left as an unsent draft and the response says so (invitation_sent: false, with a note).

Completed intake → files in Drive

Trigger: BriefGate Intake Completed (carries intake_id, project_name, timestamp — no file content yet, just the signal to collect) → Search: BriefGate Get Intake Results → Action: Google Drive Upload File.

A single file or image item comes back from Get Intake Results as one object with a signed url (valid 24 hours), filename, mime, size, and checksum_sha256 — map its Url field straight into the Drive step's File field and Zapier downloads it automatically before uploading. A file_list item comes back as an array of the same shape, so one Drive step can't consume it directly: insert Looping by Zapier between the search and the Drive step and put the upload inside the loop, one iteration per file. Because the signed URL only lasts 24 hours, keep this Zap instant rather than adding a Delay step in front of the upload.

Client opened the portal → heads-up in Slack

Trigger: BriefGate Client Viewed Portal → Action: Slack Send Channel Message.

Fires once, the first time the client opens their link — refreshing the page doesn't fire it again — with intake_id, project_name, and slug. It deliberately carries neither the portal link nor the client's email, so a simple message template is {{project_name}} — client just opened their intake portal ({{intake_id}}). Chain in a Find Intake search on the same intake_id first if the team wants progress or a due date in the message too.

Overdue intake → one more nudge

Trigger: BriefGate Intake Overdue → Action: BriefGate Send Reminder.

Fires once per intake, the first time a periodic sweep notices the due date has passed with required items still outstanding — it carries intake_id, project_name, due_date, and outstanding_items, independent of the automatic reminder schedule and meant to tell you, not the client. Map Send Reminder's Intake field from the trigger's intake_id and choose Email (default) or SMS (needs the SMS feature and credit). It's capped at one manual reminder per intake per hour and returns "Nothing to chase" if the intake was already completed by the time the Zap runs — worth a Filter step if you chain more steps after it.

A caution that applies to all four Zaps: Create Intake's response includes portal_url, but the magic sign-in token that actually authenticates the client is never returned by the API — it only ever goes out in the invitation email. Don't build a step that tries to construct a working client link from portal_url alone; there isn't one to construct.


Resources