"Agreed once, referenced forever. Every email and WhatsApp build starts here."
Before this policy, every new email flow restarted the same conversation about suppression, overlap, and frequency caps — landing on Max each time. This document closes that loop. Agreed once, it governs every journey in the SwingFIT comms system. When in doubt, come here first.
Last_Nurture_Sent date field on the Contacts module in Zoho CRMLast_WA_Sent date field on Contacts (to be created before any WhatsApp journey goes live)When a contact qualifies for multiple flows simultaneously, the highest-priority active flow wins. Lower-priority flows wait — they do not stack.
This is the specific case that triggered this policy. Both flows can be eligible simultaneously — a member who is inactive may also have expiring credits.
If B5 triggers (no activity for 21+ days), B6 is paused until B5 exits or the member re-engages.
Reasoning: inactivity is the more urgent signal. Getting the member back through the door is the priority; credit reminders follow once they're active again.
If a B6 credit expires within 7 days AND B5 has not yet fired, B6 takes priority for that send only. An expiring credit with a hard deadline outweighs a general inactivity nudge.
| Situation | Suppressed from | Notes |
|---|---|---|
| In B7 onboarding (Days 0–30) | B5, B6, B8, all lifecycle | Onboarding owns the inbox for 30 days |
| In active dunning sequence | B5, B6, B8 | Revenue protection takes priority |
| Unsubscribed | All marketing / lifecycle | Transactional still fires |
| Hard bounce | All email permanently | Auto-suppress; no override |
| B5 active | B6 | Unless B6 credit expires within 7 days |
| B8 active | B5, B6 | Winback owns the re-engagement slot |
| Booking made in last 7 days | B5 | Re-engagement achieved — B5 exits |
| Re-subscribed | B8 | B8 exits immediately |
| PAYG purchase in last 7 days | B8-P | Exit condition met |
| Flow | Exit trigger |
|---|---|
| B5 Inactive Retention | Any booking made |
| B6 Credit Activation | Credit used OR sequence completes naturally |
| B7 Member Onboarding | Day 30 email sent (natural completion) |
| B8 Winback — Member branch | Re-subscribes at any point |
| B8 Winback — PAYG branch | Makes any booking |
| All flows | Contact unsubscribes |
How this policy is enforced technically in Zoho CRM.
Audit date: 2026-06-29. Section below reflects actual CRM state. Items marked LIVE are confirmed in place. Items marked BUILD need to be created before the relevant flow can go live to members.
Last_Nurture_Sent < TODAY()-7 OR IS_EMPTY(Last_Nurture_Sent) as a condition on each rule, and add a Field Update action to stamp it on each send.Onboarding_Route lives on Memberships, not Contacts. B5 fires on Contacts and cannot cross-module query Memberships in a standard workflow condition. Fix: add an In_Onboarding checkbox or date field to Contacts. B7 E0 stamps it on Day 0; a scheduled action clears it on Day 30. B5 and B8 then check In_Onboarding = false before firing.