Dashboard

0 recordings loaded

Sentiment trend (last 14 days)

Disposition breakdown

Agent leaderboard

AgentCallsAvg sentimentScore

Top customer issues (AI-detected)

WhenDirAgentCampaignIn-groupPhoneDuration DispoSentimentScoreAI
No calls match your filters.

All agents

AgentTotal callsAvg durationAvg sentimentCoaching scoreScript adherenceTop issue

Performance over time

Skill radar (avg across calls)

Recurring coaching themes

Script adherence breakdown

All call recordings

WhenPhoneDurationDispoSentimentScoreAdherenceAI

Calls per day (inbound vs outbound)

Calls by hour of day

By agent

AgentCallsInOutSalesTotal talkAvg talk

By in-group (inbound)

In-groupCallsSalesTotal talkAvg talk

By campaign (outbound)

CampaignCallsSalesTotal talkAvg talk

Dispositions

StatusCount% of total

All accounts

You're viewing every user with an account on this server. "Sign in as" swaps your session for theirs so you can modify their settings, scripts, webhooks, and see what they see. A banner will appear at the top of the page until you click "Return to admin."

UsernameEmailRoleSign-in CreatedAnalysesActions
No users yet.

ProDial connection

Live ProDial mode Enables real ProDial calls (via non_agent_api.php or the custom endpoint below). Turn this on once your server URL, API user, and password are filled in.
Just the base URL — we'll append /dialer/non_agent_api.php automatically. You can also paste a full .php URL if your install uses a custom path.
Resolves to:
Only needed if the location field in recording_lookup returns relative filenames.
★ Recommended path (works even on locked-down hosted ProDial): Upload prodial-recordings.php to your ProDial server and use it instead of non_agent_api.php. It queries recording_log directly and returns JSON — no recording_lookup validation to fight with. See the "Custom recordings endpoint" section below.
If using non_agent_api.php: Fill in at least one of Agent user, Lead ID, Phone number, or Recording ID below. Be aware that hosted ProDial providers sometimes disable recording_lookup regardless of parameters — if that's the case, use the custom endpoint above instead.
Date range applied to whichever filter(s) you set below.
ProDial agent_user login (not display name).
Returns every recording tied to one specific lead.
Digits only, no punctuation. Some installs accept % as a wildcard.
Exact match for a single recording row.
Browsers block direct calls to ProDial because of CORS. Run a tiny proxy on your machine and point this field at it. Supports three formats:
http://localhost:8787 — local reverse proxy (path is forwarded as-is)
https://example.com/fetch?url= — query-string style (target URL encoded and appended)
https://example.com/fetch?url={url} — placeholder style
Resolves to:
Need a proxy? Pick one:

Option A — PHP (easiest, no install). Upload prodial-proxy.php to the same folder as non_agent_api.php on your ProDial server. Then set the CORS proxy URL above to
https://elite.prodial.io/dialer/prodial-proxy.php?url=

Option B — Python (runs locally, no install if Python is already on your PC). Open a terminal in the folder containing prodial-proxy.py and run:
python prodial-proxy.py --target https://elite.prodial.io
Then set the CORS proxy URL to http://localhost:8787.

Option C — Node.js. Install Node 18+ from nodejs.org, then run node prodial-proxy.js --target https://elite.prodial.io and point the proxy URL at http://localhost:8787.

This app calls non_agent_api.php with the functions recording_lookup and agent_stats. Your ProDial user needs modify_non_agent_api permission. Credentials are stored on the ProDial server alongside this page.

Calls data endpoint (single source of truth)

Point this at prodial-call-export.php on your ProDial server. That one script powers everything: the Calls tab (via ?format=json, automatic), the Reports tab (below), and the CSV download. No separate recordings endpoint needed.

Powers the Calls tab (via ?format=json) and the CSV download.
Server-side aggregation for the Reports tab. Same token.
Same token used by both endpoints.
Include auto-dialer system calls (VDAD, VDCL) Off (default) → only human-handled calls. On → matches ProDial's raw Export Calls Report exactly, including predictive dial attempts.

OpenAI (Whisper + GPT)

Calls to OpenAI go directly from your browser to api.openai.com. If the key field is empty, the app uses pre-generated demo analysis so you can explore the interface without spending tokens.

Agent scripts / talk tracks (per campaign)

Different campaigns can have different scripts. Pick a campaign below to edit its script, or pick Default for the fallback used when no campaign-specific script is set. Upload a Word doc or text file and click Auto-format with AI to convert any free-form script into the structured step format the analyzer expects.

Useful for adding a script for a campaign not in the loaded data.

Account & server storage

You're signed in with your own account. All settings and previous AI analyses are stored on the server under your username, so opening the URL on any device or browser shows the same data.

Webhooks

Post a JSON payload to a URL you control whenever a selected event fires. Each webhook is per-account. Body shape: { event, timestamp, user, payload }. Requests are sent from your browser using no-cors, so your endpoint doesn't need to accept CORS.

AI analysis cache

Every analysis is saved on the server and restored automatically on the next page load — you only pay OpenAI once per call.

API debug log

The exact outgoing URL and raw response from ProDial. Updates when you click Test connection.
Click “Test ProDial connection” to populate this.

Call detail

Recording

Sentiment timeline

No AI analysis yet
Click "Re-analyze with AI" at the top to generate the agent scorecard, coaching opportunities, and suggested improvements for this call.

Customer objections + how to handle them

Transcript

Script adherence

AI call summary