> ## 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 Initiation & Termination

> Configure how calls start and end

## Overview

Call Initiation & Termination settings control:

1. **Call Initiation** - Who speaks first when a call connects
2. **Initial Delay** - How long to wait before AI speaks
3. **Message Interruption** - Whether users can interrupt the opening message
4. **Call Termination** - Custom messages when ending calls

These settings can be configured separately for **outbound** and **inbound** calls.

***

## Call Initiation Modes

<Tabs>
  <Tab title="User Initiates">
    **Behavior:** AI remains silent until the user speaks first

    **Use When:**

    * User expects to speak first (traditional phone behavior)
    * Inbound calls where customer initiates
    * Formal or professional settings

    **Example Flow:**

    ```
    Call connects → Silence → User: "Hello?" → AI responds
    ```
  </Tab>

  <Tab title="AI Initiates (Dynamic)">
    **Behavior:** AI begins with a dynamic message based on your system prompt

    **Use When:**

    * Outbound calls
    * AI-driven conversations
    * You want AI to generate contextual greetings

    **Example Flow:**

    ```
    Call connects → AI: "Hi! This is calling from [Company]. How can I help you today?"
    ```

    <Note>
      The AI generates the opening message dynamically based on your system prompt and conversation context.
    </Note>
  </Tab>

  <Tab title="AI Initiates (Custom)">
    **Behavior:** AI begins with your predefined custom message

    **Use When:**

    * Need consistent, branded opening
    * Specific compliance or legal requirements
    * Want to include variables in greeting

    **Example Flow:**

    ```
    Custom Message: "Hello {{customer_name}}, this is {{agent_name}} calling from {{company_name}}"
    AI says: "Hello Rajesh, this is Maya calling from Callkaro"
    ```

    <Tip>
      Use `{{variable_name}}` to include dynamic values in your custom message.
    </Tip>
  </Tab>
</Tabs>

***

## Configuration

### Outbound Calls

<Steps>
  <Step title="Select Initiation Mode">
    **Call Initiation for Outbound Calls**

    Choose one of three modes:

    * User Initiates (AI remains silent)
    * AI Initiates with dynamic message
    * AI Initiates with custom message
  </Step>

  <Step title="Set Custom Message (If Applicable)">
    If you selected "AI Initiates: Custom message":

    **Custom Message for Outbound Calls**

    Enter your message using variables:

    ```
    Hello {{customer_name}}, this is {{agent_name}} calling from {{company_name}}. 
    I'm calling regarding {{reason}}.
    ```
  </Step>

  <Step title="Configure Initial Delay">
    **Initial delay (in seconds) before AI speaks in outbound calls**

    * Default: 1 second
    * Range: 0+ seconds
    * Recommended: 1-2 seconds

    <Tip>
      A small delay (1-2 seconds) helps ensure the line is fully connected and avoids cutting off the greeting.
    </Tip>
  </Step>

  <Step title="Set Interruption Behavior">
    **Allow Initial Message Interruption**

    * **ON:** User can interrupt AI's opening message
    * **OFF:** AI completes opening message before listening

    <Note>
      Allowing interruption creates more natural conversations but may lead to incomplete greetings.
    </Note>
  </Step>
</Steps>

***

### Inbound Calls

<Steps>
  <Step title="Select Initiation Mode">
    **Call Initiation for Inbound Calls**

    Choose one of three modes:

    * User Initiates (AI remains silent)
    * AI Initiates with dynamic message
    * AI Initiates with custom message
  </Step>

  <Step title="Set Custom Message (If Applicable)">
    If you selected "AI Initiates: Custom message":

    **Custom Message for Inbound Calls**

    Enter your message:

    ```
    Thank you for calling {{company_name}}. My name is {{agent_name}}. 
    How may I assist you today?
    ```
  </Step>

  <Step title="Configure Initial Delay">
    **Initial delay (in seconds) before AI speaks in inbound calls**

    * Default: 1 second
    * Range: 0+ seconds
    * Recommended: 1-2 seconds
  </Step>

  <Step title="Set Interruption Behavior">
    **Allow Initial Message Interruption**

    * **ON:** User can interrupt AI's opening message
    * **OFF:** AI completes opening message before listening
  </Step>
