Overview
Leads
–
Still to call
–
Booked
–
Awaiting DNC
–
Test call — hear an agent
Calls your own phone with the selected voice agent so you can rehearse before clients hear it.
Voice agents
Create an agent
The persona shapes tone and style only — the compliance rules (no advice, scheduling only, AI honesty, opt-outs) are fixed in the system and can't be overridden here.
Your agents
Rehearsal — drill objection handling
Practise before any real call. Type what a tough prospect says and see exactly how the agent replies. It uses the selected agent's persona and stays within the compliance rules. Refine the persona above, then drill again.
Not interested
Who is this? How did you get my number?
Is this a sales call?
I already have an adviser
Just email me the info
How much does it cost?
I'm busy now
Stop calling me
Campaigns
Start a campaign
idle
Dials eligible leads one at a time inside the calling window (Mon–Sat 09:00–20:00 SGT). Cold leads need a clear DNC check under 21 days old. The brief can't override the hard rules: no product advice, no Medisave-policy talk, no gifts.
Campaign history
| Name | Agent | Status | Calls | Booked | Brief |
|---|
Email outreach
Send a campaign
idle
Every email auto-gets the <ADV> marker, sender identity and a working unsubscribe link (Spam Control Act). Suppressed and already-sent addresses are skipped. Send in small batches to protect your domain reputation.
Recent sends
| When | To | Subject | Status |
|---|
Performance
Call outcomes (last 7 days)
Lead pipeline
Inbox — WhatsApp / SMS
Conversations
Select a conversation
Replies send via Twilio WhatsApp/SMS (needs TWILIO_WHATSAPP_FROM). Inbound arrives at /api/whatsapp/inbound.
Follow-ups
Add a follow-up
Follow-ups are also auto-created from call outcomes (callback → 2 days, interested → 7 days, voicemail → 3 days).
Tasks
| Who | Phone | Type | Due | Priority | Status |
|---|
Appointments
Book an appointment
Schedule
| When | Contact | Company | Type | Status |
|---|
Prospector — find SG businesses
Search
logistics
manufacturing
F&B
dental
construction
IT services
Prospector is optional and currently switched off — it needs a Google Places key (free tier covers ~20,000 businesses/month). Add
GOOGLE_MAPS_API_KEY in Railway variables whenever you want it. Until then, add leads on the Leads page or import from your Google Sheet.Source: Google Places (legal API). Finance, legal and real-estate agencies are excluded automatically. Office numbers (+65 6x) land as B2B — callable immediately under the PDPA B2B exclusion, corp-solutions briefs only. Mobile numbers (+65 8x/9x) land as cold and wait for a DNC check, since they may be a sole proprietor's personal phone. Company size is an honest estimate — exact headcounts aren't public data.
Leads
Add / import
Sheet columns: name | phone | language (en/ms/zh) | type (client/cold) | notes
Mark someone an existing client only if you have a genuine ongoing relationship — that's what lawfully exempts the call from a DNC check (and the call must be about that relationship).
All leads
| Name | Phone | Lang | Type | DNC | Status | Outcome |
|---|
Calls
| When | Contact | Outcome | Appointment | Transcript |
|---|
Compliance
DNC register check (cold leads)
Upload to dnc.gov.sg Bulk Filtering, then import the results:
Checks are valid 21 days. Numbers on the register are blocked — penalties run to S$1M per contravention.
Compliance log
| Time | Event | Detail |
|---|