SoloOps Packs

automation · $39 · digital download · instant ZIP

Buy now — use today

Outcome: Map lead → proposal → invoice → paid with automation recipes

For: Solo operators drowning in manual admin

Buy with PayPal — $39

After payment: instant ZIP with the full guide plus an extras folder (templates, examples, worksheets, 30-day plan).

Digital download · keep your PayPal receipt · no login required

Lead-to-Invoice Automation Playbook (n8n / Make)

Price: $39 USD · Format: Workflow recipes + implementation checklist + field maps · Delivery: Instant after PayPal

Who this is for

Solo freelancers and operators who:

The problem

Admin time is silent profit leak. Done-for-you automation packs sell in 2026 because they save 10+ hours of setup. Buyers don’t want theory — they want recipe maps.

Outcome

A concrete Lead → Proposal → Invoice → Paid → Delivery system you can implement step by step.

System overview


Inbound lead

  → CRM/Sheet row + notify you

  → Proposal sent (status)

  → Accepted → invoice draft

  → Paid → delivery email + thank-you

  → No reply → follow-up sequence

  → Weekly unpaid digest

Recipe 1 — Form lead → CRM row → ping

Trigger: New Typeform / Tally / Google Form response

Actions:

  1. Normalize fields: name, email, company, budget, need
  2. Create/update row in Notion or Google Sheet
  3. Slack/email/Telegram ping: “New lead: {{name}} — {{need}}”
  4. Tag status = new

Field map

FormCRM
Full namename
Emailemail
Companycompany
Budgetbudget
Messageneed
Source UTMsource

Recipe 2 — Proposal accepted → invoice draft

Trigger: Status changed to proposal_accepted OR signed DocuSign/HelloSign

Actions:

  1. Create invoice draft (Wave/PayPal/Stripe invoice / Sheet log)
  2. Fill line items from proposal package
  3. Set due date = +7 days (or deposit due immediately)
  4. Notify you: “Send invoice to {{email}}”

Recipe 3 — Payment received → delivery + thank-you

Trigger: PayPal/Stripe payment webhook OR manual status paid

Actions:

  1. Mark invoice paid
  2. Send delivery email template (attach file or link)
  3. Create project folder checklist task
  4. Optional: add to “active clients” view

Recipe 4 — No-reply follow-up sequence

If status stays proposal_sent for 3 days → email #1

If still no reply at day 6 → email #2

If day 10 → polite breakup email

Email #1 angle: value bump + ask one question

Email #2 angle: alternative package

Breakup: “Closing the file Friday — want me to keep a slot?”

Recipe 5 — Unpaid invoice weekly digest

Trigger: Every Monday 9:00

Actions: Query invoices where status != paid AND due < today

Send yourself a digest list with amounts and days overdue.

Implementation checklist

Troubleshooting

ROI

If setup would take you 10 hours at $40/hr, that’s $400 of time. This playbook compresses the design work so you configure instead of invent.

Delivery

Full playbook with recipes, field maps, and checklist after PayPal. Tools themselves are separate accounts (n8n/Make free tiers often enough to start).

Bonus deep library (included in your ZIP)

ZIP extras include node-by-node build sheets, Make/n8n stack examples, field dictionaries, and a 30-day rollout. Start at extras/00-START-HERE.md.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ultra-detailed appendix

Status machine (do not invent extra statuses early)

new → contacted → proposal_sent → accepted → invoiced → paid

Side doors: on_hold, lost

Field normalization rules

n8n node sketch (Recipe 1)

  1. Webhook / Form trigger
  2. Set (normalize)
  3. Notion/Sheet: upsert by email
  4. IF new vs existing
  5. Slack/Email notify
  6. Optional: wait 3 days → IF still proposal_sent → follow-up

Make.com sketch (Recipe 3 paid)

  1. PayPal / Stripe instant payment notification OR manual Watch rows
  2. Update invoice status paid
  3. Gmail delivery template
  4. Create task / checklist row

Failure modes library

FailureGuard
Double emaildedupe key email+date
Paid but no deliverymanual paid button + daily unpaid≠paid audit
Follow-up after they repliedcancel scenario on status change
Timezone Monday digestset account TZ explicitly

14-day test plan

Day 1–2 schema · Day 3 fake lead · Day 4 proposal_sent test · Day 5 follow-up with 5-min delay · Day 6 paid path · Day 7 digest · Day 8–14 real leads with you watching every run.

Ready? Get the ZIP

Map lead → proposal → invoice → paid with automation recipes — $39 one-time.

Buy with PayPal — $39

After payment: instant ZIP with the full guide plus an extras folder (templates, examples, worksheets, 30-day plan).

Compare all 50 packs · How delivery works