Skip to main content
Open the AI Agents page in Callin
The AI Agents list page with filters, search, and the Create Agent button.

Screenshot: the AI Agents page where you can review existing agents, filter them by direction, search by name, and create a new one.

AI Agents overview

The AI Agents page is the main workspace for creating and managing agents in Callin. From here, you can see all your agents in one place, identify which ones are inbound or outbound, open any agent to edit it, and create new ones for different business flows. This page is especially useful when you want to:
  • create a new agent for calls or website conversations
  • separate agents by purpose
  • quickly find an existing setup
  • detect unfinished configurations before going live
In the list view, you can usually see the agent name, call direction, language tag, creation date, and action icons. You may also see warnings such as No phone number assigned, which help you catch incomplete setups before using the agent in production. To create a new agent, click Create Agent, choose Start from Scratch or Browse our Templates, enter the agent name, and then click Create Agent. A simple example: A dental clinic may create separate agents such as Appointment Reminder Agent, New Patient Intake Agent, and Missed Call Follow-up Agent. This is much easier to manage than keeping generic names like “Test” or “Agent 2.”
Tip: Name the agent based on its real purpose. Clear names make testing, reporting, and future edits much easier.

Section 1: Agent

The Agent configuration tab showing call direction, maximum call duration, greeting message, conversation prompt, variables, knowledge base, tools, and call settings.

Screenshot: the Agent tab where you define the core behavior of the AI Agent, including how calls begin, how the agent behaves, and what resources it can use.

The Agent section is the foundation of the full setup. This is where you define what the agent is for, how it starts the conversation, what instructions guide it, and what supporting resources it can use during calls.

Call Direction

The first setting is Call Direction. This defines whether the agent is used to place calls, answer calls, or do both with the same configuration. You can choose:
  • Outbound if the agent will call users.
  • Inbound if the agent will answer incoming calls.
  • Both Directions if the same agent should handle both use cases.
Choose this based on the real workflow, not just on what sounds more flexible. A payment reminder agent is usually Outbound, while a receptionist, support line, or booking line is usually Inbound. With Outbound, the agent starts the conversation. This usually means the first message is more direct and goal-oriented, because the agent already knows why it is calling. For example, an outbound agent may call to confirm an appointment, follow up on a quote, remind a customer about an unpaid invoice, or qualify a new lead after a form submission. A simple outbound example would be a clinic assistant calling a patient to confirm tomorrow’s appointment. In that case, the opening can go straight to the point because the call has a clear purpose from the start. With Inbound, the user starts the conversation. This means the agent should be ready to understand different intents, guide the caller, and ask clarifying questions before moving forward. Inbound agents are common for front desk workflows, booking lines, basic support, opening hours questions, and first-contact screening. A simple inbound example would be a dental clinic line where callers may want to book, reschedule, ask about opening hours, or check whether a treatment is available. In that scenario, the agent needs to sound open and helpful because it does not know the caller’s reason in advance. With Both Directions, the same agent handles outgoing and incoming calls. This is useful when the workflow is very similar in both cases and the same tone, goal, and logic work well either way.
Important: A Both Directions agent uses the same Greeting and the same Script for both inbound and outbound calls.
This is a common point of confusion. Some users think they need to add one greeting and one script for inbound, and another greeting and another script for outbound inside the same agent. That is not how this setup works. When you choose Both Directions, you are creating one agent with one shared behavior. That means the greeting and the script should be written in a more neutral way so they make sense whether the call was started by the agent or by the user. For example, a neutral greeting could work for both cases if it introduces the business clearly and then adapts naturally to the conversation. The script should also avoid assumptions that only fit one direction. If the script says something too specific like “I’m calling to remind you about your invoice,” it may feel wrong on an inbound call where the customer called first for a different reason. A better both-directions approach is to make the agent flexible. For example, a real estate assistant could greet the caller, identify the company, and then continue based on whether the conversation is about following up on a property inquiry or answering a new incoming question about availability. Another example is a small salon that wants one agent to answer incoming questions and also call clients back about scheduling. That can work with Both Directions if the same overall tone and flow make sense in both cases.
Tip: If the agent needs to behave differently depending on the call direction, it is usually better to create two separate agents: one for Inbound and one for Outbound.
This is the best option when each direction needs a different opening, different tone, different goals, or different qualification logic. For example, a sales follow-up agent making outbound calls may need a persuasive, structured script, while an inbound receptionist agent may need a calmer and more open-ended flow. Another good example is a debt collection workflow. The outbound version may need a very specific compliance-safe reminder flow, while the inbound version may need to verify identity first and then answer payment questions. Even if both belong to the same business process, they usually work better as separate agents.
Common mistake: Choosing Both Directions just to cover more cases, even when the inbound and outbound experiences should feel different.
As a rule, use Both Directions only when one shared greeting and one shared script can genuinely handle both call types well. If not, create one agent per direction so each experience feels natural and intentional.

