PipeHQ Β· System Overview

The Lead System β€” how it all fits together

Two products that turn a name into paid, delivered business: a power dialer that qualifies leads, and a Lead Exchange that sells and delivers them to advisers. This is the map.

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.

Lead sources
πŸ“ž Cold call
The power dialer β€” reps qualify, book, or transfer live
🌐 Digital
Web forms / SettledLoop landing pages
Brains
πŸ—‚οΈ Twenty CRM
Source of truth for every contact + its state
βš™οΈ Lead Exchange
Source of truth for the money: advisers, wallets, pricing, routing, disputes
Outputs
πŸ‘€ Adviser
Gets the lead by SMS + calendar; pays from a prepaid balance
πŸ’³ Stripe
Advisers buy lead buckets; auto-recharge
πŸ“Š Reports
Dials, conversion, revenue in one place
The one idea that makes it all work: Twenty owns the contact; the Lead Exchange owns the money; everything else (dialer, calendar, forms) just calls the Exchange. That's why cold-call and digital leads behave identically once they're in the system.

02 The parts

ComponentWhat it doesWhere
NZ Power DialerBrowser 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 engineThe money layer: advisers & dollar wallets, per-type pricing, the router, Stripe billing, disputes, adviser portal, delivery, reporting API.Own service + Postgres
Twenty CRMSelf-hosted CRM. Every lead β€” cold or digital β€” is a contact here, with its call state and who it's assigned to.Self-hosted service
TwilioThe phone network for the dialer (calls, recordings, answering-machine detection, conference for transfers).External API
Stripe Bridge β†’ PipeHQTakes 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 optionalEmail delivery of leads + magic links + appointment .ics invites. Off until credentials are set.External API

03 The lead journey

πŸ“ž Cold-call lead

Rep dials
From the dialer; the call is recorded and AI-scored.
Rep works the call
Reads the on-screen script; can text, drop a voicemail, or warm-transfer to an adviser.
Disposition
Booked, Callback, No-answer… No-answer follows the cadence; a booking becomes a deliverable lead.
Routed
A Booked appointment (or a warm transfer) is sent to the Lead Exchange to assign an adviser.

🌐 Digital lead

Form submitted
A web form / landing page creates a contact in Twenty, tagged Digital.
Picked up
The form posts to the Exchange's /ingest, or the 5-min poller grabs new digital contacts.
Routed
Same router as cold-call leads β€” product + region match, then fair round-robin.
Delivered
Same delivery + billing as everything else.

Then, for both:

The Exchange picks an adviser & charges them
Matches product + region, rotates fairly among advisers with balance, debits the lead's price from their wallet.
The adviser is notified instantly
SMS (and email if on) with the contact details; appointments also drop onto their subscribed calendar.
The contact is stamped in Twenty
Assigned adviser + delivery status, so the CRM always reflects reality.
Low balance? Auto top-up
If the adviser opted in, their saved card is charged to refill β€” they never miss a lead.
Bad lead? Dispute β†’ credit
The adviser flags it within the window; you approve and the charge is credited straight back.

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:

Appointmenta booked, confirmed appointment
Warm connecta live prospect handed over on the phone
Digital leada 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:

Eligible?
Active adviser, has enough balance, matches the lead's product (KiwiSaver / life / health / lending) and region (advisers with no region set serve everywhere).
Fair rotation
Among the eligible, the one who was assigned least recently gets it β€” even distribution.
Exclusive
One lead β†’ one adviser. It's locked to them.
Nobody eligible?
The lead is held (marked 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:

08 Who logs in where

WhoWhereSees
You / adminDialer + Exchange consoleEverything: users, settings, advisers, pricing, disputes, reports
RepDialerThe call queue + tools; no settings/admin
AdviserExchange portalOnly 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 deliveryAdd Mailgun API key + domain. SMS + calendar already work without it.
Wire digital leadsPoint 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 / cadencesAll 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