Marketing Lead Nurturing System
Behaviour-driven segmentation and email sequencing with measurable stage movement.
- Workflow orchestration
- CRM
- Email platform
- PostgreSQL
- Analytics
Overview
A nurture system built around explicit state: every contact sits in exactly one stage, and every transition is caused by a rule you can point at.
The problem
Leads that are not sales-ready get one generic newsletter and then silence. There is no segmentation, no signal from behaviour, and no way to tell which content actually moves someone forward.
Existing process
- 01All non-qualified leads land on one list.
- 02A monthly newsletter goes to everyone, regardless of interest or stage.
- 03Engagement data lives in the email tool and never reaches the CRM.
- 04No one can answer which content precedes a sales conversation.
Proposed system
- Segment on two axes: firmographic fit and observed behaviour.
- Rolling engagement score with time decay so stale activity fades out.
- Branching sequences per segment, each with a defined exit condition.
- Behaviour triggers (pricing visit, repeat opens, doc downloads) can promote a contact mid-sequence.
- Stage transitions written back to the CRM so sales sees the same state marketing does.
The system, node by node
- 01
Contact intake
New or updated contact enters the state machine
- 02
Segmentation
Fit tier × behaviour tier assigns a segment
- 03
Scoring
Engagement score recomputed nightly with decay
- 04
Sequence selection
Branch chosen per segment, cadence capped
- 05
Trigger listening
High-intent events interrupt and promote
- 06
Handoff
Threshold crossed → sales task + CRM stage change
- 07
Reporting
Stage movement, sequence performance, unsubscribes
- Contact intake
- Segmentation
- Scoring
- Sequence selection
- Trigger listening
- Handoff
- Reporting
Business logic
- Frequency cap
- Maximum two automated emails per contact per week across all sequences.
- Intent override
- A pricing-page visit plus two opens in 7 days promotes to sales-ready.
- Decay
- Engagement points lose 10% weekly so old activity cannot hold a stage open.
- Exit conditions
- Reply, meeting booked, unsubscribe or stage change ends the sequence immediately.
- Suppression
- Open deals and current customers are excluded from acquisition sequences.
Failure handling
- Email provider rate limit
- Queue with a token bucket; sends spread rather than dropped.
- Bounce or complaint
- Contact suppressed instantly and flagged in the CRM.
- Conflicting sequences
- Priority order resolves overlap; only one active sequence per contact.
- Missing behaviour data
- Contact defaults to the lowest behaviour tier rather than being skipped.
Demonstration
Simulation notice
This project is a portfolio simulation. Sequences were tested against a synthetic contact set with scripted behaviour events to verify branching, capping and exit conditions. No client data was used and no performance claims are made.
Design decisions
Nurture is a state machine
Once every contact has one stage and explicit transitions, debugging becomes reading a log instead of guessing.
Caps protect the channel
The frequency cap sits above every sequence, so adding a new campaign cannot accidentally double someone's email volume.
Write state back to the CRM
Marketing automation that sales cannot see recreates the silo it was meant to remove.
Want a process mapped like this?
Contact Me