Client onboarding contains repeatable chores: copy a project folder, create an intake record, notify a project owner. It also contains decisions about scope, access, deadlines, and approvals that should remain with your team.

This guide describes a minimal Make scenario for a small agency using Google Sheets and Google Drive. The trigger is a new row in a spreadsheet. The outcome is a project folder and a notification to the assigned owner. It is a documented workflow design, not a claim that HD Media has executed and measured this scenario. Module names and options should be checked in your workspace before publishing screenshots or calling it tested.

Decide what triggers onboarding

Only add a row after the contract and start conditions are confirmed. A sales lead is not a client project. Create a Projects sheet with these columns:

Column Example value Why it matters
project_id ACME-WEB-01 Stable identifier for deduplication
client_name Acme Bakery (fictional) Human-readable folder name
service Website Determines which checklist to use
owner_email The assigned internal owner Notification destination
approved_to_start Yes Prevents premature work
folder_url Empty until created Result to write back
automation_status Pending Visible recovery state

Make's Google Sheets documentation lists Watch New Rows and Update a Row modules. It also warns that a blank row can stop later rows being processed by the watch module. Keep one header row and no gaps in the source table. Source: Make Google Sheets modules.

If your intake app supports a signed event, you can use a webhook instead. Make documents both app-specific and custom webhooks; by default, instant webhook executions can run in parallel. For this starter scenario, the sheet is easier to inspect manually. Source: Make webhooks.

Build the scenario in six steps

1. Watch the Projects sheet

In Make, add Google Sheets → Watch New Rows. Select the correct spreadsheet and Projects tab. Confirm that Make treats the first row as headers and that a test row appears with project_id and owner_email mapped correctly.

Do not turn on the scenario for all clients yet. Use a dummy client and an internal email for the first run.

2. Filter rows that are ready

Continue only when approved_to_start is Yes, project_id is present, and automation_status is Pending. A missing owner should stop the flow and appear as an exception for human review, rather than creating an unowned project.

Do not treat a changed row as a new approved project without defining what should happen on edits. Watch New Rows is a new-row trigger; it is not a complete change-management system.

3. Check whether the folder already exists

Search the selected parent folder using the stable project ID. If an existing folder is found, reuse its URL instead of making another. Folder names are useful to people but not a perfect unique key, so store the resulting folder ID or URL back on the project record.

Make documents Search for Files/Folders and Create a Folder in its Google Drive modules. Confirm that the connection has permission to create in the chosen shared location. Source: Make Google Drive modules.

4. Create only the missing folder

Name it ACME-WEB-01 — Acme Bakery, or use your internal convention. Keep the folder private by default. If you need a client-facing upload location, set the sharing policy deliberately and test it with a client account. Do not assume that a generated link is public or private without checking.

5. Update the source row

Write the folder URL and automation_status = Ready for review to the same project's row. Re-read the project_id immediately before updating so that a sort or an inserted row does not make you write the link to another client. The stable project ID, not a remembered row position, is the key to recovery.

6. Notify the project owner

Send an internal message with the project name, folder URL, and next manual action: review the onboarding checklist and assign deadlines. If the message fails, leave a visible Notification failed state or an exception entry. The folder may already exist; the next attempt must reuse it.

Make lists email actions, including Gmail's Send an email, but the exact app depends on your team's approved mail account. Source: Make Gmail modules.

Implementation caution: A new-row trigger may consume a row before later approval edits, and searching then creating is not an atomic duplicate lock. Design and test a reliable retry and idempotency method for your setup before relying on this workflow.

Test failures before you rely on it

Run these cases with dummy data:

  1. An approved new row produces one folder, one recorded URL, and one owner notification.
  2. A row missing owner_email stops before folder creation.
  3. A repeated project ID reuses the existing folder and does not send a duplicate start message.
  4. The Drive connection fails after the trigger: the row remains visibly unresolved.
  5. The email step fails after folder creation: retry reuses the folder.
  6. A blank row in the sheet does not hide later projects; remove gaps from the source.

Review execution history and incomplete executions. Make's scenario settings can process data in order; when enabled, a stalled incomplete execution can pause later work. Choose deliberately based on whether order matters for your workflow. Source: Make scenario settings.

What should stay manual?

Someone must confirm that the sold scope matches the project record, decide the kickoff date, review access requests, and approve a change to the delivery promise. Automating a welcome email before those conditions are clear can create confusion faster than it saves time.

Start with one project type and one owner. If it works reliably, extend the scenario to create standard tasks from the onboarding template. Measure setup time and error rate on real projects before claiming that the automation saved a specific number of hours.