> ## Documentation Index
> Fetch the complete documentation index at: https://docs.callkaro.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Call Drop-Off Reasons

> Categorize why customers didn't convert for better insights and optimization

## Overview

Call drop-off reasons help you understand why customers didn't convert during calls. By categorizing non-conversions, you gain valuable insights to improve your sales process, messaging, and product offerings.

<Note>
  When a call ends without conversion, AI automatically selects the most appropriate reason from your predefined list.
</Note>

***

## What Are Drop-Off Reasons?

Drop-off reasons are predefined categories that explain why a customer didn't complete a desired action (purchase, booking, signup, etc.) during the call.

**Benefits:**

* **Identify patterns** in non-conversions
* **Optimize** your pitch and messaging
* **Prioritize** product or service improvements
* **Track** effectiveness of changes over time
* **Understand** customer objections better

***

## Creating Drop-Off Reasons

<Steps>
  <Step title="Navigate to Drop-Off Reasons">
    In your agent configuration, scroll to the **Call Drop-Off Reasons** section
  </Step>

  <Step title="Click Add Call Drop-Off Reason">
    Click the **"Add Call Drop-Off Reason"** button
  </Step>

  <Step title="Define the Reason">
    **Name:** Short, descriptive identifier (e.g., `NOT_INTERESTED`, `BUDGET_CONSTRAINTS`)

    **Description:** Clear explanation of when this reason applies

    <Warning>
      The description is critical - it tells the AI exactly when to select this reason.
    </Warning>
  </Step>

  <Step title="Add Multiple Reasons">
    Create all relevant drop-off reasons for your business (typically 5-10 reasons)
  </Step>

  <Step title="Enable &#x22;Others&#x22; Option">
    Check **"Also include Others if none of the given reasons matches"**

    This provides a fallback for calls that don't fit your predefined categories.

    <Tip>
      Enabling "Others" ensures every non-converted call gets categorized, even edge cases.
    </Tip>
  </Step>
</Steps>

***

## Common Drop-Off Reasons

Use these as templates or inspiration for your own drop-off reasons:

<AccordionGroup>
  <Accordion title="NOT_INTERESTED" icon="hand">
    **Description:**

    ```
    Customer explicitly stated they are not interested in the 
    product/service or do not have a current need for it
    ```

    **When to use:** Customer shows no interest or explicitly declines
  </Accordion>

  <Accordion title="BUDGET_CONSTRAINTS" icon="money-bill">
    **Description:**

    ```
    Customer expressed interest but mentioned that the price is too 
    high or they don't have the budget right now
    ```

    **When to use:** Price is the primary barrier, customer likes the product
  </Accordion>

  <Accordion title="NEEDS_MORE_TIME" icon="clock">
    **Description:**

    ```
    Customer needs time to think about it, consult with others, or 
    wants to research more before making a decision
    ```

    **When to use:** Customer is considering but not ready to commit
  </Accordion>

  <Accordion title="ALREADY_HAS_SOLUTION" icon="check-double">
    **Description:**

    ```
    Customer already has a similar product/service from a competitor 
    and is satisfied with it
    ```

    **When to use:** Customer has existing solution from competitor
  </Accordion>

  <Accordion title="TECHNICAL_ISSUES" icon="triangle-exclamation">
    **Description:**

    ```
    Call was disrupted by technical problems such as poor connection, 
    network errors, or system failures
    ```

    **When to use:** Technical problems prevented proper conversation
  </Accordion>

  <Accordion title="WRONG_CONTACT" icon="user-xmark">
    **Description:**

    ```
    The person who answered is not the decision maker or the right 
    person to talk to about this product/service
    ```

    **When to use:** Speaking with wrong person, need to reach decision maker
  </Accordion>

  <Accordion title="TIMING_NOT_RIGHT" icon="calendar-xmark">
    **Description:**

    ```
    Customer is interested but the timing is not right (e.g., busy 
    season, just made a purchase, waiting for funding)
    ```

    **When to use:** Interest exists but external timing issues prevent conversion
  </Accordion>

  <Accordion title="FEATURES_MISSING" icon="puzzle-piece">
    **Description:**

    ```
    Customer needs specific features or capabilities that the product 
    doesn't currently offer
    ```

    **When to use:** Product lacks required features or functionality
  </Accordion>

  <Accordion title="CONTRACTUAL_OBLIGATIONS" icon="file-contract">
    **Description:**

    ```
    Customer is locked into an existing contract or agreement with 
    another provider
    ```

    **When to use:** Customer wants to switch but has contractual barriers
  </Accordion>
