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

# Automate Inbound Call Handling with VInfer AI Neuron

> Configure Neuron to handle inbound customer calls automatically — route inquiries, collect information, and escalate to human agents when needed.

When a customer calls your support or service line, every second of wait time or IVR frustration is a risk to satisfaction and retention. VInfer Neuron answers inbound calls instantly, holds a natural conversation in the customer's language, collects whatever information your team needs, and either resolves the query on the spot or escalates to a human agent — with full context already in hand. This guide shows you how to set up, configure, and go live with an inbound automation flow.

## What Inbound Automation Means in VInfer

<CardGroup cols={2}>
  <Card title="Instant Answer" icon="phone-arrow-down-left">
    Neuron picks up every call immediately, with no hold queue, no IVR menus to navigate, and no wait time.
  </Card>

  <Card title="Natural Conversation" icon="comments">
    Customers speak naturally. Neuron understands intent in 25+ Indian and global languages without requiring rigid menu selections.
  </Card>

  <Card title="Structured Data Collection" icon="database">
    Neuron extracts entities — account numbers, dates, issue descriptions — and pushes them directly to your CRM after the call.
  </Card>

  <Card title="Smart Escalation" icon="arrow-up-right-from-square">
    When a call needs a human, Neuron transfers it with a full conversation summary so your agent picks up informed, not blind.
  </Card>
</CardGroup>

***

## Common Inbound Use Cases

<Accordion title="Loan and EMI Inquiries">
  Customers calling to ask about their outstanding balance, next due date, payment history, or foreclosure charges. Neuron authenticates the caller using their registered mobile number or account number, fetches the relevant data from your system via API, and reads it out — no human agent required for routine lookups.
</Accordion>

<Accordion title="Appointment Booking">
  Customers calling to book, reschedule, or cancel appointments. Neuron checks availability against your calendar system, offers slots, confirms the booking, and sends a confirmation SMS — all within the same call.
</Accordion>

<Accordion title="Complaint Registration">
  Customers reporting an issue. Neuron gathers the complaint category, description, and contact details, generates a ticket ID, reads it back to the customer, and triggers a webhook to your ticketing system.
</Accordion>

<Accordion title="Order Status and Delivery Queries">
  Customers asking about their delivery status or order details. Neuron queries your order management system in real time and provides a spoken update. If there's an exception (lost shipment, long delay), it can escalate automatically.
</Accordion>

<Accordion title="IVR Replacement">
  Replace traditional press-1-for-X IVR trees entirely. Customers simply say what they need — "I want to check my balance" or "I need to raise a complaint" — and Neuron routes them to the right flow without any keypad navigation.
</Accordion>

***

## Setting Up Inbound Automation