</Steps>

***

## Call Termination

Configure custom end-call messages that AI can use when ending conversations.

### Configuration

<Steps>
  <Step title="Add End Call Messages">
    Click the **"+"** button to add a new end call message
  </Step>

  <Step title="Enter Message">
    Type your end call message with optional variables:

    ```
    Thank you for calling, {{customer_name}}. Have a great day!
    ```

    ```
    Your appointment is confirmed for {{appointment_date}}. We'll see you then. Goodbye!
    ```
  </Step>

  <Step title="Add Multiple Messages">
    Create multiple end call messages for different scenarios
  </Step>

  <Step title="Use in System Prompt">
    Reference these messages in your system prompt:

    ```
    When ending the call, use one of the configured end call messages 
    based on the conversation outcome.
    ```
  </Step>
</Steps>

***

## Best Practices

<AccordionGroup>
  <Accordion title="Match Mode to Call Type" icon="arrows-split-up-and-left">
    **Outbound Calls:**

    * Use "AI Initiates" (dynamic or custom)
    * Customers expect to be addressed when called

    **Inbound Calls:**

    * Can use "User Initiates" for traditional feel
    * Or "AI Initiates" for instant service

    **Example:**

    ```
    Outbound (Sales): AI Initiates with custom branded greeting
    Inbound (Support): User Initiates, let customer explain issue first
    ```
  </Accordion>

  <Accordion title="Keep Custom Messages Concise" icon="message">
    Opening messages should be brief and clear

    **Good:**

    ```
    "Hi {{customer_name}}, this is Maya from Callkaro. 
    I'm calling about your recent order."
    ```

    **Too Long:**

    ```
    "Hello {{customer_name}}, thank you so much for being a valued customer. 
    My name is Maya and I'm calling from Callkaro, your trusted partner 
    for all your needs. We greatly appreciate your business and wanted 
    to reach out regarding your recent order..."
    ```
  </Accordion>

  <Accordion title="Use Appropriate Initial Delay" icon="clock">
    **Recommended Delays:**

    * Standard: 1 second
    * Noisy environments: 1.5-2 seconds
    * Clear connections: 0.5-1 second

    **Too Short (0s):** May cut off greeting
    **Too Long (3s+):** Awkward silence, customer may hang up
  </Accordion>

  <Accordion title="Enable Interruption for Natural Flow" icon="hand">
    Allowing interruption creates more natural conversations

    **When to Enable:**

    * Casual, friendly interactions
    * Customer service scenarios
    * Long opening messages

    **When to Disable:**

    * Important legal disclaimers
    * Compliance-required messages
    * Critical information delivery
  </Accordion>

  <Accordion title="Create Contextual End Messages" icon="door-open">
    Have different end messages for different outcomes

    **Examples:**

    ```
    Success: "Your order is confirmed. Thank you and goodbye!"

    Follow-up needed: "We'll send you the details via email. Have a great day!"

    Not interested: "Thank you for your time. Feel free to reach out if you change your mind."
    ```
  </Accordion>
</AccordionGroup>

***

## Use Cases

### Outbound Sales Calls

**Configuration:**

```
Mode: AI Initiates (Custom)
Custom Message: "Hi {{customer_name}}, this is {{agent_name}} from {{company_name}}. 
                 I'm calling about our special offer for you."
Initial Delay: 1 second
Allow Interruption: ON
```

**Why:**

* Professional, branded introduction
* Customer can interrupt if busy
* Quick connection after dial

***

### Inbound Customer Support

**Configuration:**

```
Mode: User Initiates
Initial Delay: N/A (user speaks first)
Allow Interruption: N/A
End Messages:
  - "Your issue has been resolved. Thank you for calling!"
  - "We've created a ticket. You'll receive an email shortly. Goodbye!"
```

**Why:**

