Blog · · 5 min read

How to remind customers about missing documents in their file with n8n and AI

Step-by-step guide to having n8n check pending paperwork in Google Sheets every morning, spot overdue missing documents and use AI to draft a clear reminder in Gmail.

You opened the file, asked for the ID, payslip or signed contract… and it still hasn't arrived. Days go by, the case stalls and you end up chasing the customer on WhatsApp after hours.

In this guide you'll build an n8n workflow that checks a missing-documents log in Google Sheets every morning, spots paperwork waiting too long and uses AI to draft a clear reminder in Gmail. You review the draft and send it.

This is not the same as a pending signature reminder: there the document was already sent and only the signature is missing; here the customer still hasn't delivered one or more papers for the file (onboarding, mortgage, insurance, permit, grant…).

What you're going to build

A five-step workflow that runs on its own every day:

  1. Daily trigger: a Schedule Trigger node runs at 09:30.
  2. Read pending files: a Google Sheets node reads your "Missing documents" sheet.
  3. Wait filter: a Code node keeps only rows requested X days ago that have not yet hit the reminder cap.
  4. AI reminder: a Basic LLM Chain writes a warm email that lists what is missing, shares the upload link and offers help.
  5. Draft and log: Gmail creates the draft and Google Sheets records the stage in reminder_sent.

What you need

  • An n8n instance (cloud or installed free on your computer).
  • Google Sheets and Gmail connected in n8n.
  • An OpenAI or other AI API key, with a monthly spend limit set in the provider's dashboard.
  • A "Missing documents" sheet with columns: customer, email, file_ref, missing_docs (comma- or newline-separated list), requested_on (YYYY-MM-DD), upload_link (optional), notes and reminder_sent (empty or 1 / 2).

You can fill the sheet by hand when you open a file, or with another n8n flow that logs those requests. This guide assumes the rows are already in Sheets.

Step 1: prepare the missing-documents sheet

Keep requested_on in a consistent date format and only leave rows that are truly incomplete (archive completed ones). Spell out what is missing in missing_docs ("ID both sides", "last 3 payslips", "property deed"). Put a shared Drive folder, client portal or form URL in upload_link when you have one; leave it blank otherwise. Use notes for useful preferences ("prefers WhatsApp", "travelling until Friday", "sent ID to the wrong inbox").

Step 2: trigger and read

Add a daily Schedule Trigger at 09:30 (check that the workflow timezone in Settings is correct for you). Connect it to Google Sheets → Get Row(s) on your "Missing documents" sheet.

Step 3: filter files that still need a reminder

Add a Code node (Run Once for All Items) with this code:

const today = new Date(); today.setHours(0, 0, 0, 0);
const out = [];
for (const i of $input.all()) {
  const c = i.json;
  if (!c.email || !c.requested_on || !c.missing_docs) continue;
  const days = Math.round((today - new Date(c.requested_on)) / 86400000);
  if (days < 2 || days > 45) continue; // wait 2 days; ignore > 45
  const already = Number(c.reminder_sent || 0);
  let stage = null;
  if (already < 1 && days >= 2) stage = 1;           // first reminder at 2+ days
  else if (already === 1 && days >= 7) stage = 2;    // second at 7+ days
  if (!stage || stage > 2) continue;
  out.push({ json: { ...c, days, stage } });
}
return out;

Each file gets at most two reminders. If nothing is pending, the workflow ends without spending AI credits.

Step 4: draft the reminder with AI

Add a Basic LLM Chain with a small, cheap model (for example gpt-4o-mini) and this prompt:

You handle client files for [BUSINESS NAME]. Write a short email to
{{ $json.customer }} reminding them that file «{{ $json.file_ref }}»
requested on {{ $json.requested_on }} ({{ $json.days }} days ago) is still missing these documents:
{{ $json.missing_docs }}
Upload link (include it if present; if empty, do not invent one): {{ $json.upload_link }}
Notes: {{ $json.notes }}
- Warm, professional tone, in English, max 7 sentences.
- List clearly what is missing; do not blame or over-pressure.
- If upload_link exists, invite them to upload there; otherwise ask them to reply with the files attached.
- Do not invent legal deadlines, fines or documents that are not in missing_docs.
Return only the email body.

The data comes from your sheet; AI only sets the tone. If your portal already sends the first automatic email, use this flow only for the polite second nudge.

Step 5: create the draft and mark the reminder

Connect a Gmail → Create Draft node with recipient {{ $('Code').item.json.email }}, subject Missing documents: {{ $('Code').item.json.file_ref }} and the AI text as the body. Drafts let you review before sending, same as in pending signature reminders or unpaid invoice reminders.

Then a Google Sheets → Update Row node that matches on email + requested_on and writes stage into reminder_sent.

When you trust the wording, you can switch Create Draft to Send.

How to test it

  1. Add a test row with your own email, a requested_on date 3 days ago, empty reminder_sent and two items in missing_docs.
  2. Run the workflow manually and check that the draft appears and reminder_sent becomes 1.
  3. Run it again: no new draft should be created.
  4. Set requested_on to 8 days ago (leaving reminder_sent at 1) and confirm the second reminder is prepared.

Cost and good practice

  • Cost: each reminder is a fraction of a cent of AI API usage. Set a monthly spend limit in the provider dashboard.
  • Don't nag: at most ~2 reminders per file; if there is no reply, note it and move to a call or in-person follow-up.
  • Don't invent documents: only remind what is listed in missing_docs.
  • Alert on errors: enable an error workflow so you know if Gmail or Sheets fail, as in n8n error handling.
  • Combine it with pending signature reminders once the PDF has arrived and only the signature is left, and with new client welcome when you open the file.

Start with ready-to-import templates

If you want a customer-service base in n8n already built, download the free WhatsApp agent or check the full AgentKiosk pack: 8 tested agents in English and Spanish, each with workflow, prompt and guide, ready to import and combine with these missing-documents reminders.