Live Call
0:00
Customer Name
—
Number
—
Plan
—
| # | Customer | Number | RM | Plan | Status | Outcome | Attempts | Duration | Last 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
🔑 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:
Give Acefone this URL:
—
to
24h IST
Total tries when the CUSTOMER doesn't answer. After this the lead becomes Failed.
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.
An answered call shorter than this is treated as "Customer No Answer" (voicemail picks up and Acefone reports it as answered). 0 = off.
Auto-free RM if no update received after this time
What each status means
Pending waiting to be calledDialing 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 voicemail picked up: answered under the minimum talk time). Retried per the settings above
RM No Answer RM did not pick up, so the customer was never called. Retried after a short gap, no attempt used
Failed out of attempts, or Acefone rejected the call
Skipped set manually
👥 RM Configuration
RM Number must match the number in your uploaded CSV exactly. Login Email + Password gives RMs portal access.
| Name | RM Number | API Key | Login Email | Password | Role |
|---|
🔐 Admin & Access Control
Admin users have full access — campaign control, settings, upload, delete. Grant carefully.
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
4. In Acefone webhook JSON body, add
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 end4. 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:
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
1. Go to github.com → New repository → name:
prosperr-dialer → Public2. 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
4. Set a custom name in Site Settings → rename to
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 instantly4. 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)
| RM | Dialed | Connected | Customer no answer | RM no answer | Connect % | Talk time | Avg / connected |
|---|
Day-wise
| Date | RM | Dialed | Connected | Customer no answer | RM no answer | Connect % | 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
| # | Customer | Number | Plan | Status | Outcome | Attempts | Duration | Last Call |
|---|