Maximum Call Duration

The Maximum Call Duration setting controls how long a call can last before it ends automatically. This helps you:
  • keep calls efficient
  • avoid unusually long conversations
  • control usage and cost
For example, a short reminder call may only need 3 to 5 minutes, while a booking or intake call may need 5 to 10 minutes.

Greeting Message

The Greeting Message is the first thing the caller hears. It should be short, clear, and relevant to the job of the agent. A reliable structure is:
  • greeting
  • who the agent is
  • why the call is happening
  • invitation to continue
Example: Hi, this is Northwind Dental. I’m calling to help you confirm your upcoming appointment. Is now a good time to continue? If variables are available, you can reuse the same structure across multiple agents without rewriting the full greeting each time.

Conversation Prompt

The Conversation Prompt is one of the most important parts of the setup. It defines how the agent should behave during the conversation after the greeting has already started the call. A simple way to think about it is:
  • the Greeting Message opens the conversation
  • the Conversation Prompt controls how the rest of the conversation should go
The default example shown in Callin is useful because it gives you a clear structure. It is not there to be copied word for word every time. Instead, it shows the type of instructions that help the agent stay consistent, clear, and safe during calls. That example prompt is structured into areas such as:
  • Personality
  • Environment
  • Tone
  • Goal
  • Guardrails
  • Tools
This structure is helpful because it turns a vague instruction like “be helpful” into something more practical and reliable.

Personality

This explains who the agent is. For example:
  • a front desk assistant
  • a scheduling assistant
  • a lead qualification assistant
  • a reminder agent
This helps the agent sound consistent and avoid shifting personality from one call to another.

Environment

This explains the type of call the agent is handling. For example:
  • short phone calls where clarity matters
  • appointment booking conversations
  • follow-up calls after a missed call
  • outbound reminder calls
This helps the agent understand the real context instead of answering like a generic chatbot.

Tone

This explains how the agent should sound. The default example in Callin shows useful voice-call guidance such as:
  • speak politely and concisely
  • use brief affirmations like “I understand” and “Okay”
  • include natural pauses
  • adapt tone to the user’s engagement
  • spell out structured information clearly, such as email addresses
This matters because phone conversations need a different style than chat. A voice agent should sound natural, brief, and easy to follow.

Goal

This explains what success looks like for the call. Examples:
  • confirm an appointment
  • answer common questions
  • qualify a lead
  • collect contact details
  • guide the caller to the correct next step
Without a clear goal, the agent may sound polite but still fail to move the conversation forward.

Guardrails

This explains what the agent must not do. The example in Callin includes good default rules such as:
  • never share sensitive information
  • do not guess or invent answers
  • acknowledge limits when needed
  • de-escalate calmly
  • stay focused on the user’s needs
This section is especially important if the agent will speak directly with customers.

Tools in the prompt

