This top bar is review chrome, not product UI — it exists so you can walk every screen without hunting for links. Everything below it is the interface. All of it is live: forms validate, the script editor flags wording as you type, the recordings play, and the wallet arithmetic is real.
Screens marked not built yet are in your 06_Mockups_CallForge.html and are not in this prototype. They are listed so the gap is visible rather than implied.
CallForge AI — Broker portal
CallForge AIDashboard
Thabo Nkosi
Nedford Financial · Monday 17 August 2026
Your account
View as a brokerage
▲You are viewing — as a platform admin. This session is written to the audit log.
Reading your desk · Updated just now
Dialling stops in 4h 12m and 218 leads are lined up for tomorrow, starting when the window opens at 09:00. The evening block is your strongest — 41% answer between
17:00 and 19:00 against 28% at midday — so I would move volume there and
clear the calendar sign-in before 17:00.
You have 15 appointments this week and 13 of them are still ahead of
you, worth R8 450. Three more are holding a slot while those clients
reply to their SMS — you are not charged for a single one until they say yes.
Funeral Cover — KZN has been standing still for 6 days. It has 412 of
the 500 leads it needs and one thing in its way: script v4 is waiting for
your signature. Approve it and I can start dialling that list tomorrow morning.
Monday 17 – Sunday 23 August 2026
15 confirmed · R9 750 booked · 3 holding a slot
Mon Today
17
3 appts · R1 950
Tue
18
3 appts · R1 950
Wed
19
3 appts · R1 950
Thu
20
2 appts · R1 300
Fri
21
3 appts · R1 950
Sat
22
1 appt · R650
Morning slots only — 09:00 to 13:00.
Sun
23
Closed
◻Never dials on Sundays
Confirmed — R650 chargedHolding a slot — not charged, no name until confirmedTodaySunday — never dialsDeeper background = more booked that day
Wallet balance
R48 250
About 74 appointments at your rate
Confirmed this month
63
▲18% vs July
Connect rate
31.4%
▲2.1pt over 7 days
Cost per appointment
R187
▼R14 vs last month
Where prospects drop
this week · all campaigns
Dials412
Connected262
Conversations > 45s128
Booked by the agent48
Confirmed — charged31
Only the last row is billed. The
drop from booked to confirmed is the client-YES gate — those 17
appointments cost you nothing.
Campaigns
3 total · 1 needs a decision
On the lines right now
14 lines open
In conversationRingingDialling
Only calls that have already passed the quality gate are named. Everything else
stays anonymous until its appointment clears review.
Needs you
4 open
Google Calendar has signed you out■Bookings paused
Token expired 6h ago. Nothing has been double-booked, but new appointments are queuing instead of landing in diaries.
Script v4 is waiting on your approval■Blocks 1 campaign
Funeral Cover — KZN cannot start dialling until this is signed off. 412 of the 500 leads it needs are already loaded.
5 appointments are with our reviewers▲Being checked
Nothing comes off your wallet while they are checked, and none of them reaches your diary unless they pass. Oldest has been waiting 41 minutes.
3 appointments have no outcome yet
Met last week and never marked as sold or lost. Capturing them sharpens what the agent chases next.
What just happened
◇Every appointment here came from a lead who gave consent to be called. The agent
said it was an AI at the start of each call, and the client confirmed the time
themselves by SMS. Nothing appears on this page — and nothing comes off your wallet —
until they do.
Good morning, Thabo
Monday, 17 August 2026 · 08:40
You have 6 confirmed appointments this week, 2 of them today.
First up is Lindiwe M. at 10:00 — in 1 h 20 m. Everything below is
already verified and confirmed by the client, so you can read and go.
Your week
Meetings and briefs
6 this week · all confirmed
Today · Monday 17 August
Next up
Starts in 1 h 20 m
10:00Mon 17 Aug30 min · Teams
Lindiwe M.
Sandton, Gauteng·+27 82 ••• 4417
Verified 0.94Client confirmed by SMS Thu 13 Aug, 16:22
Called Thu 13 Aug·4 m 12 s·Retirement Annuity Q3·Positive
Your brieffrom the call
Who
38, married, two children aged 8 and 11. Sandton.
What they want
A read on the retirement annuity he holds through a previous employer and hasn't looked at in six years. He thinks he is underfunded and wants to know whether that is true.
Why now
He asked directly what happens to the RA if he changes jobs again — a move may be on the cards. He also wants the tax deductibility explained properly.
Expect
Fee sensitivity. A friend of his "got burned on fees", so deal with costs early and openly rather than waiting for him to raise it.
Bring
His current RA statement
Fee comparison
"I don't want another product I don't understand."
Thabo, 3 m 06 s into the call
0:004:12
14:30Mon 17 Aug30 min · Teams
Naledi T.
Umhlanga, KZN·+27 83 ••• 1190
Verified 0.97Client confirmed by SMS Fri 14 Aug, 11:05
Called Fri 14 Aug·3 m 48 s·Life Cover — Gauteng·Positive
Your brieffrom the call
Who
45, self-employed. Runs a physiotherapy practice with four staff.
What they want
She has no life cover at all. But her real question was about the practice — what happens to the business and to her four staff if something happens to her.
Why now
A recent health scare in her family. She asked by name about business assurance and key person cover — this is a bigger opportunity than the life cover we called about.
Expect
Underwriting worry. She had minor surgery recently and is anxious that it will count against her. Walk her through how underwriting actually works.
Bring
Key person cover options
Underwriting process explainer
"It's not really me I'm worried about, it's the four people who work for me."
Priya, 2 m 31 s into the call
0:003:48
Tuesday 18 August
09:30Tue 18 Aug30 min · Teams
Pieter v.d.B.
Midrand, Gauteng·+27 76 ••• 5502
Verified 0.91Client confirmed by SMS Thu 13 Aug, 18:40
Called Thu 13 Aug·5 m 02 s·Life Cover — Gauteng·Neutral
Your brieffrom the call
Who
52, senior manager at a logistics firm. Retiring in three years.
What they want
He has group life cover through work and knows it falls away when he retires. He wants to understand exactly what he can port and what he will have to replace.
Why now
Three years out, and he is planning properly. He is highly numbers-focused — he asked for specific figures twice on the call and was mildly frustrated that the AI could not give them.
Expect
Low patience for a sales pitch. He has been sold to before and felt it wasted his time. Open with a real number, not a brochure — that is the whole meeting.
Bring
Exact quotes for two scenarios
Portability rules
"I've been sold to before and it wasn't worth my time."
Sipho, 4 m 18 s into the call
0:005:02
Wednesday 19 August
11:00Wed 19 Aug30 min · Teams
Johan P.
Pretoria, Gauteng·+27 71 ••• 8823
Verified — checked by a person 0.88Approved by R. Petersen · client confirmed by SMS Fri 14 Aug, 09:12
Called Fri 14 Aug·2 m 55 s·Retirement Annuity Q3·Positive
Your brieffrom the call
Who
34, recently promoted. Pretoria. Expect two people — she asked to bring her wife on the call.
What they want
This is the first time she has thought seriously about retirement. She asked what a retirement annuity even is, so start from the beginning.
Why now
The promotion. There is more money coming in and she wants to do something sensible with it. Low base knowledge but genuinely willing.
Expect
No objection was raised. The risk here is the opposite one — over-explaining. Keep it plain and short, and let her ask.
Bring
Plain-language RA basics
Starter contribution scenarios
"I'd like to bring my wife on the call, she's better with this stuff than me."
Anele, 2 m 09 s into the call
0:002:55
Thursday 20 August
15:00Thu 20 Aug30 min · Teams
Kobus S.
Centurion, Gauteng·+27 84 ••• 7731
Verified 0.93Client confirmed by SMS Mon 10 Aug, 14:07
Moved once by the client. Was Tue 18 Aug at 15:00, now Thu 20 Aug at 15:00. He asked for the change himself and re-confirmed.
Called Mon 10 Aug·3 m 20 s·Retirement Annuity Q3·Positive
Your brieffrom the call
Who
41, IT contractor. His income varies month to month, sometimes considerably.
What they want
He already contributes to an RA, but irregularly. He wants a structure that tolerates a variable income instead of fighting it.
Why now
He asked specifically whether he can pause contributions without a penalty. That is the question the meeting has to answer.
Expect
Resistance to a fixed debit order. Every adviser so far has pushed one and he cannot commit to it. Lead with the flexible option.
Bring
Flexible contribution options
Penalty-free pause terms
"Every adviser I've spoken to wants a fixed debit order I can't commit to."
Ruan, 1 m 52 s into the call
0:003:20
Friday 21 August
10:30Fri 21 Aug30 min · Teams
Ayesha K.
Randburg, Gauteng·+27 79 ••• 3348
Verified 0.96Client confirmed by SMS Fri 14 Aug, 15:48
Called Fri 14 Aug·4 m 40 s·Life Cover — Gauteng·Positive
Your brieffrom the call
Who
29, single, no dependants. Recently bought a flat in Randburg with a bond of R1 200 000.
What they want
Cover that settles the bond if she dies. That is the whole trigger — the bond, not family protection, so do not pitch it as family protection.
Why now
She signed for the flat recently. She is financially literate and had already done her own research before the call, referring to two competitor product types by category.
Expect
She will price-compare. She will ask why not simply take the cheapest option. Have a straight, unhedged answer ready.
Bring
Bond-linked cover comparison
Why-not-cheapest rationale
"I've read up on this already — I just want to know why yours costs more."
Nomsa, 3 m 44 s into the call
0:004:40
Where you stand
Nothing needing attention here — this is just the shape of your week.
6appointments confirmed
R3 900charged this week
2outcomes still to capture
Two meetings from last week still need an outcomeGrace N. (Tue 11 Aug) and Kagiso Molefe (Thu 13 Aug). A quick note on how each went keeps your reporting straight and helps us call better leads.
◇Everyone here gave consent to be contacted, was told at the start of the call
that they were speaking to an AI assistant, and confirmed this appointment themselves
by SMS. Recordings are kept for two years and are available to the client on request.
●Live▶Retirement Annuity Q3
Lindiwe M.
+27 82 ••• 4417 · Sandton, GP · consent 12 Jun 2026
A slot is only written to your calendar after the client says YES to the SMS. Until then it holds anonymously and costs you nothing.
Other lines open
●13
Ayesha K. Life Cover · 00:47
Johan Pretorius Retirement · 03:52
11 more calls in progress Anonymous until their appointment clears review
◇Kea says she is an AI assistant in the first sentence of every call, and the call
is recorded from that moment. Only leads with a consent record on file are dialled, and
every number is checked against both the national and your own do-not-call list before
it rings.
Your diary
August to October
Every square is a day. The more it fills in, the more you earn that day. Pick a day to see who you are meeting.
Value bookedR0 to R3 250Appointments1 · 3 · 5 — count the dotsDoneStill to comeTodayWeekend — Saturday mornings only, never Sundays
Selected day
Monday 17 August
3 appointments
R1 950booked
The shape of it
Appointments a week
You peak this week at 19. After the week of 14 September it drops to 3 or fewer — those weeks are still open, so send more leads now if you want them filled.
Where the value sits
By campaign
All 105 appointments, August to October.
Retirement Annuity Q345R29 250
Life Cover — Gauteng37R24 050
Funeral Cover — KZN23R14 950
Retirement Annuity brings in the most, but Funeral Cover books fastest off fewer leads.
Runway
What your wallet covers
BalanceR48 250
Booked but not yet metR27 300
Appointments still fundable74
Wallet against the next 90 days62%
Campaigns pause rather than overdraw — your balance can never go negative.
◇Every one of these people agreed to be called. Our agent says it is an AI at the
start of each call, and the person confirms the appointment by SMS before it reaches
your diary. Recordings and consent records are kept for five years.
Your campaigns
3 total · 1 needs a decision
Retirement Annuity Q3
▶Running
Leads worked1 204 / 2 500
Booked38
Connect rate33.1%
SpendR24 700
Scriptv3 ✓Approved
Life Cover — Gauteng
▶Running
Leads worked640 / 1 800
Booked25
Connect rate28.9%
SpendR16 250
Scriptv2 ✓Approved
Funeral Cover — KZN
■Blocked
■
Cannot launch yet. Two gates are still open, so nothing is being dialled.
Leads gathered412 / 500
!
Script v1 not approved
Awaiting admin review
!
Lead pool below minimum
412 dialable, needs 500
✓
Wallet covers 3 appointments
Launch gate satisfied
◇A campaign cannot dial until its script has been approved, its lead pool has been
scrubbed against both do-not-call lists, and your wallet can cover at least three
appointments. Those gates are enforced by the platform, not by a setting you can turn
off.
◇
A lead without a provable consent record is never dialled. Every import is
scrubbed against the national suppression list and your own do-not-call list before a
single number becomes dialable.
Dialable now
3 418
Consent valid, not suppressed
Consent expiring in 30 days
212
Needs re-consent before they age out
On a do-not-call list
1 106
National 934 · yours 172
Held 90-day exclusivity
648
Worked by another broker
Recent imports
File
Uploaded
Rows
Accepted
Rejected
Top reason
Status
ra_gauteng_aug.csv
17 Aug 08:12
2 500
2 104
396
No consent column (241)
✓Imported
life_kzn_batch2.csv
14 Aug 16:40
1 800
1 512
288
On the national list (163)
✓Imported
funeral_kzn.csv
13 Aug 11:05
900
412
488
Invalid E.164 (302)
▲Review
Suppression
How a number gets suppressed
✓
The client asks the agent not to call again
Added within the same call, permanently
✓
They reply STOP to any SMS
Added the moment the reply lands
✓
They appear on the national registry
Re-checked before every dial, not just at import
✓
You add them yourself
Your own list, applied across all your campaigns
Consent on file
✓100%
Web form opt-in2 611
Existing client relationship598
Partner referral, consented209
Each record keeps the source, timestamp and wording the client agreed to. Recordings and consent records are held for five years.
Retirement Annuity Q3 — v4
▲Awaiting approval
Locked opening — you cannot edit this
“Good {{morning/afternoon}}, may I speak with
{{first_name}}? … Hi {{first_name}}!
Just so you know, this call is recorded and I'm an AI assistant calling
on behalf of {{brokerage}}. You can say stop at any time
and I'll remove your details. I'm helping {{broker_first_name}},
a licensed adviser, reach people in {{area}} about
{{product}} — do you have two quick minutes?”
Four things sit outside the part you write: that the caller is an AI, that the call is recorded, the offer to stop and be removed, and your brokerage named as the licensed provider. None of them can be reworded, on any script, ever.
Your editable body
“I'm calling about retirement annuity options for people in
{{province}}. Most of our clients are surprised how much
difference a review makes. Would a quick 30-minute Teams call with one of our
advisers be useful?”
Compliance lint
✓
AI disclosure present in the locked block
✓
No financial advice or guaranteed returns
✓
Opt-out path offered before the close
!
“Best rates” may read as a comparative claim
Line 14 — soften it or cite a source
Voice
Kea · en-ZA female◆Selected
Sipho · en-ZA male
Anna · en-ZA neutral
Preview the voice before you submit — the version you approve is the voice that dials.
Version history
v4 · today▲In review
v3 · 28 Jul✓Live
v2 · 14 Jul◇Retired
v1 · 02 Jul✕Rejected
Funeral Cover — KZN
■Blocking
Script v1 has never been approved, so this campaign has not dialled a single number. 412 of the 500 leads it needs are already loaded.
Duplicate this script
Starts as a draft
Your wording carries over. You change the product and the area, and it goes back through approval before it dials.
✓Comes with it — your editable body, the voice, and the locked opening.
—Does not come with it — the approval. A copy is a draft, because the wording is about to change for a different product.
Balance
R48 250
About 74 appointments
Spent this month
R40 950
63 appointments
Your rate
R650
Per confirmed appointment
On hold
R1 950
3 appointments awaiting a client YES
Ledger
◇Append-only
When
Entry
Reference
Amount
Balance
17 Aug 09:32
Appointment charge
Lindiwe M. · APT-4417
− R650
R48 250
14 Aug 15:48
Appointment charge
Ayesha K. · APT-3348
− R650
R48 900
14 Aug 11:05
Refund — client no-show
Grace N. · APT-2210
+ R650
R49 550
13 Aug 16:40
Appointment charge
Pieter v.d.B. · APT-5502
− R650
R48 900
13 Aug 08:00
Top-up — PayFast
ITN 8841-2290 · VAT invoice
+ R50 000
R49 550
◇
You are charged R650 only when an appointment has passed our quality check
and the client has replied YES to their SMS. An appointment that fails either
one never reaches this ledger.
Rate & billing rules
Your rateR650 per confirmed appointment · effective 1 June 2026
Charged whenan appointment passes QA and the client replies YES — never before
No-showsfree re-engagement · dispute resolved within 2 working days
Creditsnever expire · refundable on account closure
Top up
Card, Instant EFT or Capitec Pay. VAT invoice issued automatically.
Auto top-up
✓On
Trigger at5 appointments left
Top-up amountR25 000
Monthly ceilingR100 000
Campaigns pause rather than overdraw. Your balance can never go negative.
Who gets the appointments
Four seats on this account. Appointments are shared out by the rule you set below.
Seats
Each seat sees only their own appointments and recordings.
Adviser
Role
This week
Daily cap
Status
Actions
How appointments are shared out
◆A cap is a promise, not a target. When an adviser reaches their daily cap the agent stops offering their diary and moves to the next person. Nobody gets a Tuesday with nine meetings on it.
Invite a seat
◆An Advisor sees only their own work. Their appointments, their recordings, their outcomes — not the rest of the team's. Owner and Finance see the whole account; Viewer sees reports and nothing else.
◆Every appointment is booked in the name of the brokerage, under its FSP licence — not the individual adviser's. Whoever it lands with, the caller has already said which company they are calling on behalf of.
■
Google Calendar has signed you out. Bookings to that calendar are paused —
new appointments are queuing rather than landing in a diary. Nothing has been
double-booked.
Microsoft 365
✓Connected
Accountthabo@nedford.co.za
Teams meetingsCreating
Last sync2 minutes ago
Google Calendar
✕Reconnect needed
▲
Your token expired 6 hours ago. Bookings to this calendar are paused until you sign in again.
Providers
✓5 of 5 normal
Telephony · Twilio✓Normal
Payments · PayFast✓Normal
SMS✓Normal
Speech✓Normal
Language model✓Normal
Do-not-call sources
✓In sync
National registryRefreshed 04:00 today
Your own list172 numbers
Checked beforeEvery single dial
A number that lands on either list stops being dialled immediately, across every campaign you run.