Collecting documents from people — new hires, vendors, loan applicants, visa candidates — is a checklist chase: who has sent what, who is missing which item, who needs the third nudge. This playbook stands up a Google Forms intake, a Sheets tracker that knows each person's gaps, and AI-drafted chase emails that go out with one human click.
Workflow area: Automation · Tier: Core · Hands-on time: ~40 minutes
Document collection fails in a predictable way: the requester tracks it in their head, the fifth reminder email gets terser than intended, and the process stalls on the one PAN card nobody noticed was missing. The fix is unglamorous structure — a form that receives, a sheet that reconciles received against required, and a drafting step that writes the polite, specific chase email you'd never get around to writing politely the fourth time. New-hire onboarding paperwork is the running example; the pattern fits any collect-N-documents-from-M-people workflow.
Define the checklist per document set. In Google Sheets, tab one (checklist): doc_id, document_name, who_needs_it (all/India-only/senior-only...), format_accepted, notes (e.g. "both sides", "self-attested"). Ten minutes with HR/ops to make this the definitive list — the automation amplifies whatever list you give it, including its gaps.
Build the intake form. Google Forms: name + email (collected automatically via company Workspace), one File Upload question per document (File Upload requires sign-in — good; it also authenticates the uploader), each question titled exactly as document_name, with the format notes in the description. Link the form to your sheet (responses tab). In Form settings, allow response editing so people can return to submit stragglers.
Build the reconciliation tab — the brain. Tab three (tracker): one row per person: name, email, role/type, deadline, then one column per doc_id (received date or blank, filled by formula from the responses tab — COUNTIFS/XLOOKUP on email + non-empty upload), then missing_list (formula concatenating the names of blank doc columns), days_to_deadline, nudge_count, last_nudge_date, status (pending/complete/escalated). The missing_list cell is what makes chase emails specific instead of generic.
Wire the chase-email Zap. Trigger: Schedule, daily 9 a.m. Action: Sheets lookup — rows where missing_list is non-empty, days_to_deadline <= 10, and last_nudge_date is 3+ days ago. Action: ChatGPT step with this prompt:
Draft a document reminder email.
Person: {{name}} ({{role_type}}), joining/deadline: {{deadline}}
Documents still missing: {{missing_list}}
Documents already received: {{received_list}}
Nudge number: {{nudge_count}} (1 = first reminder)
Form link: {{form_link}}
Tone by nudge number:
1: warm and assuming good faith — "as your joining date gets
closer", acknowledge what they HAVE sent, list what's missing
with any format notes, link the form.
2: friendly but concrete — restate the deadline and what depends
on it (e.g. payroll setup), offer help if anything is hard to
obtain.
3+: direct and specific — state the date things stall without
the documents, ask them to reply with a date, cc line
mentions {{owner_name}} will follow up personally.
Rules: under 110 words. List ONLY the missing documents — never
ask for something already received. Never sound annoyed. Include
exactly one link (the form). Sign as {{owner_name}}.
Action: Gmail — Create Draft. Action: update nudge_count and last_nudge_date.
Test end-to-end with yourself as the subject. Add yourself to the tracker, submit the form with only half the documents, run the Zap. Verify: the tracker shows exactly the right gaps, the draft names only the missing items and acknowledges the received ones, nudge tone matches count, and re-submitting a missing document clears it from missing_list on the next form sync. A correct first nudge reads like:
Subject: Two documents to go for your July 14 joining
Hi Ananya,
Thanks for sending your certificates and photo — received and
filed. As your joining date gets closer, we're just missing:
1. PAN card (both sides, one PDF)
2. Cancelled cheque or bank details form
You can add them through the same form: [form link]. If anything
is tricky to get hold of, reply here and we'll figure it out.
Best,
Meera — People Ops
Then the human pass: each morning, review drafts against reality (did they email the document directly instead of using the form? log it manually), send, and personally call anyone at nudge 3 — by the third reminder, email has proven the wrong channel.
complete.status = complete that drafts the "all received, you're set for day one" email — closure comms are free goodwill everyone forgets.missing_list comes from formulas against actual uploads; the test confirmed a resubmission clears it.Identity documents, bank details, and certificates are exactly the data classes that must never enter a consumer AI prompt. Note that the AI step here reads only names, document TYPE names, and dates — never document contents. Keep it that way: the flow drafts "please send your PAN card," and no PAN number, account number, or scan ever passes through the model.
The form receives, the sheet reconciles, the AI drafts, the human sends. Each piece does the one thing it's good at — and the person being chased gets reminders that are specific, polite, and correctly informed every single time, which is more than any of us manage by hand on reminder four.