The example also includes a Tools section. This is useful because the prompt can clarify whether the agent should rely only on conversation or whether it may use configured tools as part of the flow. If your agent is supposed to work through conversation only, say that clearly. If it should use a configured tool, the tool must already exist before you attach it to the agent. If you have not configured the tool yet, set it up first in Tools.

How to write the Conversation Prompt well

A strong prompt should describe the agent in plain business language. Instead of writing only: Be helpful and polite. A better version would be: The agent is a phone assistant for a dental clinic. It should help callers confirm appointments, answer basic scheduling questions, stay polite and concise, and direct the caller to the next step when a request is outside its scope. This works better because it defines the role, the tone, the goal, and the limits. A good prompt usually answers these questions:
  • Who is the agent?
  • What kind of call is this?
  • How should the agent sound?
  • What is the main outcome of the call?
  • What should the agent avoid doing?
  • Should the agent use tools, or conversation only?

Optimize prompt

Next to the prompt area, Callin also includes an Optimize button. This opens the Optimize prompt window, where you can describe how you want the current prompt to be improved. This is useful when the prompt already exists, but you want to refine it without rewriting everything manually. For example, you can ask the optimizer to:
  • make the prompt shorter and clearer
  • make the tone friendlier
  • add objection handling
  • make the agent sound more professional
  • simplify the instructions for short calls
A practical example: If your current prompt feels too long, you can enter something like: Make it more concise, keep a warm professional tone, and add clearer handling for common objections. This can save time, especially when you already have a decent prompt and only need to improve the structure or tone.
Important: Optimize prompt helps improve the writing, but you should still review the final result before saving. Always confirm that the instructions still match the real job of the agent.

Dynamic Variables

The Dynamic Variables area lets you define reusable values, such as the agent name. This is useful when you want one structure across several agents. For example, you can reuse the same greeting pattern while changing only the agent or business name.

Timezone and LLM

Further down, you can configure the Timezone and the LLM used by the agent.
  • Timezone matters for time-based logic, appointment handling, and business-hour references
  • LLM determines the response model used by the agent
If the agent books appointments or references local hours, make sure the timezone matches the real business location.

Knowledge Base

The Knowledge Base area gives the agent supporting information it can use to answer questions more accurately. If you have not configured this yet, set it up first in Knowledge Base. This is the right place for content such as:
  • FAQs
  • policies
  • pricing summaries
  • service details
  • product explanations
For example, a clinic agent may need office hours, cancellation rules, accepted insurance, and appointment preparation instructions. A practical rule is:
  • use the Conversation Prompt for behavior and rules
  • use the Knowledge Base for facts and reference information

Tools

The Tools area lets the agent use additional capabilities during a call. If you have not configured the tool yet, set it up first in Tools. This is important because an agent cannot reliably use a tool that has not already been created and configured. A practical flow is:
  1. configure the tool in Tools
  2. return to the AI Agent
  3. attach the tool to the agent
  4. test the full conversation
For example, if you want the agent to trigger an external action or retrieve specific data, that tool must exist first before it can be used here.

Call Settings

Further down in the Agent section, you can also find Call Settings, such as call recording, voicemail detection, and whether the user speaks first. These settings help define the real experience once the agent is live. A practical example:
  • enable Record Calls if your team needs quality review or compliance review
  • enable Voicemail Detection for outbound campaigns
  • use User Speaks First only if the flow depends on the caller starting the conversation
Common mistake: Writing a very general prompt, adding a tool, and assuming the agent will know when to use it automatically. The prompt should still explain the goal clearly, and the tool must be configured first in Tools.

Section 2: Voice & Language

The Voice & Language tab showing language, secondary language, selected voice, speed, and temperature settings.

Screenshot: the Voice & Language tab where you choose the language, voice, speed, and response style of the agent.

The Voice & Language section controls how the agent sounds and how it understands users.

Language and Secondary Language

