Reviewing Interactions (The Audit Tab)
The Audit tab is where you review individual evaluated interactions. This is the starting point for daily QA work: finding calls to review, examining scorecards, reading transcripts, and submitting feedback.
4.1 Navigate the Audit Tab
- Log in to Ema at app.ema.co
- Navigate to your Agent QA AI Employee
- Click the Audit tab
The Audit area has three tabs (pills) across the top: Audit, Accepted Feedback, and Accuracy. The sections below cover the Audit table and interaction detail drawer. See the Accuracy tab for monthly report cards and reviewer workflows.
The list syncs automatically, and shows when it last did so (e.g. "Synced a few seconds ago" or "Not synced yet"). Click Refresh at any time to pull the latest data without waiting.
Each row in the interaction list displays:
| Field | Description |
|---|---|
| Interaction Details | Combined column showing the Interaction ID (resource_id, truncated to first 12 characters with # prefix) and the Agent ID displayed below it. A New badge appears next to interactions you haven't opened yet, and clears once you view that interaction's details. A Reviewed mark appears on interactions where every flagged rule result has been resolved. |
| Duration | Call length in seconds |
| QA Status | The current state of the evaluation |
| QA Score | Overall score out of 100. If the score has not been computed yet, it displays as "--". A score with a dashed border is provisional -- at least one pass/fail rule result is flagged and awaiting a reviewer decision, so the number may change. |
| Call Time (UTC) | When the call actually took place. Immutable -- unaffected by reruns. |
| Ingested At (UTC) | When the interaction was last processed by Ema. Normally the same as when it was first ingested, but a rerun (see 4.3 Rerunning an Interaction) updates this timestamp and floats the row to the top of the list, while Call Time stays fixed. |
| Feedback | Count of feedback items submitted on this interaction's scorecard. |
QA Status Values
| Status | What It Means |
|---|---|
| QA completed | Evaluation is finished and the score is available. Click in to see full details. |
| QA in progress | The system is still processing this interaction. Check back shortly. |
| QA failed | Something went wrong during processing. Ema automatically retries a failed or stuck interaction internally for a period before treating it as permanently failed. If it's still failed after that, use Rerun (4.3) to trigger it manually, or check audio quality, file format, or contact your administrator. |
A transcript missing an agent turn, missing a customer turn, or with no utterances at all cannot be evaluated. These rows show QA failed with a status-cell tooltip and, in the detail view, a "Could not evaluate this interaction" empty state naming the specific reason -- rather than being silently scored.
Failed Evaluation Error Types
When an evaluation fails due to a problem with the submitted input, the audit row surfaces a specific error type. These are terminal failures -- the system will not retry them, because the outcome cannot change without the caller supplying different input.
| Error Type | What It Means | How to Fix |
|---|---|---|
| EMPTY_TRANSCRIPT | The submitted transcript is well-formed but contains no utterances. | Re-submit with a valid transcript. |
| CORRUPT_TRANSCRIPT | The transcript file carries payload but could not be decoded into utterances -- for example, a .json upload whose body is not a valid array of {time, role, text} objects, or a file whose extension does not match its contents. The decode is deterministic: the same bytes fail on every attempt. Distinct from EMPTY_TRANSCRIPT, which is a well-formed transcript that simply carries no utterances. | Re-export the transcript from the source system and re-submit. |
| MISSING_REQUIRED_SPEAKERS | The transcript has no agent utterance, no customer utterance, or both -- there is no interaction to score. | Re-submit a transcript that includes both an agent and a customer turn. |
| EMPTY_AUDIO | The audio container carries no decodable audio payload (for example, a WAV file that is only its 44-byte RIFF header, or an Ogg/WebM-Opus container with no audio pages). Detected before the speech-to-text provider is called. | Re-export the recording and re-submit. |
| CORRUPT_AUDIO | The audio carries payload but the speech-to-text provider rejected it as undecodable. The same bytes are rejected on every attempt, so re-submitting the identical file will not succeed. | Re-export the recording from the source system and re-submit. |
Internal or transient backend failures (for example, a provider outage or a diarization error) are retried automatically and do not produce one of the error types above. If a row is stuck in QA failed with no input-problem error type, use Rerun to trigger it again.
4.2 Filters and Sorting
Available Filters
| Filter | Description |
|---|---|
| Date range | Custom date range (UTC). Presets: Today, Last 7 Days, Last Week, Last 14 Days, Last 30 Days, Last Month, or custom range. |
| Agent | Dropdown to select a specific agent or view all agents. |
| Interaction ID | Text search field to find a specific call by resource ID (UCID). |
| QA Status | Filter by evaluation status. |
| QA Score | Filter by preset score bands: Auto-fail (0), Low (1-50), Medium (51-75), High (76-100). |
| Review status | Filter the list by manual-review state. All shows every interaction (default). Needs review shows only interactions with at least one open flagged rule result. Reviewed shows interactions that were flagged and are now fully resolved. Each option displays a count. When a non-default option is active, a pill appears above the table; click its × to clear the filter. |
Sorting Options
| Sort By | Directions |
|---|---|
| Call Date (default) | Ascending or Descending |
| Call Length | Ascending or Descending |
Pagination
Results display 25 interactions per page. Navigation uses token-based pagination.
4.3 Rerunning an Interaction
Permission required: Builder, Manager, or Admin.
A rerun re-processes an interaction end to end, re-transcribing/re-redacting and re-scoring, and refreshes the same row in place with new verdicts, score, insights, and CSAT. Use it after editing a rule, fixing a processing issue, or when an interaction is stuck or failed.
- In the Audit tab, select one interaction, or multi-select any number of them.
- Click Rerun.
- Confirm the warning -- rerunning deletes any existing feedback on the selected interaction(s). For a multi-select, the warning states how many of the selected interactions have feedback that will be lost.
The row shows "QA in progress" while it reprocesses, then settles with refreshed results. Its Ingested At timestamp updates to the rerun time (floating it to the top of the list), while Call Time never changes.
An interaction can only be rerun while its raw source (audio or transcript) is still within its data-retention window -- see 2. Setting Up Agent QA for retention periods. Interactions past that window are shown blocked/non-selectable, since there is no longer a source to re-process.
Interactions that failed with a terminal input error (such as CORRUPT_TRANSCRIPT or CORRUPT_AUDIO) cannot be fixed by rerunning -- the same file will produce the same failure. Re-export the file from the source system and re-submit it as a new interaction.
Rerun Ineligibility Reasons
When a row cannot be re-run, the audit row surfaces a reason. The server reports the first applicable reason in this order: row state (in progress or already queued) takes priority over attempt limit, which takes priority over retention.
| Reason | What It Means |
|---|---|
| IN_PROGRESS | The evaluation is currently running. Wait for it to finish before requesting a rerun. |
| ALREADY_QUEUED | A rerun for this row is already pending (the row is in a QUEUED state). |
| RETENTION_EXPIRED | The raw source file is past, or within the safety buffer of, its retention window. There is no longer a source to re-process. |
| ATTEMPT_LIMIT | The row has hit the consecutive failed user-rerun cap. |
4.4 Bulk Actions
Permission required: Builder, Manager, or Admin.
You can select multiple interactions in the Audit tab and act on them together. A Deselect all control clears the entire selection.
Bulk Archive
Select up to 50 interactions at once and click Archive to archive them in bulk. A warning is shown if any of the selected interactions have pending Continuous Learning (CL) data that will be lost when archived.
Bulk Delete
Select multiple interactions and click Delete to delete their evaluations in bulk. This calls the BulkDeleteQATranscriptEvaluation RPC and permanently removes the selected evaluation records.
Bulk delete is permanent. Deleted evaluation records cannot be recovered.
4.5 View Interaction Details
Click View Details on any interaction to open the detailed view.
When the interaction has open flagged rule results, the drawer shows a review queue position (for example, "1 of 5") so you can step through flagged interactions without returning to the table. Use the forward and back arrows to move to the next or previous flagged interaction in the queue.
Interaction Summary
A collapsible panel at the top of the detail view gives an AI-generated plain-language summary of the call -- what the customer needed, what the agent did, and how it was resolved. It uses the same PII redaction as the transcript, so sensitive values appear as redaction placeholders (e.g. a masked name or account number) rather than the original text.
The drawer header also shows a language badge indicating the transcription (input) language used for the call. The badge displays the language the caller chose for speech-to-text (e.g. "Spanish" for a call submitted with language code es). When no language was specified and auto-detect ran, the badge shows "Auto" followed by the language that speech-to-text found (e.g. "Auto · Portuguese"). If auto-detect ran but no language was identified, or if no language information is available for the interaction, the badge is not shown.
Below the summary, the detail view has the following tabs:
Scorecard Tab
The core evaluation view. A summary bar at the top shows the total parameter count with Pass and Fail totals.
The scorecard tab offers two views you can switch between. Your preference is saved locally and persists across sessions.
Flagged Rule Results
Rule evaluation cards with an amber border have been flagged for manual review because the model's confidence was low or the transcript did not contain enough data to support a verdict. Each flagged card shows the flag reason:
| Reason | What It Means |
|---|---|
| Low confidence | The model produced an answer but its confidence score fell below the threshold set for this persona. |
| Insufficient data | The transcript did not contain enough information for the model to produce a reliable verdict. |
Expand the flag line on a flagged card to see What's uncertain -- a one-sentence note from the model explaining what it was unsure about. For a categorical rule, the note names the categories that appeared to fit.
Each flagged card shows confidence and data sufficiency. Confidence is displayed as a word: High (0.85 or above), Medium (0.70 to below 0.85), or Low (below 0.70).
Reviewer Decisions
When a rule result is flagged, the card shows actions for a reviewer to decide it. The available actions depend on the rule type:
| Rule type | Actions |
|---|---|
| Pass/Fail (boolean) | Confirm -- the model's answer was correct; keep it. Override -- the model's answer was wrong; choose the correct verdict (Pass, Fail, or Not Applicable). |
| Categorical | Pick -- choose a category from the rule's existing option set. Propose -- suggest a category outside the option set (recorded for consideration; the option set itself does not change). |
| Descriptive | Accept -- the model's written answer was good enough; keep it. Rewrite -- replace the model's text with your own. |
Each decision resolves that flag. When all flagged results on an interaction are resolved, the Reviewed mark appears on the row in the table, and any provisional score indicator is removed.
You can change a decision at any time by reopening the card and selecting a different action.
Reviewer decisions are not the same as thumbs-up/thumbs-down feedback. Decisions do not appear in feedback counts or in the feedback funnel, and they cannot be edited or deleted through the feedback controls.
Provisional Score
When a pass/fail rule result is flagged and no decision has been made yet, the QA score is provisional -- the model's answer counts toward the score, but a reviewer decision can still change it. A provisional score is shown with a dashed border on the score badge, both in the table and in the drawer. Once all pass/fail flags on the interaction are resolved, the dashed border is removed and the score is final.
Only pass/fail (boolean) rule flags make a score provisional, because only those rules feed the QA score. Flagged categorical or descriptive results queue the interaction for review but do not affect the score or the provisional indicator.
Classic View
| Field | Description |
|---|---|
| Result | Color-coded badge: Pass (green), Fail (red), or N/A (gray) |
| Parameter name and category | What was being evaluated and which group it belongs to |
| Pass/Fail instruction | The evaluation criteria used for this parameter |
| Rationale | Detailed, plain-language explanation of why the parameter passed or failed. This is the most important field for understanding a score. |
| Verbatims | Click the "Source" accordion to expand and see the exact transcript excerpts used as evidence |
New View (ScorecardV2)
The new view opens by default. Failed rules are expanded automatically, since those are what a reviewer typically looks for first. A New badge in the toolbar opens a "What's new" popover describing the changes. Click Switch to classic view to go back.
| Control | Description |
|---|---|
| Sort & filter | Opens a popover with filter groups (Result, Criticality, Type, Category) and view options (sort order, group-by). An active-filter count badge appears on the button when filters are applied. Click Clear filters inside the popover to reset. |
| Legend | A popover showing the outcome marks and rule-type icons used in the list. |
| Expand all / Collapse all | Expands or collapses all rules currently visible in the list. |
| Group by | Groups rules by category, outcome, or no grouping. Available inside the Sort & filter popover. |
Each rule row in the new view also shows the model's confidence level (High, Medium, or Low) and data sufficiency for that result.
When the list is filtered, the rule count shows how many rules are visible out of the total (e.g. "3 of 8 rules"). Click Clear filters below the list to reset all active filters at once.
Transcript Tab
Full conversation text with speaker labels and timestamps. Every speaker the transcript carries is shown under its own label -- not just Agent and Customer. A supervisor, an IVR/bot segment, or an external third party (e.g. a hotel receptionist or interpreter brought into the call) appears under its own descriptive label. QA scoring still evaluates only the interaction's designated agent; every other party, including third parties, is treated as context.
The Transcript tab does not currently have an in-panel search feature.
Strengths Tab
Positive agent behaviors identified during the interaction.
| Field | Description |
|---|---|
| Driver | The positive behavior identified (e.g., "Clear policy explanation"), displayed as bold title |
| Category | The broader behavioral category (e.g., "Communication Skills"), displayed as a badge |
| Justification | Why this was identified as a strength, labeled "Key insight" in the UI |
Opportunities Tab
Areas for improvement with coaching recommendations.
| Field | Description |
|---|---|
| Driver | The issue identified (e.g., "Did not confirm customer understanding"), displayed as bold title |
| Category | The broader behavioral category (e.g., "Active Listening"), displayed as a badge |
| Justification | Why this was identified as an opportunity and what could have been done differently |
CSAT Mapping Tab
Shows Ema's AI-derived customer satisfaction analysis for the interaction, plus any customer-submitted survey feedback ingested via the CSAT Ingestion API.
| Field | Description |
|---|---|
| Overall Summary | A banner giving the overall sentiment (positive, negative, or neutral) and a plain-language summary of the customer's experience. |
| Customer Satisfaction | Sentiment badge, evaluation text, and supporting transcript verbatims (via the "Source" accordion) for how satisfied the customer appeared. |
| Issue Resolution | Sentiment badge, evaluation text, and sources for whether the customer's issue was resolved. |
| Call to Action | Sentiment badge, evaluation text, and sources for any follow-up action expected from the call. |
| Customer Behavior | Sentiment badge, evaluation text, and sources describing how the customer behaved during the call. |
| Customer Feedback | A survey score or comment submitted via the CSAT Ingestion API. A value of 1-5 renders as a star rating; anything else (including an emoji-derived score) renders as text. Hidden if no survey feedback was submitted. |
If Ema has not yet produced a CSAT analysis for this interaction, the tab shows an empty state instead of the fields above.
Additional Data
Agent Talk Time, User Talk Time, and Dead Air are computed in the backend and stored in the database, but are not currently displayed in the evaluation details drawer in the UI.
| Field | Description |
|---|---|
| Agent Talk Time | How much of the call the agent was speaking |
| User Talk Time | How much the customer was speaking |
| Third-Party Talk Time | How much any other speaker (supervisor, IVR/bot, external third party) was speaking. Only populated when the transcript carries a third party and per-utterance timestamps. |
| Dead Air | Periods of silence during the call |
4.6 Feedback Interaction Deeplink
When feedback is accepted on a scorecard parameter, the feedback item now links directly back to the source interaction in the Audit tab. Clicking the link opens the interaction's detail view, so you can navigate from an accepted suggestion straight to the call it came from without searching manually.