</AccordionGroup>

***

## Industry-Specific Examples

### E-commerce

**Drop-Off Reasons:**

* `OUT_OF_STOCK` - Desired product not currently available
* `SHIPPING_COST` - Shipping charges too high for customer
* `PAYMENT_ISSUE` - Problem with payment method or processing
* `DELIVERY_TIME` - Delivery timeframe doesn't meet customer needs
* `WRONG_SIZE_COLOR` - Specific variant not available

***

### Healthcare/Medical

**Drop-Off Reasons:**

* `NO_AVAILABILITY` - No suitable appointment slots available
* `INSURANCE_NOT_ACCEPTED` - Insurance provider not accepted
* `DOCTOR_PREFERENCE` - Wants specific doctor who's unavailable
* `LOCATION_INCONVENIENT` - Clinic location too far or inaccessible
* `REFERRAL_REQUIRED` - Needs referral from primary care physician

***

### Real Estate

**Drop-Off Reasons:**

* `BUDGET_MISMATCH` - Properties outside customer's budget range
* `LOCATION_NOT_PREFERRED` - Available properties in wrong location
* `JUST_RESEARCHING` - Early research phase, not ready to commit
* `FINANCING_ISSUES` - Cannot secure mortgage or financing
* `PROPERTY_TYPE_MISMATCH` - Available properties don't match requirements

***

### SaaS/Software

**Drop-Off Reasons:**

* `INTEGRATION_CONCERNS` - Software doesn't integrate with existing tools
* `LEARNING_CURVE` - Platform too complex or time-consuming to learn
* `DATA_MIGRATION` - Concerns about moving data from current system
* `TEAM_SIZE_MISMATCH` - Pricing or features not suitable for team size
* `SECURITY_COMPLIANCE` - Doesn't meet security or compliance requirements

***

## Best Practices

<AccordionGroup>
  <Accordion title="Keep Reasons Mutually Exclusive" icon="layer-group">
    Each reason should be distinct to avoid AI confusion.

    **Good (Mutually Exclusive):**

    * `NOT_INTERESTED` - No interest at all
    * `INTERESTED_BUT_EXPENSIVE` - Interested but price is issue
    * `INTERESTED_WRONG_TIMING` - Interested but timing is issue

    **Bad (Overlapping):**

    * `NOT_INTERESTED` - Not interested
    * `PRICE_TOO_HIGH` - Price is high (could also mean not interested)
    * `NOT_RIGHT_NOW` - Too vague, overlaps with timing
  </Accordion>

  <Accordion title="Be Specific in Descriptions" icon="bullseye">
    **Vague:**

    ```
    Description: Customer didn't want it
    ```

    **Specific:**

    ```
    Description: Customer explicitly stated they are not interested 
    in the product/service, do not have a need for it, or are not 
    the target audience. They showed no interest throughout the call.
    ```
  </Accordion>

  <Accordion title="Start with 5-8 Core Reasons" icon="seedling">
    Begin with the most common objections:

    1. NOT\_INTERESTED
    2. BUDGET\_CONSTRAINTS
    3. NEEDS\_MORE\_TIME
    4. ALREADY\_HAS\_SOLUTION
    5. TIMING\_NOT\_RIGHT

    Add more specific reasons as you identify patterns in your "Others" category.
  </Accordion>

  <Accordion title="Use UPPERCASE_SNAKE_CASE for Names" icon="signature">
    **Recommended:**

    * `BUDGET_CONSTRAINTS`
    * `TECHNICAL_ISSUES`
    * `WRONG_CONTACT`

    This makes them easy to identify in analytics and dashboards.
  </Accordion>

  <Accordion title="Review and Refine Regularly" icon="rotate">
    **Monthly Review:**

    1. Check "Others" category for patterns
    2. Create new reasons for common patterns
    3. Merge or remove rarely-used reasons
    4. Refine descriptions if AI is misclassifying
  </Accordion>

  <Accordion title="Consider the Customer Journey" icon="route">
    Create reasons that map to different stages:

    **Early Stage:**

    * `JUST_RESEARCHING`
    * `GATHERING_INFORMATION`

    **Mid Stage:**

    * `COMPARING_OPTIONS`
    * `NEEDS_APPROVAL`

    **Late Stage:**

    * `ALMOST_READY`
    * `MINOR_CONCERNS`
  </Accordion>
