Paste a call transcript, score it against the Quality Audit Guide, then submit straight to the Quality Audits sheet.
Basic identifiers for the record — matches the columns in the Quality Audits sheet.
| Staff Name | |
| Date | |
| Call Type | |
| Canvas Details | |
| Call ID | |
| Auditor |
One small relay script, deployed once, lets this page write finished audits into the Quality Audits sheet.
function doPost(e) {
var body = JSON.parse(e.postData.contents);
if (body.action === 'submit') return handleSubmit(body.payload);
return json_({error: 'Unknown action'});
}
function doGet(e) {
return json_({status: 'Audit relay is running'});
}
var TARGET_SPREADSHEET_ID = '1y_iwRNLomBeeXM9g6nXzIJwfq-X_xMhrsUQnTjHTjCE';
var TARGET_GID = 2132488623;
function getTargetSheet_() {
var ss = SpreadsheetApp.openById(TARGET_SPREADSHEET_ID);
var sheets = ss.getSheets();
for (var i = 0; i < sheets.length; i++) {
if (sheets[i].getSheetId() === TARGET_GID) return sheets[i];
}
throw new Error('Tab with gid ' + TARGET_GID + ' not found in the target spreadsheet.');
}
function handleSubmit(payload) {
var sh = getTargetSheet_();
if (sh.getLastRow() === 0) {
sh.appendRow(['Staff Name','Date','Canvas Details','Call ID',
'Identity verified (Name, DOB, address) before sharing details','Safety signal handled','Consent integrity',
'Introduction + referral reason','Program explained (plain language)','Insurance confirmed + cost reassurance-first',
'Scheduling completed cleanly','Consent + portal + save number; Closing recap','Objection handled with the right reframe',
'Accuracy, Tone / rapport','Contacted within SLA','Canvas documentation accurate','Consent/portal actually sent',
'Notes','Final Score','Auditor']);
}
sh.appendRow([payload.staffName, payload.date, payload.canvasDetails, payload.callId,
payload.identity, payload.safety, payload.consent, payload.intro, payload.program,
payload.insurance, payload.scheduling, payload.closing, payload.objection, payload.tone,
payload.sla, payload.canvas, payload.consent_sent, payload.notes, payload.finalScore, payload.auditor]);
return json_({status: 'ok'});
}
function json_(obj) {
return ContentService.createTextOutput(JSON.stringify(obj)).setMimeType(ContentService.MimeType.JSON);
}
Paste the full call transcript, click "Copy audit prompt," paste it into claude.ai, then paste Claude's reply back below. No API key needed. Every result is editable, and you can fill in everything manually too.
| Tiered Scoring Framework | Quality Metrics | Scores |
|---|---|---|
| Green Zone (≥ 90%) → Excellent quality call | Critical Guardrail | — |
| Yellow Zone (85–89%) → Acceptable but improvable | Core Execution | — |
| Red Zone (< 85%) → Needs coaching or corrective action | Process/Compliance | — |
| Total Score | — |