Synthetic sample — not a client deployment

Candidate intake that does not silently duplicate or lose applicants.

Illustrative n8n acceptance artifact for Google Forms → normalization → Airtable → WhatsApp acknowledgement. All names, numbers, IDs, and outcomes are invented. No real candidate or employer data is used.

Download the credential-free n8n test harness Customize this harness — USD 25

Import the JSON into n8n and run it manually. It uses Code nodes and synthetic fixtures only: no external calls, credentials, or customer data.

State contract

Google Form submission → normalize phone to E.164 candidate_key → validate required consent + role + location → lookup Airtable by candidate_key → create candidate OR append a new application event → enqueue WhatsApp acknowledgement with idempotency_key → write delivery outcome and retry state → alert only after retry budget is exhausted

Non-negotiable invariants

No duplicate candidate

One normalized phone number maps to one candidate record. Re-applications create events, not cloned people.

No false acknowledgement

The workflow never records “message sent” from an API request alone; it stores the provider delivery state separately.

No silent partial write

If Airtable succeeds but the message call fails, retry resumes from the message step without creating another candidate.

Priority failure paths

  1. Duplicate submit: identical form submission arrives twice within 30 seconds.
  2. Malformed phone: local number has no country context and cannot become a safe candidate key.
  3. Airtable 429: rate limit occurs after validation but before record creation.
  4. WhatsApp timeout: request result is unknown after the candidate record is committed.
  5. Schema drift: form field label changes while downstream mapping still expects the old field.

Acceptance tests

Evidence required at handoff

This sample is architecture and QA evidence, not proof of a production deployment or a promise of WhatsApp provider approval, deliverability, legal compliance, or hiring outcomes.