CallForge AI Before sign-up Landing Onboarding Broker Dashboard Campaigns Calendar Calls Your week Leads Script Connections Wallet Team Admin QA queue Script review Cost centre Data requests Audit log Written CF-DOC-06
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.
ScreenRouteWhat it demonstratesPage
Before sign-upLanding/public copy · sample call playslanding.html
Onboarding/welcome5 steps · validation · lead uploadwizard.html
BrokerDashboard/next meeting · needs-action · funnelportal.html
Campaigns/campaignsactive · paused · in-review · budgetportal.html
Calendar/calendarpending-YES · busy · now-lineportal.html
Calls/callslive wall · recording · transcriptportal.html
Your week/weekprep sheet · brief · verificationportal.html
Leads/leadsupload · consent source · quarantineportal.html
Script/campaigns/:id/scriptlocked blocks · lint · submitportal.html
Connections/settings/connectionstoken health · DNC sourcesportal.html
Wallet/walletVAT maths · top-up · ledgerportal.html
Team/settings/teamseats · roles · invitationsportal.html
Reports/reportsfunnel · per-campaign · export · scheduled emailnot built yet
Inbox/inboxunread · bulk-select · filtersnot built yet
Support/supportticket form · ticket list · dispute trackernot built yet
AdminQA queue/admin/qaage/SLA · decision · reject reasonadmin.html
Script review/admin/scriptsapprove · request changes · rejectadmin.html
Cost centre/admin/costsper-minute cost · marginadmin.html
Data requests/admin/dsarexport · erase · POPIA s23/s24admin.html
Audit log/admin/auditappend-only · actor · filtersadmin.html
Ops overview/adminseverity/SLA queue · live call wallnot built yet
Brokers/admin/brokersper-brokerage rates and marginsnot built yet
Pricing/admin/pricingper-client rate · free appointmentsnot built yet
WrittenCF-DOC-06design & build responsedocument.html

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 AI Dashboard
Thabo Nkosi Nedford Financial · Monday 17 August 2026
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 charged Holding a slot — not charged, no name until confirmed Today Sunday — never dials Deeper 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
Dials 412
Connected 262
Conversations > 45s 128
Booked by the agent 48
Confirmed — charged 31

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 conversation Ringing Dialling

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.94 Client 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.97 Client 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.91 Client 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.88 Approved 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.93 Client 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.96 Client 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 outcome Grace 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
02:14
of 6:00 cap
Speaking: Client· Latency 310 ms· Sentiment Positive
01
Disclosed AI
02
Consent checked
03
Need qualified
04
Offering slots
05
Confirm gate

Transcript

streaming
Recording

Compliance

5 of 5
AI identity disclosed
Locked block, 00:04
Consent record on file
Form 4 · 12 Jun 2026
Not on any do-not-call list
Global + broker checked 00:01
Inside calling window
15:48 SAST, Monday
No financial advice given
Monitored continuously

Live cost

R4.18
Telephony · 2:14R1.34
Speech to textR0.51
Language modelR1.88
Text to speechR0.45
Against the R650 appointment0.6%

Slots offered

from your calendar
Thu 20 Aug · 14:30Proposed
Thu 20 Aug · 16:00Held
Fri 21 Aug · 09:30Held
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 booked R0 to R3 250 Appointments 1 · 3 · 5 — count the dots Done Still to come Today Weekend — 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

FileUploadedRowsAcceptedRejectedTop reasonStatus
ra_gauteng_aug.csv17 Aug 08:12 2 500 2 104 396 No consent column (241) Imported
life_kzn_batch2.csv14 Aug 16:40 1 800 1 512 288 On the national list (163) Imported
funeral_kzn.csv13 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 femaleSelected
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 · todayIn review
v3 · 28 JulLive
v2 · 14 JulRetired
v1 · 02 JulRejected

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.

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
WhenEntryReferenceAmountBalance
17 Aug 09:32Appointment chargeLindiwe M. · APT-4417− R650R48 250
14 Aug 15:48Appointment chargeAyesha K. · APT-3348− R650R48 900
14 Aug 11:05Refund — client no-showGrace N. · APT-2210+ R650R49 550
13 Aug 16:40Appointment chargePieter v.d.B. · APT-5502− R650R48 900
13 Aug 08:00Top-up — PayFastITN 8841-2290 · VAT invoice+ R50 000R49 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 rate R650 per confirmed appointment · effective 1 June 2026
Charged when an appointment passes QA and the client replies YES — never before
No-shows free re-engagement · dispute resolved within 2 working days
Credits never 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.

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 · TwilioNormal
Payments · PayFastNormal
SMSNormal
SpeechNormal
Language modelNormal

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.