Analysis Types

Add Analysis Type
Id Title Instructions
1 COMPLIANCE Return ONLY this JSON schema: { "sentiment": "positive|neutral|negative", "agent_mood": "😊 Happy|🙂 Satisfied|😐 Neutral|😟 Unhappy|😡 Angry", "customer_mood": "😊 Happy|🙂 Satisfied|😐 Neutral|😟 Unhappy|😡 Angry", "compliance_passed": true|false, "customer_happy": true|false, "query_resolved": true|false, "score": 0-100, "key_topics": "comma separated topics", "summary": "2-4 sentence summary", "formatted_transcript": "call transcript with Agent said:/Customer said: labels", "compliance_findings": [ { "rule_id": number, "rule": "text", "Additional_Rule": "text", "met": true|false|"N/A", "evidence": "short quote from transcript", "reason": "explain why passed or failed" } ] } INSTRUCTIONS: First, format the transcript using speaker labels: "Agent said:" and "Customer said:". ===================================================== RULE-CHECKING LOGIC (supports rules with or without Additional_Rule) ===================================================== For each rule object in the input: {"id":50,"RuleText":"...", "Additional_Rule":""} {"id":31,"RuleText":"...", "Additional_Rule":"Only if Car Breakdown is mentioned in this conversation"} (and up to 100 more): If Additional_Rule is empty: - Evaluate the rule normally. - If the transcript clearly satisfies the rule → met = true - If the transcript clearly contradicts the rule → met = false If Additional_Rule contains text: 1. First check if the condition described in Additional_Rule appears anywhere in the transcript. 2. If the condition is NOT present → met = "N/A" 3. If the condition IS present: - If the transcript satisfies the rule → met = true - If the transcript does not satisfy the rule → met = false Evidence must be a direct quote from the transcript or empty if none exists. Reason must briefly explain why the rule passed, failed, or was marked N/A. Return ALL rules exactly as provided, regardless of outcome. ===================================================== INTERPRETING Additional_Rule CONDITIONS ===================================================== When an Additional_Rule is provided, you MUST first determine whether the condition applies based on the transcript. Examples of valid Additional_Rule conditions include (but are not limited to): - "Only if Existing 24/7 Home Rescue Customer" - "Only if Existing Customer with Another Provider" - "Only if customer has existing cover" - "Only if renewal is being discussed" - "Only if Car Breakdown is mentioned" - "Only if boiler age is provided" General rule for ALL Additional_Rule conditions: 1. If the condition IS present in the transcript: → Evaluate the main rule normally (met = true or met = false). 2. If the condition is NOT present in the transcript: → Set met = "N/A" → evidence should be empty → reason should be something like: "Condition not present in transcript." ----------------------------------------------------- A) "Only if Existing 24/7 Home Rescue Customer" ----------------------------------------------------- Treat this condition as PRESENT (so the rule applies) when the transcript clearly shows that the customer already has an active or previous policy with 24/7 Home Rescue. Examples of evidence that the customer is an existing 24/7 Home Rescue customer: - Customer says they already have a policy with 24/7 Home Rescue. - Customer talks about renewing 24/7 Home Rescue cover. - Agent refers to "your existing 24/7 Home Rescue policy" or similar wording. - Customer mentions previous claims or issues under a 24/7 Home Rescue agreement. If none of these (or similar) indications appear, treat the condition as NOT present: - met = "N/A" - evidence = "" - reason = "Customer is not an existing 24/7 Home Rescue customer in this call." ----------------------------------------------------- B) "Only if Existing Customer with Another Provider" ----------------------------------------------------- Treat this condition as PRESENT (so the rule applies) when the transcript clearly shows that the customer already has cover with a different provider (NOT 24/7 Home Rescue). Examples of evidence that the customer has existing cover with another provider: - Customer says they are "with British Gas", "with HomeServe", or another company name. - Customer mentions "my current provider is ..." (not 24/7 Home Rescue). - Customer refers to "my current cover", "my existing policy", or "my renewal price" with another provider. - The call is clearly a switch/competition scenario from another company to 24/7 Home Rescue. If there is no clear indication that the customer has cover with another provider, treat the condition as NOT present: - met = "N/A" - evidence = "" - reason = "Customer does not have existing cover with another provider in this call." ----------------------------------------------------- C) Other Additional_Rule conditions ----------------------------------------------------- For other conditions such as: - "Only if Car Breakdown is mentioned" - "Only if boiler age is provided" - "Only if customer is a landlord" - etc. Apply the same pattern: - If the condition is clearly mentioned or implied in the transcript → rule applies (evaluate true/false). - If the condition never appears → met = "N/A", with a brief reason that the condition was not present. ===================================================== IMPORTANT — FULL TRANSCRIPT EVALUATION & CHUNK HANDLING ===================================================== You may be given only part of the call transcript (a chunk), not the full call. If you cannot clearly determine from THIS transcript whether a rule was met or failed, you MUST set met = "N/A" (never false). Only set met = true or met = false when the information in THIS transcript is clearly sufficient to be confident that the rule passed or failed. ===================================================== EVIDENCE INTERPRETATION RULES (IMPROVES ACCURACY & REALISM) ===================================================== Use the following rules to correctly interpret evidence: 1. Missing evidence ≠ failed rule - Only set met = false when the transcript clearly shows the rule WAS NOT met. - If the transcript does not give enough information → met = "N/A" 2. Confirmation can be phrased differently Treat a rule as met = true when the required information appears in ANY form, even if not asked the same way as written in the rule. Examples: - If the customer spells their name and the agent acknowledges it → counts as confirming the full name. - If the agent asks for postcode and house/door number and the customer provides both → this counts as confirming the address. - If the agent collects name, address, DOB, and phone → this counts as completing verification, even if “verification” is not explicitly said. 3. Combine information across multiple turns Some data is confirmed in separate exchanges. You MUST combine evidence across the entire transcript. Example: - Agent asks for postcode early, and later confirms street name and door number. Taken together → satisfies “confirm first line and postcode”. 4. Collecting information IS confirmation If the agent obtains the required information from the customer, it counts as confirmation. The agent does not need to say “Can you confirm”. 5. Approximate or partial answers still count Treat approximate answers as valid evidence: - “About 48 a month” is enough for “current/renewal price”. - “It’s a Worcester boiler” is enough for boiler make/model. - “About 15 years old” satisfies boiler age. 6. Behaviour-focused evaluation For boiler, gas, cover, and property questions: If the agent asks relevant questions and the customer answers them, this satisfies the rule — even if the question wasn’t phrased exactly like the rule. Examples: - Asking “Is it a combi boiler?” or “Is it wall-mounted?” counts as confirming boiler type/location. - Asking “Who is your current provider?” and the customer replies with a provider name satisfies the rule about existing cover. ===================================================== DECISION LOGIC SUMMARY ===================================================== Use this exact logic: - If the transcript clearly shows the required behaviour happened → met = true - If the transcript clearly shows the opposite (a failure or contradiction) → met = false - If the transcript does NOT contain enough evidence to decide → met = "N/A" ===================================================== COMPLIANCE_FINDINGS OUTPUT REQUIREMENTS: ===================================================== - You are always given a list called COMPLIANCE RULES. - For every single rule object in COMPLIANCE RULES, you MUST return exactly ONE item in the compliance_findings array. - The number of items in compliance_findings MUST be exactly the same as the number of rules provided. - Do NOT skip or drop any rules, even if you think they are not applicable. In that case use met = "N/A". - Do NOT merge rules. Every rule_id must appear separately in compliance_findings. - If you are running out of space, shorten the evidence and reason texts instead of omitting rules. - Evidence and reason should be concise (ideally no more than 1–2 short sentences each). compliance_passed: - Should reflect whether all applicable rules (met = true/false, ignoring N/A) have passed. Do NOT provide any explanation outside the JSON. ALWAYS return valid JSON only. Edit
4 New Compliance Return ONLY this JSON schema: { "sentiment": "positive|neutral|negative", "agent_mood": "😊 Happy|🙂 Satisfied|😐 Neutral|😟 Unhappy|😡 Angry", "customer_mood": "😊 Happy|🙂 Satisfied|😐 Neutral|😟 Unhappy|😡 Angry", "compliance_passed": true|false, "customer_happy": true|false, "query_resolved": true|false, "score": 0-100, "key_topics": "comma separated topics", "summary": "2-4 sentence summary", "qa_summary": "Combined soft-skill, behavioural, and service-quality evaluation based on AQ questions", "formatted_transcript": "call transcript with Agent said:/Customer said: labels", "compliance_findings": [ { "rule_id": number, "rule": "text", "Additional_Rule": "text", "met": true|false|"N/A", "evidence": "short quote from transcript", "reason": "explain why passed or failed" } ] } INSTRUCTIONS: First, format the transcript using speaker labels: "Agent said:" and "Customer said:". ===================================================== RULE-CHECKING LOGIC (supports rules with or without Additional_Rule) ===================================================== For each rule object in the input: {"id":50,"RuleText":"...", "Additional_Rule":""} {"id":31,"RuleText":"...", "Additional_Rule":"Only if Car Breakdown is mentioned in this conversation"} (and up to 100 more): If Additional_Rule is empty: - Evaluate the rule normally. - If the transcript clearly satisfies the rule → met = true - If the transcript clearly contradicts the rule → met = false If Additional_Rule contains text: 1. First check if the condition described in Additional_Rule appears anywhere in the transcript. 2. If the condition is NOT present → met = "N/A" 3. If the condition IS present: - If the transcript satisfies the rule → met = true - If the transcript does not satisfy the rule → met = false Evidence must be a direct quote from the transcript or empty if none exists. Reason must briefly explain why the rule passed, failed, or was marked N/A. Return ALL rules exactly as provided, regardless of outcome. ===================================================== INTERPRETING Additional_Rule CONDITIONS ===================================================== When an Additional_Rule is provided, you MUST first determine whether the condition applies based on the transcript. Examples of valid Additional_Rule conditions include (but are not limited to): - "Only if Existing 24/7 Home Rescue Customer" - "Only if Existing Customer with Another Provider" - "Only if customer has existing cover" - "Only if renewal is being discussed" - "Only if Car Breakdown is mentioned" - "Only if boiler age is provided" General rule for ALL Additional_Rule conditions: 1. If the condition IS present in the transcript: → Evaluate the main rule normally (met = true or met = false). 2. If the condition is NOT present in the transcript: → Set met = "N/A" → evidence should be empty → reason should be something like: "Condition not present in transcript." ===================================================== 📌 QA SUMMARY (UPDATED LIST) ===================================================== These questions are NOT treated as compliance rules. You must evaluate them collectively and summarise the agent’s performance in the qa_summary field. The QA Summary MUST reflect the following behaviours: Opening & Initial Contact Did the agent open the call politely and with a welcome greeting? Did the agent mention the company name? Did the agent give their name? Did the agent ask how they could help the customer (for inbound calls)? Verification / Security Did the agent advise the customer that security checks were required? (IF no DPA completed) Cover/Policy Understanding Did the agent confirm who the cover is with? Did the agent confirm the cost of cover? Did the agent confirm how much the customer currently pays / renewal price? Service Fit & Explanation Did the agent offer an appropriate solution that met the customer’s needs? Did the agent answer questions satisfactorily? Did the agent offer detailed explanations of the service/product? Customer Understanding & Satisfaction Did the agent confirm the customer was satisfied with their responses and call handling? Did the agent reiterate or clarify any confusing information? Did the agent ensure the customer understood outcomes/agreements? Hold / Transfer Behaviour Did the agent follow correct internal procedures when placing the customer on hold? Did the agent follow correct internal procedures when transferring the call? Soft Skills & Professionalism Did the agent avoid long pauses during the call? Was the agent professional throughout? Was the agent proactive and confident? Did the agent build rapport with the customer? Did the agent maintain proper tone, pitch, volume, and pace? Did the agent show empathy when required (e.g., apologising)? Did the agent speak clearly and was fully understood? Did the agent demonstrate active listening? Service Accuracy Did the agent provide accurate and relevant information? Did the agent ensure they provided a service suited to the customer? Ending the Call Did the agent ask if further help was needed? Did the agent ensure the customer was happy with the service received? Did the agent close the call appropriately? Did the agent summarise the call discussion or agreement? These should be summarised into one coherent paragraph in "qa_summary". ----------------------------------------------------- A) "Only if Existing 24/7 Home Rescue Customer" ----------------------------------------------------- Treat this condition as PRESENT (so the rule applies) when the transcript clearly shows that the customer already has an active or previous policy with 24/7 Home Rescue. Examples of evidence that the customer is an existing 24/7 Home Rescue customer: - Customer says they already have a policy with 24/7 Home Rescue. - Customer talks about renewing 24/7 Home Rescue cover. - Agent refers to "your existing 24/7 Home Rescue policy" or similar wording. - Customer mentions previous claims or issues under a 24/7 Home Rescue agreement. If none of these (or similar) indications appear, treat the condition as NOT present: - met = "N/A" - evidence = "" - reason = "Customer is not an existing 24/7 Home Rescue customer in this call." ----------------------------------------------------- B) "Only if Existing Customer with Another Provider" ----------------------------------------------------- Treat this condition as PRESENT (so the rule applies) when the transcript clearly shows that the customer already has cover with a different provider (NOT 24/7 Home Rescue). Examples of evidence that the customer has existing cover with another provider: - Customer says they are "with British Gas", "with HomeServe", or another company name. - Customer mentions "my current provider is ..." (not 24/7 Home Rescue). - Customer refers to "my current cover", "my existing policy", or "my renewal price" with another provider. - The call is clearly a switch/competition scenario from another company to 24/7 Home Rescue. If there is no clear indication that the customer has cover with another provider, treat the condition as NOT present: - met = "N/A" - evidence = "" - reason = "Customer does not have existing cover with another provider in this call." ----------------------------------------------------- C) Other Additional_Rule conditions ----------------------------------------------------- For other conditions such as: - "Only if Car Breakdown is mentioned" - "Only if boiler age is provided" - "Only if customer is a landlord" - etc. Apply the same pattern: - If the condition is clearly mentioned or implied in the transcript → rule applies (evaluate true/false). - If the condition never appears → met = "N/A", with a brief reason that the condition was not present. ===================================================== IMPORTANT — FULL TRANSCRIPT EVALUATION & CHUNK HANDLING ===================================================== You may be given only part of the call transcript (a chunk), not the full call. If you cannot clearly determine from THIS transcript whether a rule was met or failed, you MUST set met = "N/A" (never false). Only set met = true or met = false when the information in THIS transcript is clearly sufficient to be confident that the rule passed or failed. ===================================================== EVIDENCE INTERPRETATION RULES (IMPROVES ACCURACY & REALISM) ===================================================== Use the following rules to correctly interpret evidence: 1. Missing evidence ≠ failed rule - Only set met = false when the transcript clearly shows the rule WAS NOT met. - If the transcript does not give enough information → met = "N/A" 2. Confirmation can be phrased differently Treat a rule as met = true when the required information appears in ANY form, even if not asked the same way as written in the rule. Examples: - If the customer spells their name and the agent acknowledges it → counts as confirming the full name. - If the agent asks for postcode and house/door number and the customer provides both → this counts as confirming the address. - If the agent collects name, address, DOB, and phone → this counts as completing verification, even if “verification” is not explicitly said. 3. Combine information across multiple turns Some data is confirmed in separate exchanges. You MUST combine evidence across the entire transcript. Example: - Agent asks for postcode early, and later confirms street name and door number. Taken together → satisfies “confirm first line and postcode”. 4. Collecting information IS confirmation If the agent obtains the required information from the customer, it counts as confirmation. The agent does not need to say “Can you confirm”. 5. Approximate or partial answers still count Treat approximate answers as valid evidence: - “About 48 a month” is enough for “current/renewal price”. - “It’s a Worcester boiler” is enough for boiler make/model. - “About 15 years old” satisfies boiler age. 6. Behaviour-focused evaluation For boiler, gas, cover, and property questions: If the agent asks relevant questions and the customer answers them, this satisfies the rule — even if the question wasn’t phrased exactly like the rule. Examples: - Asking “Is it a combi boiler?” or “Is it wall-mounted?” counts as confirming boiler type/location. - Asking “Who is your current provider?” and the customer replies with a provider name satisfies the rule about existing cover. ===================================================== DECISION LOGIC SUMMARY ===================================================== Use this exact logic: - If the transcript clearly shows the required behaviour happened → met = true - If the transcript clearly shows the opposite (a failure or contradiction) → met = false - If the transcript does NOT contain enough evidence to decide → met = "N/A" ===================================================== COMPLIANCE_FINDINGS OUTPUT REQUIREMENTS: ===================================================== - You are always given a list called COMPLIANCE RULES. - For every single rule object in COMPLIANCE RULES, you MUST return exactly ONE item in the compliance_findings array. - The number of items in compliance_findings MUST be exactly the same as the number of rules provided. - Do NOT skip or drop any rules, even if you think they are not applicable. In that case use met = "N/A". - Do NOT merge rules. Every rule_id must appear separately in compliance_findings. - If you are running out of space, shorten the evidence and reason texts instead of omitting rules. - Evidence and reason should be concise (ideally no more than 1–2 short sentences each). compliance_passed: - Should reflect whether all applicable rules (met = true/false, ignoring N/A) have passed. Do NOT provide any explanation outside the JSON. ALWAYS return valid JSON only. Edit
3 NPS OBJECTIVE Analyse the call transcript and produce: 1. Accurate Call Type Identification 2. Correct Journey Path Classification (for new claims) 3. Stage Scoring using the correct framework for that call type 4. Sentiment Detection across the call 5. Friction and Behaviour Indicators 6. A Clear Narrative Summary 7. Structured JSON Output for dashboards and reporting OUTPUT Return ONLY a single JSON object matching this schema (no markdown, no code fences): {{ ""CallType"": ""New Claim – Boiler Breakdown"" | ""Existing Claim – Status / Progress / Admin / Clarification"" | ""Escalation / Complaint"" | ""Non-Claim Call (Billing, Sales, Cancellation, etc.)"", ""PathType"": ""Total Loss – Accepted"" | ""Partial Loss – Accepted"" | ""Claim Declined"" | """" (empty if not a New Claim), ""StageScores"": {{ // Keys depend on CallType – see frameworks below. // Values MUST be one of: ""COMPLETED"", ""PARTIALLY COMPLETED"", ""NOT COMPLETED"". }}, ""Sentiment"": {{ ""CustomerStart"": ""frustrated|neutral|confused|calm|angry|worried|reassured|relieved"", ""CustomerMid"": ""frustrated|neutral|confused|calm|angry|worried|reassured|relieved"", ""CustomerEnd"": ""frustrated|neutral|confused|calm|angry|worried|reassured|relieved"", ""AgentTone"": ""poor|average|good|excellent"", ""FrictionIndicators"": [""free text short phrases describing friction points""] }}, ""OutcomeSummary"": ""1–3 sentence summary of what customer wanted, what agent provided, final outcome, clarity of next steps."", ""KeyEvidence"": {{ ""Quotes"": [""short direct quotes from the transcript that support your decisions""] }}, ""NarrativeSummary"": ""4–7 sentence narrative summarising the call in plain English"" }} STEP 1 — CALL TYPE CLASSIFICATION Classify the call into exactly ONE of: 1. ""New Claim – Boiler Breakdown"" 2. ""Existing Claim – Status / Progress / Admin / Clarification"" 3. ""Escalation / Complaint"" 4. ""Non-Claim Call (Billing, Sales, Cancellation, etc.)"" If the call is a Non-Claim Call, you MUST: - Set CallType = ""Non-Claim Call (Billing, Sales, Cancellation, etc.)"" - Set PathType = """" - StageScores MUST be an empty object {{}}. STEP 2 — PATH TYPE (ONLY IF NEW CLAIM) If CallType = ""New Claim – Boiler Breakdown"", set PathType to exactly ONE of: 1. ""Total Loss – Accepted"" 2. ""Partial Loss – Accepted"" 3. ""Claim Declined"" If CallType is not a New Claim, set PathType = """". STEP 3 — STAGE SCORING For each stage, score as: ""COMPLETED"", ""PARTIALLY COMPLETED"", or ""NOT COMPLETED"". Include evidence in KeyEvidence.Quotes. A. NEW CLAIM STAGE FRAMEWORK (CallType: New Claim – Boiler Breakdown) Use these JSON keys in StageScores: - ""ProblemDescriptionCaptured"" - ""EligibilityChecked"" - ""TriageCompleted"" - ""CustomerInformationVerified"" - ""OutcomeDeliveredAndExplained"" - ""AppointmentScheduling"" - ""ExpectationSetting"" - ""ClosureAndNextSteps"" B. EXISTING CLAIM STAGE FRAMEWORK (CallType: Existing Claim – Status / Progress / Admin / Clarification) Use these JSON keys in StageScores: - ""CorrectExistingClaimIdentified"" - ""CustomerDetailsVerified"" - ""AccurateJobStatusOrAdminUpdateProvided"" - ""NextStepsExplainedClearly"" - ""ExpectationsManagedRealistically"" - ""CustomerUnderstandingChecked"" - ""ClosureAndProfessionalism"" C. ESCALATION / COMPLAINT STAGE FRAMEWORK (CallType: Escalation / Complaint) Use these JSON keys in StageScores: - ""AcknowledgementOfIssue"" - ""EmpathyDemonstrated"" - ""OwnershipTaken"" - ""CauseOrSituationExplainedAccurately"" - ""ResolutionOrEscalationPathProvided"" - ""ToneAndProfessionalismMaintained"" - ""ExpectationsManagedClearly"" - ""ClosureAndReassurance"" STEP 4 — SENTIMENT AND BEHAVIOUR ANALYSIS Fill Sentiment.CustomerStart, CustomerMid, CustomerEnd, AgentTone, and FrictionIndicators based on the transcript. ""FrictionIndicators"" should contain short phrases like: - ""customer repeated issue twice"" - ""customer asked for clarification on price"" - ""agent interrupted customer"" STEP 5 — OUTCOME SUMMARY In OutcomeSummary describe: - What the customer wanted - What the agent provided - Final outcome - Whether next steps were clear - Any notable risks or concerns STEP 6 — NARRATIVE SUMMARY In NarrativeSummary provide a clear 4–7 sentence story of the call in plain English. VERY IMPORTANT RULES: - Return ONE JSON object only. No markdown, no code fences, no commentary. - If information is missing, make a best-effort inference but stay realistic. - If a stage clearly did not happen, mark it as ""NOT COMPLETED"". If it partially happened, ""PARTIALLY COMPLETED"". Edit