Follow-up & Nurturing Queue
Configure scheduled messages, document requests, price reductions, and campaign notifications to guide prospective buyers smoothly through the purchase cycle.
The Nurturing Queue Architecture
Property sales cycles frequently span weeks or months. The Follow-up Queue provides a scheduled dispatch timeline that automates client check-ins and notifications.
Through database hooks, agents link scheduled alerts to active leads and site visits. A background worker processes the queue based on the scheduled_at timestamp, dispatching pre-approved templates or raw text messages over WhatsApp.
1. Queue Status Tracking
Operational states are tracked across four core indicators:
Total Queue
Sum total of all scheduled entries.
Pending Queue
Entries waiting for their scheduled time slot.
Dispatched
Follow-ups successfully sent to clients.
Bulk Broadcasts
Scheduled alerts matching marketing campaign tags.
2. Follow-up Database Schema
The queue matches records inside the property_followups Supabase table:
| Queue Parameter | DB Column Name | Type | Description |
|---|---|---|---|
| Linked Lead | inquiry_id | UUID | Null | Reference ID linking back to the property inquiries/leads record. |
| Linked Site Visit | site_visit_id | UUID | Null | Reference ID linking back to the site visits scheduler table. |
| Linked Property | property_id | UUID | Null | Reference ID linking back to the properties listing database. |
| Client Coordinates | customer_phonecustomer_name | Text | Recipient customer phone number and optional name. |
| Message Type | followup_type | Enum | Types: general, site_visit_reminder, post_visit_followup, document_request, price_update, campaign. |
| Message Text | message | Text (Required) | Actual text to send. Supports variable substitutions (e.g. {{name}}). |
| Timestamps | scheduled_atsent_at | Timestamp | Scheduled launch target time and actual completion timestamp. |
| Dispatch Template | template_name | Text | Null | Approved Meta WhatsApp template name. If set, this template is dispatched. |
3. Nurturing Scenarios & Auto-Filling
Linking follow-ups to client states simplifies scheduling:
Dynamic Auto-Filling
To speed up manual scheduling, selecting a record in the dialog triggers an auto-fill helper:
- Link Lead: Automatically copies customer phone, name, and target property ID from the inquiry record.
- Link Site Visit: Auto-fills coordinates, sets the type to
site_visit_reminder, and copies property link.
Automated Queue Worker
The dispatch worker operates in the background:
- Polls
property_followupsfor rows with statusscheduledandscheduled_at≤ current time. - If
template_nameis set, calls Meta cloud APIs using the template and arguments. - Otherwise, falls back to raw message dispatch.
- Updates status to
sentand populatessent_at.
Queue Actions
Queue rows can be manually fast-tracked or cancelled directly from the table:
- Send Immediately: Triggers manual dispatch override, sending the WhatsApp message right away and updating status to
sent. - Cancel: Updates row status to
cancelled, preventing dispatch.
Important Operational Safeguards
Compliance and anti-spam measures
To ensure high channel health on WhatsApp and prevent spam flags, follow-up automation adheres to specific scheduling rules:
Follow-up Rules:
- Template Approvals: WhatsApp requires pre-approval for templates used outside the standard 24-hour customer window. Raw messages can only be sent if the buyer initiated conversation within the past 24 hours.
- Rate Limiting: The background worker includes built-in rate-limiting delay offsets (e.g. 1.5 seconds between dispatches) to prevent concurrent burst spikes.
- Opt-Out Tracking: If a contact is set to lost or flags opt-out in their profile tags, the worker cancels pending scheduled reminders automatically.