Daily call center pronunciation scoreboard

Score every rep's daily practice recording against the target script and log accuracy, fluency, and pacing into a live scoreboard.

Deterministic Code
SpeechaceGoogle DriveGoogle SheetsCustomer SupportOperationsDaily DigestsDocument Processing
PromptCreate

Build me a code workflow that runs a daily pronunciation scoreboard for my call center reps. Trigger: cron, every weekday at 6pm in the team's local time zone. This is a deterministic pipeline with no reasoning or summarization. Every step is a documented action.

Step 1. Use Google Drive List Files to fetch every audio file added today to a designated folder called agent-drills. Build the Drive q parameter to filter by parent folder ID, mimeType containing audio, and createdTime greater than the start of today in the team's local time zone. Return each file's id and name.

Step 2. For each file, parse the file name to extract the agent ID and the script ID. Convention: agent123_script07.mp3, where the part before the underscore is the agent ID and the part after the underscore and before the extension is the script ID. If a file name does not match the pattern, skip it and log why.

Step 3. Use Google Sheets Get Values to read the scripts tab in a specified spreadsheet. The scripts tab has a header row and two columns: script_id and script_text. Build an in-memory lookup from script_id to script_text so we do not re-read the sheet per file.

Step 4. For each parsed file, use Google Drive Download File Content to fetch the raw audio bytes for that file id. Keep it as binary; do not try to convert to text.

Step 5. Call Speechace Score Text (Pronunciation, Fluency, Intonation) with the downloaded audio and the target script text from the lookup. Pass dialect en-us by default and set include_fluency and include_intonation so the response returns pronunciation quality, fluency metrics (words per minute, pause count), and intonation. Handle Speechace error status: if audio is silent, too short, or unintelligible, record the failure and continue with the next file.

Step 6. For every successfully scored file, use Google Sheets Append Values to add one row to the daily-scores tab in the same spreadsheet. Columns, in order: date (YYYY-MM-DD in local time), agent_id, script_id, pronunciation_score, fluency_score, words_per_minute, bad_pause_count. Use USER_ENTERED value input option so dates render as dates.

Do not summarize, judge, or produce any narrative output. The Google Sheet is the dashboard. The workflow should be idempotent enough that re-running it the same day produces duplicate rows only for files that were freshly added since the last run, so use the Drive createdTime filter to bound the file set.

Configuration inputs I should be able to set: the Drive folder ID for agent-drills, the spreadsheet ID, the scripts tab name, the daily-scores tab name, the dialect, and the time zone. Credentials: Google (OAuth) for Drive and Sheets, and Speechace API key with the correct regional base URL.

Additional information

What does this prompt do?
  • Runs every weekday at 6pm and picks up every practice recording your reps dropped into a shared Google Drive folder that day.
  • Matches each recording to the script the rep was reading, using the file name to find the right target text in your scripts sheet.
  • Scores every recording for pronunciation accuracy, fluency, words per minute, and awkward pauses so QA leads can spot who needs coaching.
  • Writes one clean row per drill into a daily scores tab so managers open a single sheet and see the whole team's practice in one place.
What do I need to use this?
  • A Google account with access to the Drive folder where reps upload practice recordings.
  • A Google Sheet with two tabs: one holding your target scripts and one where daily scores get logged.
  • A Speechace account with an API key. Speechace is a specialist scoring service for spoken language.
  • A file naming convention reps follow, for example agent123_script07.mp3, so the workflow knows who recorded what.
How can I customize it?
  • Change the time or days it runs. 6pm on weekdays is a common QA cadence, but nightly or twice a day works too.
  • Point it at a different Drive folder or a different Google Sheet if you want to separate teams, campaigns, or languages.
  • Adjust the columns written to the scoreboard, for example add a call-type column or track intonation alongside pronunciation.

Frequently asked questions

Do my reps need special software to record their drills?
No. Any phone or laptop that can record a short audio clip works. Reps just save the file with a name that identifies them and the script, then drop it into the shared Google Drive folder.
What file types are supported?
Common audio formats like MP3, WAV, M4A, and OGG all work. Speechace recommends clear mono recordings at 16 kHz for the most accurate scores.
How does the workflow know which script each recording is for?
It reads the file name. A convention like agent123_script07.mp3 tells the workflow which rep recorded it and which script to compare the audio against.
Can I use this for languages other than English?
Yes. Speechace scores several dialects including US English, UK English, Spanish, and French. You can pick the dialect that matches your team when you set up the workflow.
Will it summarize who needs coaching?
No, and that is intentional. The scoreboard is the output. Managers scan the sheet, sort by score, and decide who to coach. If you want AI commentary on top, that is a separate workflow you can layer on.

Turn daily practice recordings into a live coaching scoreboard.

Connect Google Drive, Google Sheets, and Speechace once, and Geni scores every rep's drill every evening while you sleep.