01 The big picture
Leads arrive two ways, both land in one CRM, get routed to the right adviser, and get delivered + billed automatically. Nothing is manual once it's set up.
02 The parts
| Component | What it does | Where |
|---|---|---|
| NZ Power Dialer | Browser dialer for reps: click-to-call NZ mobiles, record + transcribe + AI-score calls, disposition, voicemail-drop, warm-transfer, SMS, on-screen scripts, follow-up cadences. Admin: users, settings, reports. | Own service + Postgres |
| Lead Exchange engine | The money layer: advisers & dollar wallets, per-type pricing, the router, Stripe billing, disputes, adviser portal, delivery, reporting API. | Own service + Postgres |
| Twenty CRM | Self-hosted CRM. Every lead β cold or digital β is a contact here, with its call state and who it's assigned to. | Self-hosted service |
| Twilio | The phone network for the dialer (calls, recordings, answering-machine detection, conference for transfers). | External API |
| Stripe Bridge β PipeHQ | Takes adviser payments for lead buckets; saves the card for auto top-ups. Currently the Bridge Media account (test mode); swaps to PipeHQ by changing two keys. | External API |
| inst8 (SMS) | SIM-based NZ SMS gateway. Powers dialer texts and lead-delivery texts + magic-link logins (Twilio can't SMS NZ). | External API |
| Mailgun optional | Email delivery of leads + magic links + appointment .ics invites. Off until credentials are set. | External API |
03 The lead journey
π Cold-call lead
π Digital lead
Digital./ingest, or the 5-min poller grabs new digital contacts.Then, for both:
04 The money model
Dollar wallets, not "credits"
Each adviser has a balance in dollars. Every delivered lead debits its type's price. Simple and flexible.
Per-type pricing
Three deliverable types, each priced independently:
| Appointment | a booked, confirmed appointment |
| Warm connect | a live prospect handed over on the phone |
| Digital lead | a qualified web lead |
Set appointment high and the other two lower for your "appointments one price, leads another" split.
Buying leads (Stripe)
Advisers buy top-up buckets β pay $X, get $Y of balance (set Y higher for a volume bonus). They can buy from their portal, or you send them a checkout link.
Auto-recharge
Opt-in: when the balance drops below a threshold, the saved card is charged automatically. No dry spells, no chasing.
Disputes & credit-back
Wrong number, no-show, out of scope β the adviser disputes within the window (default 72h); you approve and the exact amount returns to their balance.
05 How routing decides
When a lead is deliverable, the Exchange finds the right adviser in this order:
unrouted) β never dropped, never mis-assigned β until an adviser with balance is available.A warm transfer is different: the rep already chose the adviser, so the Exchange just charges that adviser for the connect.
06 How leads reach the adviser
π± SMS on
Every assignment texts the adviser the contact's name + number and a portal link. Appointments include the time. (Via inst8 β real NZ SMS.)
π Calendar on
Each adviser gets a personal calendar-subscription link in their portal. Subscribe once; every booked appointment appears automatically.
βοΈ Email optional
Full lead details plus a .ics calendar invite for appointments β switches on when Mailgun credentials are added.
π₯οΈ Portal on
Advisers log in to see all their leads with contact details, buy top-ups, set auto-recharge, and raise disputes.
07 Reporting
The dialer's Reports screen (admin) ties both systems together:
- Operations β dials, connect rate, booking rate, average AI call score, dispositions breakdown, a 14-day trend, and a per-rep table.
- Pipeline β every contact by status (New, Booked, No-answer, DNCβ¦).
- Revenue β pulled live from the Lead Exchange: total revenue, leads sold by type, credited-back, unrouted, outstanding adviser balances, and top advisers.
08 Who logs in where
| Who | Where | Sees |
|---|---|---|
| You / admin | Dialer + Exchange console | Everything: users, settings, advisers, pricing, disputes, reports |
| Rep | Dialer | The call queue + tools; no settings/admin |
| Adviser | Exchange portal | Only their own balance, leads, top-ups, disputes β password or a magic link by SMS/email |
Exact URLs and logins are kept out of this shared doc on purpose β see your operator notes.
09 Config & swapping accounts
Everything sensitive is an environment setting, so accounts swap without touching code:
| To⦠| Do |
|---|---|
| Switch Stripe (Bridge β PipeHQ) | Set the new secret key, register a webhook in the new account pointing at the Exchange, set its signing secret, redeploy. |
| Turn on email delivery | Add Mailgun API key + domain. SMS + calendar already work without it. |
| Wire digital leads | Point your web forms at the Exchange's /ingest, or just set a contact's channel to Digital in Twenty β the poller grabs it. |
| Change pricing / buckets / cadences | All editable in the admin screens β no deploy. |
10 What's live vs optional
Live & verified
- Dialer: calling, recording + AI scoring, dispositions, voicemail-drop, warm transfer, SMS, scripts, cadences, users/roles
- Exchange: advisers, wallets, per-type pricing, routing, disputes, adviser portal, magic-link login
- Stripe buckets + auto-recharge (Bridge test mode)
- Delivery by SMS + calendar; reporting dashboard
Optional / to switch on
- Email delivery + emailed magic links (add Mailgun)
- Permanent / PipeHQ Stripe key (test key is temporary)
- Rotate the Twenty API key
- Wire real web forms to
/ingest - Live phone tests: voicemail-drop & warm-transfer on real handsets