<Steps>
  ### Connect Your Phone Number

  Navigate to **Neuron → Inbound → Add Number** in the VInfer dashboard. You have two options for connecting your inbound line:

  <Tabs>
    <Tab title="SIP Trunk">
      If you have an existing SIP trunk or PBX, configure VInfer as a SIP endpoint. Go to **Settings → Telephony → SIP Configuration** and enter your trunk details:

      ```
      SIP Domain:    sip.vinfer.ai
      Transport:     TLS (recommended) or UDP
      Port:          5061 (TLS) / 5060 (UDP)
      Auth Username: your_account_id
      Auth Password: your_sip_password
      ```

      Point your inbound DID routes to this SIP endpoint from your telephony provider's portal.
    </Tab>

    <Tab title="Cloud Telephony">
      If you use a cloud telephony provider (such as Exotel, Tata Tele, or Twilio), configure a VInfer webhook as the answer URL for your inbound number:

      ```
      Answer URL:  https://api.vinfer.ai/v1/inbound/answer
      Method:      POST
      ```

      Enter this URL in your cloud telephony provider's number configuration panel. When a call arrives on your number, the provider will POST the call details to VInfer and Neuron will take over immediately.
    </Tab>
  </Tabs>

  After adding the number, it appears in your inbound numbers list with status **Pending Verification**. Make a test call to complete verification.

  <Info>
    You can connect multiple numbers to different inbound agents — for example, one number for loan inquiries in Hindi, another for English-language support.
  </Info>

  ***

  ### Create an Inbound Script

  Inbound scripts differ from outbound scripts in one important way: the customer initiates, so Neuron must first understand *why* they called before driving the conversation forward.

  Go to **Neuron → Scripts → New Script** and select **Inbound** as the script type. Your script should begin with an **Intent Detection** node rather than a fixed opening statement:

  **Opening node example:**

  > "Thank you for calling ABC Finance. How can I help you today?"

  From the Intent Detection node, branch to specific flows based on detected intent:

  | Detected Intent   | Route To                             |
  | ----------------- | ------------------------------------ |
  | `balance_inquiry` | Account Lookup flow                  |
  | `payment_issue`   | Payment Support flow                 |
  | `complaint`       | Complaint Registration flow          |
  | `appointment`     | Booking flow                         |
  | `human_agent`     | Escalation flow                      |
  | `unknown`         | Clarification prompt, then re-detect |

  <Tip>
    Add a **Clarification** fallback branch for low-confidence intent detection. Neuron will ask "Could you tell me a bit more about what you need?" and attempt re-classification. After two failed classifications, automatically route to a human agent.
  </Tip>

  ***

  ### Define Escalation Rules

  Not every call can or should be resolved by Neuron. Define your escalation rules under **Neuron → Voice Agents → \[Agent Name] → Fallback Rules** so Neuron knows exactly when to hand off to a human.

  <CardGroup cols={2}>
    <Card title="Explicit Request" icon="hand">
      Customer says "I want to speak to a human" or "Can I talk to someone?" — transfer immediately.
    </Card>

    <Card title="Sentiment Threshold" icon="face-frown">
      If NeuronLens detects sustained negative sentiment below your configured threshold, trigger escalation.
    </Card>

    <Card title="Keyword Detection" icon="magnifying-glass">
      Specific phrases like "legal action", "consumer forum", or "complaint" auto-trigger a warm transfer.
    </Card>

    <Card title="Unresolved After N Turns" icon="arrows-rotate">
      If the customer's query is unresolved after a set number of conversation turns, escalate rather than loop indefinitely.
    </Card>
  </CardGroup>

  For detailed escalation configuration, refer to the [Agent Handover guide](/guides/agent-handover).

  ***

  ### Configure Business Hours Handling

  Define what happens when a call arrives outside your configured business hours — customers calling at midnight should not reach a dead end.

  Navigate to **Neuron → Inbound → \[Number] → Business Hours**:

  <Tabs>
    <Tab title="Voicemail">
      Play a custom message and record the customer's message. The recording and a transcription are emailed to your team and logged in the dashboard.

      ```json theme={null}
      {
        "after_hours": {
          "action": "voicemail",
          "greeting": "Our team is unavailable right now. Please leave a message after the tone and we'll call you back by 10 AM tomorrow.",
          "notify_email": "team@yourcompany.com"
        }
      }
      ```
    </Tab>

    <Tab title="Scheduled Callback">
      Allow the customer to request a callback during business hours. Neuron collects their preferred time and queues the callback for your outbound campaign.

      ```json theme={null}
      {
        "after_hours": {
          "action": "schedule_callback",
          "available_slots": "next_business_day",
          "slot_duration_minutes": 30,
          "callback_campaign_id": "camp_callbacks_001"
        }
      }
      ```
    </Tab>

    <Tab title="Custom Message">
      Play a message and end the call. Useful for situations where you cannot collect callbacks.

      ```json theme={null}
      {
        "after_hours": {
          "action": "message",
          "text": "Thank you for calling. Our support team is available Monday to Saturday, 9 AM to 7 PM IST. Please call back during business hours."
        }
      }
      ```
    </Tab>
  </Tabs>

  ***

  ### Test with a Live Call

  Before going live with real customer traffic, run an end-to-end test:

  1. Navigate to **Neuron → Inbound → \[Number] → Test Call**
  2. Enter your own mobile number and click **Call Me**
  3. Walk through every major intent path in your script
  4. Verify that data collection nodes capture values correctly
  5. Trigger each escalation condition deliberately and confirm the transfer works
  6. Check that business hours handling activates correctly by temporarily setting your hours to exclude the current time

  The dashboard records your test calls separately under **Test Calls** so they don't affect your live metrics.

  <Warning>
    Do not skip testing with actual phone calls. Text-based preview in the script editor does not fully replicate real-world speech recognition, background noise, or telephony latency. Always test with a live call before directing customer traffic to a new inbound flow.
  </Warning>

  ***

  ### Go Live

  When your test calls pass, flip the number to **Live** status:

  ```bash theme={null}
  curl -X PATCH https://api.vinfer.ai/v1/inbound/numbers/num_abc123 \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{"status": "live"}'
  ```

  Neuron will now answer every inbound call on that number in real time. Monitor the first hour closely from **Neuron → Inbound → Live Feed** to catch any unexpected routing issues.
</Steps>

***

## Information Collection During Calls

Neuron can collect and structure any data point during an inbound call. Use **Collect** nodes in your script to define what you need, then have VInfer push it to your CRM automatically after the call.

**Example entities Neuron can collect:**

| Entity                  | How Neuron Captures It                                                            |
| ----------------------- | --------------------------------------------------------------------------------- |
| Account / Loan Number   | Customer reads it out; Neuron validates against a pattern (e.g., 10-digit number) |
| Preferred Callback Time | Customer states a time; Neuron parses it to a structured datetime                 |
| Issue Description       | Free-form speech; stored as transcript excerpt and summary                        |
| OTP / PIN               | DTMF keypad entry (for security-sensitive data)                                   |
| Address                 | Multi-turn collection with confirmation ("Did you say 42, MG Road, Bengaluru?")   |

<Note>
  For sensitive data such as PAN numbers, OTPs, or bank account details, use DTMF collection (keypad input) instead of speech. Configure this in your Collect node by setting `input_mode: "dtmf"`. VInfer never stores raw DTMF digits in logs.
</Note>

All collected data is available in the call record API response and in the NeuronLens post-call report, and can be automatically synced to your CRM via webhooks. See the [CRM Integration guide](/guides/crm-integration) for setup instructions.
