Saltar al contenido principal

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.

Auto-Generated Documentation

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​


Analysis Results - All Fields​

Complete field reference for analysis results. All nested fields are expanded below.

FieldTypeDescription
complianceobject βœ“Compliance-related analysis results.
Covers regulatory and policy adherence requirements.
compliance.identity_verificationobject βœ“Requirement 1: Identity verification in first 15 seconds
compliance.identity_verification.verifiedboolean βœ“Whether agent clearly stated their identity
compliance.identity_verification.timestampnumber (optional)Timestamp when identity was stated (seconds)
compliance.identity_verification.flaggedboolean βœ“True if verification not in first 15 seconds or missing
compliance.mandatory_disclosuresobject βœ“Requirement 2: Mandatory disclosures check
compliance.mandatory_disclosures.readboolean βœ“Whether all mandatory disclosures were read
compliance.mandatory_disclosures.matched_disclosuresarray[string]Disclosures that were found
compliance.mandatory_disclosures.missing_disclosuresarray[string]Disclosures that were not found
compliance.purpose_declarationobject βœ“Requirement 3: Purpose disclosed in first 4 agent interactions
compliance.purpose_declaration.disclosedboolean βœ“Whether call purpose was disclosed
compliance.purpose_declaration.interaction_numberinteger (optional)Which interaction number disclosed purpose
compliance.purpose_declaration.flaggedboolean βœ“True if not disclosed in first 4 interactions
compliance.prohibited_phrasesobject βœ“Requirement 4: Prohibited phrases detection
compliance.prohibited_phrases.usedboolean βœ“Whether any prohibited phrases were used
compliance.prohibited_phrases.instancesarray[ProhibitedPhraseInstance]Instances of prohibited phrases
compliance.prohibited_phrases.instances[].phrasestring βœ“
compliance.prohibited_phrases.instances[].timestampnumber βœ“
compliance.sensitive_dataobject βœ“Requirement 8: Sensitive data detection
compliance.sensitive_data.sharedboolean βœ“Whether sensitive data was shared
compliance.sensitive_data.instancesarray[SensitiveDataInstance]Instances of sensitive data sharing
compliance.sensitive_data.instances[].typestring βœ“Type of sensitive data (e.g., SSN, credit card)
compliance.sensitive_data.instances[].timestampnumber βœ“
qualityobject βœ“Quality-related analysis results.
Covers customer experience and agent performance metrics.
quality.sentiment_analysisobject βœ“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) |

Field Markers
  • βœ“ = Required field
  • (optional) = Optional/nullable field

Compliance Fields​

Regulatory and policy compliance checks.

FieldTypeDescription
identity_verificationobject βœ“Requirement 1: Identity verification in first 15 seconds
identity_verification.verifiedboolean βœ“Whether agent clearly stated their identity
identity_verification.timestampnumber (optional)Timestamp when identity was stated (seconds)
identity_verification.flaggedboolean βœ“True if verification not in first 15 seconds or missing
mandatory_disclosuresobject βœ“Requirement 2: Mandatory disclosures check
mandatory_disclosures.readboolean βœ“Whether all mandatory disclosures were read
mandatory_disclosures.matched_disclosuresarray[string]Disclosures that were found
mandatory_disclosures.missing_disclosuresarray[string]Disclosures that were not found
purpose_declarationobject βœ“Requirement 3: Purpose disclosed in first 4 agent interactions
purpose_declaration.disclosedboolean βœ“Whether call purpose was disclosed
purpose_declaration.interaction_numberinteger (optional)Which interaction number disclosed purpose
purpose_declaration.flaggedboolean βœ“True if not disclosed in first 4 interactions
prohibited_phrasesobject βœ“Requirement 4: Prohibited phrases detection
prohibited_phrases.usedboolean βœ“Whether any prohibited phrases were used
prohibited_phrases.instancesarray[ProhibitedPhraseInstance]Instances of prohibited phrases
prohibited_phrases.instances[].phrasestring βœ“
prohibited_phrases.instances[].timestampnumber βœ“
sensitive_dataobject βœ“Requirement 8: Sensitive data detection
sensitive_data.sharedboolean βœ“Whether sensitive data was shared
sensitive_data.instancesarray[SensitiveDataInstance]Instances of sensitive data sharing
sensitive_data.instances[].typestring βœ“Type of sensitive data (e.g., SSN, credit card)
sensitive_data.instances[].timestampnumber βœ“
Field Markers
  • βœ“ = Required field
  • (optional) = Optional/nullable field

Quality Fields​

Customer experience and agent performance metrics.

FieldTypeDescription
sentiment_analysisobject βœ“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 |

Field Markers
  • βœ“ = Required field
  • (optional) = Optional/nullable field

Coaching Fields​

Coaching recommendations and improvement suggestions.

FieldTypeDescription
recommendationsarray[CoachingRecommendation] βœ“Actionable coaching points
recommendations[].categorystring βœ“Category of coaching (e.g., 'greeting', 'empathy')
recommendations[].prioritystring βœ“Priority level (high, medium, low)
recommendations[].descriptionstring βœ“Specific recommendation text
customer_effort_scoreinteger (β‰₯0, ≀5) βœ“Customer effort score (0-5, 5=highest effort)
Field Markers
  • βœ“ = Required field
  • (optional) = Optional/nullable field

Field Type Reference​

TypeDescriptionExample
stringText value"agent_001"
integerWhole number125
numberDecimal number125.5
booleanTrue or falsetrue
array[type]List of items[1, 2, 3]
objectNested 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.