Modem fleet
SIM availability
Live view of every SIM across your boxes. Sends cycle across ready SIMs; offline ones are skipped automatically.
Sending speed (carrier safety)
Hard limits enforced at the gateway on every SIM. Lower = safer, slower.
ready · not yet confirmed
confirmed working
cooling / at quota
offline (no SIM / no signal)
needs checking (replies far below the fleet)
SIM testing bench
Calling capability check
The bench box sits outside the SMS fleet — hot-swap a batch of SIM cards into it and press Start. Each seated SIM calls a fleet receiver — on the other network where possible — which answers the call; the call must stay connected for 8 seconds to earn "can call" (lines are postpaid/unli, so this costs nothing). It also texts the receiver one marker SMS to prove delivery. A line that rings but dies when answered — the busy-tone fault — is caught and flagged for a carrier ticket. Sort the cards by verdict: callers → the dialer pool (Webitel), texters → the SMS fleet, the rest → back to the carrier or out.
Bench slots
What's seated right now (refreshes as you swap). A run tests whatever is seated the moment it starts.
Run a test
Receivers are picked automatically — one confirmed fleet SIM per bench SIM, cross-network where the fleet has one — so everything runs in parallel; a full batch takes a couple of minutes. Each receiver answers its test call and the call must hold 8s: ringing alone no longer counts.
Results
| Slot | Call | SMS | Number | Network | Signal | IMSI | Sort to | Detail |
|---|---|---|---|---|---|---|---|---|
| No run yet — seat the SIMs and press Start. | ||||||||
Campaigns
Bulk send
Paste your numbers, set the pace, and send. Delivery cycles across SIMs and stays within carrier limits.
Compose
Pick the client first, then the wording. Options are named by escalation stage.
0 chars · 1 SMS
Headings this message needs, ready to fill in.
No file needed. Filter the book, see the count, then send.
0 numbers
Leave empty to send now.
Repeats at the same time each day / week (needs a schedule).
Progress
Launch a campaign to watch it send.
Status
Today
Every way this platform fails quietly, in one place: the call list, the cadences, the blasts, replies sitting past target, SIM health, the scheduler and the Freshdesk bridge. A row appears only when something needs a person. When nothing does, there is one quiet line and nothing to read. Nothing here acts on its own; it only says.
Checking…
Agent console
Conversations
Replies to your direct messages arrive in My Inbox. Everything else waits in the Queue for anyone to pick up.
Select a conversation.
Messaging
Template library
General wording works on any client at any point in a conversation. Collection ladder wording belongs to one client at one stage of escalation. Blanks like <os_current> are filled from the campaign file when a blast goes out.
Client
Usage
Language
Also here
Loading…
Send
Cadences
A cadence is a standing rule: these accounts, this wording, this time, every day. It picks who to text fresh each morning from that day's book, so an account on its second day in work gets the second rung while tomorrow's new accounts get the first. The time you set is the earliest it will send: it waits for the day's call list to arrive and never sends from yesterday's book. ⚠ A switched-on cadence sends on its own, with nobody reading it first.
A sequence walks one client through the days in work: one wording per day, set in a grid and switched on and off together. It makes the day rules for you, and they send exactly like the single rules below, with the same checks.
Loading…
Loading…
Loading…
Voice
Calls
When a customer calls instead of texting, the call goes to the agent who owns their conversation. If that agent isn't free, it falls through to whoever has been idle longest.
Who's on
An agent has to be marked Available, have an extension, and still be checking in. A console left open on a locked machine drops out on its own.
| Agent | Ext | State | Last seen | Last call |
|---|
Test a call
Runs the real routing decision without a phone system — the same code path a PBX will hit. Nothing is dialled.
Recent calls
| When | From | Contact | Owner | Rang | Answered by | Why | Status | Length |
|---|
Voice
Dialer
Upload a list of accounts and the system dials them for your agents: one call per free agent, the agent first, then the borrower. Each account is tried up to the attempt cap, spaced out across the calling window, until an agent closes it with a disposition.
Voice
Recordings
Every voicemail and recorded call in one list. Narrow it by date, agent, campaign or client, then press play — the audio streams here without leaving the page.
Quick:
| When | Dir | Number | Contact | Agent | Campaign | Client | Kind | Length | Recording |
|---|
Campaigns
Campaigns
Every campaign — sent, scheduled, and recurring. Open one to see exactly who got what, on which number.
Message log
Logs
Every individual message, inbound and outbound — the text, when, its status, who sent it, and which SIM.
| When | Dir | Contact | Message | Status | By | SIM |
|---|
Performance
Reports
The funnel
Daily volume
sentreceived
What the replies were about
Reply rate by client worst first, dashed line is the average
Agent response (SLA)
Answered is conversations this agent replied to; wrote back is the other direction — of the borrowers they messaged, how many answered. Worked is that column's denominator, and it counts people, not messages.
| Agent | Sent | Answered | Avg response | On time | Worked | Wrote back |
|---|
Did it go out?
No delivery receipts on this fleet, so sent means the gateway accepted it. FD replies are counted apart from sent; together they reconcile to the total.
| Client | Sent | Failed | Replies | Reply rate | FD replies | Top failure |
|---|
What the replies said
Wrong party is a number on the client’s file that reached somebody who says the account is not theirs.
| Client | Replies | Payment signal | Hardship | Wrong party | Dispute | Opt-outs |
|---|
What agents recorded
The outcome an agent recorded on each account, counted by when it was recorded. The table above is the classifier’s guess at what the borrower meant; this is what a person said came of it. Via Freshdesk counts outcomes set on the desk’s SMS tickets and mirrored here.
| Client | Recorded |
|---|
SIM boxes — throughput & health
| Box | SIMs | Ready | Confirmed | Offline | Messages sent | SIM health |
|---|
Activity log
| When | Who | Action | Target | Detail |
|---|
Access control
Team
Manage users and their access. Supervisors can add agents; admins can add any level. Deactivate to revoke access without deleting.
Add a user
Teams
A group of agents a campaign's replies belong to. Put somebody on one by editing them in the list. On duty is how many could take a reply this minute: a team with nobody signed in sends its replies to whoever else is on.
Control room
Pause all campaign sending
A maintenance switch that halts mass sending immediately. Running campaigns park and resume when turned off; one-to-one agent replies are unaffected.
Access control
Tick which capabilities each role has. No code changes — access updates the next time each user signs in or acts.
| Loading… |
Dispositions
What an agent can say a conversation or a dialer call came to. SMS offers it in the conversation outcome picker; Calls in the dialer wrap-up. Final / retry is read by the dialer only (final closes the account for the campaign). Agents must record an outcome before resolving a conversation or moving to the next one; nothing is ever pre-filled. Removing a row deactivates it; past outcomes keep it.
| Code | Label | Outcome (dialer) | Calls | SMS | Active |
|---|
Sending window & speed
When bulk campaigns are allowed to send, and how fast.
GSM pools
Turn pools on or off for sending. A disabled pool is kept out of rotation.
Loading pools…
Register a pool not auto-detected
Security policy
Password and session rules for every user.
Sender behaviour
How replies pick a number and who gets the conversation.
Conversation SLA
Keep the queue healthy automatically.
Compliance
Opt-outs and message footer.
Counts campaign texts across every campaign; agent replies never count. A borrower over the cap is skipped with the reason "frequency cap" and shows in the campaign's numbers.
Reply menus
A campaign can print numbered options under its message (“Reply 1 Pay in full, 2 Part payment…”) and answer a borrower's digit on its own, from the same number. Menus are built under Templates and chosen per campaign on Bulk Send.
A step is often three texts on one SIM, and the gateway holds that SIM to a gap of about 8 seconds. Below it, the later texts are refused as busy.
Over the cap, a reply that is not a plain digit, STOP, or a digit after an agent has written: all go to a person as usual. No option may carry a link; the carriers drop SMS with links.
Campaign notifications
Two emails per campaign: one when it starts (name, template, recipients, who started it, estimated finish) and one when it ends (sent, failed, replies, how long it took).
Daily 2-Way SMS report
One email a day: what went out by client, replies and reply speed, what agents recorded, and anything that needs attention. Payments are not in the app yet, so it does not show collections.
Goes out once a day at this time, or the first minute after. Separate from campaign notifications, so the people here do not also get every blast's start and finish email.
Freshdesk bridge
The Freshdesk account allows 100 API calls a minute — shared by the bridge, the Freshdesk Workbench, and anything ad-hoc. The bridge holds work rather than hit that ceiling; this sets how much of the pool it may spend.
Applies live within ~30 seconds, no restart. Lower it when the Workbench needs the pool; Reports warns when the budget is saturating.
Directory
Customers
A shared address book. Names here auto-fill new conversations and show up in the thread.
| Name | Number | Account | Campaign | Notes | |
|---|---|---|---|---|---|
| Loading… | |||||
Send
SMS requests
Ask for one account to be texted with approved wording. A supervisor approves it, and that approval sends it; the reply lands in Freshdesk.
| Ticket | Priority | Clock | Borrower | Client | Wording | Requested by | Comms agent | Status | Reply | Freshdesk |
|---|---|---|---|---|---|---|---|---|---|---|
| Loading… | ||||||||||
Send
Settlement proposals
A borrower in a reply-menu conversation put forward something outside the standard terms: a later date, two payments with a late date, or a lower amount. They were told to wait for the written decision. Approving or declining here is that decision, and it texts them the next step at once: the figures and terms, or a counter-question.
| Borrower | Account | Proposed | Against | Asked | Update promised | Campaign | Decision |
|---|---|---|---|---|---|---|---|
| Loading… | |||||||
Send
Self Service
Campaigns sent with a Self Service reply menu, where every borrower who replied has got to, and their conversation. A reply the playbook cannot answer goes to Freshdesk as a Self Service: ticket. Approving a proposal or recording a payment here texts the borrower the next step.
| Campaign | Sent | Replied | Agreed | Needs a person | |
|---|---|---|---|---|---|
| Loading… | |||||
Where they are now. Click a stage to filter the borrowers.
| Borrower | Lifetime ID | Stage | Last reply |
|---|