* Let customer explain their issue
* Traditional call center feel
* Multiple end messages for different resolutions

***

### Appointment Reminders (Outbound)

**Configuration:**

```
Mode: AI Initiates (Custom)
Custom Message: "Hello {{customer_name}}, this is a reminder about your appointment 
                 on {{appointment_date}} at {{appointment_time}}."
Initial Delay: 1.5 seconds
Allow Interruption: ON
End Message: "See you on {{appointment_date}}. Goodbye!"
```

**Why:**

* Clear, consistent message
* Includes appointment details
* Customer can interrupt to confirm or reschedule

***

### Lead Qualification (Outbound)

**Configuration:**

```
Mode: AI Initiates (Dynamic)
Initial Delay: 1 second
Allow Interruption: ON
End Messages:
  - "Thank you! A team member will contact you shortly."
  - "Thanks for your time. Feel free to visit our website for more info."
```

**Why:**

* AI generates contextual greeting
* Natural conversation flow
* Different endings for qualified/not qualified leads

***

## Troubleshooting

<AccordionGroup>
  <Accordion title="AI greeting gets cut off" icon="scissors">
    **Issue:** Opening message is incomplete or choppy

    **Causes:**

    * Initial delay too short
    * Connection latency

    **Solutions:**

    1. Increase initial delay to 1.5-2 seconds
    2. Test with different network conditions
    3. Keep custom messages concise
  </Accordion>

  <Accordion title="Awkward silence before AI speaks" icon="volume-xmark">
    **Issue:** Long pause after call connects

    **Cause:** Initial delay too long

    **Solution:**
    Reduce initial delay to 1 second (recommended default)
  </Accordion>

  <Accordion title="Variables not working in custom message" icon="brackets-curly">
    **Issue:** Variables show as `{{variable_name}}` instead of actual values

    **Causes:**

    * Variable not defined in system prompt
    * Variable not passed in call metadata
    * Typo in variable name

    **Solutions:**

    1. Verify variable exists in system prompt
    2. Check variable is passed via API
    3. Ensure exact spelling matches
  </Accordion>

  <Accordion title="User interruption not working" icon="hand-back-fist">
    **Issue:** User can't interrupt AI's opening message

    **Causes:**

    * Interruption disabled
    * Voice detection sensitivity

    **Solutions:**

    1. Enable "Allow Initial Message Interruption"
    2. Test with clear, loud interruptions
    3. Check voice provider settings
  </Accordion>

  <Accordion title="End call message not playing" icon="phone-slash">
    **Issue:** Call ends abruptly without end message

    **Causes:**

    * Not referenced in system prompt
    * Call terminated by system before message

    **Solutions:**

    1. Add instructions in system prompt to use end messages
    2. Ensure AI has time to say goodbye
    3. Verify end call messages are configured
  </Accordion>
</AccordionGroup>

***

## Advanced Tips

### Dynamic Opening Based on Call Metadata

Use variables to create highly personalized openings:

```
"Hello {{customer_name}}, I'm calling from {{company_name}} regarding your 
{{product_name}} purchase on {{purchase_date}}. Do you have a moment?"
```

***

### Time-Based Greetings

Include time-aware greetings in your system prompt:

```
System Prompt: "Start calls with appropriate greeting based on time of day:
- Morning (6AM-12PM): Good morning
- Afternoon (12PM-6PM): Good afternoon  
- Evening (6PM-10PM): Good evening"
```

***

### Multi-Language Support

Create language-specific custom messages:

**English Agent:**

```
"Hello {{customer_name}}, this is calling from {{company_name}}."
```

**Hindi Agent:**

```
"नमस्ते {{customer_name}}, मैं {{company_name}} से बोल रहा हूं।"
```

***

## Getting Help

<CardGroup cols={2}>
  <Card title="Test Call Flows" icon="vial">
    Use Test Call to verify initiation, delay, and termination settings work as expected
  </Card>

  <Card title="Contact Support" icon="headset">
    Our team can help optimize call initiation and termination for your use case
  </Card>
</CardGroup>