Start by choosing the main Language. This should match the language the caller is most likely to use. You can also add a Secondary Language if the agent needs to support a second language. For example:
  • a local clinic may only need English
  • a business serving both English and Spanish callers may use English as the main language and add Spanish as a secondary language

Voice

The Voice setting determines the actual voice the agent uses. In the voice selector, you can usually:
  • filter by language
  • filter by gender
  • choose between voice types
  • preview voices
  • import an ElevenLabs voice

Import an ElevenLabs voice

You can also bring a custom voice from ElevenLabs into this agent without leaving the voice picker. This is useful when you already created a voice in VoiceLab and want to use that same voice in Callin.
Select Voice window showing the language selector, ElevenLabs import fields, gender filters, type filters, available voices list, and the action buttons at the bottom

Screenshot: this window lets you filter available voices and import a custom ElevenLabs voice using a VoiceLab share link.

In this window, you will see:
  • A Language selector at the top. In the example, the selected language is English (EN).
  • An Import your ElevenLabs voice section with two fields:
    • Paste ElevenLabs share link to add the VoiceLab link.
    • Give this imported voice a name to label the voice inside your workspace.
  • An Add Voice button to import the voice after completing both fields.
  • A Gender filter with options such as Any, Male, Female, and Neutral.
  • A Type filter with options such as General and Cloned.
  • A list of available voices below the filters, where each card shows the voice name, a short description, and a play button to preview it.
  • Reset All and Apply Filters buttons at the bottom to update the visible results.

How to import the voice

  1. In ElevenLabs, copy the VoiceLab share link for the voice you want to use.
  2. In Callin, open Select Voice.
  3. Paste the link into Paste ElevenLabs share link.
  4. Enter an internal name in Give this imported voice a name.
  5. Click Add Voice.
  6. After the voice is added, select it for the agent and save your changes.
Tip: Use a clear internal name such as Support Voice - Sofia or Sales Voice - Warm English so your team can recognize it quickly.
Important: The visible filters and available voices can vary depending on your account, language, or plan.
Common mistake: Pasting a regular ElevenLabs page link instead of the VoiceLab share link can prevent the voice from being imported.
When choosing a voice, think about:
  • the caller’s language
  • the tone of the business
  • whether the voice should sound calm, formal, warm, or energetic
For example, a legal intake agent may sound better with a calm and confident voice, while a hospitality agent may work better with a warmer and more upbeat voice.

Speed

The Speed slider controls how fast the generated voice sounds.
  • lower values slow the speech down
  • higher values speed it up
A moderate pace is usually best. If the voice is too fast, important information becomes harder to follow. If it is too slow, the conversation may feel unnatural.

Temperature

The Temperature slider controls how focused or creative the responses are.
  • lower values make responses more predictable
  • higher values make them more varied and creative
For structured business calls, low or medium values are usually safer because they keep the agent consistent.
Tip: Always test the full call flow after choosing the voice. A voice can sound good in preview but still feel wrong once it is used in a real conversation.

Section 3: Call Action

The Call Action tab showing schedule appointment, transfer call, opt-out call, data extraction, post-call webhook, call retry, and number rotation.

Screenshot: the Call Action tab where you enable actions the agent can perform during or after the call.

The Call Action section is where the agent moves beyond conversation and starts doing real actions. This section is especially important for booking, routing, lead capture, and outbound workflows.

Schedule Appointment

Enable Schedule Appointment when the agent should book appointments during the call. If you have not configured this yet, set it up first in Google Calendar. This matters because the agent needs an existing calendar configuration before it can schedule anything reliably. The calendar setup can include booking templates, reminder settings, and available calendars. A practical example: A clinic agent can offer available time slots, confirm the user’s preferred time, and complete the booking during the same call.
Important: If Google Calendar was not configured before enabling appointment scheduling here, the setup will remain incomplete. Configure it first in Google Calendar, then return to the agent.

