Analysis Fields Reference
This page provides a complete reference for all fields in the analysis response. The field documentation is auto-generated from our Pydantic schemas, ensuring it's always up-to-date with the actual API.
These tables are generated directly from our source code schemas using make gen-api-docs. This guarantees the documentation matches the actual API implementation.
Quick Navigationβ
- All Fields - Complete nested structure
- Compliance Fields - Regulatory checks
- Quality Fields - Performance metrics
- Coaching Fields - Recommendations
Analysis Results - All Fieldsβ
Complete field reference for analysis results. All nested fields are expanded below.
| Field | Type | Description |
|---|---|---|
compliance | object β | Compliance-related analysis results. |
| Covers regulatory and policy adherence requirements. | ||
compliance.identity_verification | object β | Requirement 1: Identity verification in first 15 seconds |
compliance.identity_verification.verified | boolean β | Whether agent clearly stated their identity |
compliance.identity_verification.timestamp | number (optional) | Timestamp when identity was stated (seconds) |
compliance.identity_verification.flagged | boolean β | True if verification not in first 15 seconds or missing |
compliance.mandatory_disclosures | object β | Requirement 2: Mandatory disclosures check |
compliance.mandatory_disclosures.read | boolean β | Whether all mandatory disclosures were read |
compliance.mandatory_disclosures.matched_disclosures | array[string] | Disclosures that were found |
compliance.mandatory_disclosures.missing_disclosures | array[string] | Disclosures that were not found |
compliance.purpose_declaration | object β | Requirement 3: Purpose disclosed in first 4 agent interactions |
compliance.purpose_declaration.disclosed | boolean β | Whether call purpose was disclosed |
compliance.purpose_declaration.interaction_number | integer (optional) | Which interaction number disclosed purpose |
compliance.purpose_declaration.flagged | boolean β | True if not disclosed in first 4 interactions |
compliance.prohibited_phrases | object β | Requirement 4: Prohibited phrases detection |
compliance.prohibited_phrases.used | boolean β | Whether any prohibited phrases were used |
compliance.prohibited_phrases.instances | array[ProhibitedPhraseInstance] | Instances of prohibited phrases |
compliance.prohibited_phrases.instances[].phrase | string β | |
compliance.prohibited_phrases.instances[].timestamp | number β | |
compliance.sensitive_data | object β | Requirement 8: Sensitive data detection |
compliance.sensitive_data.shared | boolean β | Whether sensitive data was shared |
compliance.sensitive_data.instances | array[SensitiveDataInstance] | Instances of sensitive data sharing |
compliance.sensitive_data.instances[].type | string β | Type of sensitive data (e.g., SSN, credit card) |
compliance.sensitive_data.instances[].timestamp | number β | |
quality | object β | Quality-related analysis results. |
| Covers customer experience and agent performance metrics. | ||
quality.sentiment_analysis | object β | Requirement 5: Sentiment trajectory analysis |
Note: For very short calls (< 30 seconds), first_30s_avg and last_30s_avg
may not be calculable. In such cases, default value of 3 (neutral) is used. |
| quality.sentiment_analysis.trajectory | array[SentimentPoint] | Sentiment points throughout call |
| quality.sentiment_analysis.trajectory[].timestamp | number β | |
| quality.sentiment_analysis.trajectory[].level | integer (β₯1, β€5) β | Sentiment level 1-5 (1=worst, 5=best) |
| quality.sentiment_analysis.first_30s_avg | integer (optional) | Average sentiment in first 30 seconds (default 3 for short calls) |
| quality.sentiment_analysis.last_30s_avg | integer (optional) | Average sentiment in last 30 seconds (default 3 for short calls) |
| quality.sentiment_analysis.drop_magnitude | integer (optional) | Magnitude of sentiment drop (default 0 for insufficient data) |
| quality.sentiment_analysis.flagged_drop | boolean | True if drop > 2 levels |
| quality.sentiment_analysis.negative_periods | array[NegativePeriod] | Periods of negative sentiment |
| quality.sentiment_analysis.negative_periods[].start | number β | |
| quality.sentiment_analysis.negative_periods[].end | number β | |
| quality.sentiment_analysis.negative_periods[].de_escalation_present | boolean β | |
| quality.sentiment_analysis.negative_periods[].flagged | boolean β | |
| quality.greeting | object β | Requirement 6: Greeting detection and timing |
| quality.greeting.present | boolean β | Whether agent greeted the other party |
| quality.greeting.timestamp | number (optional) | When greeting occurred (seconds) |
| quality.greeting.flagged_missing | boolean β | True if no greeting found |
| quality.greeting.flagged_late | boolean β | True if greeting after 10 seconds |
| quality.call_structure | object β | Requirement 7: Call structure adherence |
| quality.call_structure.follows_structure | boolean β | Whether call follows expected structure |
| quality.call_structure.stages_completed | array[string] β | Stages that were completed |
| quality.call_structure.missing_stages | array[string] β | Stages that were missing |
| quality.resolution_marker | object β | Requirement 9: Resolution confirmation |
| quality.resolution_marker.confirmed | boolean β | Whether agent confirmed issue resolution |
| quality.resolution_marker.timestamp | number (optional) | When resolution was confirmed |
| quality.empathetic_language | object β | Requirement 10: Empathetic language usage |
| quality.empathetic_language.used | boolean β | Whether empathetic language was used |
| quality.empathetic_language.instances | array[number] | Timestamps of empathetic language |
| quality.empathetic_language.three_min_intervals_checked | integer β | Number of 3-minute intervals checked |
| quality.empathetic_language.intervals_without_empathy | integer β | Number of intervals without empathy |
| quality.empathetic_language.flagged | boolean β | True if any 3-minute interval lacks empathy |
| quality.objections | object β | Requirement 11: Objection handling |
| quality.objections.identified | array[ObjectionInstance] | Objections from customer |
| quality.objections.identified[].timestamp | number β | |
| quality.objections.identified[].handled | boolean β | |
| quality.objections.flagged_unhandled | boolean β | True if any objection not handled properly |
| quality.objections.initial_purpose_addressed | boolean β | Whether initial purpose was still addressed |
| quality.persuasion_markers | object β | Requirement 12: Persuasion markers count |
| quality.persuasion_markers.count | integer (β₯0) β | Number of persuasion markers used |
| quality.persuasion_markers.instances | array[PersuasionInstance] | Instances of persuasion markers |
| quality.persuasion_markers.instances[].timestamp | number β | |
| quality.persuasion_markers.instances[].type | string β | Type of persuasion marker |
| quality.interruptions | object β | Requirement 13: Over-talk and interruptions |
| quality.interruptions.count | integer (β₯0) β | Number of interruptions |
| quality.interruptions.instances | array[number] | Timestamps of interruptions |
| quality.interruptions.flagged | boolean β | True if more than 5 interruptions |
| quality.language_adequacy | object β | Requirement 14: Language appropriateness |
| quality.language_adequacy.appropriate | boolean β | Whether language was appropriate |
| quality.language_adequacy.issues | array[LanguageIssue] | Language adequacy issues |
| quality.language_adequacy.issues[].type | string β | Type of language issue |
| quality.language_adequacy.issues[].timestamp | number β | |
| quality.language_adequacy.flagged | boolean β | True if language inadequacy found |
| coaching | object β | Coaching and improvement recommendations. |
| coaching.recommendations | array[CoachingRecommendation] β | Actionable coaching points |
| coaching.recommendations[].category | string β | Category of coaching (e.g., 'greeting', 'empathy') |
| coaching.recommendations[].priority | string β | Priority level (high, medium, low) |
| coaching.recommendations[].description | string β | Specific recommendation text |
| coaching.customer_effort_score | integer (β₯0, β€5) β | Customer effort score (0-5, 5=highest effort) |
- β = Required field
- (optional) = Optional/nullable field
Compliance Fieldsβ
Regulatory and policy compliance checks.
| Field | Type | Description |
|---|---|---|
identity_verification | object β | Requirement 1: Identity verification in first 15 seconds |
identity_verification.verified | boolean β | Whether agent clearly stated their identity |
identity_verification.timestamp | number (optional) | Timestamp when identity was stated (seconds) |
identity_verification.flagged | boolean β | True if verification not in first 15 seconds or missing |
mandatory_disclosures | object β | Requirement 2: Mandatory disclosures check |
mandatory_disclosures.read | boolean β | Whether all mandatory disclosures were read |
mandatory_disclosures.matched_disclosures | array[string] | Disclosures that were found |
mandatory_disclosures.missing_disclosures | array[string] | Disclosures that were not found |
purpose_declaration | object β | Requirement 3: Purpose disclosed in first 4 agent interactions |
purpose_declaration.disclosed | boolean β | Whether call purpose was disclosed |
purpose_declaration.interaction_number | integer (optional) | Which interaction number disclosed purpose |
purpose_declaration.flagged | boolean β | True if not disclosed in first 4 interactions |
prohibited_phrases | object β | Requirement 4: Prohibited phrases detection |
prohibited_phrases.used | boolean β | Whether any prohibited phrases were used |
prohibited_phrases.instances | array[ProhibitedPhraseInstance] | Instances of prohibited phrases |
prohibited_phrases.instances[].phrase | string β | |
prohibited_phrases.instances[].timestamp | number β | |
sensitive_data | object β | Requirement 8: Sensitive data detection |
sensitive_data.shared | boolean β | Whether sensitive data was shared |
sensitive_data.instances | array[SensitiveDataInstance] | Instances of sensitive data sharing |
sensitive_data.instances[].type | string β | Type of sensitive data (e.g., SSN, credit card) |
sensitive_data.instances[].timestamp | number β |
- β = Required field
- (optional) = Optional/nullable field
Quality Fieldsβ
Customer experience and agent performance metrics.
| Field | Type | Description |
|---|---|---|
sentiment_analysis | object β | Requirement 5: Sentiment trajectory analysis |
Note: For very short calls (< 30 seconds), first_30s_avg and last_30s_avg
may not be calculable. In such cases, default value of 3 (neutral) is used. |
| sentiment_analysis.trajectory | array[SentimentPoint] | Sentiment points throughout call |
| sentiment_analysis.trajectory[].timestamp | number β | |
| sentiment_analysis.trajectory[].level | integer (β₯1, β€5) β | Sentiment level 1-5 (1=worst, 5=best) |
| sentiment_analysis.first_30s_avg | integer (optional) | Average sentiment in first 30 seconds (default 3 for short calls) |
| sentiment_analysis.last_30s_avg | integer (optional) | Average sentiment in last 30 seconds (default 3 for short calls) |
| sentiment_analysis.drop_magnitude | integer (optional) | Magnitude of sentiment drop (default 0 for insufficient data) |
| sentiment_analysis.flagged_drop | boolean | True if drop > 2 levels |
| sentiment_analysis.negative_periods | array[NegativePeriod] | Periods of negative sentiment |
| sentiment_analysis.negative_periods[].start | number β | |
| sentiment_analysis.negative_periods[].end | number β | |
| sentiment_analysis.negative_periods[].de_escalation_present | boolean β | |
| sentiment_analysis.negative_periods[].flagged | boolean β | |
| greeting | object β | Requirement 6: Greeting detection and timing |
| greeting.present | boolean β | Whether agent greeted the other party |
| greeting.timestamp | number (optional) | When greeting occurred (seconds) |
| greeting.flagged_missing | boolean β | True if no greeting found |
| greeting.flagged_late | boolean β | True if greeting after 10 seconds |
| call_structure | object β | Requirement 7: Call structure adherence |
| call_structure.follows_structure | boolean β | Whether call follows expected structure |
| call_structure.stages_completed | array[string] β | Stages that were completed |
| call_structure.missing_stages | array[string] β | Stages that were missing |
| resolution_marker | object β | Requirement 9: Resolution confirmation |
| resolution_marker.confirmed | boolean β | Whether agent confirmed issue resolution |
| resolution_marker.timestamp | number (optional) | When resolution was confirmed |
| empathetic_language | object β | Requirement 10: Empathetic language usage |
| empathetic_language.used | boolean β | Whether empathetic language was used |
| empathetic_language.instances | array[number] | Timestamps of empathetic language |
| empathetic_language.three_min_intervals_checked | integer β | Number of 3-minute intervals checked |
| empathetic_language.intervals_without_empathy | integer β | Number of intervals without empathy |
| empathetic_language.flagged | boolean β | True if any 3-minute interval lacks empathy |
| objections | object β | Requirement 11: Objection handling |
| objections.identified | array[ObjectionInstance] | Objections from customer |
| objections.identified[].timestamp | number β | |
| objections.identified[].handled | boolean β | |
| objections.flagged_unhandled | boolean β | True if any objection not handled properly |
| objections.initial_purpose_addressed | boolean β | Whether initial purpose was still addressed |
| persuasion_markers | object β | Requirement 12: Persuasion markers count |
| persuasion_markers.count | integer (β₯0) β | Number of persuasion markers used |
| persuasion_markers.instances | array[PersuasionInstance] | Instances of persuasion markers |
| persuasion_markers.instances[].timestamp | number β | |
| persuasion_markers.instances[].type | string β | Type of persuasion marker |
| interruptions | object β | Requirement 13: Over-talk and interruptions |
| interruptions.count | integer (β₯0) β | Number of interruptions |
| interruptions.instances | array[number] | Timestamps of interruptions |
| interruptions.flagged | boolean β | True if more than 5 interruptions |
| language_adequacy | object β | Requirement 14: Language appropriateness |
| language_adequacy.appropriate | boolean β | Whether language was appropriate |
| language_adequacy.issues | array[LanguageIssue] | Language adequacy issues |
| language_adequacy.issues[].type | string β | Type of language issue |
| language_adequacy.issues[].timestamp | number β | |
| language_adequacy.flagged | boolean β | True if language inadequacy found |
- β = Required field
- (optional) = Optional/nullable field
Coaching Fieldsβ
Coaching recommendations and improvement suggestions.
| Field | Type | Description |
|---|---|---|
recommendations | array[CoachingRecommendation] β | Actionable coaching points |
recommendations[].category | string β | Category of coaching (e.g., 'greeting', 'empathy') |
recommendations[].priority | string β | Priority level (high, medium, low) |
recommendations[].description | string β | Specific recommendation text |
customer_effort_score | integer (β₯0, β€5) β | Customer effort score (0-5, 5=highest effort) |
- β = Required field
- (optional) = Optional/nullable field
Field Type Referenceβ
| Type | Description | Example |
|---|---|---|
string | Text value | "agent_001" |
integer | Whole number | 125 |
number | Decimal number | 125.5 |
boolean | True or false | true |
array[type] | List of items | [1, 2, 3] |
object | Nested structure | {"key": "value"} |
(optional) | Field may be null or missing | - |
β | Required field (must be present) | - |
Updating This Documentationβ
This documentation is automatically generated from the Pydantic schemas. To update:
# Regenerate all API documentation
make gen-api-docs
# Or regenerate only field tables
make gen-api-fields
The generated files are in docs-site/docs/api/fields/ and are prefixed with _ to indicate they're auto-generated.
Relatedβ
- Retrieve Analysis - Get analysis results
- API Examples - Real response examples
- OpenAPI Specification - Machine-readable API spec