Journey & Email Sequence Schema
Journey & Email Sequence Schema
NurtureHub's nurture journey system is built on three tightly related data structures: journey templates, contact journey instances, and journey email records. Together they define how a nurture sequence is generated, reviewed, and delivered for any given contact.
Overview
When an agent assigns a contact to one of the twelve predefined categories, the platform selects an appropriate journey template, creates a journey instance for that contact, and generates a sequence of up to three personalised emails. Each email passes through an approval workflow before being sent.
Journey Templates
Journey templates define the structure and intent of a nurture sequence. There are 36 templates in total, organised as:
| Dimension | Values |
|---|---|
| Journey Type | prospect, existing_client, re_engagement |
| Contact Category | 12 categories (e.g. Seller, Landlord, Buy-to-Let Investor, Active Tenant, and others) |
Each combination of journey type and contact category maps to exactly one template, giving 3 × 12 = 36 templates.
Journey Types
| Type | Description |
|---|---|
prospect | For contacts who are not yet clients — focuses on conversion |
existing_client | For active clients — focuses on retention and upsell |
re_engagement | For lapsed or inactive contacts — focuses on revival |
Contact Journey Instances
A contact journey instance links a specific contact to a journey template. It represents a single run of a journey and tracks the lifecycle state across three dimensions:
| Field | Description |
|---|---|
generation_status | Whether the AI has finished producing the email content |
approval_status | Whether the agent has reviewed and approved the sequence |
completion_status | Whether the journey has been fully sent and concluded |
A contact may have multiple journey instances over time (e.g. a re-engagement journey after a previous prospect journey concluded).
Journey Email Records
Each journey instance contains up to three email records, one per position in the sequence. Every record stores:
| Field | Type | Description |
|---|---|---|
subject | string | The generated email subject line |
html_body | string | Full HTML-formatted email body |
plain_text_body | string | Plain text fallback for clients that do not render HTML |
sequence_position | integer (1–3) | The order in which this email is sent within the journey |
generation_prompt_hash | string | Hash of the AI prompt used to generate this email — used for reproducibility and audit trails |
approval_state | enum | Per-email approval status (e.g. pending, approved, edited) |
Sequence Positions
Emails are numbered 1 through 3 and sent in order. All three emails are generated upfront, allowing the agent to review the full sequence before any email is dispatched.
Full Lifecycle
The schema supports the complete end-to-end flow from AI generation through to scheduled delivery:
1. Contact assigned to category
↓
2. Journey template selected (type × category)
↓
3. Contact journey instance created
↓
4. AI generates 3 emails → journey email records stored
(generation_status = complete)
↓
5. Agent reviews emails in NurtureHub UI
↓
6. Agent approves each email
(approval_state = approved per email)
(approval_status = approved on instance)
↓
7. Emails queued for scheduled send
↓
8. All emails sent → instance marked complete
(completion_status = complete)
Prompt Hashing & Auditability
Each email record stores a generation_prompt_hash — a hash of the exact AI prompt used to produce that email. This enables:
- Reproducibility: the same prompt inputs will produce the same hash, making it possible to detect when content should be regenerated
- Audit trails: agents and administrators can verify that generated content matches the expected prompt context
- Change detection: if contact data or template configuration changes after generation, a hash mismatch signals that the email may be stale
Related
- Changelog — full version history
- Getting Started — how to get live in under 30 minutes