Cancellations

Identifying Cancellation Requests

The “Cancellations” tracker detects instances where a customer expresses a desire to cancel an existing product, subscription, or service. Understanding these requests helps teams address customer concerns proactively, refine retention tactics, and improve product experiences to reduce churn.

Who Benefits:

  • Project Managers & Team Leads: Recognize patterns in cancellation requests, informing retention strategies, resource planning, and targeted interventions.
  • Sales & CX Teams: Quickly identify dissatisfaction or changing customer needs, providing opportunities to offer alternatives or incentives.
  • Business Managers & Strategists: Spot trends in cancellation triggers, guiding product enhancements, pricing adjustments, or marketing changes.
  • Compliance Officers: Ensure that cancellation requests are handled according to legal and contractual obligations, maintaining compliance and trust.

Value Proposition:

  • Early Warning Signs: Highlighting cancellation requests enables timely follow-ups to prevent churn.
  • Actionable Insights: Machine-readable JSON output integrates into dashboards and analytics tools, streamlining response strategies.
  • Continuous Improvement: Understanding why customers cancel helps refine offerings, improving satisfaction and retention.

Data Dictionary

Objective:

Detect phrases in a conversation that indicate the customer wants to cancel a product or service. This tracker returns occurrences of matched phrases, timestamps, and confidence scores.

Proposed JSON Schema:

{
  "trackers": [
    {
      "name": "Cancellations",
      "matches": [
        {
          "text": "<string>",
          "timestamp": "<ISO 8601 or relative time>",
          "confidence": <number> // 0.0 to 1.0
        }
      ]
    }
  ]
}

Data Dictionary:

FieldDescriptionExample
trackersAn array of tracker objects.[ {...} ]
trackers[].nameThe tracker’s name."Cancellations"
trackers[].matchesAn array of matches representing cancellation requests.[ {...}, {...} ]
matches[].textThe exact or semantically matched phrase indicating a request to cancel."I’d like to cancel my subscription."
matches[].timestampWhen the phrase occurred (ISO 8601 or relative time)."2024-07-10T15:30:00Z" or "00:05:15"
matches[].confidenceConfidence (0.0 to 1.0) representing certainty of intent to cancel.0.92

If No Matches Found:
If no cancellation requests are detected, return an empty matches array for the "Cancellations" tracker or omit the tracker. If no trackers apply, return:

{
  "trackers": []
}

Determining Confidence & Thresholds

How the Cancellations Tracker Works:

  • Seed the tracker with phrases commonly used by customers to request cancellation (e.g., "I want to cancel," "please end my subscription," "terminate my contract").
  • The system interprets these seed phrases and identifies semantically similar statements.
  • Confidence reflects how closely a detected phrase aligns with a cancellation request.

Confidence & Calibration:

  • Initial Testing: Validate on known calls to confirm that detected phrases truly indicate cancellation intent.
  • Refine Phrases: Add or remove seed phrases to reduce false positives or broaden coverage.
  • Thresholding: Downstream consumers can ignore low-confidence matches if necessary.
  • Stakeholder Feedback: Incorporate insights from CX teams or compliance officers to define what constitutes a valid cancellation request.

Prompt Construction & Instructions

Role Specification & Reiteration:

  • Present the system as a “highly experienced assistant” detecting cancellation requests.
  • Reiterate instructions: return only JSON, follow the schema, no extra commentary.

No Hallucination:

  • Only detect cancellations if clearly stated in the transcript.
  • If uncertain, provide lower confidence or omit the match.

Strict Formatting:

  • Return only JSON with trackers.
  • If none found, return empty trackers.

Example Prompt for Implementation

System Message (Role: System):
"You are a highly experienced assistant that identifies 'Cancellations' in a conversation. You have:

  • A transcript
  • A 'Cancellations' tracker defined by seed phrases indicating cancellation requests.

Your task:

  1. Detect phrases where the customer requests a cancellation.
  2. Return text, timestamp, and confidence for each match.
  3. Return only JSON according to the defined schema, no commentary.

Instructions & Variables (example):

{
  "tracker": {
    "name": "Cancellations",
    "phrases": [
      "I want to cancel",
      "please end my subscription",
      "terminate my contract",
      "cancel my membership"
    ]
  }
}

User Message (Role: User):
"Analyze the following transcript and detect 'Cancellations' mentions:

[TRANSCRIPT_JSON][TRANSCRIPT_JSON]"

Expected Output Format:

{
  "trackers": [
    {
      "name": "Cancellations",
      "matches": [
        {
          "text": "I want to cancel my service now.",
          "timestamp": "2024-07-10T15:30:00Z",
          "confidence": 0.95
        }
      ]
    }
  ]
}