Quote Follow-Up Cadence (6-Touch)
Six-touch automated follow-up after a quote is sent (d2 / d5 / d10 / d21 / d45 / d90). Email always fires; WA fires on d0/d5/d10 if mobile_no present.
Runbook wires in priority order. Estimated 4h to ship.
Brain spec exists. This page becomes a full runbook (decision tree, trigger, ICP filter, Odoo objects, build steps, success metrics) when this flow comes up in the queue.
Flowchart in plain English
Nine hard checks before any send fires
| # | Gate | Purpose | Rule |
|---|---|---|---|
| 1 | kill_switch | Global halt; file-based | ~/ivan-ops/flow-flags/flow-01.disabled exists; halt |
| 2 | quote_state | Only state='sent' quotes eligible | sale.order.state == 'sent' |
| 3 | validity_date | Quote must not be expired | validity_date >= today |
| 4 | cadence_paused | Auto-pause on customer reply / supersession / DNC | x_cadence_paused == False |
| 5 | touch_cap | Max 6 touches | x_touch_count < 6 |
| 6 | customer_reply | Halt cadence on inbound message since last touch | no inbound mail.message > x_last_touch_date |
| 7 | dnc | Honour partner-level Do Not Contact | res.partner.x_dnc == False |
| 8 | email_bounced | Skip if email bounced | res.partner.x_email_bounced == False |
| 9 | business_day | GCC weekend awareness per partner.x_country | weekday(today) not in country_weekend_set |
Live from Odoo mail.template
Bodies fetched live from Odoo at render time. Merge fields rendered with sample values (Sarah Khalil / The Westin Mina Seyahi).
From Odoo WhatsApp module; Meta-pending
Body lookup wires when Odoo whatsapp.template + Meta WABA are linked. For now, names + intent only.
Photo library; segment-matched
d5 image header pulls from the segment that matches crm.lead.x_segment:
installations/ in Drive ›