Transfer Call

Enable Transfer Call when the AI Agent should hand the conversation off to a real person, team, department, or phone number. If you have not configured this yet, set it up first in Call Transfer. This must be configured in advance because the agent needs transfer rules and a transfer destination before this feature can work properly. A practical example: A support agent can answer basic questions, but transfer billing issues to the finance team or urgent cases to a live operator.
Important: If call transfer was not configured before enabling this option, the agent will not know where to send the call. Configure the rules first in Call Transfer.

Opt-Out Call

The Opt-Out Call option is useful for outbound campaigns. It allows the person receiving the call to opt out of the current call and prevent future calls. This is helpful for recurring outreach and cleaner contact management.

Data Extraction

The Data Extraction area lets you define the specific information the agent should extract from the conversation. Examples shown in the interface include values such as:
  • first name
  • appointment date
  • whether the person is interested
This is useful when you want structured outputs after the call instead of relying only on the transcript. For example, a lead qualification agent can capture the contact’s name, preferred callback time, and interest level so your team can review results faster.

Post-Call Webhook

Enable Post-Call Webhook when you want call data sent to another system after the call ends. This is useful for sending results into a CRM, dashboard, or automation flow.

Call Retry

The Call Retry settings define what happens if the system detects answering machine behavior. You can set:
  • Retry Count
  • Retry Delay
For example, an outbound reminder campaign may retry once after 30 minutes instead of stopping after the first unanswered attempt.

Number Rotation

The Number Rotation feature lets the system rotate between multiple phone numbers to distribute calls more evenly and improve deliverability. This is useful for higher-volume outbound operations. Once enabled, you can choose which numbers take part in the rotation.

Section 4: Website widget

The Website widget tab showing the embed snippet, widget mode, theme, conversation mode, appearance settings, labels, and save area.

Screenshot: the Website widget tab where you generate the embed snippet and customize how the agent appears on your website.

The Website widget section is used when you want visitors to speak with the same AI Agent directly from your website.

Embed snippet

At the top of this tab, you can copy the embed snippet and paste it into your website. This is the code that loads the widget for your visitors. The interface also includes a Copy button, which makes it easier for your team to place the widget without rebuilding anything manually.

Widget mode and theme

You can choose how the widget appears:
  • Inline embed places the widget directly inside the page layout
  • Floating launcher shows a smaller launcher that opens the widget when clicked
You can also choose the widget theme, such as matching your app theme, using light mode, or using dark mode. A practical example:
  • use Inline embed on a contact page or support page
  • use Floating launcher if you want the widget available across the site without taking up permanent space

Conversation mode

This section controls whether visitors interact through voice, text, or both, depending on the options available in your workspace. Choose the mode based on the experience you want. A voice-first experience may work well for service businesses, while text can be useful for quieter or more asynchronous interactions.

Appearance

Further down, you can customize visual settings such as:
  • widget variant
  • dial size
  • realtime transcript
  • mute button
  • primary and secondary colors
These settings matter because the widget should feel like part of your brand.

Dial labels and text labels

You can also customize visible text such as:
  • idle label
  • connecting label
  • listening label
  • interrupt label
  • main label
  • start call
  • start chat
  • end call
  • chat title
  • chat subtitle
  • empty state
  • input placeholders
  • send label
This is useful when you want the widget to sound more natural for your audience. For example, a healthcare business may prefer Need help booking? while a software company may prefer Talk to our assistant.

Save and test

At the bottom of the editor, you can see actions such as Clear, View Errors, and Save. You may also see an unsaved changes warning while editing. Before publishing the widget, it is a good idea to:
  1. save your changes
  2. use Test Call or Test AI agent
  3. confirm that the labels, voice, and actions work correctly
  4. only then publish the snippet on your website
Tip: Test the widget like a real visitor would. Check both the normal flow and edge cases, such as interruptions, vague questions, or handoff situations.