</AccordionGroup>

***

## Using Drop-Off Data

### In CRM Integration

Use drop-off reasons to:

* Tag leads appropriately
* Trigger different nurture sequences
* Prioritize follow-ups
* Segment audiences

**Example:**

* `BUDGET_CONSTRAINTS` → Add to "Price-sensitive" nurture campaign
* `NEEDS_MORE_TIME` → Schedule follow-up in 1 week
* `ALREADY_HAS_SOLUTION` → Add to "Competitor comparison" sequence

### In Post-Call Functions

Access drop-off reasons in your post-call functions:

```javascript theme={null}
async function handleDropOff(context) {
    const dropOffReason = context.post_call["x-call-drop-off-reason"];
    
    if (dropOffReason === 'BUDGET_CONSTRAINTS') {
        // Send discount offer email
        await axios.post('https://api.example.com/send-email', {
            template: 'budget_friendly_options',
            to: context.customer_phone
        });
    } else if (dropOffReason === 'NEEDS_MORE_TIME') {
        // Schedule follow-up call
        const followUpDate = moment().add(7, 'days').format('YYYY-MM-DD');
        context.post_call.next_call_date = followUpDate;
    }
}
```

***

## Troubleshooting

<AccordionGroup>
  <Accordion title="Wrong reason being selected" icon="exclamation-triangle">
    **Possible Causes:**

    * Reason descriptions are too similar
    * Description doesn't match actual conversation patterns
    * Multiple valid reasons (AI picks primary one)

    **Solutions:**

    1. Make descriptions more specific and distinct
    2. Add examples of what does and doesn't qualify
    3. Review call transcripts to understand AI's logic
    4. Consider if you need more granular categories
  </Accordion>

  <Accordion title="Too many 'Others' selections" icon="circle-question">
    **Issue:** Many calls categorized as "Others"

    **Solution:**

    1. Review "Others" calls to find patterns
    2. Create new drop-off reasons for common patterns
    3. Ensure existing reason descriptions cover edge cases

    **Example Pattern:**
    If you see many "Others" are about shipping internationally, add:

    ```
    INTERNATIONAL_SHIPPING_UNAVAILABLE: Cannot ship to customer's 
    country or international shipping costs are prohibitive
    ```
  </Accordion>

  <Accordion title="Different reasons for same objection" icon="clone">
    **Issue:** Similar objections getting different reasons

    **Solution:**
    Make descriptions more consistent and specific:

    **Before:**

    * Reason A: "Too expensive"
    * Reason B: "Price concerns"

    **After:**

    * Reason A: "Customer explicitly said price is too high compared to budget"
    * Reason B: "Customer concerned about ROI or value for money, not absolute price"
  </Accordion>

  <Accordion title="Reason not appearing in analytics" icon="chart-simple">
    **Possible Causes:**

    * Reason recently added (no historical data)
    * No calls have received this reason yet
    * Typo in reason name

    **Solution:**

    1. Run test calls to verify reason is being used
    2. Check spelling and case sensitivity
    3. Wait for more data if recently added
  </Accordion>
</AccordionGroup>

***

## Advanced Use Cases

### Dynamic Follow-Up Sequences

Create automated follow-up flows based on drop-off reasons:

```javascript theme={null}
async function scheduleFollowUp(context) {
    const reason = context.post_call["x-call-drop-off-reason"];
    
    const followUpSchedule = {
        'NEEDS_MORE_TIME': { days: 7, sequence: 'nurture_sequence_1' },
        'BUDGET_CONSTRAINTS': { days: 30, sequence: 'budget_friendly' },
        'FEATURES_MISSING': { days: 90, sequence: 'product_updates' },
        'ALREADY_HAS_SOLUTION': { days: 180, sequence: 'competitor_comparison' }
    };
    
    const schedule = followUpSchedule[reason];
    
    if (schedule) {
        context.post_call.follow_up_date = moment()
            .add(schedule.days, 'days')
            .format('YYYY-MM-DD');
        context.post_call.sequence_type = schedule.sequence;
    }
}
```

<Tip>
  Fewer, well-defined reasons are more actionable than many overlapping ones.
</Tip>

***

## Getting Help

<CardGroup cols={2}>
  <Card title="Test Your Reasons" icon="vial">
    Use Test Call to verify drop-off reasons are being selected correctly
  </Card>

  <Card title="Contact Support" icon="headset">
    Our team can help optimize your drop-off reason configuration for your industry
  </Card>
</CardGroup>
