Prosperr Dialer
Admin access — full campaign control
Now calling
—
—
Your phone rings first. Answer it and the customer is connected — greet them by name.
Prosperr Dialer
Idle
Total
0
Pending
0
Dialing
0
Connected
0
Cust. No Answer
0
RM No Answer
0
Missed by Cust.
0
Failed
0
Live Call
0:00
Customer Name
—
Number
—
Plan
—
Next up →
0 selected
🔍
#CustomerNumberRMPlan StatusOutcomeAttemptsDurationLast Call Actions
📋 Required columns: Customer Number and RM Number. The RM Number in your CSV must match an RM Number configured in Settings — auto-assignment happens automatically on upload.
📂
Drop your CSV here or click to browse
Supports .csv · max 10,000 rows
Map CSV columns to dialer fields
If a customer is already in the queue:
Re-dial puts existing customers back to Pending so they are called again. Call history, talk time and notes are kept. Customers who are on a live call right now are skipped.
🔑 Acefone & Webhook Settings
Acefone → API Connect → Authentication Using Tokens → Generate Token
Your outbound number shown to customers
Cloudflare Worker URL (recommended) — or your Apps Script /exec URL. Worker is auto-detected from .workers.dev in the URL.
✅ Using Cloudflare Worker?
Give Acefone this URL: —
to 24h IST
Total tries when the CUSTOMER doesn't answer. After this the lead becomes Missed by Customer.
Gap before calling the same customer again after "Customer No Answer".
Gap before re-calling the customer when the RM missed the call. Doesn't use up an attempt.
Pauses an RM who misses this many calls in a row. 0 = never pause.
After an RM's call ends, wait this long before ringing them with the next customer, so they can log notes. 0 = no gap.
Last-resort release if no update arrives. Must be longer than your longest call (minimum 10), otherwise an RM still on a call can be dialed again.
What RMs can pick after a call. Tick Not reached for options like Voicemail: choosing it moves a call counted as Completed to Customer No Answer, so it is retried. Removing an option does not change leads that already have it. Click Save Settings to apply.
What each status means
Pending waiting to be called
Dialing call in progress (RM's phone rings first, then the customer's)
Completed customer answered and spoke
Customer No Answer RM picked up, but the customer didn't answer, or the RM tagged the call as Voicemail. Retried after "Wait between attempts"
RM No Answer RM did not pick up, so the customer was never called. Retried after a short gap, no attempt used
Missed by Customer customer didn't answer on every allowed attempt (or RM tagged Voicemail on the last one). No more retries
Failed only when the call could not be placed: Acefone/API rejected it
Skipped set manually
👥 RM Configuration
RM Number must match the number in your uploaded CSV exactly. Login Email + Password gives RMs portal access.
NameRM NumberAPI KeyLogin EmailPasswordRole
🔐 Admin & Access Control
Admin users have full access — campaign control, settings, upload, delete. Grant carefully.
Type a new email + password and click the button to create another admin login. For an existing email, this makes them an admin (and resets the password only if you type one).
Additional Admin Users
These users log in via the Admin tab and get full admin access.
🔍 Webhook Debug — Live Poll Log
Polls every 8s when campaign is running. Check here if statuses aren't updating.
If you see "updates:0" every poll: Acefone is not POSTing to your Worker. Check:
1. Acefone dashboard → Webhooks → POST URL = your-worker.workers.dev/webhook
2. Open 🔍 Inspect Sheet State above — if "total_calls:0" Acefone never sent a webhook
3. Test manually: open a new tab → paste your Worker URL → add /debug at the end
4. In Acefone webhook JSON body, add "event_type":"answered_by_customer" or "missed_by_customer"
No polls yet — polls start when campaign is running
🌐 How to Publish & Share This Tool
Option A — GitHub Pages (Recommended, Free)
1. Go to github.com → New repository → name: prosperr-dialer → Public
2. Upload this HTML file → rename it to index.html
3. Settings → Pages → Source: main branch → Save
4. Share https://yourname.github.io/prosperr-dialer with team
Option B — Netlify (Drag & Drop, Free)
1. Go to netlify.com → Sign up free
2. Drag this HTML file onto the Netlify deploy area
3. You get a URL like random-name.netlify.app instantly
4. Set a custom name in Site Settings → rename to prosperr-dialer.netlify.app
⚠️ Important after publishing: Each user's settings and queue are stored in their own browser (localStorage). For shared state across the team, the Apps Script backend (AutoDialer.gs) and Google Sheet serve as the single source of truth — configure the Webhook URL in settings above.
From
To
Per RM (whole range)
RMDialedConnectedCustomer no answerRM no answerConnect %Talk timeAvg / connected
Day-wise
DateRMDialedConnectedCustomer no answerRM no answerConnect %Talk time
Dates are IST. "Dialed" counts every call placed (API rejections are counted separately and excluded). Connect % only counts calls that reached a customer, so calls the RM missed do not lower it. Older rows logged before this update count under "Customer no answer". Talk time = connected seconds reported by Acefone. History starts from the day this feature was deployed.
My Call History
#CustomerNumberPlanStatusOutcomeAttemptsDurationLast Call