AI Receptionist with CRM Lookup

An AI voice receptionist looks up the caller in CRM before greeting, personalizes known callers, creates leads for unknown numbers, and answers company FAQs.

The problem this solves

Front-desk lines start cold. Known callers have to repeat who they are, and unknown callers often go unrecorded unless staff manually note down their details.

Busy front desks cannot personalize every greeting during peak call volumes, causing new leads and open-ticket context to fall through the cracks.

What this use case does

Front-desk calls should not start cold. This pattern resolves the caller by phone number before the speech model begins speaking, delivering an immediate personalized greeting.

Unknown callers automatically generate new CRM leads. Known callers hear their name and relevant context, while the agent answers office hours and service FAQs.

A local JSON CRM is included by default. Pipedrive is optional when configuring CRM_BACKEND and API credentials.

What it looks like in practice

A known client calls. Before the opening greeting, the agent identifies the number and greets them warmly by name with their account context.

When an unknown number calls, the agent gathers caller details, logs a new lead in CRM, answers inquiries, and concludes the call professionally.

What it means for your operation

Inbound calls are answered immediately 24/7 without hold times. Known callers feel recognized, and new prospects become tracked CRM leads automatically.

Front-desk teams spend less time on repetitive phone intake and FAQs, allowing them to focus on in-person visitors and specialized client workflows.

What happens on a call

  1. 01

    Answer and identify

    Query CRM by incoming caller phone number before delivering the first greeting.

  2. 02

    Personalize and serve

    Greet with authorized context, create leads for unknown callers, and answer FAQs.

  3. 03

    Log and wrap up

    Persist CRM records, deliver a warm closing message, and disconnect cleanly.

Let's build this

Match your test caller number to a seed patient in data/customers.json for a known-caller path.

Required to start

3
  • Python 3.12+

    Runtime for the sample and its dependencies.

  • AgentDuet API key and connector UUID

    Authenticates the sample against your AgentDuet workspace.

  • DashScope API key for Qwen Omni

    Powers the live speech session for receptionist calls.

Optional

1

You can still run and test the sample without these. Add them when you want the full integration.

  1. Step 1

    Clone the sample

    bash
    git clone https://github.com/AgentDuet/agentduet-samples.git
    cd agentduet-samples/use-cases/ai-receptionist
  2. Step 2

    Install dependencies

    bash
    python3.12 -m venv .venv && source .venv/bin/activate
    pip install -r requirements.txt
  3. Step 3

    Configure credentials

    Copy .env.example to .env and fill the required keys.

    bash
    cp .env.example .env
  4. Step 4

    Run the agent

    Start main.py and leave it running, then dial the phone number on your AgentDuet connector.

    bash
    python main.py

What to try on a call

Dial as a seeded customer, then try an unknown number.

  1. 01

    Call as a known seed customer and listen for a personalized greeting.

  2. 02

    Call from an unknown number and verify that a new lead is created in CRM.

  3. 03

    Ask about office hours or location, then hear a clean goodbye and disconnect.

Put a voice agent on a real number.

AgentDuet owns the phone and messaging boundary. Your model runs the conversation.

Explore the SDK