Automate Client Intake With Zapier

Last updated:

If you already run your agency on Zapier, client intake shouldn't be the one step that still happens by hand. This is a how-to companion to BriefGate for Zapier — four Zaps you can build today, each with the exact trigger, action, and field mapping, so a project starts with the logo, the copy, and the login already sitting in your stack instead of in a stalled email thread.

Read BriefGate for Zapier first if you haven't connected the integration yet — it covers the invite link, connecting your account, and what each trigger, action, and search does. This page assumes that part is done and gets straight to building.

Before you build

Zap 1: Deal won → intake sent

The goal: the moment a deal closes in your CRM, the client already has a portal link waiting, without you opening BriefGate at all.

Step App Event
Trigger Your CRM (Pipedrive, HubSpot, Copper, …) Deal Won / Stage Changed
Action BriefGate Create Intake

Map the Create Intake fields from the deal:

Create Intake field Maps from
Project Name Deal or company name
Client Email Primary contact's email
Client Name Primary contact's name
Client Language Static, or a CRM field if you track it
Items The items you always ask for at kickoff — see below
Due Date Deal close date + your standard turnaround, or leave blank
Chase Schedule default (Free plan) or gentle/aggressive on Solo and up

Items are entered as a repeating block — one row per thing you need, each with a Key (stable identifier, e.g. logo), a Label (what the client sees, e.g. "Restaurant logo"), a Type (text, longtext, file, image, file_list, url, boolean, select, multiselect, color_list, structured, or secret), and whether it's Required. For a website kickoff that's typically something like:

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 BriefGate dashboard (the Zapier integration doesn't have a separate send action; only Create Intake and Send Reminder are actions today).

Zap 2: Completed intake → files in Drive

The goal: the moment a client finishes, every file they uploaded lands in the right Drive folder without anyone downloading and re-uploading it by hand.

Step App Event
Trigger BriefGate Intake Completed
Search BriefGate Get Intake Results
Action Google Drive Upload File

Intake Completed fires with intake_id, project_name, and a timestamp — no file content, just the signal that it's time to collect. Feed its intake_id into Get Intake Results' Intake field.

Get Intake Results always sends exclude_secrets=true under the hood — see the gotcha below — and returns a results object keyed by item key. A single file or image item (like logo) comes back as one object with a signed url (valid 24 hours), filename, mime, size, and checksum_sha256. Map Results Logo Url into the Google Drive step's File field; Zapier downloads the file from that URL automatically before uploading it.

A file_list item (like photos) 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, feed it Results Photos[]Url (and Results Photos[]Filename for the file name), and put the Drive upload inside the loop — one upload per photo.

Because the signed URL only lasts 24 hours, keep this Zap instant (Intake Completed already is) rather than batching it — don't add a Delay step in front of the Drive upload.

Zap 3: Client opened the portal → heads-up in Slack

The goal: know the moment a request actually reached the client, instead of wondering whether the email landed in spam.

Step App Event
Trigger BriefGate Client Viewed Portal
Action Slack Send Channel Message

Client Viewed Portal 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 does not carry the portal link or the client's email; see the gotcha below. A simple message template:

👀 {{project_name}} — client just opened their intake portal.
Intake: {{intake_id}}

If the team needs more than that (progress, due date, item statuses), chain in a Find Intake search on the same intake_id before the Slack step and pull in whatever fields you want from its result.

Zap 4: Overdue intake → one more nudge

The goal: a reminder goes out the moment a deadline slips, without you tracking due dates in a spreadsheet.

Step App Event
Trigger BriefGate Intake Overdue
Action BriefGate Send Reminder

Intake Overdue 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. This is independent of the automatic reminder schedule; it exists to tell you, not the client, so pairing it with Send Reminder is what actually gets a message out.

Map the Send Reminder action's Intake field from the trigger's intake_id, and choose the Channel — Email (default) or SMS, if your plan has the SMS feature and credit. Send Reminder is capped at one manual reminder per intake per hour, and returns "Nothing to chase" if the intake was already completed between the trigger firing and the Zap running — both are worth a Filter step or an error path if you chain more steps after it.

Gotchas