# Create account connection
Source: https://docs.fluents.ai/api-reference/account_connections/create-account-connection
/openapi.yml post /v1/account_connections/create
# Get account connection
Source: https://docs.fluents.ai/api-reference/account_connections/get-account-connection
/openapi.yml get /v1/account_connections
# List account connections
Source: https://docs.fluents.ai/api-reference/account_connections/list-account-connections
/openapi.yml get /v1/account_connections/list
# Update account connection
Source: https://docs.fluents.ai/api-reference/account_connections/update-account-connection
/openapi.yml post /v1/account_connections/update
# Create action
Source: https://docs.fluents.ai/api-reference/actions/create-action
/openapi.yml post /v1/actions/create
# Get action
Source: https://docs.fluents.ai/api-reference/actions/get-action
/openapi.yml get /v1/actions
# List actions
Source: https://docs.fluents.ai/api-reference/actions/list-actions
/openapi.yml get /v1/actions/list
# Update action
Source: https://docs.fluents.ai/api-reference/actions/update-action
/openapi.yml post /v1/actions/update
# Create agent
Source: https://docs.fluents.ai/api-reference/agents/create-agent
/openapi.yml post /v1/agents/create
# Get agent
Source: https://docs.fluents.ai/api-reference/agents/get-agent
/openapi.yml get /v1/agents
# List agents
Source: https://docs.fluents.ai/api-reference/agents/list-agents
/openapi.yml get /v1/agents/list
# Update agent
Source: https://docs.fluents.ai/api-reference/agents/update-agent
/openapi.yml post /v1/agents/update
# Create call
Source: https://docs.fluents.ai/api-reference/calls/create-call
/openapi.yml post /v1/calls/create
# End call
Source: https://docs.fluents.ai/api-reference/calls/end-call
/openapi.yml post /v1/calls/end
# Create call feedback
Source: https://docs.fluents.ai/api-reference/calls/feedbacks/create-call-feedback
/openapi.yml post /v1/calls/{call_id}/feedbacks
# Delete call feedback
Source: https://docs.fluents.ai/api-reference/calls/feedbacks/delete-call-feedback
/openapi.yml delete /v1/calls/{call_id}/feedbacks/{id}
# Get call feedback
Source: https://docs.fluents.ai/api-reference/calls/feedbacks/get-call-feedback
/openapi.yml get /v1/calls/{call_id}/feedbacks/{id}
# List call feedbacks
Source: https://docs.fluents.ai/api-reference/calls/feedbacks/list-call-feedbacks
/openapi.yml get /v1/calls/{call_id}/feedbacks
# Update call feedback
Source: https://docs.fluents.ai/api-reference/calls/feedbacks/update-call-feedback
/openapi.yml patch /v1/calls/{call_id}/feedbacks/{id}
# Get call
Source: https://docs.fluents.ai/api-reference/calls/get-call
/openapi.yml get /v1/calls
# Get call recording
Source: https://docs.fluents.ai/api-reference/calls/get-call-recording
/openapi.yml get /v1/calls/{id}/recording_url
# Get recording
Source: https://docs.fluents.ai/api-reference/calls/get-recording
/openapi.yml get /v1/calls/recording
# List calls
Source: https://docs.fluents.ai/api-reference/calls/list-calls
/openapi.yml get /v1/calls/list
# Add multiple phone numbers to DNC list
Source: https://docs.fluents.ai/api-reference/dnc_numbers/bulk-add-dnc-numbers
/openapi.yml post /v1/dnc_numbers/bulk
Add multiple phone numbers to the Do Not Call list for a specific user in a single request. Maximum 1000 phone numbers per request.
# Add a phone number to DNC list
Source: https://docs.fluents.ai/api-reference/dnc_numbers/create-dnc-number
/openapi.yml post /v1/dnc_numbers/create
Add a phone number to the Do Not Call list for a specific user.
# Remove a phone number from DNC list
Source: https://docs.fluents.ai/api-reference/dnc_numbers/delete-dnc-number
/openapi.yml delete /v1/dnc_numbers/{id}
Remove a phone number from the Do Not Call list for a specific user.
# Get DNC numbers
Source: https://docs.fluents.ai/api-reference/dnc_numbers/list-dnc-numbers
/openapi.yml get /v1/dnc_numbers/list
Retrieve DNC numbers with filtering by type (global or user-specific) and pagination.
# Create knowledge base
Source: https://docs.fluents.ai/api-reference/knowledge_bases/create-knowledge-base
/openapi.yml post /v1/knowledge_bases
# Delete knowledge base
Source: https://docs.fluents.ai/api-reference/knowledge_bases/delete-knowledge-base
/openapi.yml delete /v1/knowledge_bases/{id}
# Delete knowledge base file
Source: https://docs.fluents.ai/api-reference/knowledge_bases/delete-knowledge-base-file
/openapi.yml delete /v1/knowledge_bases/{kbId}/files/{fileId}
# Get knowledge base
Source: https://docs.fluents.ai/api-reference/knowledge_bases/get-knowledge-base
/openapi.yml get /v1/knowledge_bases/{id}
# Get knowledge base file
Source: https://docs.fluents.ai/api-reference/knowledge_bases/get-knowledge-base-file
/openapi.yml get /v1/knowledge_bases/{kbId}/files/{fileId}
# List knowledge base files
Source: https://docs.fluents.ai/api-reference/knowledge_bases/list-knowledge-base-files
/openapi.yml get /v1/knowledge_bases/{kbId}/files
# List knowledge bases
Source: https://docs.fluents.ai/api-reference/knowledge_bases/list-knowledge-bases
/openapi.yml get /v1/knowledge_bases
# Upload knowledge base file
Source: https://docs.fluents.ai/api-reference/knowledge_bases/upload-knowledge-base-file
/openapi.yml post /v1/knowledge_bases/{kbId}/files
# Create message
Source: https://docs.fluents.ai/api-reference/messages/create-message
/openapi.yml post /v1/messages
# List messages
Source: https://docs.fluents.ai/api-reference/messages/list-messages
/openapi.yml get /v1/messages
# Activate number
Source: https://docs.fluents.ai/api-reference/numbers/activate-number
/openapi.yml post /v1/numbers/activate
# Buy number
Source: https://docs.fluents.ai/api-reference/numbers/buy-number
/openapi.yml post /v1/numbers/buy
# Cancel number
Source: https://docs.fluents.ai/api-reference/numbers/cancel-number
/openapi.yml post /v1/numbers/cancel
# Detach number
Source: https://docs.fluents.ai/api-reference/numbers/detach-number
/openapi.yml post /v1/numbers/detach
# Get number
Source: https://docs.fluents.ai/api-reference/numbers/get-number
/openapi.yml get /v1/numbers
# Get number tags
Source: https://docs.fluents.ai/api-reference/numbers/get-number-tags
/openapi.yml get /v1/numbers/tags
# Link number
Source: https://docs.fluents.ai/api-reference/numbers/link-number
/openapi.yml post /v1/numbers/link
# List available numbers
Source: https://docs.fluents.ai/api-reference/numbers/list-available-numbers
/openapi.yml get /v1/numbers/available
# List numbers
Source: https://docs.fluents.ai/api-reference/numbers/list-numbers
/openapi.yml get /v1/numbers/list
# Update number
Source: https://docs.fluents.ai/api-reference/numbers/update-number
/openapi.yml post /v1/numbers/update
# Create prompt
Source: https://docs.fluents.ai/api-reference/prompts/create-prompt
/openapi.yml post /v1/prompts/create
# Get prompt
Source: https://docs.fluents.ai/api-reference/prompts/get-prompt
/openapi.yml get /v1/prompts
# List prompts
Source: https://docs.fluents.ai/api-reference/prompts/list-prompts
/openapi.yml get /v1/prompts/list
# Update prompt
Source: https://docs.fluents.ai/api-reference/prompts/update-prompt
/openapi.yml post /v1/prompts/update
# Run simulation
Source: https://docs.fluents.ai/api-reference/simulation/run-simulation
/openapi.yml post /v1/simulation/run
# Create tag
Source: https://docs.fluents.ai/api-reference/tags/create-tag
/openapi.yml post /v1/tags
# Delete tag
Source: https://docs.fluents.ai/api-reference/tags/delete-tag
/openapi.yml delete /v1/tags/{id}
# Get tag
Source: https://docs.fluents.ai/api-reference/tags/get-tag
/openapi.yml get /v1/tags/{id}
# List tags
Source: https://docs.fluents.ai/api-reference/tags/list-tags
/openapi.yml get /v1/tags
# Update tag
Source: https://docs.fluents.ai/api-reference/tags/update-tag
/openapi.yml patch /v1/tags/{id}
# Create transcriber
Source: https://docs.fluents.ai/api-reference/transcribers/create-transcriber
/openapi.yml post /v1/transcribers/create
# Delete transcriber
Source: https://docs.fluents.ai/api-reference/transcribers/delete-transcriber
/openapi.yml delete /v1/transcribers/{id}
# Get transcriber
Source: https://docs.fluents.ai/api-reference/transcribers/get-transcriber
/openapi.yml get /v1/transcribers
# List transcribers
Source: https://docs.fluents.ai/api-reference/transcribers/list-transcribers
/openapi.yml get /v1/transcribers/list
# Update transcriber
Source: https://docs.fluents.ai/api-reference/transcribers/update-transcriber
/openapi.yml post /v1/transcribers/update
# Create voice
Source: https://docs.fluents.ai/api-reference/voices/create-voice
/openapi.yml post /v1/voices/create
# Get voice
Source: https://docs.fluents.ai/api-reference/voices/get-voice
/openapi.yml get /v1/voices
# List voices
Source: https://docs.fluents.ai/api-reference/voices/list-voices
/openapi.yml get /v1/voices/list
# Update voice
Source: https://docs.fluents.ai/api-reference/voices/update-voice
/openapi.yml post /v1/voices/update
# Create webhook
Source: https://docs.fluents.ai/api-reference/webhooks/create-webhook
/openapi.yml post /v1/webhooks/create
# Get webhook
Source: https://docs.fluents.ai/api-reference/webhooks/get-webhook
/openapi.yml get /v1/webhooks
# List webhooks
Source: https://docs.fluents.ai/api-reference/webhooks/list-webhooks
/openapi.yml get /v1/webhooks/list
# Update webhook
Source: https://docs.fluents.ai/api-reference/webhooks/update-webhook
/openapi.yml post /v1/webhooks/update
# Agents – Advanced Settings
Source: https://docs.fluents.ai/product/concepts/agent/advanced
Fine‑tune how your Fluents.ai agents sound, which AI models they use, how they handle silence, call duration, memory, and voicemail detection.
Advanced settings let you **fine‑tune the behavior and quality** of your agents.\
You control which AI model is used, how fast the agent speaks, how it handles silence, whether it remembers context, and more.
On this page:
* [Voice, language, and audio](#voice-language-and-audio)
* [AI model and provider](#ai-model-and-provider)
* [Webhooks and actions](#webhooks-and-actions)
* [Conversation tuning (temperature & speed)](#conversation-tuning-temperature--speed)
* [Silence and idle behavior](#silence-and-idle-behavior)
* [Call duration and recording](#call-duration-and-recording)
* [Memory options](#memory-options)
* [Voicemail detection (BETA)](#voicemail-detection-beta)
* [Where to go next](#where-to-go-next)
***
## Voice, language, and audio
### Voice
Select which **voice** this agent will use on calls (for example, “Heather Rey”).
* Each option in the dropdown is a predefined voice in your Fluents.ai account.
* Changing the selection changes how the agent sounds, but does not change its logic or skills.
* You can switch voices at any time if you find one that fits your brand better.
For more about browsing and testing voices, see **[Voices](../voices)**.
### Language
Set the **language** your agent will speak and understand (e.g., English).
* Make sure this matches the language of your customers.
* It should also align with the voice you selected.
### Background sound
If you choose a **background sound**, the call will include a subtle ambient noise (for example, light office sounds).
* This can make calls feel more natural, as if the agent is in a real environment.
* You currently have a small set of background options to choose from.
* Leave this empty if you prefer a completely quiet background.
***
## AI model and provider
These settings control **which AI engine** powers your agent’s responses.
### LLM Provider
Choose the **LLM provider** (for example, OpenAI).
* This is the company that provides the language model.
* Different providers may offer different quality, speed, and pricing.
### Model Name
Choose the specific **model** from that provider (for example, `GPT‑4.1 Mini`).
* Larger models may be more capable but can be slower or more expensive.
* Smaller models may be faster and cheaper for simple use cases.
If you’re unsure, start with the **recommended default** in the dropdown.
### Speech to Text
Select the **Speech‑to‑Text (STT)** provider (for example, Deepgram).
* This controls how the caller’s voice is converted into text for the AI.
* A good STT provider improves accuracy and reduces misunderstandings.
***
## Webhooks and actions
### Add Webhook
**Webhooks** let your agent send an HTTP request to an **endpoint you control** during or after a call.
* Fluents.ai calls **your URL** with call data (for example, caller number, outcome, transcript snippets, or custom fields).
* Your server, automation tool, or integration then uses that data to update other systems.
Typical uses (implemented on your side):
* Receive call results and then update a CRM record.
* Create a ticket in a helpdesk tool when certain conditions are met.
* Trigger automations (for example, via Zapier, Make.com, or a custom backend).
You configure the actual webhook endpoints in the **Webhooks** and **Actions** areas of the app, then select which ones this agent is allowed to call from Advanced Settings.
### Actions
**Actions** are reusable behaviors your agent can perform, such as:
* Ending the conversation under certain conditions
* Triggering a callback
* Updating external systems
In Advanced Settings, you select which actions this agent is allowed to run.
For a deeper dive, see **[Actions Feature Guide](../../features/actions)** and **[Webhook Feature Guide](../../features/webhook)**.
***
## Conversation tuning (temperature & speed)
### LLM Temperature
**LLM Temperature** controls how **creative vs. strict** the agent is:
* Lower values (toward 0): more predictable, consistent answers
* Higher values: more varied, creative responses
For most customer‑facing use cases, a **lower to medium** temperature is recommended so the agent stays on‑script and reliable.
### Conversation Speed
**Conversation Speed** controls how fast the agent speaks and responds.
* Slide left for **slower, more deliberate** speech.
* Slide right for **faster, more energetic** speech.
* If **Auto** is enabled, Fluents.ai may adjust speed automatically.
You can adjust this to match your brand and audience:
* Slower for support or sensitive topics
* Faster for casual or sales‑oriented conversations
***
## Silence and idle behavior
These settings determine how the agent handles **silence** from the caller.
### Idle Time (seconds)
**Idle Time** is how long the agent will wait in silence before checking if the caller is still there.
Example:
* Idle Time = 7 seconds\
→ After 7 seconds of no response, the agent asks something like\
“Are you still there?”
### Max Idle Check Count
**Max Idle Check Count** is how many times the agent will make that check **before ending the call**.
Example:
* Idle Time = 7 seconds
* Max Idle Check Count = 3
The agent might:
1. Wait 7 seconds → ask if the caller is still there
2. Wait another 7 seconds → ask again
3. Wait another 7 seconds → give a final message and end the call
Use these controls to balance:
* Being patient with callers
* Avoiding very long, silent calls that go nowhere
***
## Call duration and recording
### Call Duration (seconds) and Extend Call
**Call Duration** sets the **maximum length** of a call in seconds.\
For example, `600` seconds = 10 minutes.
* When the limit is reached, the agent will end the call gracefully.
* **Extend Call** lets the system extend the call in specific cases when needed (depending on how your account is configured).
This is useful to:
* Prevent runaway calls
* Keep costs and call times under control
### Enable Recording
Turn **Enable Recording** on if you want to **record calls** for later review.
* Recordings can help with quality control, training, and compliance.
* Make sure to follow any applicable laws or regulations about recording calls in your region.
***
## Memory options
These settings control how much your agent **remembers** across calls.
### Outbound Context Memory
**Outbound Context Memory** is used for **outbound campaigns that include context variables** for each contact.
When this is enabled:
* Fluents.ai remembers the **context variables** that were attached to the contact in the campaign\
(for example: `` `{first_name}` ``, `` `{last_name}` ``, `` `{email}` ``, or any other custom context fields you use).
* If that person **calls back the same number**, the agent can access those same context variables again.
This allows the agent to say things like:
> “Hi `{first_name}`, I’m following up about the message we sent you earlier.”
…because it can reuse the outbound campaign context (variables) tied to that contact, even though the new call is inbound.
### Conversation Memory (BETA)
**Conversation Memory** (BETA) allows the agent to remember more details **within a single conversation** or across multiple turns in more advanced ways.
* This can help with longer or more complex calls.
* Because it’s in BETA, behavior and availability may evolve over time.
If you’re unsure, you can start with this **off** and enable it later for advanced use cases.
***
## Voicemail detection (BETA)
### Dynamic Voicemail Detection (BETA)
**Dynamic Voicemail Detection** helps the agent detect when it has reached a **voicemail greeting** instead of a live person (mainly for outbound calls).
With this enabled, the system can:
* Recognize voicemail greetings more reliably
* Decide whether to leave a voicemail message at the right time or handle it differently
This is useful when you:
* Run outbound campaigns where many calls go to voicemail
* Want to control how and when voicemails are left
Because it’s a BETA feature, you may want to test it with a small list first and adjust based on results.
***
## Where to go next
* Set up the agent’s basic identity and greetings in\
**[Agents – Basic Settings](./basic)**
* Configure what happens after each call in\
**[Agents – Post‑Call Actions](./post-call)**
* Learn how to connect webhooks and actions in detail in the\
**[Actions](../../features/actions)** and **[Webhooks](../../features/webhook)** feature guides
* See how these settings play out in real workflows with\
**[Create Your First Inbound Agent](../../quickstart/first-inbound-agent)** and\
**[Set Up Your First Campaign](../../quickstart/first-campaign)**
# Agents – Basic Settings
Source: https://docs.fluents.ai/product/concepts/agent/basic
Set up the core behavior of a Fluents.ai agent: voice type, greetings, skills, prompt, call context variables, and quick test calls.
Basic settings define **who your agent is and how it talks** on each call.\
From here you choose the voice type, greetings, skills, main prompt, and the context fields the agent can use.
On this page:
* [What basic settings control](#what-basic-settings-control)
* [Voice type](#voice-type)
* [Initial and voicemail messages](#initial-and-voicemail-messages)
* [Skills](#skills)
* [Agent prompt](#agent-prompt)
* [Call context fields](#call-context-fields)
* [Test Call Agent](#test-call-agent)
* [Suggested starting configurations](#suggested-starting-configurations)
* [Where to go next](#where-to-go-next)
***
## What basic settings control
Basic settings answer questions like:
* How does this agent sound and introduce itself?
* What can it do during a call (schedule, route, call back, search, etc.)?
* What instructions and examples guide its behavior (the **prompt**)?
* What information about the caller or business can it reference (**call context**)?
These choices apply whether the agent is used:
* On an **inbound number** (after‑hours, main line, support, etc.), or
* In an **outbound campaign** (sales, reminders, follow‑ups).
***
## Voice type
**Voice Type** lets you choose the general voice category for the agent, e.g.:
* **Male**
* **Female**
This selection works together with the **voice** you pick elsewhere (in the agent or voices feature). Think of it as choosing the **type of speaker** your agent should be.
Use cases:
* Match your existing brand voice (e.g., “Our support line is always a calm female voice.”)
* Differentiate agents (e.g., sales vs. support) with different voice types
You can change this later without affecting any campaigns or numbers already using the agent.
***
## Initial and voicemail messages
### Initial message
The **Initial Message** is what your agent says at the very start of a call.
Examples:
* Inbound support:
> “Hi, this is the virtual assistant for `{your_company}`. How can I help you today?”
* Outbound sales:
> “Hi `{first_name}`, this is an automated assistant calling on behalf of `{your_company}`. Do you have a quick minute?”
This message should:
* Clearly say **who** is calling
* Briefly explain **why** they’re calling
* Invite the caller to respond
You can use **variables** (like `` `{first_name}` ``) that come from **Call Context** or your CRM.
### Voicemail message
If the agent reaches voicemail or needs to leave a recorded message, it uses the **Voicemail Message**.
Example:
> “Hi `{first_name}`, this is an automated assistant from `{your_company}`. I wanted to share a quick update. I’ll follow up shortly, or you can call us back whenever it’s convenient.”
Keep this:
* Short
* Clear about **who called** and **what to do next**
***
## Skills
**Choose Skills** defines what your agent is allowed to do during a call. In the UI you’ll see options such as:
* **Appointment Scheduling**
* **Call Routing**
* **Call Back Later**
* **Knowledge Search**
* **Switch Communication**
You can think of skills as **capabilities** you toggle on or off.
Examples:
* After‑hours agent:
* Appointment Scheduling, Call Routing, Call Back Later
* Outbound sales agent:
* Call Back Later, Knowledge Search (for FAQs), maybe Appointment Scheduling
If a skill is not enabled, the agent will avoid flows that depend on it.
***
## Agent prompt
The **Agent Prompt** is the main set of instructions that shapes how your agent speaks and behaves.
In the UI you have:
* A **dropdown** to select from saved prompts (if you have any)
* A **Generate Prompt** button to help build a prompt template
* A **text area** where you can write or edit your prompt
* An **Add variable** button to insert context variables like `` `{first_name}` ``
A typical prompt might include:
* The agent’s **role/persona**
> “You are an AI outreach agent for `{your_company}`…”
* Tone and style
> “Be friendly, concise, and professional…”
* What the agent should **do**
> “Qualify the caller and, if appropriate, book an appointment or schedule a follow‑up…”
* Guardrails
> “If unsure, ask a clarifying question. Do not discuss topics outside of `{your_company}`’s services…”
* How to handle transfers, callbacks, etc. (if relevant)
The prompt and the **skills** work together:
* Skills = what the system will allow the agent to do
* Prompt = how and when the agent chooses to use those skills
***
## Call context fields
**Call Context** fields are pieces of information about the caller or the situation that your agent can reference in conversation.
You’ll see them in a panel on the right with fields like:
* `first_name`
* `test` (or any custom field you define)
* Potentially others (e.g., `business_name`, `industry`, etc.)
Each context field can be used as a **variable** inside:
* Initial & voicemail messages
* The agent prompt
* Other message templates
### How variables work
If you have a context field called `first_name`, you can use it like this:
`Hi {first_name}, this is the virtual assistant from {your_company}.`
At call time:
* If `first_name` is available (from your CRM, campaign, or manual input), the agent will say “Hi Alex…”.
* If it’s missing, the agent will typically fall back to a more generic phrasing, depending on your prompt and system defaults.
Typical uses for context:
* **Personalization:** `` `{first_name}` ``, `` `{business_name}` ``, `` `{appointment_date}` ``
* **Segmentation:** `industry`, `plan_type`, etc., which you can reference in the prompt to change behavior.
***
## Test Call Agent
**Test Call Agent** lets you try your agent in a real call **before** connecting it to campaigns or inbound numbers.
When you click **Test Call Agent**, you’ll see a dialog with:
* **Caller Number** – Which of your numbers will be shown as the caller ID.
* **Receiver Number** – The phone number you want to call (often your own mobile).
* **VM Detection** – How voicemail detection is handled (e.g., Off or enabled).
* **Do not call detection** – Optional protection so you avoid calling numbers on a DNC list.
* **HIPAA Compliant** – Optional setting for healthcare/compliance‑sensitive scenarios.
Then:
1. Choose a **Caller Number** you own or have linked.
2. Enter your mobile or test number as the **Receiver Number**.
3. Adjust VM detection / compliance settings as needed.
4. Click **Make Call**.
Use this to:
* Hear your **Initial Message** and **Voicemail Message** in context.
* Verify that your **skills** and **prompt** produce the behavior you expect.
* Confirm that variables from Call Context (like `` `{first_name}` ``) are being read correctly when they’re available.
***
## Suggested starting configurations
### Inbound after‑hours agent
* **Voice type:** Friendly, neutral (Male or Female)
* **Initial message:**\
“Hi, this is the after‑hours assistant for `{your_company}`. How can I help you today?”
* **Voicemail message:**\
“It looks like I missed you. I’ll pass your details to the team at `{your_company}` and they’ll follow up.”
* **Skills:** Appointment Scheduling, Call Routing, Call Back Later
* **Prompt:** Focus on capturing contact information, reason for calling, and preferred follow‑up.
### Outbound sales rep agent
* **Voice type:** Energetic, confident
* **Initial message:**\
“Hi `{first_name}`, this is an automated assistant calling on behalf of `{your_company}`. Do you have a quick minute?”
* **Voicemail message:**\
Short, clear call‑back invitation using `` `{first_name}` `` and `` `{your_company}` ``.
* **Skills:** Call Back Later, Knowledge Search (for FAQs), Appointment Scheduling (if you book meetings).
* **Prompt:** Focus on qualifying interest, handling common objections, and booking next steps.
***
## Where to go next
* Fine‑tune behavior and edge cases in\
**[Agents – Advanced settings](./advanced)**
* Configure what happens after each call in\
**[Agents – Post‑Call Actions](./post-call)**
* See a full UI walkthrough in the\
**[Agent Feature Guide](../../features/agent)**
* Try these settings in real workflows with\
**[Create Your First Inbound Agent](../../quickstart/first-inbound-agent)** and\
**[Set Up Your First Campaign](../../quickstart/first-campaign)**
# Agents
Source: https://docs.fluents.ai/product/concepts/agent/intro
Fluents.ai Agents handle your calls—automatically, consistently, and tailored to your business. Learn core concepts and settings before diving into specific features.
# Agents: The Heart of Your AI Calling Experience
Fluents.ai Agents are AI-powered assistants that answer or make calls on your behalf, following your business’s goals, script, and preferences. With an agent, you can ensure every customer gets a professional and consistent experience—24/7, without lifting a finger.
***
## 1. Basic Agent Settings
These are the foundation of every agent you set up:
* **Name & Role:** What do you want the agent to do (e.g., answer inbound calls, make outbound calls)?
* **Assigned Number:** Every agent can be linked to one or more phone numbers.
* **Voice:** Choose the synthetic voice and language that fits your brand.
* **Activation:** Enable or disable your agent with a single click.
[See how to set up a new agent in the Feature Guide →](../../features/agent)
***
## 2. Advanced Agent Settings
Level up your agent with more control and automation. Advanced settings allow your agent to handle more complex scenarios, such as:
* **Handling silence:** Set how the agent responds if the caller is silent.
* **Transfer options:** Let the agent transfer calls to a human or another AI agent.
* **Call interruptions:** Adjust how the agent manages interruptions or overlapping speech.
* **Custom behaviors:** Fine-tune how your agent reacts during and after calls.
[Explore advanced agent configuration in the Feature Guide →](../../features/agent)
***
## 3. After the Call (Post-Call Actions)
Fluents.ai Agents don’t just complete calls—they also manage what happens next:
* **Call summaries:** Automatically send outcomes or notes via email or to your CRM.
* **Follow-ups:** Trigger follow-up messages or additional calls.
* **Integration with your workflow:** Agents can log information, notify your team, or escalate unresolved issues.
[See post-call flows and integrations in the Feature Guide →](../../features/agent)
***
## Where To Next?
* For step-by-step setup, go to the [Agent Feature Guide](../../features/agent)
* To see agents in action, Read the [Quickstart Guide](../../quickstart/index)
* For advanced use cases and real-world workflows, explore our [Use Cases](../../quickstart/first-inbound-agent)
If you need help, our support team is always here for you!
***
# Agents – Post‑Call Actions
Source: https://docs.fluents.ai/product/concepts/agent/post-call
Control what happens after each call: analyze the conversation, write results to your tools, and optionally send SMS or email follow-ups based on clear conditions.
Post‑call settings define what Fluents.ai does **after the call ends**.
From here you can:
1. Run an AI **analysis** on the call transcript.
2. **Write the raw analysis result** to a connected tool (for example, a CRM).
3. Optionally **send SMS** and/or **email** follow‑ups, with conditions based on:
1. Whether the call went to **voicemail** or not.
2. What the **post‑call analysis** contains.
***
## Analyze Call
The **Analyze Call** section tells Fluents.ai **how to summarize or interpret the call** once it’s finished.
You write an **analysis prompt** describing what you want, for example:
1. Summaries (key points discussed)
2. Extracted data (names, emails, reasons for calling)
3. Follow‑up suggestions or classifications
The agent runs this prompt against the **call transcript and metadata**.
### Insights are shared across agents
Insights are **global within your environment**. If you create an insight in one agent, you can reuse that same insight in other agents by adding it from the existing insights list. This lets you standardize the questions you ask after every call (for example, “Summary” or “Did they schedule a meeting?”) across multiple agents.
The output of this analysis:
1. Is stored as a single **raw text result** attached to the call in **Call History**.
2. Can be referenced in templates as `{post_call_results}` (for example, in an email body).
3. Is exactly what your analysis prompt generates; Fluents.ai does not reformat it.
Tip: Keep your analysis prompt clear and structured so the result is easy to read or parse in your own systems.
***
## Write results to
**Write results to** lets you send the **raw post‑call result** to a connected tool such as:
1. HubSpot
2. Salesforce
3. GoHighLevel
4. Lead Docket
5. Monday.com
After each call:
1. Fluents.ai sends the **raw analysis text** (the output of your Analyze Call prompt) to the selected integration.
2. Your integration or connected app decides **how to store or use** that text (for example, saving it as a note, activity, or custom field).
Fluents.ai does **not** automatically map individual fields into the CRM; it sends the analysis result, and you handle the mapping on the destination side.
***
## Send SMS
You can configure an optional **SMS follow‑up** to be sent after a call.
There are two parts:
1. Configure SMS content and provider.
2. Set **conditions** that decide when SMS should send.
### Configure SMS
When you configure SMS, you choose:
1. **SMS Provider** – Which SMS provider connection to use.
2. **From Number** – The phone number the SMS will be sent from.
3. **To Number** – Usually the caller’s number or a variable that resolves to it.
4. **SMS Message** – The text you want to send.
You can use **variables** inside the SMS message, for example `{first_name}` (personalization from Call Context or campaign) and other context variables you have defined.
Example message:
> Thank you for calling `{first_name}`! We will get back to you soon. If you have any questions, just reply to this message.
You can always choose **Don’t Send an SMS** if you want SMS disabled for this agent.
### SMS conditions (when SMS should send)
Under **Conditions**, you decide **when** an SMS is sent.\
All configured conditions must be satisfied for the SMS to go out.
You can base conditions on call outcome and post‑call analysis.
#### Call conditions
Here you use whether the call went to **voicemail** or **not voicemail**.
Common options:
1. Send SMS only if the call went to voicemail.
2. Send SMS only if the call was answered by a person.
Examples:
1. “Send SMS if the call went to voicemail” can be helpful when someone couldn’t pick up.
2. “Send SMS only if the call was answered” can be useful for confirmations after a real conversation.
#### Post‑call analysis conditions
You can also base conditions on the **text of the post‑call analysis**, using:
1. **Contains text** (for example, send SMS if the analysis text contains “interested” or “call back later”)
2. **Matching field value** (if your analysis format includes labeled fields and values, you can test for a specific value)
This lets you do things like:
1. Send a follow‑up SMS only when the analysis suggests the caller is interested.
2. Avoid sending SMS when the person clearly said they are not interested.
***
## Send Email
Email follow‑ups work similarly to SMS: you configure **content** and **conditions**.
You can use:
1. No follow‑up
2. SMS only
3. Email only
4. Both SMS and Email for the same agent
### Configure Email
When you configure email, you choose:
1. **Email Provider** – The email provider connection to use.
2. **From Email** – The sender address, for example `from@your_company.com`.
3. **To Email** – Destination address(es); usually a team inbox or a variable‑based value.
4. **Subject Line** – For example, “Inbound call summary”.
5. **Email Body** – The content of the email.
Within the body you can use variables such as `{from_number}`, `{to_number}`, `{post_call_results}`, and other call or context variables (for example, `{first_name}`).
A simple structure might look like:
From: `{from_number}`\
To: `{to_number}`
Summary:\
`{post_call_results}`
You can choose **Don’t Send an Email** if you want email disabled for this agent.
### Email conditions (when Email should send)
Email conditions work the same way as SMS:
1. Call‑based (voicemail vs. not voicemail)
2. Post‑call analysis‑based (contains certain text or matches a field value)
Examples:
1. Send an internal summary email only when the call was answered (not voicemail).
2. Send an email to a team queue when the analysis suggests an escalation or urgent follow‑up.
***
## Putting it all together
A typical post‑call flow looks like this:
1. The call ends.
2. Analyze Call runs using your analysis prompt.
1. The result is stored with the call and exposed as `{post_call_results}`.
3. Write results to (optional) sends the raw analysis result to a CRM or other tool.
4. SMS and/or Email (optional) are evaluated.
1. First, check the call condition (voicemail vs. not voicemail).
2. Then, check any post‑call analysis conditions.
3. If all conditions are satisfied, the configured SMS and/or email are sent.
***
## Where to go next
1. Review how calls and analysis results are stored and searchable in\
[Call History](../call-history)
2. Learn how post‑call behavior fits with the rest of your agent configuration in\
[Agents – Basic Settings](./basic) and [Agents – Advanced Settings](./advanced)
3. See how to connect your CRM and other tools in the\
[Integrations](../../integrations/active-campaign) and [Webhooks](../../features/webhook) guides
# Call History
Source: https://docs.fluents.ai/product/concepts/call-history
Call history is the central log of all calls made using your Fluents.ai agents. Learn how to review, filter, and export calls, and how scheduled callbacks fit in.
Call history is where you **see everything your agents have done on the phone**.
From here you can:
1. Review inbound and outbound calls for all agents
2. Listen to recordings
3. Filter by date, agent, status, outcome, campaign, or insights
4. Export call data to CSV for reporting or analysis
5. See and manage **scheduled callbacks** in a dedicated view
This is your single source of truth for what actually happened on calls.
On this page:
1. [Call history](#call-history)
2. [Scheduled calls](#scheduled-calls)
3. [Common ways teams use call history](#common-ways-teams-use-call-history)
4. [Where to go next](#where-to-go-next)
***
## Call history
In the **Calls → History** tab, each row represents a single call your agents handled.
Typical columns include:
1. **ID** – Internal identifier for the call (useful when working with support or the API)
2. **Agent** – The agent configuration used for the call
3. **Agent name** – A human friendly label (for example, an after hours or sales agent name)
4. **Recording** – A play button to listen to the call recording (when enabled)
5. **Created at** – When the call started
6. **Duration** – How long the call lasted
7. **From** – The caller’s number (for inbound), or your number (for outbound)
8. **To** – The number that was called
9. **Status** – How the call ended (for example, Ended, Ended (Voicemail), Completed, Canceled)
At a glance, this lets you see which agents are active, how long calls run, and whether they’re ending the way you expect.
***
### Filtering calls
Select **Filters** to open the filter panel and narrow down the list of calls.
Common filters include:
1. **Period** – Date and time range for the calls you want to see
2. **Agents** – Only show calls handled by specific agents
3. **Statuses** – Filter by outcome, such as Ended, Voicemail, Completed, and more
4. **Call ID** – Jump directly to a known call by its ID
5. **Contact number** – Find all calls to or from a specific phone number
6. **Duration (seconds)** – Focus on short calls, long calls, or a specific range
7. **Successful actions** – Filter calls where certain agent actions completed successfully
8. **Transcript keyword** – Search for words or phrases that appear in the call transcript
9. **Campaign** – Filter to calls created by a specific campaign (this corresponds to the campaign identity used for outbound runs and reporting)
10. **Call Insights** – Filter calls based on one or more insight results captured after the call
#### Filtering by Campaign
Use the **Campaign** field to select a campaign and view only calls associated with it. This is useful for campaign level QA, debugging, and performance review.
#### Filtering by Call Insights
Use **Call Insights** when you want to filter calls based on what the AI extracted from the transcript.
How it works:
1. Click **Add Row**
2. Choose the **Call Insight** you want to filter on
3. Choose an operator (examples include equals, contains, and other operators depending on the insight type)
4. Enter or select the value you want to match
When you add multiple insight rows, only calls matching all insight filters are shown.
Examples:
1. Show calls where an insight like Transfer is Yes
2. Show calls where a Summary insight contains a keyword
3. Show calls where a numeric insight is greater than or less than a threshold (when applicable)
Other examples:
1. Review all after hours calls this week by selecting the after hours agent and this week’s period
2. Find all calls over 10 minutes to investigate complex or high effort cases
3. Search for calls mentioning cancel or upgrade using Transcript keyword
***
### Exporting calls to CSV
Use **Export CSV** to download call data for reporting, analysis, or compliance.
When exporting, you can:
1. Choose which columns to include (for example, ID, Agent, Agent Name, Start Time, End Time, Duration, Status, From, To, Post call result, Provider, SIDs, Campaign)
2. Reorder the columns to match how you want them to appear in your CSV
Typical uses:
1. Build custom reports in a spreadsheet or BI tool
2. Share a filtered set of calls with another team
3. Keep offline records for auditing or quality review
The export respects your current filters, so you can export only the calls you care about.
***
## Scheduled calls
In the **Calls → Scheduled** tab, you see **future calls** that your agents will make (your agent must the callback skill enable), often as callbacks requested during previous conversations.
You’ll typically see:
1. **ID** – Reference for the scheduled call
2. **Type** – For example, Callback
3. **Created at** – When the callback was scheduled
4. **Agent** – Which agent will handle the call
5. **From / To** – Numbers that will be used
6. **Scheduled time** – When the call is planned
7. **Status** – For example, Scheduled, Completed, Canceled (Contact Reached)
8. **Activity** – Recent events for that scheduled call (for example, last attempt time)
Use this view to:
1. Confirm that important callbacks are queued
2. See which callbacks have already been completed or canceled
3. Reschedule or manage callbacks as needed (depending on your UI controls)
***
## Common ways teams use call history
A few practical examples:
1. Quality review: filter by one agent, listen to recordings, and spot areas to improve prompts or settings
2. Campaign performance: filter by campaign or successful actions to understand how a sales or reminder campaign is performing
3. Support follow up: search transcripts for specific issues, then follow up with affected customers
4. Insight driven QA: filter by call insights (for example, meeting scheduled, transfer requested, qualified lead) to review the exact calls that match your criteria
5. Compliance and auditing: export detailed call logs with IDs, durations, and outcomes for record keeping
***
## Where to go next
1. Learn how agents control the behavior inside each call in\
[Agents – Basic](./agent/basic)
2. Understand how campaigns generate outbound calls in\
[Campaigns](./campaigns)
3. Configure what happens after each call in\
[Agents – Post‑Call Actions](./agent/post-call)
# Campaigns
Source: https://docs.fluents.ai/product/concepts/campaigns
Campaigns coordinate outbound outreach to your contacts using Fluents.ai agents. Learn how agents, contacts, numbers, schedules, and exit criteria fit together.
Campaigns let you run **automated outbound outreach** to a list of contacts.
A campaign can:
* Place phone calls using your **Fluents.ai agents**
* Optionally include other outreach steps (such as email or SMS, depending on your setup)
* Respect contact windows and timezones so you reach people at appropriate times
* Automatically stop contacting people when clear **exit criteria** are met
On this page:
* [What is a campaign?](#what-is-a-campaign)
* [Key building blocks](#key-building-blocks)
* [How campaigns work with other parts of Fluents.ai](#how-campaigns-work-with-other-parts-of-fluentsai)
* [When to use a campaign vs. an inbound agent](#when-to-use-a-campaign-vs-an-inbound-agent)
* [Typical campaign patterns](#typical-campaign-patterns)
* [Where to go next](#where-to-go-next)
***
## What is a campaign?
A **campaign** is a structured plan for reaching a group of contacts over time.
Conceptually, a campaign answers:
* **Who** do we want to reach? → contacts from a CSV or CRM
* **How** do we want to reach them? → phone calls (and optionally email/SMS steps)
* **When** should we reach them? → contact window, timezone, and delays between steps
* **When should we stop?** → exit criteria (for example, answered, opted out, unreachable)
Once configured, the campaign runs automatically:
* Contacts enter the campaign (for example, when uploaded or synced)
* The campaign schedules outreach steps according to your rules
* Each contact eventually **exits** the campaign when conditions are met
***
## Key building blocks
Campaigns bring together several pieces of Fluents.ai.
### Contacts
The **contacts** are the people you want to reach.
They can come from:
* A **CSV upload** (for example, a list of leads)
* A **CRM integration** (for example, HubSpot, Salesforce, GoHighLevel, etc.)
At minimum, each contact needs a **phone number** for phone steps.\
Additional fields (for example, `first_name`, `last_name`, `email`, custom fields) can be used as **context variables** in prompts and messages.
### Agent
The **agent** is the AI voice that will handle phone calls for the campaign.
* Each **phone call step** in the campaign uses an assigned agent.
* The agent’s **prompt, skills, and settings** determine what happens in‑call.
You can reuse the same agent across multiple campaigns or specialize agents for different flows (for example, sales vs renewals).
### Numbers
**Numbers** are the caller IDs your contacts see when the campaign calls them.
Campaigns can use:
* Specific numbers, or
* Sets of numbers chosen by **tag** (for example, `sales-us`)
Numbers determine:
* Which line calls come from
* How local the caller ID appears to contacts
See **[Numbers](./numbers)** for more on how numbers are added and tagged.
### Contact window & timezone
The **campaign contact window** defines **when** contacts are allowed to be reached, for example:
* Days of the week (Monday–Friday)
* Times of day (for example, 9:00am–7:00pm)
* Timezone behavior:
* Use the contact’s local timezone if known
* Fallback to a specific timezone if not
This ensures calls and outreach happen only during acceptable hours.
### Outreach flow (steps and delays)
The **outreach flow** is the sequence of steps the campaign will perform for each contact.
Typical elements:
* **Step type** – for example, Phone call (and, in some setups, Email or SMS)
* **Agent** – which agent to use for phone steps
* **Timing** – send “at the earliest eligible time” or “within a specific time window”
* **Delays** between steps – for example, “1 day after phone call”
This lets you build simple or multi‑step follow‑up flows.
### Exit criteria
**Exit criteria** define when a contact automatically leaves the campaign.
Examples include:
* The contact answered a call from this campaign
* The contact explicitly requested to stop receiving communication
* The contact’s number is unreachable
Once an exit condition is met, the campaign stops scheduling new steps for that contact.
***
## How campaigns work with other parts of Fluents.ai
Campaigns do not exist in isolation—they use and feed other parts of the platform.
* **Agents**\
Campaigns rely on your configured agents to handle phone calls.\
Agent settings (basic, advanced, post‑call) determine what calls look like.
* **Numbers**\
Campaigns use numbers (often chosen by tag) as caller IDs.\
Managing numbers and tags well makes it easier to assign the right numbers per campaign.
* **Call History**\
Every call placed by a campaign appears in **Call history** with its outcome and recording (if enabled).\
This is where you review what actually happened.
* **Post‑Call Actions**\
The agent’s post‑call settings can trigger summaries, CRM updates, SMS or email follow‑ups after each call.\
Campaigns determine **who is called when**; post‑call behavior determines **what happens after** each call.
***
## When to use a campaign vs. an inbound agent
You don’t always need a campaign.
Use **only an inbound agent** when:
* You want to **answer incoming calls** on a phone number
* People call you (support line, after‑hours line, main business number)
* You’re not driving proactive outreach to a list
Use a **campaign** when:
* You want to **proactively reach** a list of contacts
* You’re running sales outreach, appointment reminders, payment reminders, or re‑engagement
* You need consistent scheduling, retries, and tracking across many contacts
A simple rule of thumb:
> If your team would normally “work a call list” manually, you probably want a **campaign**.
***
## Typical campaign patterns
Here are a few common campaign shapes.
### Simple outbound call campaign
Goal: Reach a list of leads once with a single call.
* Contacts: uploaded CSV or CRM list
* Flow: one phone call step
* Contact window: weekdays, business hours
* Exit criteria: contact answered, opted out, or unreachable
### Multi‑step call campaign
Goal: Try a contact more than once before giving up.
* Flow:
* Step 1: Phone call
* Wait: for example, 1 day
* Step 2: Phone call (same or different agent)
* Contact window and timezone respected for each step
* Exit criteria: answer, opt‑out, or unreachable
### Call plus follow‑up message
Goal: Call the contact and, depending on outcome, send a follow‑up via another channel.
* Flow:
* Step 1: Phone call
* Optional further steps (for example, SMS or email) depending on conditions
* Agent’s **post‑call actions** and your messaging tools handle the follow‑up content.
***
## Where to go next
* Understand how agents behave inside each campaign call in\
**[Agents – Basic](./agent/basic)** and **[Agents – Advanced](./agent/advanced)**
* Learn how numbers and tags work when choosing caller IDs in\
**[Numbers](./numbers)**
* See what actually happens once campaigns start calling in\
**[Call history](./call-history)**
* Configure what happens after each call in\
**[Agents – Post‑Call Actions](./agent/post-call)**
# Numbers
Source: https://docs.fluents.ai/product/concepts/numbers
Numbers are the phone lines your Fluents.ai agents use to send and receive calls. Learn how buying, linking, and tagging numbers fits into your overall setup.
Numbers are the **phone lines** your Fluents.ai agents use to:
* Receive inbound calls from your customers
* Place outbound calls in campaigns
* Control which caller ID your contacts see
Depending on your setup, you can either:
* **Buy new numbers directly in Fluents.ai**, or
* **Link existing numbers** that you already own with a telephony provider.
***
## How numbers fit into Fluents.ai
Numbers sit between your **customers** and your **agents**:
* For **inbound calls**:\
Customers dial a number → Fluents.ai receives the call → your **inbound agent** answers.
* For **outbound campaigns**:\
Your **campaign** uses one or more numbers to call a list of contacts → the caller ID they see is the number you chose.
You can:
* Own numbers fully inside Fluents.ai (when you buy numbers)
* Reuse numbers you already have with external providers (when you link numbers)
* Organize numbers with **tags** so you can easily assign the right ones to agents and campaigns
***
## Numbers list view
In the **Numbers** section, you’ll see all phone numbers available for your account.
Typical columns include:
* **ID** – Internal identifier for the number.
* **Number** – The phone number itself.
* **Agent** – The inbound agent currently assigned to this number (if any).
* **Telephony provider** – For example, Fluents, Telnyx, or Twilio.
* **Account connection** – Which provider account the number belongs to (when applicable).
* **Tags** – Any tags you’ve added to group this number (for example, `sales-us`, `after-hours`).
At the top of the page you can:
* **Search numbers** – Quickly find a specific number by searching its digits.
* **Filter by tags** – Show only numbers that match one or more tags.
This makes it easy to locate the right number when assigning agents or configuring campaigns.
***
## Buying vs. linking numbers
Fluents.ai supports two main ways to add numbers to your account.
### 1. Buying numbers in Fluents.ai (US only)
Use this when you **do not have your own telephony provider** and want Fluents.ai to handle the phone line for you.
* Currently, you can buy **US phone numbers** directly in Fluents.ai.
Typical flow:
* Click **New** in the Numbers page.
* Choose the **Fluents** provider (or built‑in option, depending on your UI).
* Pick an available US number.
* Add the number to your account.
* Optionally assign an **inbound agent** and **tags** as part of the setup.
Good for:
* Setting up dedicated inbound lines (for example, Support, After‑hours, Sales).
* Having clean caller IDs for outbound campaigns.
* Getting started quickly without creating accounts at external providers.
***
### 2. Linking existing numbers you already own
If you already have phone numbers with a telephony provider (for example, Telnyx or Twilio), you can **link** those numbers to Fluents.ai.
Linking is simple:
* In the **Numbers** page, use **Link Existing** (or the equivalent action).
* Enter the **phone number** you want to link.
* Fluents.ai validates and, if everything looks good, adds that number to your list.
* Optionally assign an **inbound agent** and **tags** when you link it.
You are not searching an inventory inside Fluents.ai here—you are telling Fluents “use this number I already own with my provider”.
Good for:
* Teams who already use Telnyx, Twilio, or another provider and don’t want to change numbers.
* Preserving existing phone numbers that customers already know.
* Gradually migrating from manual or legacy phone workflows to AI agents.
***
## Assigning numbers to agents (inbound)
To **receive inbound calls**, a number must be linked to an **inbound agent**.
Conceptually:
* **Number** = the phone line customers dial.
* **Agent** = what answers the phone and handles the conversation.
Typical usage:
* Main business line → reception or routing agent.
* After‑hours line → after‑hours agent.
* Support line → support triage agent.
In the **New Number**, **Link Existing**, or **Edit** modal you can:
* Set the **Inbound Agent** for that number.
* Change the assignment later if your workflows change.
You can assign:
* One number to one inbound agent.
* Multiple numbers to the same agent (for example, regional numbers that all route to the same agent).
***
## Using numbers in campaigns (outbound)
For **outbound campaigns**, numbers are used as the **caller ID** your contacts see.
You can:
* Choose which specific number (or pool of numbers) a campaign should use.
* Use different numbers for different regions, brands, or purposes.
* Reuse the same number across multiple campaigns when appropriate.
This is where **tags** become especially helpful.
***
## Organizing numbers with tags
Tags let you **group and filter numbers** so you can easily assign the right ones to agents and campaigns.
Examples of tags:
* `inbound-support`
* `after-hours`
* `sales-us`
* `sales-eu`
* `clinic-a`, `clinic-b` (for multi‑location businesses)
How tags help:
* When creating a **campaign**, you can choose numbers by tag (for example, use all `sales-us` numbers).
* In the **Numbers** page, you can filter by tag to see subsets of numbers (for example, all after‑hours lines).
* When assigning numbers to **inbound agents**, tags can help you find the right set quickly.
Tags are **free‑form**: you can create as many as you need directly in the number modal and reuse them across numbers.
***
## Typical number strategies
Here are a few simple patterns that work well:
### Inbound after‑hours agent
* Buy or link a dedicated **after‑hours number**.
* Tag it `after-hours`.
* Assign it to your **after‑hours inbound agent**.
* Optionally use the same tag when filtering or reporting.
### Outbound sales campaign
* Buy or link **several local numbers** for a region (for example, US East).
* Tag them `sales-us`.
* In your **outbound sales campaign**, choose numbers with the `sales-us` tag.
* Your contacts see a familiar local caller ID, while the campaign manages pacing and retries.
***
## Where to go next
* See how campaigns use numbers in\
**[Campaigns](./campaigns)**
* Learn how to configure and manage numbers step‑by‑step in the\
**[Numbers Feature Guide](../features/numbers)**
* Explore real workflows that combine numbers, agents, and campaigns in the\
**[Use Cases & Tutorials](../quickstart/index)**
# Voices
Source: https://docs.fluents.ai/product/concepts/voices
Voices define how your Fluents.ai agents sound. Learn how to browse, filter, import, and test voices before assigning them to agents and campaigns.
Voices control **how your AI agent sounds** on the phone:
* The language and style of speech
* How natural or synthetic the audio feels
* The perceived “personality” of the agent
You can:
* Browse and **listen to available voices**
* **Search** by name and **filter** by provider or source
* **Import new voices** from supported providers (after adding an API key)
* Assign voices to your **agents** so every call sounds consistent with your brand
***
## How voices fit into Fluents.ai
Think of a **voice** as part of your agent’s identity:
* **Agent** = what the agent says and how it behaves (prompt, rules, logic)
* **Voice** = how the agent sounds when speaking
You can reuse the same voice across multiple agents, or choose different voices for different roles. For example:
* A friendly, neutral voice for after‑hours reception
* A more energetic voice for outbound sales
* A calm, reassuring voice for support or sensitive conversations
There is **no separate tone slider** in Fluents.ai today—the tone and style come from the **specific voice** you choose.
***
## Browsing and filtering voices
In the **Voices** section of Fluents.ai, you’ll see a list of all voices available in your account.
Typical fields include:
* **Name** – The display name of the voice.
* **Provider** – Which voice provider or engine the voice comes from.
* **Source / created by** – Whether the voice was added by **Fluents.ai** or imported/created by **your account**.
You can:
* **Search by name** to quickly find a specific voice.
* **Filter by provider** to see only voices from a given provider.
* **Filter by source** (for example, platform voices vs. voices you imported yourself).
This makes it easy to:
* Find platform voices that work well out of the box.
* Focus on voices from a specific provider if you have a preference.
* See only the voices your team has added.
***
## Importing new voices (via provider API key)
If you use an external text‑to‑speech (TTS) provider, you can **import new voices** into Fluents.ai.
There are two main steps:
1. **Connect your provider in the Providers tab**
* Go to the **Providers** section.
* Select the voice provider you want to use.
* Add your **API key / credentials** for that provider.
* Save the configuration.
If no provider API key is configured, you **cannot import voices** from that provider.
For a detailed walkthrough, see the\
**[Providers Feature Guide](../features/providers)** (for example: “How to connect a voice provider”).
2. **Import voices in the Voices tab**
* Go to the **Voices** section.
* Use the **Import voices** option (or the equivalent action in your UI).
* Choose the provider you connected.
* Select which voices you want to import.
Once imported:
* The new voices appear in your **Voices** list alongside platform voices.
* You can select them when configuring an agent, just like built‑in voices.
This is useful if:
* You already have **custom voices** with a provider.
* You want access to a larger or more specialized **catalog of voices** from your own provider account.
***
## Testing (previewing) voices
Before assigning a voice to an agent, you can **play a short sample** of how it sounds.
In the UI, you’ll typically see:
* A **Play** or **Preview** button next to each voice.
* Either a default sample sentence, or an input where you can type a short test phrase.
You might use this to:
* Compare several voices side‑by‑side.
* Hear how different providers handle the same sentence.
* Check pronunciation of names, product terms, or industry‑specific words.
Tip: When possible, test a short sentence similar to what your agent will say on real calls (like your greeting or introduction line).
***
## Choosing the right voice for your use case
Some practical guidelines:
* **After‑hours / reception agents**
* Choose a **clear, friendly** voice that is easy to understand.
* Prioritize clarity over strong personality.
* **Outbound sales agents**
* Consider a voice that sounds **confident and engaging**.
* Make sure it still feels natural when heard many times.
* **Support or sensitive conversations**
* Prefer a **calm, reassuring** voice.
* Test that key terms are pronounced correctly.
You can change an agent’s voice later if you find a better fit—no need to recreate the agent.
***
## Where to go next
* Learn how voices are used inside agent setup in\
**[Agents – Basic](./agent/basic)**
* Configure or change a voice for a specific agent in the\
**[Agent Feature Guide](../features/agent)**
* Connect providers and credentials in the\
**[Providers Feature Guide](../features/providers)**
* See all voice‑related options in the\
**[Voices Feature Guide](../features/voice)**
# Get your API key
Source: https://docs.fluents.ai/product/features/account/get-api-key
Learn how to find and use your environment-specific API key when calling the Fluents.ai API.
Each **environment** in Fluents.ai has its own **API key**.
You’ll use this key when:
* Calling the **Fluents.ai HTTP API** from your backend.
* Connecting Fluents.ai to other tools that require direct API access.
There is:
* **One API key per environment.**
* **No separate account‑wide key.**
* No self‑service regeneration today (the key is fixed unless changed by Fluents.ai support).
On this page:
* [Where to find your API key](#where-to-find-your-api-key)
* [Choosing the right environment](#choosing-the-right-environment)
* [How to use the API key in requests](#how-to-use-the-api-key-in-requests)
* [Security best practices](#security-best-practices)
* [Where to go next](#where-to-go-next)
***
## Video: Get API Key
***
## Where to find your API key
1. **Open Settings**
* In the left‑hand sidebar of the Fluents.ai app, click **Settings**.
2. **Locate your environment**
* At the top of the Settings page, in the **Environments** section, find the row for the environment whose key you want (for example, `default` or `production`).
3. **Reveal and copy the key**
* In the **API Key** column:
* Click the **eye** icon to reveal the key (if it is masked).
* Click the **copy** icon to copy the key to your clipboard.
You now have the API key for that specific environment.
Remember: if you switch environments (for example, from `staging` to `production`), the **API key is different**.
***
## Choosing the right environment
Because API keys are **per environment**, always confirm:
* Which environment you are working in (via the environment selector at the top of the app).
* Which environment’s API key you are using in your code or integration.
Common patterns:
* Use a **staging** or **test** environment key for development and QA.
* Use a **production** environment key for live traffic.
This keeps test traffic and production traffic cleanly separated.
***
## How to use the API key in requests
When calling the Fluents.ai API, you typically:
* Include the API key in an **Authorization** header.
* Use it from a **server‑side** environment (not directly from a browser or client app).
In most cases, your HTTP requests should include a header like:
* Header name: `Authorization`
* Header value: `Bearer YOUR_API_KEY_HERE`
For example (conceptually):
* `Authorization: Bearer sk_live_...`
The exact authentication details and example requests are documented in the\
**API Authentication guide** (see *Where to go next* below).
***
## Security best practices
Treat your API key like a **password** for that environment:
* **Do not** share it publicly or commit it to version control.
* **Do not** embed it in client‑side code (browser JavaScript, mobile apps).\
Use it from your backend or a secure integration platform.
* Store it in a **secure secrets manager** or environment variables (for example, in your server or CI/CD system).
If you ever suspect that an API key has been exposed:
* Remove or disable the code or integration using that key.
* Contact Fluents.ai support or your Fluents.ai representative to discuss rotation options for that environment.
***
## Where to go next
* See how to manage environments and users in the\
**[Settings Feature Guide](./settings)**.
* Once your key is set up, explore the full API in the\
**[API Reference](../../../api-reference)**.
# Settings
Source: https://docs.fluents.ai/product/features/account/settings
Manage environments (workspaces) and users for your Fluents.ai account.
The **Settings** page lets you manage:
* **Environments** – separate workspaces with their own agents, numbers, and campaigns.
* **Users** – people who can access your Fluents.ai account, with Admin or Member roles (and invitation status).
You can open **Settings** from the left‑hand sidebar of the Fluents.ai app.
Settings is split into two tabs:
* **Environments**
* **Users**
On this page:
* [Environments overview](#environments-overview)
* [Create and manage environments](#create-and-manage-environments)
* [Concurrent calls per environment](#concurrent-calls-per-environment)
* [Hide or delete an environment](#hide-or-delete-an-environment)
* [Users and roles](#users-and-roles)
* [Invite a new user](#invite-a-new-user)
* [Pending invitations](#pending-invitations)
* [Manage existing users](#manage-existing-users)
***
## Video: Settings Overview
***
## Environments overview
An **environment** is like a **workspace** inside your Fluents.ai account.
Each environment has:
* Its own agents, campaigns, numbers, and settings.
* Its own **API key** (see the *Get API key* guide for details).
* A **Max Concurrent Calls** limit.
At the top of the app, you’ll see an **environment selector** (for example, `default`).\
Switching this selector switches which environment you’re currently working in.
In **Settings → Environments**, you’ll see a table with:
* **ID** – Unique identifier for the environment.
* **Environment Name** – A human‑friendly name (for example, `default`, `production`, `staging`).
* **API Key** – Masked API key for that environment.
* **Max Concurrent Calls** – How many calls can run in this environment at the same time.
* **Created At** – When the environment was created.
* **Hidden** – Whether this environment is hidden from the environment selector.
***
## Create and manage environments
To **create a new environment**:
1. Go to **Settings**.
2. Open the **Environments** tab.
3. Click **Create Environment**.
4. Enter an **Environment Name**.
5. Choose the **Max Concurrent Calls** for this environment (within your account limit).
6. Save.
To **edit an environment**:
1. In the Environments table, open the **three‑dot menu** for that environment.
2. Choose **Edit**.
3. Update the **name** and/or **Max Concurrent Calls** (and other available settings).
4. Save your changes.
Use separate environments when you want to:
* Isolate testing from production (for example, a `staging` environment).
* Separate different teams or projects under one account.
***
## Concurrent calls per environment
Your account has a **plan‑level maximum** for concurrent calls.
Within that:
* Each environment has its own **Max Concurrent Calls** setting.
* The sum of concurrent calls across environments **cannot exceed** your overall plan limit.
* You **cannot set** an environment’s Max Concurrent Calls higher than your plan allows.
For example:
* Your plan allows 40 concurrent calls.
* You might set:
* Environment A → 20
* Environment B → 10
* Environment C → 10
You can adjust these values in **Settings → Environments** (Edit), as long as the total remains within your plan.
***
## Hide or delete an environment
The **Hidden** toggle in the Environments table controls visibility in the environment selector.
* If **Hidden** is ON:
* The environment is not shown in the normal environment switcher.
* It still exists and can be managed from **Settings**.
* If **Hidden** is OFF:
* The environment appears in the selector and can be chosen like any other.
To **delete an environment**:
1. In the Environments table, open the **three‑dot menu** for that environment.
2. Choose **Delete**.
3. Confirm the deletion.
Deleting an environment removes its configuration (agents, campaigns, numbers, etc.) from your account, so use this option carefully.
***
## Users and roles
The **Users** tab in Settings shows everyone who has access to your Fluents.ai account.
Important points:
* Users are **account‑wide** – they see all environments.
* There are two roles:
* **Admin** – Can change settings, create/edit environments, manage users, and configure most resources.
* **Member** – Can view, but not edit, most settings and configurations.
Use Admin for people who manage setup and configuration.\
Use Member for people who mostly need to view calls, campaigns, or reports.
***
## Invite a new user
To invite someone to your Fluents.ai account:
1. Go to **Settings**.
2. Open the **Users** tab.
3. Click **Add User**.
4. Enter the user’s **email address**.
5. Choose a **role**:
* **Admin** – full configuration access.
* **Member** – view-only (no edits).
6. Send the invite.
The invited user will receive an **email invitation**. Once they accept, they will see all environments in your account.
***
## Pending invitations
In **Settings → Users**, you’ll also see a **Pending Invitations** table for invites that haven’t been accepted yet.
This table includes:
* **Email** – the invited user’s email
* **Invited By** – who sent the invite
* **Expires At** – when the invite expires
* **Status** – for example, **Expired**
* An actions menu (**⋮**) with **Renew** (when available)
### Renew an expired invite
If an invite has expired, you can renew it:
1. In **Pending Invitations**, find the invite.
2. Click the **⋮** menu on the right.
3. Select **Renew**.
This renews the invitation so the user can accept it again.
***
## Manage existing users
In the **Users** table you can see:
* **User** – Name of the user.
* **Role** – Admin or Member.
* **Email** – Email address associated with their account.
To change a user:
1. Open the **three‑dot menu** next to their row.
2. Choose the appropriate action, such as:
* Change **role** (Admin ↔ Member).
* Remove the user from the account (if available in your UI).
Remember:
* Changing a user’s role affects their access to **all environments**.
* Removing a user revokes their access to the entire account.
***
## Where to go next
* Learn how to retrieve and use environment‑specific API keys in\
**[Get API key](./get-api-key)**
* Start building agents and campaigns inside your environments with the\
**[Agent](./../agent)** and **[Campaigns](./../campaigns)** feature guides.
# Sign up for Fluents.ai
Source: https://docs.fluents.ai/product/features/account/sign-up
Create your Fluents.ai account and start your free trial in a few minutes.
You can create a Fluents.ai account in just a few steps and start your free trial right away.
The sign‑up page is available from the website or directly at your Fluents.ai sign‑up URL.
***
## Create your account
On the **Create your account** page you can sign up in two ways:
1. **Email and password**
* Enter your **Full Name**.
* Enter your **Email** (we recommend using your work email).
* Choose a **Password** and confirm it.
* Click **Sign Up**.
2. **Single sign‑on (SSO)**
* Click **Sign up with Google** or **Sign up with Apple**.
* Complete the sign‑in flow with your Google or Apple account.
Your free trial typically includes:
* A limited **trial period** (for example, 14 days).
* Access to core features so you can build and test agents and campaigns.
* The ability to book a demo or get help from the Fluents.ai team.
You do **not** need a credit card to start the trial.
***
## Verify your email
After signing up with an email and password:
* You’ll receive a **verification email** at the address you used.
* Open that email and click the verification link to confirm your account.
Until your email is verified, some actions may be limited (for example, certain integrations or notifications), so it’s best to verify right away.
If you don’t see the email:
* Check your **spam** or **promotions** folder.
* If needed, use the sign‑in page to request a new verification email.
For SSO sign‑ups (Google or Apple), verification may be handled by your identity provider.
***
## Sign in next time
To return to the platform:
* Go to the Fluents.ai login page.
* Either:
* Enter your **email and password**, or
* Use **Sign in with Google** / **Sign in with Apple**, matching how you signed up.
If you forget your password, use the **Forgot password?** link on the login page to reset it.
***
## Where to go next
Once you’re signed in and your email is verified, you’re ready to start using Fluents.ai:
* **Set up your first agent and campaign** in the\
**[Quickstart](../../quickstart/index)**.
* **Review key concepts** like agents, numbers, and campaigns in\
**[Core Concepts](../../concepts/agent)**.
* **Configure account settings and invite team members** in the\
**[Settings Feature Guide](./settings)**.
# Actions – Custom External Actions
Source: https://docs.fluents.ai/product/features/actions
Learn how to configure Custom External Actions so your agents can call your own APIs during a live conversation.
**Actions** let your agent perform special behavior during a call.
This guide focuses on **Custom External Actions** (also called **Custom Input**), which allow your agent to call **your own APIs** in the middle of a conversation.
Use Custom External Actions when you want your agent to:
* Look up data in your systems (for example, a CRM or internal database)
* Create or update records (for example, a lead, ticket, or order)
* Trigger workflows in external tools
Other phone actions (End Conversation, Transfer Calls, DTMF, Warm Transfer) are available under **Phone Actions**, but are not covered here.
On this page:
* [Where to find Custom External Actions](#where-to-find-custom-external-actions)
* [Create a Custom External Action](#create-a-custom-external-action)
* [Configure the external request](#configure-the-external-request)
* [Define the Input Schema](#define-the-input-schema)
* [How the agent triggers the action](#how-the-agent-triggers-the-action)
* [How this differs from Webhooks](#how-this-differs-from-webhooks)
* [Where to go next](#where-to-go-next)
***
## Where to find Custom External Actions
1. In the left-hand sidebar, click **Actions**.
2. At the top of the page, switch to the **Custom External Actions** tab.
You’ll see a table listing your custom actions, typically with columns like:
* **Name**
* **Description**
* **Action Trigger**
* **Phone Number** (where applicable)
* **ID**
This list is empty until you create your first action.
To create one, click **Create Action**.
***
## Create a Custom External Action
When you click **Create Action**, you first choose the type of action.
1. In the **Create a new action** dialog, select **Custom Input**.
* This is the type used for Custom External Actions.
* Other options like End Conversation, Transfer Calls, DTMF, and Warm Transfer are for phone-only behaviors.
2. Click **Continue** to open the configuration form for your custom external action.
You’ll now define:
* Basic information (name, description)
* The **URL** to call
* What the agent says before/after the call
* The **Input Schema** (what data to collect from the caller)
***
## Configure the external request
In the configuration form for your Custom External Action, you’ll see fields similar to:
* **Action Name** – A human‑friendly name for the action.
* Example: `Create CRM lead`, `Check account status`.
* **Description** – A short explanation of what this action does.
* **URL** – The endpoint your agent will call.
* This should be a URL you control (for example, an API in your backend or an integration endpoint).
* Fluents.ai sends an HTTP **POST** request with a JSON body to this URL.
* **Speak on Send** – What the agent says **before** calling your API.
* Example: `Let me check your account details.`
* **Speak on Receive** – What the agent says **after** your API responds.
* Example: `Okay, I’ve retrieved your information.`
The **Processing model** for Custom External Actions is currently **Muted**:
* While the external request is being processed, the agent pauses and does not speak.
* When the response returns and is processed, the agent resumes the conversation.
The exact HTTP request and response format is designed to be handled by your backend; the agent/LLM interprets the JSON response and uses it in conversation based on your prompt and schema.
***
## Define the Input Schema
The **Input Schema** describes which pieces of information the agent must collect before it calls your external endpoint.
It is based on OpenAI-style function calling but is editable directly in the UI. You do **not** need to write JSON manually; you use the interface to define:
* Properties (fields)
* Types
* Whether fields are required
Typical configuration:
* Add properties such as:
* `first_name` (string)
* `email` (string)
* `issue` (string)
* `customer_id` (string or number)
* Mark properties as **required** or **optional**.
* Add **descriptions** for each field to guide the agent:
* Example: `The customer’s email address`, `Brief description of the customer’s issue`.
During the call:
1. The agent uses its prompt and the Input Schema to ask the caller for the required information.
2. Once all **required** fields are collected, the Custom External Action is triggered automatically:
* Fluents.ai sends a POST request to your URL with a JSON body that matches your schema.
3. The agent waits for the response (muted), then resumes the conversation using the returned data.
Because Custom External Actions are **function-based**, there is no fixed phrase trigger.\
The agent decides **when** to call the action based on:
* Your input schema, and
* How you instruct it in the agent’s prompt (for example: “When you have the customer’s email and issue, call the `create_support_ticket` action.”)
***
## How the agent triggers the action
Custom External Actions are **function-based**:
* You define them once in **Actions → Custom External Actions**.
* They become available to agents as tools the LLM can call.
* You control *when* and *why* they are used through your **agent prompt** and Input Schema descriptions.
In your agent prompt, you might write instructions like:
* `When the caller wants to book an appointment, use the appointment scheduling action once you have their name and preferred time.`
* `If the caller is asking about account status, call the account lookup action after collecting their email or account ID.`
The LLM will:
1. Guide the conversation to collect the required schema fields.
2. Trigger the external action when conditions are met.
3. Use the JSON response to continue the conversation (for example, confirming a booking or reading back status).
***
## How this differs from Webhooks
Both Custom External Actions and **Webhooks** send data to URLs you control, but they serve different purposes:
* **Custom External Actions**
* Called **during** a live conversation.
* Let the agent ask follow-up questions, collect data, call your API, and then continue speaking based on the response.
* Are function-based and tightly integrated with the agent’s prompt and Input Schema.
* **Webhooks**
* Typically called **after** events (like call completed, call started, etc.).
* Are better suited for asynchronous processing, logging, or triggering external workflows that don’t require the agent to wait and respond immediately.
Use **Custom External Actions** when the conversation itself must react to your API result.\
Use **Webhooks** when you just need to notify external systems about events.
See the **[Webhooks Feature Guide](./webhook)** for more on webhooks.
***
## Where to go next
* Design which data your agents should collect and how they should use external systems in the\
**[Agents – Advanced Settings](../concepts/agent/advanced)** and **[Agents – Post-Call Actions](../concepts/agent/post-call)** guides.
* Learn how to configure webhooks and event-driven integrations in the\
**[Webhooks Feature Guide](./webhook)**.
* Manage environment API keys and credentials for your backend in\
**[Get API key](./account/get-api-key)** and **[Providers](./providers)**.
# Agent editor
Source: https://docs.fluents.ai/product/features/agent
Learn how to create, configure, and test agents using the Basic, Advanced, and Post-Call tabs, and how to use call context effectively.
Agents are at the heart of Fluents.ai.\
The **Agent editor** is where you configure how an agent sounds, what it can do, and what happens before and after each call.
This guide covers:
* [Open the Agent editor](#open-the-agent-editor)
* [Create a new agent](#create-a-new-agent)
* [Configure Basic Information](#configure-basic-information)
* [Use call context (variables)](#use-call-context-variables)
* [Adjust Advanced Settings](#adjust-advanced-settings)
* [Configure Post-Call actions](#configure-post-call-actions)
* [Test an agent](#test-an-agent)
* [Connect agents to numbers and campaigns](#connect-agents-to-numbers-and-campaigns)
For a deeper explanation of each setting, see the **Agents** core concept pages:
* [Agents – Basic Settings](../concepts/agent/basic)
* [Agents – Advanced Settings](../concepts/agent/advanced)
* [Agents – Post-Call Actions](../concepts/agent/post-call)
***
## Videos: Agent editor
### Video: Agent – Basic Settings
***
### Video: Agent – Advanced Settings
***
### Video: Agent – Insights
***
## Open the Agent editor
To work with agents:
1. In the left-hand sidebar, click **Agents**.
2. You’ll see a list of existing agents.
3. Click an agent’s name to open it in the editor.
The Agent editor has three main tabs:
* **Basic Information** – Greeting, message texts, skills, prompt, call context.
* **Advanced Settings** – Model, temperature, speed, idle behavior, call limits, recording, memory.
* **Post-Call** – How to analyze calls, write results to tools, and send SMS/email follow-ups.
***
## Create a new agent
To create a new agent:
1. Go to **Agents**.
2. Click the **New Agent** (or equivalent) button.
3. Give your agent a **name** (for example, `Inbound after-hours` or `Outbound sales`).
4. Choose any required high-level options, such as:
* Whether it will be used mainly for **inbound** or **outbound** calls (if applicable in your UI).
5. Save to open the agent in the editor.
You can now configure it using the Basic, Advanced, and Post-Call tabs.
***
## Configure Basic Information
On the **Basic Information** tab you define:
* How the agent introduces itself.
* What voicemail message it leaves.
* Which skills it can use.
* The core instructions (prompt) that drive its behavior.
Key fields typically include:
* **Voice Type** – Choose a general voice category (for example, Male or Female).
* **Initial Message** – What the agent says at the start of the call.
* **Voicemail Message** – Message used when leaving voicemail.
* **Choose Skills** – Capabilities such as Appointment Scheduling, Call Routing, Call Back Later, Knowledge Search, Switch Communication.
* **Agent Prompt** – The main instructions that define the agent’s role, tone, and behavior.
For example:
* An **after-hours** agent might introduce itself as the virtual assistant for `{your_company}` and focus on collecting contact details and reasons for calling.
* An **outbound sales** agent might introduce itself as an assistant calling on behalf of `{your_company}` and focus on qualifying interest and booking next steps.
For guidance on what to put in these fields and recommended defaults, see\
**[Agents – Basic Settings](../concepts/agent/basic)**.
***
## Use call context (variables)
**Call Context** lets you personalize conversations using fields such as `first_name`, `last_name`, `business_name`, or any custom values you add.
You’ll see a **Call Context** panel with editable fields.
Typical uses:
* Personalizing greetings:
* Initial Message:\
`Hi {first_name}, this is the virtual assistant for {your_company}.`
* Tailoring messages based on business or segment:
* Prompt:\
“If `industry` is `healthcare`, adjust your examples and explanations accordingly.”
### Add and manage context fields
1. In the **Call Context** panel, add or edit fields such as:
* `first_name`
* `last_name`
* `business_name`
* Custom fields relevant to your workflows
2. Use these fields in:
* **Initial Message** and **Voicemail Message**
* The **Agent Prompt**
* Post-call SMS or email templates
Anywhere you want to reference a field, write it as:
* `{first_name}`
* `{business_name}`
* `{your_company}`
### How context gets its values
Context values can come from:
* **Campaign contacts CSV** – columns you map (for example, `first_name`, `email`).
* **CRM integrations** – fields synced into Fluents.ai.
* **Manual entry or defaults** – when you test manually or have fixed values.
If a field is missing for a given contact, the agent will typically fall back to more generic phrasing, depending on your prompt and system behavior.
For more on the concept of call context, see the **Call Context** section in\
**[Agents – Basic Settings](../concepts/agent/basic)**.
***
## Adjust Advanced Settings
The **Advanced Settings** tab controls:
* Which AI model powers the agent.
* How creative vs. consistent the responses are.
* How it handles silence and call length.
* Whether calls are recorded and how memory behaves.
Typical controls include:
* **Voice** – The specific voice asset (for example, a particular voice name).
* **Language** – Language used by the agent.
* **LLM Provider & Model Name** – Which AI model is used.
* **Speech to Text provider** – How caller audio is transcribed.
* **Background Sound** – Optional ambient sound.
* **LLM Temperature** – Creativity vs. predictability.
* **Conversation Speed** – How fast the agent talks and responds.
* **Max Idle Check Count & Idle Time** – How it handles caller silence.
* **Call Duration (seconds)** – Maximum call length.
* **Enable Recording** – Whether calls are recorded.
* **Memory options** – Outbound Context Memory, Conversation Memory, Voicemail detection (where applicable).
Use this tab when you want to:
* Fine‑tune responsiveness and patience.
* Enforce call time limits.
* Turn recording on or off for quality review and compliance.
For explanations and recommended starting values, see\
**[Agents – Advanced Settings](../concepts/agent/advanced)**.
***
## Configure Post-Call actions
The **Post-Call** tab determines what happens **after** the call ends.
Here you can:
* **Analyze the call** using a post-call prompt.
* **Write results to** external tools (for example, HubSpot, Salesforce, GoHighLevel, Monday.com).
* Configure **SMS** and **Email** follow-ups with conditions.
Typical configuration steps:
1. **Analyze Call**
* Write a prompt that describes how to summarize or interpret the call.
* The output is stored with the call and available as `{post_call_results}` in templates.
2. **Write results to**
* Choose a connected integration.
* The raw post-call result is sent to that tool (for example, as a note or activity).
3. **Send SMS and/or Email**
* Configure the SMS or email content (using variables such as `{first_name}`, `{from_number}`, `{post_call_results}`).
* Set conditions such as:
* Call went to **voicemail** vs **not voicemail**.
* Post-call result contains certain text or matches a field value.
For a conceptual overview and examples, see\
**[Agents – Post-Call Actions](../concepts/agent/post-call)**.
***
## Test an agent
Before assigning an agent to real numbers or campaigns, you should test it.
Use **Test Call Agent**:
1. In the Agent editor, click **Test Call Agent**.
2. In the test dialog:
* Choose the **Caller Number** (a number you own or have linked).
* Enter the **Receiver Number** (often your own mobile).
* Optionally set:
* **VM Detection**
* **Do not call detection**
* **HIPAA Compliant** (if applicable)
3. Click **Make Call**.
During the test, pay attention to:
* The **Initial Message** – does it sound right?
* Use of **call context** – are variables like `{first_name}` being filled correctly?
* How the agent handles interruptions, silence, and common caller questions.
* The **Voicemail Message** – if you let it go to voicemail.
You can repeat the test quickly after making changes to the agent.
***
## Connect agents to numbers and campaigns
Configuring an agent does not by itself make it receive or place calls—you must connect it to **numbers** and/or **campaign steps**.
### Use an agent for inbound calls
1. Go to the **Numbers** section.
2. Create or link a number.
3. In the number configuration, set the **Inbound Agent** to your agent.
4. Save.
Now, when someone calls that number, your agent will answer.
See the **[Numbers Feature Guide](./numbers)** for more detail.
***
### Use an agent in a campaign
1. Go to the **Campaigns** section.
2. Create or open a campaign.
3. In the **outreach flow** (for phone call steps), choose your agent in the **Agent** dropdown.
4. Configure the rest of the campaign (contact window, numbers, contacts) as needed.
Now, when the campaign runs, your agent will handle the phone calls for the contacts in that campaign.
See the **[Campaigns Feature Guide](./campaigns)** to learn how to set up the full outreach flow.
***
By combining the Agent editor with Numbers and Campaigns, you can:
* Design agents that behave exactly how you want.
* Attach them to inbound numbers and outbound campaigns.
* Test and refine them quickly based on real calls.
# Documentation Assistant
Source: https://docs.fluents.ai/product/features/assistant
Ask questions about the Fluents.ai docs and message the Fluents team directly from the documentation site.
The **Documentation Assistant** helps you quickly find answers in the Fluents.ai docs and lets you **message the Fluents team** if you need human help.
***
## Video: Documentation Assistant
***
## Open the assistant
On any docs page, click the chat/help button in the **bottom-right** corner.
***
## Ask questions about the docs
Use the assistant to ask things like:
* “How do I set up my first agent?”
* “How do I enable Appointment Scheduling?”
* “How do I connect Twilio?”
* “Where do I manage DNC numbers?”
The assistant answers using the documentation content, so it works best when you ask specific “how do I” questions.
***
## Ask the Fluents team for help
If you need help beyond the docs, you can message the Fluents team directly:
1. Open the assistant (bottom-right).
2. Click **Ask for help**.
3. Write your question and send it.
Tips for faster help:
* Include what you’re trying to do
* Mention the environment (dev / production) if it matters
* Add any error messages you’re seeing
***
## Where to go next
* New to Fluents? Start here: **[Quickstart](/product/quickstart/index)**
* Browse platform guides: **[Feature Walkthroughs](/product/features/account/sign-up)**
# Calls
Source: https://docs.fluents.ai/product/features/call
Learn how to filter call history, export calls to CSV, and work with scheduled callbacks.
The **Calls** section has two main views:
* **History** – all completed calls handled by your agents.
* **Scheduled** – upcoming callback calls that are queued to run later.
This guide focuses on **how to use the UI**:
* [Filter call history](#filter-call-history)
* [Export calls to CSV](#export-calls-to-csv)
* [Work with scheduled calls](#work-with-scheduled-calls)
* [Where to go next](#where-to-go-next)
For a conceptual overview of what these calls represent, see\
**[Call history (Core Concept)](../concepts/call-history)**.
***
## Video: Calls
***
## Filter call history
Filtering helps you quickly find the calls that matter.
To open filters:
1. Go to **Calls → History**.
2. Click the **Filters** button.
You can combine several filters at once. Common options include:
* **Period** – Date and time range for the calls you want to see.
* **Agents** – Show only calls handled by specific agents.
* **Statuses** – Filter by call outcome (for example, Ended, Voicemail, Completed, Canceled).
* **Call ID** – Jump straight to a specific call by its ID.
* **Contact number** – Show all calls to or from a particular phone number.
* **Duration (seconds)** – Focus on shorter or longer calls:
* Example: calls over 30 seconds.
* **Successful actions** – Show calls where certain agent actions completed successfully.
* **Transcript keyword** – Find calls where certain words or phrases appear in the transcript.
### Practical filter recipes
Here are a few examples you can use:
* **Review after-hours or support calls this week**
* Period: This week
* Agents: your after-hours or support agent
* **Look at meaningful outbound conversations**
* Period: your desired range
* Status: “is not Voicemail”
* Duration: greater than 30 seconds\
This removes most short or unanswered calls and focuses on conversations.
* **Investigate specific issues or topics**
* Transcript keyword: “cancel”, “upgrade”, “billing”, or other terms of interest.
Use filters first to narrow the list before exporting or reviewing calls.
***
## Export calls to CSV
You can export filtered calls to **CSV** for reporting, analysis, or record‑keeping.
To export:
1. Apply any filters you need in **Calls → History**.
2. Click **Export CSV**.
3. In the column selection dialog:
* Choose which **columns** to include (for example, ID, Agent, Agent Name, Start Time, End Time, Duration, Status, From number, To number, Post-call result).
* Drag to **reorder** columns if needed.
4. Confirm to download the CSV file.
The export respects your **current filters**, so:
* If you filter by period, agent, or duration first, the CSV will include only matching calls.
* This is the best way to avoid exporting large amounts of irrelevant data.
### Best practices for exports
* **Filter before exporting**
* Especially for outbound campaigns, combining:
* Status “is not voicemail”
* Duration greater than 30 seconds\
helps focus on meaningful calls.
* **Keep a consistent column set**
* Decide which columns your team needs and use the same selection for recurring reports.
* **Use IDs and timestamps**
* Include Call ID and Created At so you can cross‑reference calls with other systems if needed.
* **Export by time windows**
* For ongoing reporting, export by week or month rather than very large date ranges.
***
## Work with scheduled calls
The **Scheduled** view shows **future callback calls** that your agents will make.
To open it:
1. Go to **Calls → Scheduled**.
You’ll typically see columns such as:
* **ID** – Reference for the scheduled call.
* **Type** – For example, Callback.
* **Created At** – When the callback was scheduled.
* **Agent** – Which agent will handle the call.
* **From / To** – Numbers that will be used.
* **Scheduled time** – When the call is planned.
* **Status** – For example, Scheduled, Completed, Canceled.
* **Activity** – Recent events (for example, last attempt time).
### Cancel or delete scheduled callbacks
From the **Scheduled** view you can:
* **Cancel or delete** a scheduled callback if it is no longer needed.
To do this:
1. Find the scheduled call in the list.
2. Open its **actions menu** (for example, via the three-dot menu).
3. Choose **Cancel** or **Delete**, depending on your UI wording.
4. Confirm the action.
Currently, you **cannot reschedule** a callback directly from this view.\
If timing needs to change, cancel the existing callback and create a new one through your workflow or agent behavior.
***
## Where to go next
* Understand what each call represents and how History vs Scheduled fit together in\
**[Call history (Core Concept)](../concepts/call-history)**.
* Learn how agent behavior and post‑call actions affect call outcomes in\
**[Agents – Basic](../concepts/agent/basic)**,\
**[Agents – Advanced](../concepts/agent/advanced)**, and\
**[Agents – Post-Call Actions](../concepts/agent/post-call)**.
* See how outbound campaigns generate calls that appear in History in the\
**[Campaigns Feature Guide](./campaigns)**.
# Campaigns
Source: https://docs.fluents.ai/product/features/campaigns
Learn how to create campaigns, set a campaign schedule, build an outreach flow, choose outbound numbers, add contacts, and monitor results.
Campaigns let you run **automated outbound outreach** to a list of contacts.
In Fluents.ai, campaigns are built with a simple wizard:
1. **Name your campaign** + choose/create a **campaign schedule**
2. Build your **outreach** (steps and follow-ups)
3. Select outbound **numbers** and review **exit criteria**
4. **Create campaign**, then add contacts and start
For the mental model behind campaigns, see\
**[Campaigns (Core Concept)](../concepts/campaigns)**.
## Video: Campaign
***
## Enable the beta Campaigns wizard (if needed)
On the **Campaigns** page, you may see a toggle labeled **Use beta campaigns**.
Turn it **on** to use the wizard flow described in this guide.
> Campaign statistics may be delayed by up to **4 hours** (shown in the UI).
***
## Step 1 — Create the campaign (name + schedule)
1. Go to **Campaigns** in the sidebar.
2. Click **New Campaign**.
3. In **Create campaign**:
* **Campaign name** (required)
* **Campaign description** (optional)
* **Campaign schedule** (required): select an existing schedule or create a new one
### Create / edit a campaign schedule
A campaign schedule controls **when** the campaign is allowed to place calls (and send steps).
In the schedule editor, configure:
* **Outreach schedule**: days of week + allowed contact times
* **Timezone (Primary)**: the timezone used to interpret the schedule
Save the schedule, then return to the campaign creation flow.
***
## Step 2 — Build your outreach
In the **Outreach** step, you define what happens for each contact.
### Add steps and follow-ups
* Choose the **step type** (for example, **Phone call**).
* For phone call steps, select the **Agent** that will place the call.
* To add follow-ups, add another step and set a delay like:
* **“1 day after phone call”**
You can reuse the same agent (“Same as initial call”) or choose a different one per step.
***
## Step 3 — Configure settings (numbers + exit criteria)
In **Configure your settings**, you’ll typically see:
### Outbound Settings (Calls)
* **Calls will come from** (required)\
Choose the caller ID(s) your campaign will use. This can include:
* selecting specific numbers, and/or
* selecting numbers by **tag**
### Exit Criteria (informational)
Exit criteria describe when a contact is automatically removed from the campaign. Common examples shown in the UI:
* Contact answers a call from this campaign
* Contact explicitly requests to stop receiving communication via any outreach channel
* Contact’s number is unreachable
***
## Create the campaign
After you finish Step 3, click **Create Campaign**.
You’ll land on the campaign’s main page, where you can manage everything in one place.
***
## Add contacts (after creation)
On the campaign page, open the **Contacts** tab.
You can add contacts by:
* **Upload a CSV** (import contacts from a file), or
* **Set up CRM integration** (connect a CRM and import contacts into this campaign)
Once contacts are added, the campaign can begin scheduling outreach according to your schedule and flow.
***
## Start, schedule, and monitor a campaign
From the campaign page, you’ll typically have controls like:
* **Start** — begin outreach
* **Schedule Start** — start at a future time
* **Save** / **Save and exit**
* **Delete Campaign**
### Campaign list: Manage vs Monitor
On the main **Campaigns** page, you may also see:
* **Manage** tab — create and manage campaigns
* **Monitor** tab — monitor activity/performance (depending on your account/UI)
You can also switch between **In Use** and **Archived** campaigns from the list.
***
## Where to go next
* Understand caller IDs and number tags: **[Numbers](/product/features/numbers)**
* Review outcomes and recordings from campaign calls: **[Call history](/product/features/calls)**
* Learn how agents behave during campaign calls: **[Agent Feature Guide](/product/features/agent)**
# Dashboard
Source: https://docs.fluents.ai/product/features/dashboard
See a high-level overview of your Fluents.ai usage and call activity.
The **Dashboard** gives you a high-level view of how your Fluents.ai agents
are being used over time.
It is a **read-only** page for monitoring:
* Your current plan and monthly minutes used
* Overall call volume and usage
* Call outcomes and stages
* When calls are happening during the day
* Who is disconnecting calls (human vs. agent)
All charts on the Dashboard update together based on the filters at the top.
***
## Overview cards
At the top of the Dashboard you’ll see two summary cards:
* **Plan Type**\
Shows the current subscription plan for this workspace\
(for example, `unlimited`).
* **Monthly Usage**\
Shows how many minutes have been used this month out of your plan’s
allowance\
(for example, `5 / unlimited minutes`).
These cards are informational only and do not have click‑through behavior.
***
## Filters
Below the summary cards you can filter what appears in the charts.
Available filters:
* **Agent**\
Choose a specific agent, or leave blank to see data for all agents.
* **Dates**\
Select a **start date** and **end date** for the period you want to review.
* **Incoming / Outgoing**\
Choose whether to show:
* **Both** incoming and outgoing calls
* Only **Incoming**
* Only **Outgoing**
* **Min Duration Secs**\
Only include calls with a duration **greater than or equal to** this value
(in seconds).
* **Max Duration Secs**\
Only include calls with a duration **less than or equal to** this value
(in seconds).
Whenever you change any of these filters, **all charts on the Dashboard
refresh** to match.
***
## Charts
The Dashboard includes several charts that summarize your filtered call data.
### Usage by Day
Shows **usage (minutes)** per day across the selected date range.
* X‑axis: days
* Y‑axis: total minutes of call time
### Calls by Status
Shows how many calls ended in each **status** (for example, `Ended` and other
statuses as applicable).
* X‑axis: dates
* Y‑axis: number of calls per status
### Disconnects by Human vs. Agent
Shows who disconnected calls:
* **Human** – the caller hung up.
* **Agent** – the AI agent ended the call.
This helps you see the overall pattern of who is ending conversations.
### Calls by Stage
Shows how many calls reached each **stage** in your flow\
(for example, `Picked Up` and other pipeline stages you use).
* X‑axis: dates
* Y‑axis: number of calls per stage
### Calls by Hour (PST)
Shows distribution of calls by **time of day**.
* X‑axis: hour of day
* Y‑axis: number of calls
> This chart is always shown in **Pacific Time (PST)**, regardless of your
> local time zone.
***
## Interacting with charts
The charts are primarily informational, but you can:
* **Hover** your mouse over any bar or point to see the **exact value**
(for example, exact minute count or call count for that date/hour).
There is no drill‑down navigation from the charts themselves.\
For detailed call‑by‑call information, use the **Calls** page.
***
## Where to go next
* See individual calls and detailed metadata in the\
**[Calls Feature Guide](/product/features/call)**.
* Learn how agents and campaigns drive the activity you see on the Dashboard in\
**[Agent Feature Guide](/product/features/agent)** and\
**[Campaigns Feature Guide](/product/features/campaigns)**.
* Review plan details and billing information in\
**[Billing / Settings](/product/features/account/settings)** (depending on your workspace setup).
# Do Not Call (DNC) List
Source: https://docs.fluents.ai/product/features/dnc-list
How to manage phone numbers that should not be called by outbound campaigns in Fluents.ai.
The **Do Not Call (DNC) List** helps you manage phone numbers that should **not** be called by your outbound agents and campaigns.
When a number is on the DNC list for an environment:
* Outbound calls to that number are **skipped**
* Inbound calls from that number are still **allowed** (if they choose to call you)
The DNC list is **per environment** (for example, sandbox vs. production). Each environment has its own independent list.
***
## Video: DNC List Overview
***
## DNC List page overview
Go to **DNC List** in the left sidebar.
You’ll see:
* A **search bar** to look up phone numbers
* A **Created By** filter with:
* **User** – numbers added manually by your team
* **Fluents** – numbers automatically added based on call behavior
* **All** – both sources
* A table with:
* **Phone Number** – in E.164 format (for example, `+14151234567`)
* **Created By** – `User` or `Fluents`
* **Date Added** – when the number was added
* **Reason** – optional note explaining why it was added
On the top-right, click **New** to add a number to the DNC list.
You can also click **Export CSV** to download the current DNC list.
***
## How numbers get on the DNC list
Numbers can be added in two ways:
1. **Automatically by Fluents (during calls and campaigns)**
2. **Manually by users in the DNC List page**
### 1) Automatic DNC from calls and campaigns
Fluents can detect opt-out phrases such as:\
“Please don’t call me again” (and similar requests).
When this is detected (based on campaign/agent settings):
* The contact’s phone number is **automatically added** to the DNC list
* The entry shows:
* **Created By:** `Fluents`
* **Reason:** `User requested to not be called`
Any future **outbound** attempts to that number in this environment will be skipped.
### 2) Manual DNC entries (by users)
You can also add numbers manually, for example:
* To honor an external DNC list you maintain
* To add numbers that requested removal through another channel (email, web form, etc.)
* To proactively block numbers you know you should not call
***
## Add a number to the DNC list
To add a number manually:
1. Go to **DNC List**.
2. Click **New** (top-right).
3. In the **Add DNC Number** dialog:
* **Phone Number** – enter the number in **E.164 format**, e.g. `+14151234567`
* **Reason (Optional)** – add a note (for example, “Requested removal via email”)
4. Click **Add DNC Number**.
The new entry will appear in the table with:
* **Created By:** `User`
* Your optional **Reason**
* The **Date Added**
From now on, outbound campaigns in this environment will skip this number.
***
## Edit or remove a DNC entry
Sometimes you may need to correct a number or remove it from the list.
For each row in the DNC table, the actions menu (three dots) lets you:
* **Edit** – update the phone number or reason
* **Delete** – remove the number from the DNC list
Use **Delete** only when you’re sure it’s appropriate to call this number again (for example, if a contact explicitly asks to resume calls).
***
## Search and filter the DNC list
Use the tools on the DNC page to find entries quickly:
* **Search phone numbers** – type part or all of a number
* **Created By** filter:
* **User** – show only numbers added manually
* **Fluents** – show only numbers added automatically
* **All** – show every entry
This helps you review which opt-outs came from live conversations vs. internal processes.
***
## How the DNC list affects campaigns
When a campaign or outbound agent attempts to call a number that’s on the DNC list:
* The call is **not placed**
* The contact is treated as **skipped due to DNC**
Inbound calls are **not blocked** by the DNC list. If someone chooses to call you, Fluents will still allow the call through.
***
## Best practices
* **Use E.164 format consistently**\
Always include the country code (e.g., `+1` for the US) to ensure matching works reliably.
* **Honor opt-outs promptly**\
If someone opts out via email, chat, or support, add them to the DNC list as soon as possible.
* **Review automatic entries**\
Filter by **Created By: Fluents** periodically to monitor opt-outs detected during calls.
* **Keep environments in mind**\
The DNC list is **per environment**, so make sure you update the environment that runs live campaigns.
***
## Where to go next
* Learn how outbound campaigns use numbers and contacts in **[Campaigns Feature Guide](/product/features/campaigns)**.
* See how phone numbers and providers are configured in **[Numbers](/product/features/numbers)** and **[Providers](/product/features/providers)**.
* Review how calls are logged and inspected in **[Call History (Core Concept)](../concepts/call-history)**.
# Experimental Features
Source: https://docs.fluents.ai/product/features/experimental-feature
Enable early-access features for an environment in Fluents.ai.
**Experimental Features** is an environment-level flag that enables **all current experimental features** in that environment.
Experimental features are early-access capabilities that may change, move to **Beta**, or be removed entirely.
***
## Video: Experimental Features
***
## How it works
When enabled for an environment:
* All experimental features currently available to your workspace become available **in that environment**.
* Experimental features can show up as:
* A dedicated page/tab in the left navigation, and/or
* A feature inside another area (for example, an **Agent Skill**)
When disabled:
* Experimental-only features in that environment are hidden or unavailable.
***
## Lifecycle: Experimental → Beta (or removed)
Experimental features are not guaranteed to stay.
* Some features will be improved and promoted to **Beta**.
* Some may be changed significantly or removed.
* New experimental features may be added regularly.
***
## Enable Experimental Features (admin only)
Only **admins** can enable or disable experimental features.
1. Go to **Settings**.
2. Open **Environments**.
3. Select the environment you want to edit.
4. Toggle **Enable Experimental Features**.
5. Click **Save Environment** to apply.
Changes apply after you save the environment.
***
## Best practices
* **Enable in a dev/sandbox environment first** if you have one.
* **Validate your key flows** (calls, campaigns, integrations) after enabling.
* If you run into unexpected behavior, disable the flag and click **Save Environment**.
***
## Where to go next
* Skills that may require this flag:
* **[In-call Email (Skill)](/product/features/skills/in-call-email)**
# Knowledge Bases
Source: https://docs.fluents.ai/product/features/knowledge-base
How to upload documents into knowledge bases and let agents answer questions with the Knowledge Search skill.
Knowledge Bases let your agents answer questions using your own documents\
instead of only relying on general AI knowledge.
You group related documents into a **knowledge base**, then connect that
knowledge base to an agent using the **Knowledge Search** skill.\
During a call or web conversation, the agent can search those documents and
use the relevant passages in its answers.
> **Status:** Knowledge Bases are currently in **BETA**.
***
## Video: Knowledge Bases
***
## Knowledge Bases page overview
Go to **Knowledge Bases** in the left sidebar.
At the top you’ll see a short description and a **Create Knowledge Base** button.\
Below that is a table listing all knowledge bases for the current environment.
Each row shows:
* **ID** – Internal identifier for this knowledge base.
* **Name** – The name you chose (for example, “Performance bonds”, “Surety general”).
* **Actions** – A menu where you can manage the knowledge base.
Clicking a row opens the list of files inside that knowledge base.
Knowledge bases are:
* **Shared across all agents** in the same environment (any agent can use any KB).
* **Scoped per environment** (for example, test vs production).
***
## Create a knowledge base
To create a new knowledge base:
1. Go to **Knowledge Bases**.
2. Click **Create Knowledge Base** (top‑right).
3. In the **Create Knowledge Base** dialog, enter a **Knowledge Base Name**.
* Choose a name that clearly describes the topic (for example,\
“Product FAQs”, “Support Playbook”, “California Contractor Bonds”).
4. Click **Create**.
You’ll be taken to the **Files in \** page for the new knowledge base,\
where you can upload documents.
***
## Add files to a knowledge base
Inside a knowledge base, you’ll see:
* A large area at the top for uploading files (drag and drop or click to select).
* A table of files with:
* **ID**
* **Name**
* **Actions** menu (for managing individual files)
### Supported file types
You can upload the following file types:
* PDF
* TXT
* RTF
* DOC / DOCX
* PPT / PPTX
You can upload one or many files. After upload, the content is processed and becomes
available for agents to use with the Knowledge Search skill.
### Managing files
For each file you upload, you can:
* See its ID and file name in the table.
* Use the actions menu (three dots) to remove a file if you no longer
want the agent to use its content.
You can return to this page at any time by:
1. Going to **Knowledge Bases**.
2. Clicking the name of the knowledge base you want to edit.
***
## Connect a knowledge base to an agent (Knowledge Search skill)
Uploading documents by itself is not enough.\
An agent must be configured to **use** a knowledge base via the Knowledge Search skill.
### Enable Knowledge Search on an agent
1. Go to **Agents** and select the agent you want.
2. On the **Basic Information** tab, find **Choose Skills**.
3. Click **Knowledge Search** to add this skill to the agent (if it is not already active).
4. A **Configure Knowledge Search** dialog appears.
### Configure Knowledge Search
In the **Configure Knowledge Search** dialog you can add one or more rows.
Each row tells the agent:
* **Which knowledge base to use**, and
* **What kind of questions that knowledge base should answer**.
For each row:
1. Under **Use the knowledge base**, choose a knowledge base from the dropdown.
2. Under **To answer questions about**, type a brief description of the topic.\
Examples:
* performance bonds
* Surety general
* California Contractor License
This free‑text description helps guide when that knowledge base should be used.
You can:
* Add **multiple rows** to let an agent use several knowledge bases.
* Use the **Add more** link to configure additional topics and bases.
* Remove a row with the small “x” on the right if you no longer want the agent to use it.
When you are done, click **Save** in the dialog, then save the agent.
From now on, when callers or web visitors ask questions that match the topics you
described, the agent can search and quote from the connected knowledge bases.
***
## Organizing your knowledge bases
A few simple patterns work well:
* **One knowledge base per major topic or product**\
For example:
* “General FAQs”
* “Product A – Documentation”
* “Product B – Documentation”
* “Legal and Compliance”
* **Group related documents together**\
Put documents that will be used to answer the same family of questions into
the same knowledge base (for example, several guides all about California contractor
licensing in one KB).
* **Use clear names and topics**\
Agent builders will pick from a dropdown of knowledge base names and then
write the “To answer questions about” text.\
Clear names and topics make this much easier.
You can update a knowledge base at any time by adding or removing files.\
Agents that use that knowledge base will automatically use the updated content.
***
## When to use Knowledge Bases
Knowledge Bases are most useful when:
* You have **reference documents** that should drive factual answers:
* Product manuals
* Policy documents
* Service descriptions
* Internal playbooks
* You want the agent to **sound like your documentation**, not generic AI:
* Use snippets and wording from your PDFs or docs.
* Keep answers consistent with your official materials.
They are less suitable for:
* Highly dynamic data that changes minute‑to‑minute (for example, live inventory).\
For that, consider **Custom External Actions** or direct API calls instead.
***
## Where to go next
* Learn how to configure the rest of an agent (skills, prompts, post‑call behavior) in the\
**[Agent Feature Guide](/product/features/agent)**.
* Use **Actions** and **Webhooks** to send information from calls to your own systems:\
**[Actions](/product/features/actions)** and\
**[Webhooks](/product/features/webhook)**.
* Review how calls are logged and how post‑call results work in\
**[Call History (Core Concept)](../concepts/call-history)**.
# Numbers
Source: https://docs.fluents.ai/product/features/numbers
How to buy, link, tag, and manage phone numbers in Fluents.ai.
Numbers are the phone lines your agents use to send and receive calls.\
This page shows you how to **add**, **tag**, and **manage** numbers in the dashboard.
If you’re not yet familiar with how numbers fit into agents and campaigns, start with the\
[Core Concept: Numbers](/product/concepts/numbers).
***
## Video: Numbers
***
## Numbers page overview
Go to **Numbers** in the left sidebar to see all phone numbers available for your account.
You’ll see, for each number:
* **ID** – Internal identifier for the number.
* **Number** – The phone number itself.
* **Agent** – The inbound agent assigned to this number (if any).
* **Telephony Provider** – e.g. Twilio, Telnyx, or a Fluents‑managed provider.
* **Account Connection** – Which provider account this number belongs to.
* **Tags** – Any tags used to group this number.
At the top of the page you can:
* **Configure call pacing** (outbound) to control how often numbers are used.
* **Search numbers** by typing digits into the search bar.
* **Filter by tags** to only see numbers with specific tags.
These tools make it easier to find the right number when assigning agents or configuring campaigns.
***
## Call pacing
Use **Call pacing** to control how frequently your phone numbers are used for **outbound** calling. This helps reduce spam flags and gives you more control over outbound throughput.
### How call pacing works
* **Environment wide setting**\
Call pacing is configured once on the Numbers page and applies across the environment.
* **Outbound only**\
Call pacing affects outbound calling (for example, calls placed via [Campaigns](/product/features/campaigns)). It does not apply to inbound calls.
* **Enforced per number (caller ID)**\
Limits apply to each individual phone number. If one number is temporarily “paced,” other numbers can still be used.
* **Campaign behavior**\
When pacing limits would be exceeded, Fluents will **delay/schedule** the next outbound call until a number becomes available (instead of failing the call).
### Settings
On the Numbers page, enable **Limit call frequency** (default: **off**) and configure any of the following:
* **Wait X minutes between calls for each number**\
Adds a minimum delay between outbound call attempts from the same phone number.
* **No more than N calls every H hour(s) for each number**\
Caps outbound call **attempts** per number using a **rolling window** (for example, “100 calls every 24 hours” is evaluated over the last 24 hours).
> Tip\
> If you need higher total throughput, add more numbers pacing is applied per number, so multiple numbers can share the load.
***
## Prerequisites
Before you add numbers, check:
* **Telephony provider connection**
To buy or link numbers with your own provider (e.g. Twilio, Telnyx), you must first connect it in\
**Providers** → see [Providers](/product/features/providers).
* **Plan limits (Fluents‑managed numbers)**
If you buy numbers using Fluents‑managed credentials, your plan may limit how many numbers you can have.\
If you click **New** and you’re already at the limit, the modal will show an error instead of adding the number.
There is no Fluents‑side limit when you use your **own** provider accounts.
***
## Buy a new number (New)
Use **New** when you want to buy a fresh number from a provider’s inventory directly inside Fluents.
1. Go to **Numbers**.
2. Click **New** (top‑right).
3. In the **New Number** modal, fill in:
* **Provider**\
Choose the telephony provider you want to buy the number from (for example, Twilio).
* **Account Connection**\
Select the specific provider account to use.\
If you don’t see any options, you may need to first connect the provider under **Providers**.
* **Number**\
Open the dropdown to see available numbers from that provider.
* Use the **Search…** field to narrow by digits (for example, type `+1415` to find numbers starting with +1 415).
* Click the number you want to use.
* **Inbound Agent** (optional)\
Select an inbound agent if this number should immediately start receiving calls for that agent.\
You can also leave this blank and assign an agent later.
* **Tags** (optional)\
Start typing to search existing tags or create new ones.\
Press **Enter** to add each tag (for example, `sales-us`, `after-hours`, `texas`).
4. Click **Add Number**.
If successful, the number appears in the Numbers list and can be used for inbound agents and campaigns.
If you are using Fluents‑managed numbers and have reached your plan limit, you’ll see an error instead of the number being added.
***
## Link an existing number (Link Existing)
Use **Link Existing** when you already own a number with a provider and want Fluents to use it.
Before you start:
* Make sure the provider account is connected in **Providers**.
* Buy or assign the number on your **provider’s website** first (Twilio, Telnyx, etc.).
Then:
1. Go to **Numbers**.
2. Click **Link Existing** (top‑right).
3. In the **New Number** (linking) modal, fill in:
* **Provider**\
Choose the provider that owns this number.
* **Account Connection**\
Select the specific connected account where the number lives.
* **Number**\
Enter the phone number you already own (in full international format, e.g. `+14151234567`),\
or select it from the provider’s options if your UI shows a dropdown.
* **Inbound Agent** (optional)\
Choose the inbound agent that should answer calls to this number, or leave blank for now.
* **Tags** (optional)\
Add any tags you’ll use later to group or target this number (for example, `texas`, `clinic-a`).
4. Click **Add Number** (or **Link Number**, depending on your UI).
The number is now visible in Fluents and can be assigned to agents and used in campaigns.\
The number continues to be owned and billed by your telephony provider.
***
## Add or edit tags on a number
Tags help you group numbers for routing and campaigns (for example, “texas”, “sales-us”, “after-hours”).
You can add or change tags:
* **When creating or linking a number**\
Use the **Tags** field in the **New Number** modal:
* Start typing to see matching existing tags.
* Press **Enter** to create a new tag if it doesn’t exist.
* You can add multiple tags to the same number.
* **For an existing number**
1. Go to **Numbers**.
2. On the row of the number you want to change, click the **⋮** menu on the right.
3. Click **Edit**.
4. In the **Tags** field:
* Add tags by typing and pressing **Enter**.
* Remove tags by clicking the **x** on each tag.
5. Click **Save** (or the equivalent button).
Tags are free‑form and can be added or removed at any time.\
They’re especially useful when choosing caller IDs for [Campaigns](/product/features/campaigns).
***
## Assign or change the inbound agent for a number
To change which agent answers calls for a number:
1. Go to **Numbers**.
2. On the row of the number you want to update, click the **⋮** menu on the right.
3. Click **Edit**.
4. In the **Inbound Agent** field:
* Choose the agent that should receive inbound calls to the number, or
* Clear the value if you don’t want any agent assigned yet.
5. Update tags if needed.
6. Click **Save**.
You can:
* Assign **one number to one agent**.
* Assign **multiple numbers to the same agent** (for example, local numbers in different regions that all route to one agent).
***
## Detach or delete a number
From the **⋮** menu on each number row, you’ll see:
* **Edit** – Change the inbound agent and tags.
* **Detach** – Unlink the number from Fluents.
* **Delete** – Permanently remove the number and release it at the provider.
### Detach a number
Use **Detach** when you want to stop using a number in Fluents,\
but keep it active at your telephony provider.
1. Go to **Numbers**.
2. On the number row, click **⋮** → **Detach**.
3. Confirm the action.
Result:
* The number is removed from your Fluents workspace.
* The number still exists in your provider account, and you can continue to manage or re‑link it later.
### Delete a number
Use **Delete** with care. This permanently removes the number.
1. Go to **Numbers**.
2. On the number row, click **⋮** → **Delete**.
3. Read the confirmation text and confirm.
Result:
* The number is removed from your Fluents.
* Fluents asks the underlying provider to release the number, which typically also stops billing for it.
> **Warning**\
> Deleting a number is permanent and may release it at your telephony provider.\
> Only delete numbers you are sure you no longer need.
If you only want to pause usage in Fluents but keep the number at your provider, prefer **Detach** instead of **Delete**.
***
## Next steps
* Learn how numbers are used in outbound calling in\
**[Campaigns](/product/features/campaigns)**.
* Revisit the mental model behind numbers in\
**[Core Concept: Numbers](/product/concepts/numbers)**.
* Connect or manage telephony provider accounts in\
**[Providers](/product/features/providers)**.
# Providers
Source: https://docs.fluents.ai/product/features/providers
How to connect external providers (telephony, TTS, LLM, email, CRM, and workflows) to Fluents.ai.
**Providers** are the external services Fluents.ai connects to so your agents can:
* Make and receive phone calls
* Use different TTS / STT / LLM engines
* Send emails or calendar invites
* Sync data with your CRM or other workflows
Instead of hard‑coding credentials in many places, you add **account connections** once in **Providers**, then reuse them across agents, numbers, actions, and workflows.
***
## Video: Providers
***
## Providers page overview
Go to **Providers** in the left sidebar to see all account connections for your workspace.
For each row you’ll typically see:
* **ID** – Internal identifier of the account connection.
* **Provider** – The external service (for example, Twilio, Telnyx, OpenAI, ElevenLabs, HubSpot, Gmail, Outlook, Cal.com).
* **Type** – What this account is used for, such as:
* Voice (TTS / STT / LLM)
* Telephony
* Workflow / CRM / Email / Calendar
* Auth
* **Provider Info** – Key details like masked API keys or connection status.
* **Actions** – A menu with `Edit` and `Delete`.
On the top‑right you’ll see an **Add Account** button for creating new connections.
***
## Types of providers
Fluents.ai supports several categories of providers. The exact list you see may evolve over time, but common types include:
### Voice and AI providers
Used to power:
* Text‑to‑speech (TTS) voices
* Speech‑to‑text (STT) transcription
* Large language models (LLMs)
Examples include:
* ElevenLabs, Cartesia (voices)
* OpenAI and other LLM / STT providers
You connect these once in **Providers**, then select them when configuring **Voices** or advanced agent settings.
***
### Telephony providers
Used to:
* Buy or link phone numbers
* Make and receive phone calls
* Control caller ID and call routing
Examples include:
* Twilio
* Telnyx
* Other carrier or telephony partners
You connect telephony accounts here, then use them on the **Numbers** page and in calling features.
***
### Workflow, CRM, and communication providers
Used when you want your agents or post‑call workflows to:
* Create or update CRM records
* Schedule meetings
* Send emails
* Sync data to external systems
Examples include:
* HubSpot and other CRMs
* Cal.com (for scheduling)
* Gmail, Microsoft Outlook (for email and calendar)
* GoHighLevel and other marketing platforms
These are typically used by **Actions** or post‑call workflows to “push” data out of Fluents.ai.
***
### Auth / generic API providers
Some provider entries are used purely for **authentication**, not for a specific product integration.
A common example is an **API Key Auth** provider, which you can attach to **Custom External Actions** when calling your own APIs. This lets you:
* Store an API key or token once in **Providers**
* Reuse it safely across multiple actions
* Rotate or remove it centrally without editing each action
***
## Add a new provider account
To add a new account connection:
1. Go to **Providers** in the left sidebar.
2. Click **Add Account** (top‑right).
3. In the **New Account Connection** modal:
* Open the **Provider** dropdown.
* Choose the service you want to connect (for example, Twilio, Telnyx, OpenAI, ElevenLabs, HubSpot, Gmail, Outlook, Cal.com, etc.).
4. Fill in the required fields for that provider.\
These vary by provider but typically include one or more of:
* API key or access token
* Client ID and Client Secret
* Account or project identifiers
5. (Optional) If the provider supports OAuth or a “Connect” flow, follow the on‑screen steps to sign in and authorize Fluents.ai.
6. Click **Add Account**.
The new connection will appear in the Providers list and can immediately be used elsewhere in the platform.
If you’re unsure how to obtain credentials for a specific provider, refer to that provider’s own documentation (for example, “Create API keys in Twilio”) or click any contextual help links in the Fluents UI.
***
## Using providers across Fluents.ai
Once configured, providers are reused in several parts of the product:
* **Voices**\
Choose which TTS / STT / LLM provider powers each voice or agent configuration.
* **Numbers and Calls**\
Select which telephony provider account is used for buying, linking, and using phone numbers.
* **Actions and Workflows**\
Use CRM, scheduling, email, and other workflow providers in:
* Custom External Actions
* Post‑call workflows
* Integrations like “send an email,” “create a CRM record,” or “schedule a meeting.”
* **Auth for your own APIs**\
Attach `Auth`‑type providers (for example, an API Key Auth connection) to your own HTTP actions so the platform sends the right headers and credentials automatically.
Because everything points back to **Providers**, you can change or rotate credentials in one place and have dependent features pick up the new configuration.
***
## Edit or delete a provider account
Each row in the Providers list has an actions menu with:
* **Edit**\
Update credentials or settings for that provider account.
Use this when:
* An API key was rotated or expired.
* You want to switch a connection to a different project or sub‑account.
* The provider asked you to update credentials for security reasons.
* **Delete**\
Remove the provider account connection from your workspace.
Use this with care:
* Any **Voices**, **Numbers**, or **Actions** that depend on this provider may stop working until they are reconfigured.
* Make sure you update or remove any dependent configurations first.
If you’re not sure who uses a provider, coordinate with your team before deleting it.
***
## Security best practices
When working with providers and API keys:
* **Treat credentials as secrets**\
Only paste API keys or tokens into the Providers UI, not into prompts or notes.\
Never share them in screenshots or public channels.
* **Use least privilege**\
Create API users or keys that have only the permissions required for your use case (for example, a “call‑only” telephony key or a CRM key limited to the needed objects).
* **Separate environments**\
Use different provider accounts or keys for testing and production where possible.\
This prevents test traffic from polluting real CRMs or billing.
* **Rotate keys periodically**\
Follow the provider’s rotation recommendations.\
When rotating, use **Edit** on the provider connection to update keys without changing references elsewhere.
If you suspect a key is compromised, immediately rotate it at the provider and then update or delete the corresponding entry in **Providers**.
***
## Where to go next
* Learn how providers power voices and audio in the\
**[Voice Feature Guide](/product/features/voice)**.
* See how telephony providers and numbers work together in\
**[Numbers Feature Guide](/product/features/numbers)**.
* Connect providers to real workflows and API calls using\
**[Actions](/product/features/actions)** and\
**[Webhooks](/product/features/webhook)**.
* Manage workspace‑wide keys and account settings in\
**[Get API Key](/product/features/account/get-api-key)** and\
**[Settings](/product/features/account/settings)**.
# Appointment Scheduling (Skill)
Source: https://docs.fluents.ai/product/features/skills/appointment-scheduling
Let agents book meetings directly on your connected calendar during a call or web conversation.
The **Appointment Scheduling** skill lets your agent book meetings directly on a
connected calendar while talking to a caller or web visitor.
When this skill is enabled and configured, the agent can:
* Offer available time slots
* Agree on a date and time with the caller
* Create a calendar event using your chosen provider
This works for both phone agents and agents used via the web widget.
***
## Video: Appointment Scheduling (Skill)
***
## How it works
When a call or conversation starts and the skill is enabled:
* The agent loads roughly **two weeks of available time slots** from the
selected calendar provider.
* During the conversation, if the flow moves toward booking a meeting\
(for example, both sides agree to schedule a demo or consultation),
the agent can:
* Propose open time slots, or
* Accept a time suggested by the caller and check if it’s available.
* Once a time is confirmed, a meeting is created in your calendar provider.
* If you enable **Collect user’s email**, the agent asks for an email address
and uses it when creating the event; otherwise it uses the caller’s phone
number.
If the provider cannot create the event (for example, an error or no
availability), the agent informs the caller that it was not able to schedule
the meeting and will let your team know.
***
## Prerequisites
Before using Appointment Scheduling, you need:
* At least one **calendar provider** connected in **Providers**, such as:
* Microsoft Outlook
* Cal.com V2
* GoHighLevel
* Calendly
* An agent you want to enable this skill on.
You can also create or connect a provider directly from the Appointment
Scheduling configuration dialog when you select **Calendar Provider**.
***
## Enable Appointment Scheduling on an agent
1. Go to **Agents** and select your agent.
2. On the **Basic Information** tab, find **Choose Skills**.
3. Click **Appointment Scheduling** to add the skill.
4. A **Configure Appointment Scheduling** dialog opens.
***
## Configure Appointment Scheduling
In the **Configure Appointment Scheduling** dialog you’ll see:
* **Calendar Provider** (required)\
Choose which connected calendar provider this agent should use when booking
meetings (for example, Microsoft Outlook, Cal.com V2, GoHighLevel, Calendly).
* **Time zone** (required)\
Select the primary time zone for booking.\
The agent uses this when interpreting and offering times.\
Agents always know the current time and can convert between time zones as
needed, but this setting defines the default for scheduling.
* **Event Type** (required)\
Choose which event type or calendar to use when creating appointments.\
Examples:
* On Cal.com: “15 Min Meeting”, “30 Min Meeting”, “Secret Meeting”, etc.
* On Outlook: specific calendars like “Calendar”, “Birthdays”, etc.
Make sure the chosen event type is configured correctly and available in
your provider’s own settings.
* **Collect user’s email** (toggle)\
When **on**:
* The agent asks the caller for their email address.
* The email is used when creating the calendar event so the invite goes to
that address (and it can also be stored in call context).
When **off**:
* The booking is created using the caller’s phone number instead of an email.
After filling in these fields, click **Save** in the dialog, then save the
agent.
***
## Caller experience
With Appointment Scheduling configured, a typical flow might look like:
1. The conversation reveals that a follow‑up meeting is needed\
(for example, the caller is interested in a demo, consultation, or intake
call).
2. The agent offers to schedule:\
*“Would you like to schedule a time to speak with our team?”*
3. The agent either:
* Proposes specific available slots, such as:\
*“I have Tuesday at 3pm or Wednesday at 10am available. Which works
better for you?”*
* Or asks the caller for a preferred time and checks if it is open.
4. Once both sides agree on a date and time, the agent:
* Confirms the details (date, time, time zone).
* Collects the caller’s email (if enabled) or uses their phone number.
* Creates the event in the selected calendar provider.
5. If something goes wrong (no available slots, provider error),\
the agent lets the caller know it couldn’t complete the booking and
indicates that a human will follow up.
The exact wording is controlled by your **Agent Prompt**, but the scheduling
logic comes from this skill.
***
## Tips and best practices
* **Use clear event types**\
In your calendar provider, create event types that match your flow\
(for example, “Intro Call 15m”, “Demo 30m”, “Onboarding 60m”) so
it’s obvious which one to select in Fluents.
* **Align time zones**\
Set the Appointment Scheduling time zone to match where your team
typically operates, and make sure your prompt tells the agent how to speak
about time zones with callers.
* **Mention scheduling in the prompt**\
In your **Agent Prompt**, explain when and why the agent should offer to
schedule a meeting (for example, after qualifying a lead or answering
initial questions).
* **Test end‑to‑end**\
Before going live, use **Test Call Agent**:
* Walk through the conversation until a meeting is booked.
* Confirm that an event appears correctly in the right calendar, with the
right time and attendee details.
***
## Where to go next
* Learn about other skills you can combine with Appointment Scheduling in\
**[Agent Skills – Call Routing](/product/features/skills/call-routing)**\
and\
**[Agent Skills – Call Back Later](/product/features/skills/call-back-later)**.
* See how agents fit into campaigns and numbers in the\
**[Agent Feature Guide](/product/features/agent)** and\
**[Campaigns Feature Guide](/product/features/campaigns)**.
* Connect or review calendar providers in\
**[Providers](/product/features/providers)**.
# Call Back Later (Skill)
Source: https://docs.fluents.ai/product/features/skills/call-back-later
Let agents offer a call back later and automatically schedule a follow-up outbound call.
The **Call Back Later** skill lets your agent offer to **call someone back later**
instead of continuing the current conversation.
When the caller says something like:
* “I’m busy, can you call me back?”
* “Can we talk later?”
the agent can:
1. Confirm a callback.
2. End the current call gracefully.
3. Automatically schedule a **future outbound call** with the same agent and
phone number.
The scheduled call appears in the **Calls** section as a **scheduled call**.
This configuration is set at the **agent level**, not at the campaign level.
***
## Video: Call Back Later (Skill)
***
## How it works
With Call Back Later enabled:
* Fluents listens for phrases that indicate the caller wants to talk later\
(for example, “call me back”, “can we talk another time”, etc.).
* When that intent is detected and the agent agrees:
* The system decides when to call back, based on internal scheduling logic
(for example, soon after the requested time).
* A **scheduled outbound call** is created for the same agent and number.
* The agent says your **Callback Confirmation (End Call)** message and
then the call ends.
* When the scheduled time arrives:
* The same agent calls the contact back.
* The call starts with your **Callback Initial Message**.
If the number later ends up on the **DNC list**, that will still prevent
future callbacks from going out.
Call Back Later is designed primarily for **outbound** agents, but can also be
used with inbound agents if that fits your workflow.
***
## Prerequisites
Before using Call Back Later, make sure:
* Your agent is configured for **phone calls** (has a number and telephony
provider set up).
* You are comfortable with the agent scheduling and making follow‑up calls
automatically.
* Your team knows where to view scheduled calls in the **Calls** tab.
***
## Enable Call Back Later on an agent
1. Go to **Agents** and select your agent.
2. On the **Basic Information** tab, find **Choose Skills**.
3. Click **Call Back Later** to add the skill.
4. The **Configure Call Back Later** dialog opens.
***
## Configure Call Back Later messages
In the **Configure Call Back Later** dialog you can set two messages:
### 1. Callback Confirmation (End Call)
This is what the agent says **at the end of the original call** once a
callback has been agreed.
Example:
> “Great. We’ll call you back at that time. Goodbye.”
After speaking this line, the agent ends the current call and the callback is
scheduled.
### 2. Callback Initial Message
This is what the agent says **at the start of the future callback call** when
it connects.
Example:
> “Hi , this is calling you back. Is now a good
> time to talk?”
You can use placeholders that your system supports (like `{first_name}` or
`{company_name}`) so the message feels personalized.
When both fields look good, click **Save** in the dialog, then save the agent.
***
## Caller experience
A typical flow with Call Back Later looks like this:
1. During a conversation, the caller signals they are busy or prefer to talk
later (for example, “can you call me back tonight?”).
2. The agent recognizes that a callback is appropriate and confirms:
* It may clarify or confirm an approximate time based on your prompt.
3. The agent says your **Callback Confirmation** message and ends the call.
4. Fluents schedules a **future outbound call** with this agent to the same
phone number.
5. At the scheduled time:
* The agent calls the contact back.
* The call starts with your **Callback Initial Message**.
* The conversation continues as normal.
If the contact later requests to **not** be called again, the DNC list will be
updated and any future callbacks to that number will be blocked.
***
## Best practices
* **Write clear confirmation language**\
Make it obvious to the caller that:
* The current call is ending.
* They will receive a call back later.
* **Use a friendly, contextual initial message**\
In the callback message, remind the caller:
* Who you are
* Why you are calling back
* That this is a return call from an earlier conversation
* **Align with campaign expectations**\
If you run campaigns that rely on follow‑up calls, make sure your team
understands:
* Which agents use Call Back Later
* Where to see scheduled calls in the **Calls** tab.
* **Combine with DNC handling**\
If someone asks not to be called again, DNC will prevent future calls even
if a callback was previously scheduled.\
Train your team to respect DNC requests across all channels.
***
## Where to go next
* Combine callbacks with **Appointment Scheduling** when a more structured
meeting time is needed:\
**[Appointment Scheduling (Skill)](/product/features/skills/appointment-scheduling)**.
* Learn how calls and scheduled calls appear in\
**[Call Feature Guide](/product/features/call)** and\
**[Call History (Core Concept)](/product/concepts/call-history)**.
* See all skills available for agents in the\
**[Agent Feature Guide](/product/features/agent)**.
# Call Routing (Skill)
Source: https://docs.fluents.ai/product/features/skills/call-routing
Let agents cold-transfer calls to specific phone numbers based on phrases said by the bot or the caller.
The **Call Routing** skill lets your agent **cold‑transfer** an active call
to a specific phone number when certain phrases are spoken.
You define simple rules such as:
* When the **bot** says “Let me patch you through” → transfer to Dave at `+14151112222`
* When the **human** says “Support” → transfer to Sophie at `+12314270677`
When a rule matches during the conversation, Fluents immediately transfers the
call to the configured number (US 10‑digit numbers), and the AI agent drops
off the call.
***
## Video: Call Routing (Skill)
***
## How it works
With Call Routing enabled:
* You define one or more **conditions** in the **Configure Call Routing** dialog.
* Each condition specifies:
* Who says something: the **bot** (AI agent) or the **human** (caller)
* The **phrase** that must be spoken
* The **recipient name** (for your reference)
* The **recipient number** (US 10‑digit number)
During a call:
* If any condition matches:
* The call is **cold‑transferred** to the configured number.
* The caller hears standard ringing while the transfer is attempted.
* The AI agent is no longer on the line.
* If the transfer fails (for example, unreachable number), the call ends
because it is a cold transfer.
Call Routing can be used with **any agent** (inbound or outbound) that can
place or receive phone calls.
***
## Prerequisites
Before using Call Routing, make sure:
* Your workspace has at least one **telephony provider** and **numbers**
configured (so calls can be placed).
* The target numbers you plan to transfer to are valid **US 10‑digit phone
numbers**.
* Your agent’s **prompt** is written to say the exact phrases you configure
for any “bot says” rules.
***
## Enable Call Routing on an agent
1. Go to **Agents** and select your agent.
2. On the **Basic Information** tab, find **Choose Skills**.
3. Click **Call Routing** to add the skill.
4. The **Configure Call Routing** dialog opens.
***
## Configure Call Routing conditions
In the **Configure Call Routing** dialog, each condition has two parts:
1. **Trigger phrase**
2. **Transfer destination**
You can add multiple conditions using **+ Add more conditions**.
### 1. Trigger phrase
For each condition:
* Choose **who** must say the phrase:
* **bot** – the AI agent
* **human** – the caller
* Enter the **Phrase** that must be spoken.
Behavior:
* For **bot**:
* Matching is **exact**.\
The agent must say **exactly** the phrase you configure here.
* You should ensure the same wording appears in your Agent Prompt so the
bot naturally says it at the right time.
* For **human**:
* The phrase match is more flexible, because real callers may phrase things
differently.
* You can keep phrases shorter and more generic (for example, “support”)
so they are more likely to match.
> Because `bot` rules use exact matching, they are more predictable and give
> you tighter control over when transfers happen.\
> `human` rules provide more flexibility but can be less precise.
### 2. Transfer destination
For each condition, set where to send the call:
* **Transfer to** – a descriptive **Recipient Name** (for example, “Dave”,
“Support”, “Sales queue”).
* **at** – the **Recipient number**, a valid US 10‑digit phone number.
You can reuse the same number in several conditions if needed.
Once a condition is satisfied during a call, Fluents immediately initiates the
transfer to this number.
Click **Save** in the dialog when you are done, then save the agent.
***
## Caller experience
With Call Routing configured, a typical flow might look like:
* **Bot‑triggered transfer**
1. The agent handles the initial conversation.
2. Once it determines a human should take over, it says something like:\
“Let me patch you through” (exact phrase configured for a `bot` rule).
3. The rule matches and the call is transferred to the target number.
4. The caller hears ringing while the transfer goes through.
5. The AI drops off; the human picks up and continues the conversation.
* **Human‑triggered transfer**
1. The caller says a key word or phrase, such as “support” or “sales”.
2. A `human` rule matches that phrase.
3. The call is transferred to the configured destination as above.
If the transfer cannot be completed (for example, invalid number or network
issue), the call ends because it is a cold transfer.
***
## Best practices
* **Use bot‑triggered transfers for reliability**\
Since `bot` phrases are exact‑match, you control exactly when routing
happens. Write the same phrase in your Agent Prompt so the agent uses it
consistently.
* **Keep human phrases simple**\
For `human` triggers, use short, clear words that are likely to appear in
many variations of the request (for example, “support”, “sales”).
* **Test all routes**\
Use **Test Call Agent** and say the trigger phrases (or let the bot say its
trigger phrase) to confirm:
* The correct route fires.
* The call rings on the right number.
* The human receiving the call understands who is being transferred.
* **Document destinations for your team**\
Use clear recipient names (for example, “Support L1”, “Billing”, “On‑call
manager”) so others on your team can understand and maintain the routing
logic.
***
## Where to go next
* Combine Call Routing with **Appointment Scheduling** so agents can both
hand calls off and book follow‑up meetings:\
**[Appointment Scheduling (Skill)](/product/features/skills/appointment-scheduling)**.
* Learn how agents are configured more broadly in the\
**[Agent Feature Guide](/product/features/agent)**.
* Review how numbers and providers are set up for calling in\
**[Numbers](/product/features/numbers)** and\
**[Providers](/product/features/providers)**.
# Call Screen Handling (Skill)
Source: https://docs.fluents.ai/product/features/skills/call-screen-handling
Control what a human sees on call screening, and what your agent should do if the right person isn’t available.
The **Call Screen Handling** skill lets you control **what’s shown on a call screen**
when your agent tries to connect someone to a human, and what the agent should do
if the **right person isn’t available**.
This helps transfers feel smoother and prevents callers from getting stuck when a
handoff can’t be completed.
***
## Video: Call Screen Handling (Skill)
***
## How it works
When your agent attempts to connect the caller to a person, the receiving side
may be presented with a **call screen**. With this skill enabled:
* The agent shares a short **Reason for the call** on the call screen.
* If the agent can’t reach the right person (busy, no answer, unavailable), it
follows your chosen fallback behavior.
***
## Enable Call Screen Handling on an agent
1. Go to **Agents** and select your agent.
2. On the **Basic Information** tab, find **Choose Skills**.
3. Click **Call Screen Handling** to add the skill.
4. A **Configure Call Screen Handling** dialog opens.
***
## Configure Call Screen Handling
In the **Configure Call Screen Handling** dialog:
* **Reason for the call** (required)\
What the recipient sees on the call screen. Keep it short and specific.\
Example: “Customer calling about order status” or “New lead requesting a demo”.
* **What to do if the right person isn’t available?** (required)\
Choose what the agent should do if it can’t connect to the intended person:
* **Request transfer to someone else**\
The agent asks for another person (or option) and attempts to connect to them instead.
* **Leave a message**\
The agent collects a message and lets the caller know your team will follow up.
* **Call back later**\
The agent offers to call back at a better time and proceeds accordingly.
* **End the call**\
The agent ends the call politely.
Click **Save** to apply the settings.
***
## Tips
* **Write the reason like a call note**\
The goal is to help the recipient decide quickly whether to take the call.
* **Pick a fallback that matches your business hours**\
For example: “Leave a message” after hours, “Request transfer to someone else” during business hours.
***
## Where to go next
* **[Agent Skills – Call Routing](/product/features/skills/call-routing)**
* **[Agent Skills – Call Back Later](/product/features/skills/call-back-later)**
# End Call (Skill)
Source: https://docs.fluents.ai/product/features/skills/end-conversation
Control how your agent closes a conversation and hangs up, including optional detection when the caller wants to end the call.
The **End Call** skill controls how your agent **wraps up a conversation and hangs up**.
You can configure one or more **closing phrases** (what the agent says right before ending the call), and optionally enable automatic detection when the caller is trying to end the call.
***
## Video: End Call (Skill)
***
## How it works
With End Call enabled:
* You define one or more **closing phrases** the agent can use before hanging up.
* If **Detect when the caller wants to end the call** is turned **on**, the skill is **function-based**:
* The LLM detects end-of-call intent (for example: “That’s all,” “I’m good,” “Thanks, bye.”)
* The agent can then close the conversation and hang up using your configured phrase(s).
* If detection is turned **off**, the agent will only end the call when it explicitly uses one of the configured closing phrases.
***
## Enable End Call on an agent
1. Go to **Agents** and select your agent.
2. On the **Basic Information** tab, find **Choose Skills**.
3. Click **End Call** to add the skill.
4. A **Configure End Call** dialog opens.
***
## Configure End Call
In the **Configure End Call** dialog:
* **Phrase** (required)\
A closing line the agent can say right before ending the call.\
You can add multiple phrases using **+ Add more**.
* **Detect when the caller wants to end the call** (toggle)\
When enabled, the agent can automatically recognize when the caller is trying to end the conversation and then hang up using your configured phrase(s).
Click **Save** to apply the settings.
***
## Tips
* **Add 2–3 natural closings**
Examples:
* “Thanks for calling. Have a great day.”
* “Perfect. If anything else comes up, feel free to call back. Bye for now.”
* “Thanks, goodbye.”
* **Keep it short**
A quick closing reduces awkward silence and accidental talk-over at hangup.
***
## Where to go next
* **[Agent Skills – Call Screen Handling](/product/features/skills/call-screen-handling)**
# In-call Email (Skill)
Source: https://docs.fluents.ai/product/features/skills/in-call-email
Let your agent send emails to the caller during a live phone call or web conversation.
The **In-call Email** skill lets your agent **send an email to the user during a live conversation** (phone or web).
This is useful when a caller asks for something they’d like in writing. Like order status, product details, links, or next steps.
> **Experimental Feature**
> This skill is currently gated behind **Experimental Features**.\
> Enable it first: **[Experimental Features](/product/features/experimental-features)**
***
## Video: In-call Email (Skill)
***
## How it works
When In-call Email is enabled:
* The agent can **collect the user’s email address during the call** or use an email already available in **call context**.
* You can create **one or multiple email templates**.
* Each template includes a **“When should this email be sent?”** instruction.
* The skill is **function-based**: the **LLM decides when to send** an email by matching the conversation to that instruction.
* During the same call, the agent can send **multiple emails** if multiple template conditions match.
> In-call Email sends messages **during the call**. (Post-call email is a separate feature.)
***
## Prerequisites
Before using In-call Email, you need:
* **Experimental Features** enabled: **[Experimental Features](/product/features/experimental-features)**
* An email provider connected in **Providers**:
* **Gmail**
* **Outlook**
***
## Enable In-call Email on an agent
1. Go to **Agents** and select your agent.
2. On the **Basic Information** tab, find **Choose Skills**.
3. Click **In-call Email** to add the skill.
4. The **Configure In Call Email** dialog opens.
***
## Configure In-call Email
In the **Configure In Call Email** dialog:
* **Email Provider** (required)\
Choose a connected provider (Gmail or Outlook). If it’s not connected yet, connect it in **Providers**, then return here.
For each email you add, configure:
* **When should this email be sent?** (required)\
A short instruction that tells the agent *when* to send this email.\
Example: “When the user asks for order status.”
* **From Email** (required)\
The sender address used for this template.
* **Subject** (required)\
The email subject line.
* **Body** (required)\
The email content. Supports **plain text and HTML**.
You can click **+ Add email** to create multiple templates, and **Delete Email** to remove one.
Finish by clicking **Save**.
***
## Tips
* **Make triggers specific**\
Keep “When should this email be sent?” short and clear (1 sentence works best).
* **Write for copy/paste value**\
Use the body to include links, steps, and the exact info customers ask for.
* **Test end-to-end**
Use a test call and ask for the info you expect to trigger the email, then confirm it arrives.
***
## Where to go next
* Turn on access: **[Experimental Features](/product/features/experimental-features)**
* Configure email providers: **Providers** (link this to your Providers doc when ready)
# In-call SMS (Skill)
Source: https://docs.fluents.ai/product/features/skills/in-call-sms
Let your agent send SMS messages to the caller during a live phone call or web conversation.
The **In-call SMS** skill lets your agent **send an SMS to the caller during a live conversation** (phone or web).
Use it to text links, instructions, confirmations, or next steps while the caller is still on the line.
***
## Video: In-call SMS (Skill)
***
## How it works
When In-call SMS is enabled:
* You choose an **SMS-enabled** phone number to send texts from.
* During the call, the agent can send SMS messages to the caller when it’s relevant (for example, when the caller asks for a link or written info).
* What the agent sends is primarily guided by your **Agent Prompt** (tell the agent what kinds of messages it’s allowed to text and when).
***
## Prerequisites
Before using In-call SMS, you need:
* A connected **Twilio provider** in **Providers**
* A phone number that is **SMS-enabled** (text-capable) and available to select as the SMS sender
***
## Enable In-call SMS on an agent
1. Go to **Agents** and select your agent.
2. On the **Basic Information** tab, find **Choose Skills**.
3. Click **In-call SMS** to add the skill.
4. The **Configure In Call SMS** dialog opens.
***
## Configure In-call SMS
In the **Configure In Call SMS** dialog:
* **SMS number** (required)\
Select the phone number the agent should send texts from during the call.
Click **Save** to apply the settings.
***
## Tips
* **Tell the agent what to text (in the prompt)**\
Add guidance like:
* what types of links/info it can send
* when it should offer to text something
* what it should do if the caller says they can’t receive texts
* **Use a consistent sender number**\
Using the same SMS-enabled number helps callers recognize your messages.
***
## Where to go next
* Connect Twilio in **[Providers](/product/features/providers)**
* Manage and verify numbers in **[Numbers](/product/features/numbers)**
# IVR Navigation (Skill)
Source: https://docs.fluents.ai/product/features/skills/ivr-navigation
Let your agent navigate third-party IVR menus (e.g., “Press 1 for Sales”) to reach a goal.
The **IVR Navigation** skill lets your agent navigate phone menus like:
> “Press 1 for Sales, press 2 for Support…”
This is helpful when your agent calls into (or is transferred into) a business phone system and needs to reach a specific destination.
***
## Video: IVR Navigation (Skill)
***
## How it works
When IVR Navigation is enabled:
* The agent listens to the IVR prompts (e.g., “Press 1 for…”).
* It selects menu options (DTMF button presses) to move through the menu tree.
* You provide a **Goal** that describes what the agent is trying to reach (for example, “Reach Billing” or “Get to a human agent for Support”).
* Once the goal is reached, the agent **stays on the line and continues the conversation**.
***
## Enable IVR Navigation on an agent
1. Go to **Agents** and select your agent.
2. On the **Basic Information** tab, find **Choose Skills**.
3. Click **IVR Navigation** to add the skill.
4. A **Configure IVR Navigation** dialog opens.
***
## Configure IVR Navigation
In the **Configure IVR Navigation** dialog:
* **Goal** (required)\
Describe what the agent should accomplish when navigating the IVR.\
Examples:
* “Reach the billing department”
* “Get to a live agent in customer support”
* “Navigate to order status”
* **Maximum menu selections** (required)\
A safety limit for how many menu choices the agent will make while trying to reach the goal.
Click **Save** to apply the settings.
***
## Tips
* **Write a clear goal**\
Use a goal that matches how the IVR labels options (e.g., “Billing” vs “Accounts Receivable”).
* **Avoid overly broad goals**\
“Get help” is ambiguous; “Reach Technical Support” is easier to navigate.
* **Test on the real IVR**
Call the actual number/menu and confirm the agent reliably reaches the intended destination.
***
## Where to go next
* **[Agent Skills – Call Routing](/product/features/skills/call-routing)**
* **[Agent Skills – Switch Communication](/product/features/skills/switch-communication)**
# Knowledge Search (Skill)
Source: https://docs.fluents.ai/product/features/skills/knowledge-search
Let agents answer questions using content from one or more Knowledge Bases.
The **Knowledge Search** skill lets your agent answer questions using content
from your **Knowledge Bases** (uploaded documents), instead of relying only on
general AI knowledge.
When this skill is configured on an agent, the agent can:
* Search the selected knowledge bases during a call or web conversation.
* Pull in relevant passages from your docs.
* Use that information when answering questions.
> Knowledge Bases and Knowledge Search are currently in **BETA**.
For an overview of how to create and manage Knowledge Bases themselves, see\
**[Knowledge Bases Feature Guide](/product/features/knowledge-base)**.
***
## Video: Knowledge Search (Skill)
***
## How it works
When Knowledge Search is enabled:
* The agent is given access to one or more **Knowledge Bases** that you
select.
* During a conversation, if the caller asks a question that can be answered
from those documents, the agent can search and use those documents in its
reply.
* This can add a small amount of extra latency (roughly 1–2 seconds per
attached knowledge base), because the system is doing additional lookups.
Knowledge Search works wherever the agent is used (phone calls, web widget,
and other channels tied to that agent).
***
## Prerequisites
Before enabling the skill, you should:
* Create one or more **Knowledge Bases** and upload documents to them in\
**Knowledge Bases → Create Knowledge Base**.
* Decide which topics or areas each knowledge base should be responsible for\
(for example, “General FAQs”, “Product A Docs”, “Legal & Compliance”).
Knowledge bases are shared by all agents in the same environment, so any
agent can use any existing KB.
***
## Enable Knowledge Search on an agent
1. Go to **Agents** and select your agent.
2. On the **Basic Information** tab, find **Choose Skills**.
3. Click **Knowledge Search** to add the skill.
4. The **Configure Knowledge Search** dialog opens.
***
## Configure Knowledge Search
In the **Configure Knowledge Search** dialog, you define one or more rows.
Each row tells the agent:
* Which **knowledge base** to use.
* What kinds of **questions** that knowledge base should be used for.
Each row has two fields:
1. **Use the knowledge base**
* Choose a knowledge base from the dropdown list.
* All KBs from your current environment appear here.
2. **To answer questions about**
* Enter a short description of the topic or type of questions this KB
should cover.\
Examples:
* `general bond questions`
* `performance bonds questions`
* `California contractor licensing`
This second field is required. It helps document and guide how each
knowledge base should be used.
You can:
* Click **+ Add more** to add additional rows.
* Attach **multiple knowledge bases** to the same agent.
* Use the **same knowledge base** in more than one row with different topic
descriptions (if you want to emphasize different use cases).
* Remove a row with the small “x” at the right if you no longer want the
agent to use that entry.
When finished, click **Save** in the dialog, then save the agent.
***
## What callers experience
With Knowledge Search configured, callers or web visitors can:
* Ask questions that are covered in your uploaded documents\
(for example, “What are your performance bond requirements?”).
* Receive answers that draw on the content of your Knowledge Bases, phrased
naturally by the agent.
If a question is not well‑covered by the documents:
* The agent may still attempt to answer using its general abilities, or
* You can instruct it in your **Agent Prompt** to respond differently\
(for example, “If you cannot find information in the provided documents,
say you don’t know and suggest talking to a human.”).
The exact fallback behavior is controlled by how you write the agent’s
instructions, not by a separate setting in the Knowledge Search skill.
***
## Best practices
* **Keep knowledge bases focused**\
Group related documents together by topic (for example, “Product A Docs”,
“Support Playbook”, “Legal Policies”).\
Then attach only the relevant KBs to each agent.
* **Use clear topic descriptions**\
In the **To answer questions about** field, write short, specific topics
(for example, “performance bond questions” instead of just “bonds”).\
This makes it easier to understand and maintain which KB is for what.
* **Avoid attaching unnecessary KBs**\
Each extra knowledge base adds additional lookup work and can increase
response times by 1–2 seconds.\
Only attach the KBs that the agent truly needs.
* **Test with real questions**\
After configuration:
* Use **Test Call Agent** or the web widget to ask typical customer
questions.
* Confirm the agent is pulling the right information from the right KBs.
* Adjust which KBs are attached or how you describe topics if needed.
***
## Where to go next
* Learn how to create and manage Knowledge Bases themselves in the\
**[Knowledge Bases Feature Guide](/product/features/knowledge-base)**.
* Combine Knowledge Search with other skills such as\
**[Appointment Scheduling](/product/features/skills/appointment-scheduling)**\
and **[Call Routing](/product/features/skills/call-routing)**.
* See how agents are configured end‑to‑end in the\
**[Agent Feature Guide](/product/features/agent)**.
# Switch Communication (Skill)
Source: https://docs.fluents.ai/product/features/skills/switch-communication
Let agents move a live call to a different phone number when the caller wants to continue on another line.
The **Switch Communication** skill lets your agent move a live conversation
from one phone number to another.
Typical use case:
* You call someone on their **office line**.
* They say, “I have to leave, can we switch to my cell?”
* The agent collects their mobile number.
* Fluents ends the current call and immediately starts a **new outbound call**
to the new number, using a number you configure.
This is useful when contacts want to continue the same conversation on a
different phone (for example, from desk phone to mobile).
***
## Video: Switch Communication (Skill)
***
## How it works
With Switch Communication enabled:
1. During a call, if the caller indicates they want to continue on another
number (for example, “call me on my cell”):
* The agent asks for and confirms the **new phone number**.
2. The agent uses your configured **Caller Number** as the caller ID for the
new call.
3. Fluents:
* Ends the **current** call.
* Immediately starts a **new outbound call** from the Caller Number to the
number the caller provided.
4. When the new call connects, the agent starts with your configured\
**Switch Communication Message**, then continues the conversation.
The switch is **conversation‑driven**: there are no explicit routing rules in
the UI; the agent decides when to offer or accept switching based on how you
write its prompt and how the caller speaks.
Switch Communication is different from:
* **Call Routing** – which transfers the current call to a **pre‑defined
fixed number**.
* **Call Back Later** – which schedules a **future** call rather than
switching right away.
***
## Prerequisites
Before using Switch Communication, make sure:
* Your workspace has at least one **Fluents Number** that can be used as the
**Caller Number** (for the new call).
* Your agent is configured for **phone calls** (telephony provider + number).
* You are comfortable with the agent:
* Ending the current call, and
* Starting a new outbound call immediately.
The new number the caller provides must be a valid **US 10‑digit phone
number**. Standard DNC behavior still applies: if that number is later added
to the DNC list, future calls to it will be blocked.
***
## Enable Switch Communication on an agent
1. Go to **Agents** and select your agent.
2. On the **Basic Information** tab, find **Choose Skills**.
3. Click **Switch Communication** to add the skill.
4. The **Configure Switch Communication** dialog opens.
***
## Configure Switch Communication
In the **Configure Switch Communication** dialog you’ll see:
* **Caller Number** (required)
* Choose the **Fluents Number** that should be used as the **caller ID**
for the *new* call after switching.
* This is often a number that is SMS‑ or mobile‑friendly, or simply the
main number you want contacts to see.
* **Switch Communication Message**
* The **initial message** the agent uses on the new call after switching.
* Example:
> “Hey, this is again. Want to continue where we left off?”
After setting these, click **Save** in the dialog, then save the agent.
***
## Caller experience
Here’s how a typical switch looks from the caller’s perspective:
1. You call them (or they answer an outbound call) on their **office** number.
2. During the conversation they say something like:
* “I’m heading out, can you call my cell instead?”
3. The agent responds along the lines of:
* “Sure, what number should I call?”
* Confirms the 10‑digit mobile number.
4. The agent ends the current call with a brief closing line.
5. Within moments, their **cell phone rings**:
* The caller ID is the **Caller Number** you configured.
* When they answer, the agent starts with the **Switch Communication
Message**, then continues the conversation as before.
This keeps the conversation going with minimal friction, just on a different
device.
***
## Best practices
* **Choose a good Caller Number**\
Use a number that:
* You are comfortable exposing as caller ID.
* Is associated with your brand or team (for example, your main sales or
support number).
* **Write a clear initial switch message**\
In the **Switch Communication Message**, remind the caller:
* Who you are.
* That this is the continuation of the previous call.
* That you’re switching lines at their request.
* **Explain when to switch in the agent prompt**\
In your **Agent Prompt**, describe:
* Under what conditions the agent should offer or accept switching to
another number (for example, only when the caller clearly asks).
* Any constraints (for example, don’t switch in the last minute of a call).
* **Test end‑to‑end**\
Use **Test Call Agent** and:
* Simulate asking to be called on a different number.
* Verify:
* The current call ends as expected.
* A new call is placed from the correct Caller Number.
* The agent uses the Switch Communication Message correctly.
***
## Where to go next
* Compare with other call‑related skills in:\
**[Call Routing (Skill)](/product/features/skills/call-routing)** and\
**[Call Back Later (Skill)](/product/features/skills/call-back-later)**.
* See how agents, numbers, and campaigns work together in the\
**[Agent Feature Guide](/product/features/agent)** and\
**[Campaigns Feature Guide](/product/features/campaigns)**.
* Review how numbers and telephony providers are configured in\
**[Numbers](/product/features/numbers)** and\
**[Providers](/product/features/providers)**.
# Voices
Source: https://docs.fluents.ai/product/features/voice
Learn how to browse, test, import, and manage voices before assigning them to your agents.
The **Voices** page lets you control how your agents sound on calls.
From here you can:
* Browse all voices available to your account
* Search and filter voices
* Test (preview) how a voice sounds
* Import new voices from connected providers
* Edit or delete imported voices
For a high-level overview of what voices are and how they fit into Fluents.ai, see\
**[Voices (Core Concept)](../concepts/voices)**.
On this page:
* [Browse and search voices](#browse-and-search-voices)
* [Test (preview) a voice](#test-preview-a-voice)
* [Import voices from a provider](#import-voices-from-a-provider)
* [Edit or delete an imported voice](#edit-or-delete-an-imported-voice)
* [Where to go next](#where-to-go-next)
***
## Video: Voices
***
## Browse and search voices
To open the list of voices:
1. In the left-hand sidebar, click **Voices**.
You’ll see a table of all voices available in your account. Typical information includes:
* **Name** – The display name of the voice.
* **Provider** – Which voice provider or engine the voice comes from.
* **Source / created by** – Whether the voice is provided by Fluents.ai or was imported/created by your account.
At the top of the page you can:
* **Search by name** – Type part of the voice name to quickly find it.
* **Filter by provider** – Show only voices from a specific provider (where applicable).
* **Filter by source** – For example, filter to show only voices you imported.
Use these controls to:
* Quickly find a known voice by name.
* Explore voices from a particular provider.
* Focus on the custom voices your team has added.
***
## Test (preview) a voice
Before assigning a voice to an agent, you should listen to how it sounds.
To preview a voice:
1. In the **Voices** list, locate the voice you want to test.
2. Click the **Play / Preview** button next to that voice.
3. Listen to the sample audio.
Depending on your configuration, you may:
* Hear a default sample sentence, or
* Be able to enter a short custom phrase to preview.
Tips:
* Test a sentence similar to what your agent will say, such as your greeting or brand introduction.
* Compare several voices side by side to choose the one that best matches your use case (after-hours, sales, support, etc.).
Once you’re happy with a voice, you can select it when configuring an agent.
***
## Import voices from a provider
If you’ve connected external text-to-speech providers, you can import voices from those accounts.
### 1. Connect a provider (once per account)
Before importing, you must add provider credentials:
1. Go to **Providers** in the sidebar.
2. Select the voice provider you want to use.
3. Enter the required **API key / credentials**.
4. Save.
Without a valid provider configuration in **Providers**, the **Import voice** action will not work.
For detailed steps, see the\
**[Providers Feature Guide](./providers)**.
### 2. Import voices in the Voices page
Once a provider is connected:
1. Go to **Voices**.
2. Click **Import voice**.
3. Choose the **provider** you want to import from.
4. Follow the prompts to select or configure the voice:
* Depending on the provider, you may need to supply provider-specific settings (for example, a voice ID, model name, or other options).
5. Confirm to **import**.
After import:
* The new voice appears in your **Voices** list.
* You can search, preview, and assign it to agents like any other voice.
Use imports when:
* You already have custom voices with a provider.
* You want access to voices beyond the built-in Fluents.ai catalog.
***
## Edit or delete an imported voice
For voices you’ve imported, you can usually **edit** or **delete** them.
To edit an imported voice:
1. In the **Voices** table, open the **actions menu** (for example, the three-dot menu) next to the voice.
2. Choose **Edit**.
3. Adjust any allowed settings:
* This may include provider-specific options (for example, updating a voice ID or configuration).
4. Save.
To delete an imported voice:
1. Open the voice’s **actions menu**.
2. Choose **Delete**.
3. Confirm the deletion.
Deleting a voice removes it from the **Voices** list and prevents it from being selected for new agents.\
Existing agents that already use that voice may need to be updated to use a different voice, depending on your configuration.
***
## Where to go next
* Learn how voices shape agent behavior and identity in\
**[Voices (Core Concept)](../concepts/voices)**.
* See how to select a voice for a specific agent in the\
**[Agent Feature Guide](./agent)**.
* Configure providers and API keys used for voice imports in the\
**[Providers Feature Guide](./providers)**.
# Webhooks
Source: https://docs.fluents.ai/product/features/webhook
Learn how to subscribe to Fluents.ai events and receive real-time JSON payloads at your own HTTP endpoints.
**Webhooks** let Fluents.ai send **real-time HTTP requests** to your systems when certain events happen during or after a call.
You can subscribe a single webhook to one or more event types (subscriptions), and each event will send a **JSON payload** to your URL.
Use webhooks when you want to:
* Store transcripts or post-call results
* Log call events in your own systems
* Trigger downstream workflows (analytics, alerts, CRM updates, etc.)
On this page:
* [Where to configure webhooks](#where-to-configure-webhooks)
* [Create a webhook](#create-a-webhook)
* [Available subscriptions](#available-subscriptions)
* [Webhook request format](#webhook-request-format)
* [Security recommendations](#security-recommendations)
* [How webhooks differ from Custom External Actions](#how-webhooks-differ-from-custom-external-actions)
* [Where to go next](#where-to-go-next)
***
## Where to configure webhooks
1. In the left-hand sidebar, click **Webhooks**.
2. You’ll see a list of existing webhooks for the current environment.
3. Each row typically shows:
* **Label** – Name of the webhook.
* **URL** – The target endpoint.
* **Method** – Currently POST.
* Other metadata such as ID or connection details.
From here you can:
* Click **Create Webhook** to add a new subscription.
* Use the three-dot menu next to an existing webhook to **edit** or **delete** it (depending on your UI).
***
## Create a webhook
To create a new webhook:
1. Go to **Webhooks** and click **Create Webhook**.
2. In the **New Webhook** dialog, fill in:
* **Label**\
A human‑friendly name for this webhook.\
Example: `Store transcripts in data warehouse`.
* **URL**\
The endpoint on your server that will receive webhook events.\
Example: `https://api.yourcompany.com/fluents/webhook`.
* **Subscriptions**\
Select one or more event types you want this webhook to receive\
(see [Available subscriptions](#available-subscriptions) below).
* **Method**\
Currently **POST** is used for all webhooks.
* **Account Connection** (optional)\
In some setups you can associate the webhook with a specific account connection.\
If you don’t use this yet, you can leave it at its default value.
3. Click **Create Webhook** to save.
From now on, whenever any of the selected events occur, Fluents.ai will send a POST request to your URL with a JSON payload.
***
## Available subscriptions
You can subscribe a webhook to one or more of the following event types:
* **Message**\
Events related to messages exchanged during the call.
* **Action**\
Events related to actions your agent performs (for example, certain phone actions or external actions).
* **Transcript**\
Transcript-related events. Payloads typically include transcript text in the `payload` section.
* **Error**\
Events when an error occurs during a call or processing pipeline.
* **Recording**\
Events related to call recordings (for example, when a recording is available).
* **Human Detection**\
Events indicating when a human is detected in the call flow, depending on your configuration.
* **Phone Call Did Not Connect**\
Events when an attempted call failed to connect (for example, unreachable or busy).
* **Phone Call Connected**\
Events when a call successfully connects.
* **Phone Call Ended**\
Events when a call is finished.
* **Post-Call Processing Completed**\
Events when **post-call processing is complete** and the **post-call result** (analysis / summary) is ready.\
The payload includes the post‑call result content in the `payload` section so you can store or process it.
You can tick multiple subscriptions for the same webhook if you want a single endpoint to handle several event types.
***
## Webhook request format
All webhooks use:
* **HTTP method:** POST
* **Body:** JSON
* **Authentication:** No built-in signing yet (see [Security recommendations](#security-recommendations)).
The exact `payload` structure will vary by event type, but the top-level structure is generally consistent and includes:
* `call_id` – Unique ID of the call linked to this event.
* `type` – The event type (for example, `event_transcript`, `event_post_call_processing_completed`).
* `from_number` – The caller’s number.
* `to_number` – The number that was called.
* `is_outgoing` – `true` for outbound calls, `false` for inbound calls.
* `payload` – Event-specific data (transcript, post-call result, error details, etc.).
For example, a transcript-related event might look like this (dummy values):
```JSON theme={null}
{
"call_id": "00000000-0000-0000-0000-000000000000",
"type": "event_transcript",
"from_number": "+15551112222",
"to_number": "+15553334444",
"is_outgoing": true,
"payload": {
"transcript": "Sample transcript text for this call..."
}
}
```
For a **Post-Call Processing Completed** event, the `payload` would contain the post-call result or analysis text, for example:
* `payload.post_call_results` or a similar field, depending on your configuration.
Your endpoint should:
* Accept JSON POST requests.
* Parse the body.
* React based on `type` and the data inside `payload`.
***
## Security recommendations
Currently, Fluents.ai webhooks **do not** include a built-in signing mechanism (HMAC or shared secret).
To keep your webhook endpoints secure:
* Use a **secret, unguessable URL** for your webhook endpoint.
* Example: `https://api.yourcompany.com/fluents/webhook/long-random-token`.
* Validate the data you receive and ignore unexpected payloads.
* Optionally limit access by:
* Allowlisting IP ranges (if feasible in your infrastructure).
* Adding your own authentication layer in front of the endpoint (for example, an API gateway).
Do not expose webhook endpoints that accept unauthenticated modifications to sensitive systems without additional checks.
***
## How webhooks differ from Custom External Actions
Webhooks and **Custom External Actions** both involve calling external URLs, but they serve different purposes:
* **Webhooks**
* Triggered by **events** (for example, call connected, transcript chunk, post-call processing completed).
* Are usually **one-way notifications** from Fluents.ai to your systems.
* Do **not** pause the conversation or require an immediate response to continue the call.
* Great for logging, analytics, syncing data to CRMs or data warehouses, and triggering asynchronous workflows.
* **Custom External Actions**
* Are triggered **during** a conversation by the agent (function-based).
* The agent **waits** for your API’s response and then uses that data to continue talking.
* Ideal when the conversation must react in real time to your API (for example, look up an account and then read back the balance).
Use **webhooks** for event-driven integrations and background processing.\
Use **Custom External Actions** when the agent must call your API in the middle of a live call.
See the **[Actions – Custom External Actions](./actions)** guide for more about custom actions.
***
## Where to go next
* Learn how to create Custom External Actions that call your own APIs in the\
**[Actions Feature Guide](./actions)**.
* Review how calls are logged and how post-call processing works in\
**[Call history (Core Concept)](../concepts/call-history)** and\
**[Agents – Post-Call Actions](../concepts/agent/post-call)**.
* Manage API keys and environments for your backend integrations in\
**[Get API key](./account/get-api-key)** and **[Settings](./account/settings)**.
# Widget
Source: https://docs.fluents.ai/product/features/widget
Overview of the Fluents.ai website widget and how to configure it from the dashboard.
The Fluents.ai **Widget** lets you place an AI Agent directly on your website.\
Visitors can chat with the agent and start a voice call from the browser, without dialing a phone number.
This page explains, in non‑technical terms:
* What the widget does
* When to use it
* Where to configure it in the Fluents.ai dashboard
* What you or your web developer needs to do next
***
## What the widget is
The widget is a small, floating assistant you add to your website.
When a visitor opens your site, they can:
* Open the widget
* Type questions or requests
* Click the phone icon to start a live voice conversation with your agent
Behind the scenes, the widget connects to one of your **Fluents.ai agents**.\
Each agent can have its own widget configuration.
***
## Typical use cases
Businesses use the widget to:
* **Answer common questions** on a website, 24/7\
(for example, hours, pricing, location, basic support)
* **Capture and qualify new leads**\
(for example, collect name and contact info, then send them to your CRM or team)
* **Offer instant “call with an agent”** from a landing page\
(for example, for sales teams that want to speak with prospects as soon as someone shows interest)
* **Provide after‑hours coverage** on key pages\
(for example, contact page, checkout, signup page)
***
## Where to configure the widget
The widget is configured from **within each agent**.
To find the settings:
1. In the left sidebar, click **Agents**.
2. Click the agent you want to use on your website.
3. At the top of the agent page, click the **Widget Integration** tab.
Everything related to that agent’s website widget lives on this tab.
***
## What you see on the Widget Integration tab
The tab is divided into two main sections:
* **Direct JWT Token**\
A quick way to generate a token that lets a website use this agent’s widget.\
This is useful for testing or simple setups.
* **API Signing Key**\
A more advanced option for developers.\
It lets your backend system create short‑lived tokens automatically for the widget.\
This is better for production websites and logged‑in users.
You do not need to understand all the technical details to use the widget.\
In many cases, your web developer will take the information from this tab and add the widget to your website.
***
## Direct JWT Token (simple option)
Use **Direct JWT Token** when you:
* Want to try the widget quickly on a test site or landing page
* Do not yet have a developer integration
* Are comfortable copying and pasting a value into your website settings
On this tab you can:
1. See which **agent** the widget will use.\
The widget is always tied to the current agent you are editing.
2. Choose a **Token Expiry** (how long the widget token will stay valid).\
Examples: 30 minutes, 1 hour, 3 hours, 6 hours, or Never expire.
3. Click **Generate Widget Token** to create a token.
4. Copy the value shown under **Your Widget Token**.\
The page also explains that this value will be used with the website snippet.
What to do with it:
* Give this token to your web developer and ask them to “use this as the widget token” for your site.
* Or, if you manage the website yourself, follow the instructions next to the token in the UI (and the “Show equivalent code” option, if available).
> **Note**\
> Tokens that “never expire” are convenient for tests, but less secure.\
> For important production websites, prefer shorter expiry times or the API Signing Key approach.
***
## API Signing Key (advanced, for developers)
If you have a developer or an engineering team, they will likely prefer **API Signing Keys**.
On the **API Signing Key** tab you can:
1. Click **Generate API Signing Key**.\
Fluents.ai shows you a new key once.
2. Copy this key and store it in a safe place (for example, a secrets manager).\
For security reasons, Fluents.ai cannot show the full key again later.
3. See a table of your existing keys, with:
* When each key was created
* A Key ID
* A **Remove** action to delete a key you no longer want to use
What your developer will do with it:
* Use this key on your **server**, not in the browser.
* Have your server create short‑lived access tokens for the widget whenever a user visits your site or logs in.
* Pass those tokens to the website snippet that loads the widget.
You can simply tell your developer:
> “Go to the agent’s Widget Integration tab, open API Signing Key, generate a key, and use it to create tokens for the Fluents widget on our website. You can click ‘Show equivalent code’ in the app for examples.”
***
## What you or your developer does next
After you have either:
* A **Widget Token** from the Direct JWT Token tab, or
* An **API Signing Key** for your developer,
the remaining steps are:
1. **Copy the embed snippet**\
On the Widget Integration tab, look for the embed or installation instructions\
(for example, under “Widget Installation” or “Show equivalent code”).
2. **Give it to your web developer**\
Ask them to:
* Add the snippet to the pages where you want the widget to appear.
* Insert the widget token where the instructions indicate.
3. **Publish or deploy your website**\
Once the changes are live, the widget should appear and connect to your Fluents agent.
If you manage your own website and are comfortable editing HTML or scripts, you can follow the exact instructions shown beside the snippet in the dashboard. Those instructions are always the most up‑to‑date.
***
## Testing the widget from the dashboard
Before or after adding the widget to your website, you can test the agent itself from inside Fluents.ai:
1. Go to **Agents**.
2. Select your agent.
3. In the right‑hand panel (or main area, depending on your layout), use **Test Call Agent** to start a test call.
4. Confirm the agent behaves as you expect:
* Answers with the right greeting
* Understands the questions you care about
* Follows your configured flows and post‑call actions
If the agent works correctly here but not on your website, the issue is usually with how the website snippet or token was added. In that case, ask your developer to double‑check the installation instructions in the Widget Integration tab.
***
## Common questions
**Does the widget require a phone number?**\
No. The widget connects directly to your agent over the web. The visitor can speak to the agent through their browser.
**Can each agent have its own widget?**\
Yes. The settings on the Widget Integration tab apply only to the agent you are editing. You can enable widgets on multiple agents if you want different experiences on different websites or pages.
**Who should use API Signing Keys?**\
Teams with developers who want more control and better security in production. The signing key allows your backend to create short‑lived tokens and to tie widget usage to logged‑in users or plans.
***
## Where to go next
* Configure what your agent says and does in the\
**[Agent Feature Guide](/product/features/agent)**.
* Learn how to react to widget calls and events in your own systems using\
**[Webhooks](/product/features/webhook)**.
* Manage workspace‑wide keys and settings in\
**[Get API Key](/product/features/account/get-api-key)** and\
**[Settings](/product/features/account/settings)**.
# ActiveCampaign
Source: https://docs.fluents.ai/product/integrations/active-campaign
Integrate Fluents Voice AI with ActiveCampaign to automate calls, log conversations, and manage contacts directly from your workflows.
# ActiveCampaign Integration
This guide walks you through setting up the Fluents integration with ActiveCampaign.\
Once connected, you can trigger AI-powered calls from your workflows and log conversation details back to ActiveCampaign contacts.
***
## Prerequisites
Before you begin, make sure you have:
* A Fluents account. If you don’t have one, [sign up here](https://platform.fluents.ai/signup).
* Your Fluents API key. Follow our guide: [How to Get Your API Key](https://docs.fluents.ai/product/how-to/get-api-key).
After creating your account, you’ll see a pre-created Agent called **“My First Agent.”**\
You can use this Agent as-is or modify it for ActiveCampaign.
***
## Outbound Calls via ActiveCampaign Workflows
### 1. Add the Fluents Action to a Workflow
In the ActiveCampaign workflow designer, click the **+** icon to add a new action.\
Search for **Fluents** and select it.
***
### 2. Connect to Fluents
Paste your Fluents API key (from the prerequisites step) into the API key field to connect your account.
***
### 3. Configure the AI Agent
After connecting, configure the following fields (auto-populated from your account):
* **Agent to make call with** — Choose which Agent to use. “My First Agent” will be pre-selected if it’s your first time.
* **Number to make call using** — Fluents provides a phone number during account creation. This number will be used for outbound calls.
* **Behavior on VM detection** — Define how the Agent handles voicemail: hang up immediately or leave a pre-recorded message.
***
### 4. Map ActiveCampaign Fields to Fluents Variables
Fluents supports custom variables like `{first_name}` or `{company_name}` to personalize conversations.\
Here’s an example of a Prompt using variables:
Now map ActiveCampaign contact fields to these Fluents variables.
A valid **phone number** is required. Ensure the ActiveCampaign contact object includes one and is mapped correctly.
Once mapping is complete, click **Finish**.\
You can now add a trigger (e.g., form submission) and continue building your workflow with follow-up actions after the call.
***
### 5. Viewing Call Results
When a call finishes, Fluents automatically logs:
* The **full transcript**
* A **summary of the conversation**
Both are stored in the contact’s notes field in ActiveCampaign.
You can also review call logs directly within Fluents and see them linked to the ActiveCampaign contact.
***
## Inbound Calls + ActiveCampaign
You can also log inbound calls into ActiveCampaign by configuring a **Post-Call Action** in Fluents.
### Configure Post-Call Actions in Fluents
The post-call prompt instructs the AI how to summarize the conversation.\
That summary, along with the transcript, is then logged in the contact’s notes in ActiveCampaign.
With this setup, both inbound and outbound calls are captured in ActiveCampaign, providing a complete history of customer interactions.
# Avochato
Source: https://docs.fluents.ai/product/integrations/avochato
Placeholder guide for the Avochato integration with Fluents.ai.
⚠️ This page is under construction. The integration is already live, and you can use it today. Full documentation will be added soon — stay tuned!
# Avochato Integration (Placeholder)
The Fluents.ai + Avochato integration combines AI-powered voice automation with Avochato’s SMS, voice, and email platform. This makes it easier to manage inbound and outbound customer communications at scale while maintaining compliance.
With this integration, you can:
* Automate customer feedback collection and follow-ups via AI calls.
* Update customer records dynamically based on real-time interactions.
* Ensure compliance with consent tracking and DNC management.
This partnership streamlines campaigns across channels, giving businesses a smarter way to engage customers. A full setup guide will be published here soon.
# Cal.com
Source: https://docs.fluents.ai/product/integrations/cal-com
Placeholder guide for the Cal.com integration with Fluents.ai.
⚠️ This page is under construction. The integration is already live, and you can use it today. Full documentation will be added soon — stay tuned!
# Cal.com Integration (Placeholder)
The Fluents.ai + Cal.com integration brings AI voice automation into scheduling. By combining Fluents voice agents with Cal.com’s calendar management, you can automate appointment booking, confirmations, and rescheduling through natural voice conversations.
With this integration, you can:
* Handle bookings and reschedules automatically via AI voice agents.
* Send reminders and follow-ups by voice, SMS, or email.
* Ensure compliance with consent tracking and audit trails.
This integration makes scheduling more efficient and scalable, while still giving your team the flexibility to focus on higher-value work. A full setup guide will be available here soon.
# Go highlevel
Source: https://docs.fluents.ai/product/integrations/go-highlevel
# Google Workspace
Source: https://docs.fluents.ai/product/integrations/google-workspace
Placeholder guide for the Google Workspace integration with Fluents.ai.
⚠️ This page is under construction. The integration is already live, and you can use it today. Full documentation will be added soon — stay tuned!
# Google Workspace Integration (Placeholder)
The Fluents.ai + Google Workspace integration enhances productivity by bringing AI-powered voice automation into Gmail, Calendar, and other Workspace apps. This allows you to manage email, schedule meetings, and coordinate tasks using natural voice interactions.
With this integration, you can:
* Automate email responses, sorting, and follow-ups in Gmail.
* Schedule and reschedule calendar events with voice-driven automation.
* Convert conversations into tasks, notes, or updates across Workspace tools.
This integration makes Google Workspace more interactive and efficient, while ensuring compliance and audit tracking. A full step-by-step guide will be published here soon.
# HubSpot
Source: https://docs.fluents.ai/product/integrations/hubspot
Placeholder guide for the HubSpot integration with Fluents.ai.
⚠️ This page is under construction. The integration is already live, and you can use it today. Full documentation will be added soon — stay tuned!
# HubSpot Integration (Placeholder)
The Fluents.ai + HubSpot integration enhances your CRM by adding AI-powered voice automation to marketing, sales, and service workflows. This makes it easier to qualify leads, schedule meetings, and follow up automatically through natural voice interactions.
With this integration, you can:
* Automate lead qualification and tag contacts directly in HubSpot.
* Schedule and manage meetings with AI-driven voice agents.
* Ensure compliance with built-in consent tracking and DNC management.
This integration turns HubSpot into a voice-enabled CRM powerhouse, helping teams scale outreach and stay compliant. A full setup guide will be published here soon.
# Keragon
Source: https://docs.fluents.ai/product/integrations/keragon
Trigger AI-powered outbound calls directly from Keragon healthcare automation workflows using the Fluents connector.
# Keragon Integration
The **Fluents connector for Keragon** lets you trigger outbound AI voice calls from any Keragon workflow. Use it to automate patient outreach, appointment reminders, follow-ups, and any other scenario where a natural-sounding AI voice agent can handle the conversation automatically.
***
## Prerequisites
* A [Keragon](https://www.keragon.com) account
* A [Fluents.ai](https://fluents.ai) account with at least one AI agent and one phone number configured
* Your **Fluents API key** — found in your Fluents dashboard under **Settings → API Keys**
***
## Installation & Authentication
### 1. Add the Fluents app in Keragon
Inside your Keragon workflow, click **Add app** and search for **Fluents**.
### 2. Authenticate
When prompted, select **API Key** as the authentication method and paste your Fluents API key.
Your API key is stored securely by Keragon and sent as a `Bearer` token on every request to the Fluents API.
### 3. Choose an action
The Fluents connector exposes three actions you can use inside any Keragon step:
| Action | Description |
| --------------- | ----------------------------------------------------------- |
| **Start call** | Trigger an outbound AI voice call to a phone number |
| **Get agents** | Retrieve all AI agents from your Fluents account |
| **Get numbers** | Retrieve all active phone numbers from your Fluents account |
***
## Actions
### Start Call
Triggers an outbound AI voice call. This is the primary action you'll use in your workflows — for example, to call a patient after a form submission or a CRM update.
#### Inputs
| Field | Required | Description |
| ----------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **To number** | ✅ | The phone number to call, in E.164 format (e.g. `+14155552671`) |
| **From number** | ✅ | The Fluents number to call from, in E.164 format. Populated automatically from your account's numbers |
| **Agent** | ✅ | The AI agent to handle the call. Shown as `Agent Name (ID)` and populated from your Fluents account |
| **Context** | — | Key-value pairs injected into the agent's prompt (e.g. `first_name`, `appointment_date`). Use these to personalise the conversation with patient or customer data from your workflow |
| **On no human answer** | — | What to do if no human picks up: `continue` (leave a voicemail / keep trying) or `hangup`. Defaults to `continue` |
| **Run do not call detection** | — | Check the callee against your Fluents DNC list before dialling. Defaults to `true` |
| **HIPAA compliant** | — | Flag the call as requiring HIPAA-compliant handling. Defaults to `false` |
| **Human detection result** | — | Override the human detection result (advanced use). Defaults to `human` |
| **Do not call result** | — | Override the DNC result (advanced use). Defaults to `false` |
Use **Context** to pass any patient or customer data from your Keragon workflow directly into the AI agent's script — for example, `{{ first_name }}`, `{{ appointment_time }}`, or `{{ provider_name }}`. The agent can reference these variables naturally during the call.
#### Outputs
The action returns the full call object created by Fluents. Key output fields you can use in downstream Keragon steps:
| Field | Description |
| -------------------------- | --------------------------------------------------------------------------- |
| **Call ID** | Unique identifier for the call — use this to look up the call later |
| **Status** | Current call status (e.g. `in_progress`, `completed`) |
| **Stage** | Lifecycle stage of the call (e.g. `created`) |
| **Stage outcome** | Result of the call (e.g. `human_answered`, `human_unanswered`, `voicemail`) |
| **Transcript** | Full text transcript of the conversation |
| **Recording available** | Whether a recording can be retrieved |
| **To number** | The number that was called |
| **From number** | The number the call was placed from |
| **Start time** | ISO 8601 timestamp of when the call started |
| **End time** | ISO 8601 timestamp of when the call ended |
| **Human detection result** | Whether a human answered (`human` or other) |
| **Do not call result** | Whether the number was on the DNC list |
| **HIPAA compliant** | Whether HIPAA-compliant mode was active |
| **Errors** | List of any errors that occurred |
The **Start call** action returns as soon as the call is created — it does not wait for the call to finish. To react to the outcome (e.g. transcript, stage outcome), use a **Fluents webhook** to trigger a separate Keragon workflow when the call completes.
***
### Get Agents
Retrieves all AI agents configured in your Fluents account. This action is used automatically by **Start call** to populate the **Agent** dropdown — you generally won't need to use it directly unless you're building a custom lookup step.
#### Inputs
| Field | Default | Description |
| -------------- | ------------ | --------------------------------------------------------------- |
| **Sort by** | `created_at` | Field to sort results by: `created_at`, `updated_at`, or `name` |
| **Sort order** | `desc` | Sort direction: `asc` or `desc` |
#### Outputs
Returns an array of agent objects. Each item includes the agent's ID, name, label, and configuration.
***
### Get Numbers
Retrieves all active phone numbers in your Fluents account. Used automatically by **Start call** to populate the **From number** dropdown.
#### Inputs
| Field | Default | Description |
| -------------- | ------------ | ----------------------------------------------------------------- |
| **Sort by** | `created_at` | Field to sort results by: `created_at`, `updated_at`, or `number` |
| **Sort order** | `desc` | Sort direction: `asc` or `desc` |
#### Outputs
Returns an array of number objects. Each item includes the phone number and the name of any inbound agent assigned to it.
***
## Example: Patient Appointment Reminder Workflow
A typical Keragon workflow using the Fluents connector looks like this:
1. **Trigger** — A new appointment record is created in your EHR or CRM
2. **Fluents: Start call** — Call the patient using your appointment-reminder agent, passing `first_name`, `appointment_date`, and `provider_name` as context
3. **Condition** — Branch on `stage_outcome`:
* `human_answered` → mark the appointment as confirmed
* `human_unanswered` or `voicemail` → schedule a follow-up call for the next day
Combine the **Start call** output's `Call ID` with a Fluents webhook to retrieve the full transcript after the call ends and store it back in your CRM or EHR.
***
## HIPAA Compliance
The Fluents connector supports HIPAA-compliant call handling out of the box. Enable the **HIPAA compliant** flag on the **Start call** action to ensure the call is routed and stored in compliance with healthcare data regulations.
Your Fluents account must be configured for HIPAA compliance. Contact [support@fluents.ai](mailto:support@fluents.ai) to enable this on your account.
***
## Do Not Call Detection
The connector automatically checks the callee's phone number against your Fluents DNC list before placing the call (enabled by default). If a number is on the list, the call will not be placed and `do_not_call_result` will be `true` in the output.
To manage your DNC list, go to your [Fluents dashboard](https://platform.fluents.ai).
# Krisp
Source: https://docs.fluents.ai/product/integrations/krisp
Placeholder guide for the Krisp integration with Fluents.ai.
⚠️ This page is under construction. The integration is already live, and you can start using it today. Full setup documentation will be added soon — stay tuned!
# Krisp Integration (Placeholder)
The Fluents.ai + Krisp integration combines AI-powered call automation with Krisp’s industry-leading noise cancellation, ensuring every customer conversation is clear, efficient, and professional.
With this integration, you can:
* Deliver crystal-clear calls by removing background noise automatically.
* Automate follow-ups and scheduling with Fluents voice agents.
* Ensure compliance and maintain detailed records of every interaction.
This integration is ideal for remote teams, support centers, and sales organizations that need both clarity and automation at scale. A complete guide will be published here soon.
# Make com
Source: https://docs.fluents.ai/product/integrations/make-com
# Monday.com
Source: https://docs.fluents.ai/product/integrations/monday-com
Placeholder guide for the Monday.com integration with Fluents.ai.
⚠️ This page is under construction. The integration is already live, and you can use it today. Full documentation will be added soon — stay tuned!
# Monday.com Integration (Placeholder)
The Fluents.ai + Monday.com integration helps teams manage projects and workflows more effectively by adding AI-powered voice automation. With Fluents, you can streamline updates, assign tasks, and keep projects moving forward through natural conversations.
With this integration, you can:
* Automate task updates and status changes using AI voice interactions.
* Send reminders and follow-ups across voice, SMS, or email.
* Maintain compliance with logged interactions and audit trails.
This integration makes project tracking more seamless and collaborative. A full setup guide will be published here soon.
# Outlook
Source: https://docs.fluents.ai/product/integrations/outlook
Placeholder guide for the Outlook integration with Fluents.ai.
⚠️ This page is under construction. The integration is already live, and you can start using it today. Full setup documentation will be added soon — stay tuned!
# Outlook Integration (Placeholder)
The Fluents.ai + Outlook integration enhances your workflows by combining AI-driven voice automation with Outlook’s powerful email, calendar, and task management features.
With this integration, you can:
* Automate meeting scheduling and reminders directly through Outlook calendars.
* Compose, send, and organize emails using AI-driven voice interactions.
* Maintain compliance with consent tracking and secure record-keeping.
This integration empowers teams to streamline communication and scheduling at scale while ensuring productivity, clarity, and compliance.
# Salesforce
Source: https://docs.fluents.ai/product/integrations/salesforce
Placeholder guide for the Salesforce integration with Fluents.ai.
⚠️ This page is under construction. The integration is already live, and you can start using it today. Full setup documentation will be added soon — stay tuned!
# Salesforce Integration (Placeholder)
The Fluents.ai + Salesforce integration combines AI-driven voice automation with the world’s leading CRM, helping you streamline customer engagement and sales operations.
With this integration, you can:
* Automate outbound and inbound calls directly inside Salesforce workflows.
* Sync transcripts, notes, and call outcomes in real time.
* Ensure compliance with built-in consent tracking and DNC list management.
This integration empowers teams to qualify leads, manage follow-ups, and scale campaigns seamlessly — all without leaving Salesforce.
# Telnyx
Source: https://docs.fluents.ai/product/integrations/telnyx
Placeholder guide for the Telnyx integration with Fluents.ai.
⚠️ This page is under construction. The integration is already live, and you can start using it today. Full setup documentation will be added soon — stay tuned!
# Telnyx Integration (Placeholder)
The Fluents.ai + Telnyx integration combines enterprise-grade telephony with AI-powered voice automation, giving you the tools to streamline call handling at scale.
With this integration, you can:
* Automate outbound and inbound calls using Telnyx numbers.
* Route, record, and log calls with built-in consent and compliance.
* Scale campaigns with reliable infrastructure and flat-rate pricing.
Together, Fluents and Telnyx empower teams to run compliant, high-volume communication workflows without the complexity of traditional telephony.
# TLDCRM
Source: https://docs.fluents.ai/product/integrations/tldcrm
Placeholder guide for the TLDCRM integration with Fluents.ai.
⚠️ This page is under construction. The integration is already live, and you can start using it today. Full setup documentation will be added soon — stay tuned!
# TLDCRM Integration (Placeholder)
Fluents.ai + TLDCRM brings AI-powered voice automation into the insurance industry’s go-to CRM. With this integration, brokers and agencies can streamline lead management, automate follow-ups, and keep every interaction compliant.
Key capabilities include:
* AI-driven lead qualification and customer follow-ups.
* Automatic call logging and consent tracking for compliance.
* Scalable campaigns that handle thousands of calls with ease.
Together, Fluents and TLDCRM give insurance teams the power to close more deals, automate repetitive workflows, and maintain full regulatory compliance.
# Twilio
Source: https://docs.fluents.ai/product/integrations/twilio
Placeholder guide for the Twilio integration with Fluents.ai.
⚠️ This page is under construction. The integration is already live, and you can start using it today. Full setup documentation will be added soon — stay tuned!
# Twilio Integration (Placeholder)
Fluents.ai + Twilio transforms call orchestration with AI-powered voice automation. Together, they bring reliability, compliance, and scalability to telephony operations.
Key capabilities include:
* AI-driven orchestration for inbound and outbound calls.
* Built-in consent tracking and DNC compliance.
* Scalable, enterprise-grade infrastructure with predictable costs.
This integration allows teams to automate customer interactions, improve follow-ups, and streamline communications — all while maintaining compliance and leveraging Twilio’s global connectivity.
# Zendesk
Source: https://docs.fluents.ai/product/integrations/zendesk
Bring AI-powered voice calling directly into your Zendesk support workflow with the Fluents.ai app.
# Zendesk Integration
The **Fluents.ai Zendesk App** embeds your Fluents voice AI agents directly inside Zendesk. Support teams get a unified view of every AI-handled call, can create tickets in one click, and can trigger outbound AI calls without leaving the ticket.
***
## Prerequisites
* A **Zendesk** account (Suite Team or above)
* A **Fluents.ai** account with at least one agent and one phone number configured
* Your **Fluents API key** — found in your Fluents dashboard under **Settings → API Keys**
***
## Installation
### 1. Download the app
Download the latest `fluents-zendesk-app.zip` from the [Fluents GitHub repository](https://github.com/Fluentsai/integration-partner).
### 2. Open Zendesk Admin
Go to **Admin Center → Apps and integrations → Apps → Zendesk Support Apps**.
### 3. Upload the app
Click **Upload private app**, select the `.zip` file, and click **Upload**.
### 4. Enter your API key
During installation, paste your **Fluents API Key** into the `Fluents API Key` field.
The API key is stored securely via Zendesk's encrypted app settings — it is never exposed to the browser.
### 5. Enable the app
Click **Install**. The app will appear in the Zendesk top navigation bar and in the ticket sidebar.
Once installed, the app is available in two places:
| Location | Purpose |
| ---------------------- | ------------------------------------------------ |
| **Nav bar (main app)** | Full call list, analytics, and transcript viewer |
| **Ticket sidebar** | Click-to-call and requester call history |
No additional configuration is required. The app automatically loads your Fluents agents and phone numbers and fetches your most recent calls.
If you rotate your Fluents API key, re-install the app with the new key via **Admin Center → Apps → Fluents.ai → Settings**.
***
## Call List & Filters
The **Call List** is the main view of the app. It shows your most recent 200 calls, paginated 10 per page, with a filter bar at the top.
### Filter bar
| Control | Description |
| --------------------------------- | ------------------------------------------------ |
| **Agent dropdown** | Filter calls by a specific Fluents AI agent |
| **From date** | Start of the date range (inclusive, from 00:00) |
| **To date** | End of the date range (inclusive, through 23:59) |
| **Today / Yesterday / This week** | Quick date shortcuts |
| **Clear** | Resets all filters and reloads |
Filters apply **automatically on change** — changing the agent or date fields immediately reloads the list with no extra button click.
### Call row
Each call in the list displays:
| Field | Description |
| ---------------------- | ------------------------------------------------------------------------------ |
| **Outcome badge** | Color-coded outcome (green = human-answered, purple = bot/no-answer) |
| **Agent name** | The Fluents AI agent that handled the call |
| **Phone numbers** | Caller and called numbers |
| **Date / time** | When the call started |
| **Duration** | Length of the call |
| **Ticket link** | If a ticket was created, shows the Zendesk ticket number with a clickable link |
| **Create ticket icon** | One-click ticket creation (greyed out once a ticket exists) |
**Clicking any row opens the full conversation transcript directly within Zendesk.** The transcript panel shows the complete iMessage-style dialogue between the AI agent and the customer, along with the call outcome, phone numbers, and duration. From there, you can review the conversation and create a Zendesk ticket in one click — without ever leaving your Zendesk workspace.
### Ticket references
When you create a ticket from a call, the ticket number is saved in **browser local storage** keyed to the call ID. This means:
* The ticket reference **persists across page reloads**
* The create-ticket icon becomes **greyed out** to prevent accidentally creating duplicate tickets
* Each browser/device maintains its own references independently
Ticket references are stored locally in the browser. Clearing browser data will remove them. For a fully shared persistent reference, consider using a custom Zendesk ticket field mapped to the call ID.
***
## Transcript Viewer
Clicking any call row opens the **Transcript Modal** — a full-screen overlay with the call conversation rendered as a chat.
### Header
| Element | Description |
| ----------------- | -------------------------------------------------- |
| **Agent avatar** | Auto-generated initial avatar in the agent's color |
| **Agent name** | The Fluents AI agent that handled the call |
| **Outcome badge** | Color-coded outcome label |
| **Phone chips** | Caller number and called number |
### Chat bubbles
The conversation is displayed as iMessage-style chat bubbles:
| Speaker | Style |
| ------------ | -------------------------------- |
| **AI Agent** | Light gray pill, left-aligned |
| **Human** | Fluents blue pill, right-aligned |
Timestamps embedded in the transcript are automatically stripped and displayed as faded captions below each message.
### Create Ticket from transcript
The modal footer has a **Create Ticket** button that creates a Zendesk ticket pre-populated with:
* **Subject**: `AI Call – {agent name} – {date}`
* **Tags**: `fluents-ai`, `ai-call`, and the call outcome
* **Internal note**: Full call transcript and a link to the call
Once a ticket is created the button is replaced with a clickable **ticket number link**.
You can only create one ticket per call per browser. The create button is permanently disabled for that call once a ticket has been created.
***
## Call Analytics
The **Analytics Panel** sits above the call list and loads automatically when the app opens.
### Outcome distribution
A horizontal bar chart shows the count of each call outcome across your most recent 200 calls:
| Outcome group | Color |
| ------------------------------------------------------ | ------------------- |
| `human_answered`, `completed`, `appointment_booked` | 🟢 Shades of green |
| `bot_disconnected`, `no_answer`, `voicemail`, `failed` | 🟣 Shades of purple |
Summary stat cards show: **total calls loaded**, **average call duration**, and the **number of distinct outcome types**.
### Call Insights
Below the outcome chart, the app samples the **30 most recent calls** and aggregates every `call_insights` field. Each insight key is rendered as its own bar group showing the value distribution. The panel adapts dynamically to your account's insight schema with no hardcoding.
Insights are sampled from the 30 most recent calls to keep the panel responsive. Analytics load once at app startup — reload the app to refresh.
***
## Click-to-Call Sidebar
The **Sidebar** appears in the right-hand panel of any Zendesk ticket. It lets agents start an outbound AI call and view the ticket requester's recent call history.
### Starting a call
Select an **agent** and **phone number**, then click **Start AI Call**.
| Field | Description |
| --------------- | ------------------------------------------------------------- |
| **Agent** | Which Fluents AI agent will handle the call |
| **From number** | The Fluents number the call will originate from |
| **To number** | Pre-filled from the ticket requester's phone field (editable) |
The sidebar auto-selects the first available agent and number when it loads — in most cases the agent just needs to verify the fields and click **Start AI Call**.
When a call is initiated from the sidebar, the ticket is automatically tagged with `fluents-ai` and `outbound-ai-call`.
### Requester call history
Below the call form, the sidebar shows the **last 5 Fluents calls** associated with the ticket requester's phone number, including:
* Call outcome badge
* Date, time, and duration
* Transcript preview (click to expand inline)
This gives agents full context on previous AI interactions before they intervene or initiate a new call.
***
## Auto-Ticket Creation
The **Auto-Ticket** feature polls your Fluents account every 60 seconds and automatically creates a Zendesk ticket for any recently completed call that doesn't already have one.
### Enabling auto-tickets
Toggle the **Auto-tickets** switch in the call list filter bar. The toggle state is saved in browser local storage and survives page reloads.
When enabled:
1. The app polls for new calls every 60 seconds
2. Any call completed in the last 5 minutes without a local ticket reference is processed
3. A Zendesk ticket is created automatically
4. The ticket reference is saved so the same call is never processed twice
### Ticket contents
| Field | Value |
| ----------------- | ------------------------------------ |
| **Subject** | `AI Call – {agent name} – {date}` |
| **Status** | New |
| **Tags** | `fluents-ai`, `ai-call`, `{outcome}` |
| **Internal note** | Full transcript (if available) |
If multiple agents use the app from different browsers, each browser tracks its own ticket references independently. Use a shared Zendesk view filtered by the `fluents-ai` tag to avoid duplicate processing.
***
## Live Call Badge
The **Live Call Badge** is a pulsing animated indicator in the top-right of the app header.
| State | Display |
| --------------- | --------------------------------------------- |
| No active calls | Badge is hidden |
| 1+ active calls | Pulsing green dot + call count + "Live" label |
The badge polls your Fluents account every **30 seconds** and updates automatically. A call is considered live if its status from the Fluents API is `in_progress`. This helps supervisors and team leads see at a glance that the AI is active.
# Set Up Your First Campaign
Source: https://docs.fluents.ai/product/quickstart/first-campaign
Launch a simple outbound calling campaign using your outbound agent and a small CSV list of contacts.
# Set Up Your First Campaign
This quickstart shows how to launch a **simple outbound campaign**:
* You’ll call a small CSV list (2 contacts) with your **outbound agent**.
* Each contact will receive **one phone call**.
* Calls go out during normal business hours in **Pacific Time**.
* You’ll see where to assign numbers, import contacts, and start the campaign.
> This guide assumes you’ve already created an outbound agent using\
> **[Create Your First Outbound Agent](/product/quickstart/first-outbound-agent)**.
***
## What You’ll Do
* Prepare a **2-contact CSV** file for testing
* Create a **new campaign** in the Campaigns wizard
* Configure a simple **contact window** (weekdays, business hours)
* Build a **single phone step** using your outbound agent
* Assign a **caller number** and import the CSV contacts
* Start the campaign and see where to monitor results
For a deeper explanation of campaign concepts and all options, see the\
**[Campaigns Feature Guide](/product/features/campaigns)**.
***
## Video walkthrough: Set up your first campaign
***
## Best practices (recommended)
### 1. Register your business (recommended before production)
Before running production outbound volume, please complete our business registration form and include the phone numbers you plan to use:
* [Click here to register your business](https://docs.google.com/forms/d/e/1FAIpQLScUFbvH6BGrPhVvGCwcbuRBMrxfmvPImH9e0SwMM6nhJycdkA/viewform)
We use this information to provision your outbound calling setup with our telephony partners and make sure your current and future numbers are configured for the best deliverability.
### 2. Don’t overload a single number
As a general guideline, we recommend **no more than \~100 calls per day per number**.
If you need more volume, add additional numbers and distribute traffic across them.
### 3. Want help setting this up?
If you’d like guidance on campaign setup, deliverability, or dialing strategy, you can schedule time with our team:
* Schedule a call: [https://calendar.app.google/bTZ34YmEB1wvjNSw5](https://calendar.app.google/bTZ34YmEB1wvjNSw5)
***
## 1. Prepare a tiny CSV file
Create a CSV file on your computer called `first-campaign-test.csv` with 2 contacts.
It needs at least these columns:
* `to_number` — the phone number the campaign will call
* `first_name` — used as `{first_name}` in your agent prompt and messages
Example CSV content:
```CSV theme={null}
to_number,first_name
+15551230001,Alice
+15551230002,Bob
```
You can adjust the numbers to your own test phones if needed. The important part is to have:
* A column with phone numbers
* A column with first names
***
## 2. Create a new campaign
1. In the left sidebar, go to **Campaigns**.
2. Click **New Campaign**.
3. In the **Create campaign** dialog:
* Enter a **Campaign name**, for example: `Test – First Outbound Campaign`.
* (Optional) Add a **Campaign description**, such as `2-contact test with Outbound Demo Assistant`.
4. Click **Create**.
You’ll enter the campaign wizard, where you’ll configure:
* Contact window
* Outreach flow (steps)
* Numbers and exit settings
* Contacts (CSV or CRM)
* Start and monitoring
You can keep the campaign in **Draft** until you’re ready to start it.
***
## 3. Set a simple contact window
In the wizard, go to the **Contact window** section.
1. Under **Weekly Contact Window**:
* Select weekdays only (e.g., Monday–Friday).
* Set a time range such as **9:00 AM – 5:00 PM**.
2. Under **Timezone**:
* Set the primary timezone to **Pacific Time** (or your business timezone).
* Leave fallback behavior at the default for this simple test.
3. Leave **Date Overrides** empty for this quickstart (no blackout dates).
This ensures calls from this campaign only happen during normal business hours.
***
## 4. Build a simple outreach flow
Next, open the **Build your outreach flow** step.
1. For **Step 1**:
* Make sure the step type is **Phone call**.
* Choose your outbound agent from the **Agent** dropdown (for example, `Outbound Demo Assistant`).
2. Under **When to place call**:
* Select **At the earliest eligible time**.
3. For this first campaign, do not add additional steps:
* Keep it as a **single phone call** per contact.
You now have a one-step call flow: each contact gets one outbound call during the allowed window.
***
## 5. Assign a caller number
Go to **Configure your settings**.
1. Under **Outbound Configurations** (or the phone call settings area):
* Choose **Select from numbers**.
* Pick **one number** you want this campaign to use as the caller ID.
You can change this later or add more numbers as your usage grows.
***
## 6. Import contacts from CSV
In the wizard, go to **Add your contacts**.
1. Choose **Upload CSV**.
2. Select the `first-campaign-test.csv` file you created.
3. On the upload screen:
* Confirm that **Data has headers** is checked.
4. In the mapping step:
* Map `to_number` to the **phone / destination number** field.
* Map `first_name` to the **first\_name** context field (or equivalent).
5. Click **Import**.
You should see that **2 contacts** have been added to the campaign.
Mapped fields (like `first_name`) will be available to your outbound agent, so it can greet contacts (e.g., “Hi Alice”).
***
## 7. Start the campaign
When your contact window, outreach flow, numbers, and contacts all look good:
1. Go to the campaign’s **Overview** page.
2. Review the key details:
* Name and description
* Contact window
* One phone step using your outbound agent
* Assigned number
* 2 contacts imported
3. Click **Start** (or **Schedule Start** if you prefer to start later).
Once started:
* The status will change from **Draft** to **Active**.
* The system will begin placing calls to the contacts, respecting:
* The contact window, and
* Your scheduling setting (earliest eligible time).
***
## 8. Monitor and pause
After starting the campaign:
* On the **Overview** page you’ll see high-level stats (for example: queued, active, exited).
* You can **Pause** the campaign at any time to stop new calls going out.
To inspect individual calls:
1. Go to **Calls** or **Call history** in the sidebar.
2. Filter by campaign, date range, and status.
3. Click into a call to:
* See the outcome,
* Listen to the recording (if enabled),
* View any post-call analysis or actions.
***
## Where to go next
Now that you’ve launched a simple test campaign:
* Expand your understanding of campaigns in the\
**[Campaigns Feature Guide](/product/features/campaigns)**.
* Refine your outbound agent using:
* **[Create Your First Outbound Agent](/product/quickstart/first-outbound-agent)**
* **[Agents – Basic Settings](/product/concepts/agent/basic)**
* **[Agents – Advanced Settings](/product/concepts/agent/advanced)**
* **[Agents – Post‑Call Actions](/product/concepts/agent/post-call)**
* Explore how numbers and providers affect outbound caller IDs:
* **[Numbers Feature Guide](/product/features/numbers)**
* **[Providers](/product/features/providers)**
As you gain confidence, you can:
* Increase CSV list size
* Add more steps (second call, SMS/email follow-up)
* Build richer campaigns that automate your outbound workflows
# Create Your First Inbound Agent
Source: https://docs.fluents.ai/product/quickstart/first-inbound-agent
Example: create a simple inbound agent for an insurance & surety agency, add a working prompt, enable call routing, assign a number, and test it.
This guide walks through a **concrete example** of an inbound agent:
* The agent acts as a receptionist for an **insurance & surety / bond agency**.
* It understands why the caller is calling, collects contact details, and either:
* Takes a message for a callback, or
* Transfers the caller to a live representative using **Call Routing**.
You can adapt the same steps and prompt structure to your own business.
> This is an example configuration, not a required template.\
> Feel free to simplify or change it as you get comfortable with agents.
***
## 1. Create a new agent
1. In the left sidebar, go to **Agents**.
2. Click **Create Agent**.
3. On the **Basic Information** tab:
* Give the agent a clear **Name**, for example:\
`After-Hours Insurance & Bond Receptionist`.
* Choose a **Voice** that fits your brand.
* Leave other fields as default for now; we’ll fill them in next.
There is no separate “inbound agent” type.\
An agent becomes inbound when you assign a **phone number** to it.
***
## 2. Set Initial and Voicemail messages
Still on the **Basic Information** tab, set:
### Initial Message
Example:
> Hi, thanks for calling . This is the virtual assistant. How can I help you today?
This is the first line the caller hears.
### Voicemail Message
Example:
> Hi, this is the virtual assistant from . Sorry we missed you. I’ll pass your details to the team so they can follow up as soon as possible.
You can adjust wording later; start simple so you can test quickly.
***
## 3. Paste the example prompt
In the **Agent Prompt** box, paste the following example prompt, then replace `{company_name}` with your real company name.
```text theme={null}
Utterance
Your responses will be spoken out loud through text‑to‑speech.
Sound like a real person on the phone.
- Use natural, conversational language.
- It is okay to occasionally use light disfluencies such as “uh”, “um”, “wait, let me rephrase that”, or slight self‑corrections, but:
- Do not use more than one disfluency in a single response.
- Do not use fillers during serious, sensitive, or data‑confirmation moments (like confirming names, phone numbers, emails, or policy details).
- Do not synthesize unpronounceable sounds (like “cough”) or obvious text markers (such as “asterisk”, “bracket”, or emojis).
Best practices
General speaking style:
- Speak clearly, calmly, and professionally, as if you are a trained human receptionist.
- Use short, simple sentences. Avoid long monologues and complex phrasing.
- Keep the conversation interactive: say a little, then listen; ask one question at a time.
- Avoid idioms, tongue‑twisters, or overly clever wording that may be hard to understand when spoken aloud.
- Do not repeat the exact same sentence pattern multiple times in a row; vary your phrasing slightly for a natural feel.
- Use humor or light comments only when it is safe and appropriate. Never use jokes or puns in stressful or sensitive situations (claims, billing problems, serious complaints).
Information collection:
- Ask for and confirm only one piece of information at a time (for example, first ask for the caller’s name, wait for the answer, then ask for their phone number, then their email).
- When something sounds unclear or incomplete, ask a short clarifying question instead of guessing.
- If the caller seems confused, rephrase the question more simply.
Phone numbers:
- When you read a phone number aloud, speak each digit separately, grouped naturally (for example: “eight one eight, nine six zero, three nine three one” for 818‑960‑3931).
- Do not say dashes, parentheses, or “plus”; just read the digits.
- Recognize common U.S. toll‑free prefixes (800, 888, 877, 866, 855, 844, 833). If the number is toll‑free, you may mention that it is toll‑free once when it is helpful.
- When you first collect a phone number, read it back once to confirm. If the caller corrects you, ask them to repeat the whole number and confirm again.
- Do not repeat phone numbers again later in the call after they have been confirmed.
Email addresses:
- When confirming an email address, read it in a natural, spoken way:
- Use words for common names or words before the “@” symbol.
- Spell out sequences of letters when needed and name special characters (for example, “underscore”, “dash”, “dot”).
- After “@”, say common domains and extensions as words when possible (for example, “gmail dot com”).
- If the email sounds like a placeholder or clearly invalid (for example “none”, “N/A”, or missing key parts), do not accept it. Politely ask the caller to spell a correct email address.
- Confirm the email once. Do not keep repeating it later unless you are correcting an obvious mistake.
Addresses, numbers, and times:
- For street addresses, read short numbers (up to four digits) as a whole number when natural (for example, “five thirty‑two Maple Avenue” for 532 Maple Avenue). For longer numeric strings, say each digit separately if that is clearer.
- When mentioning cities or locations, speak only the actual city or location name. Do not read out internal codes, abbreviations, or punctuation.
- For prices and quantities, use normal spoken forms (for example, “thirty‑five dollars”, “five hundred twenty people”, “one thousand two hundred”).
- For decimals and percentages, say “point” (for example, “three point one four”, “two point two percent”).
- For years, use natural spoken forms (for example, “twenty twenty‑four” for 2024).
- For clock times, say “AM” or “PM” naturally, and do not mention colons (for example, “eleven thirty A M”, “two P M”).
Clarity and safety:
- Never change proper names, policy numbers, phone numbers, or email addresses on your own. If you think you misheard, ask the caller to repeat or spell them.
- If automatic transcription seems slightly wrong but the meaning is clear, correct at most one or two obvious words; otherwise, ask the caller to clarify.
- If you still feel unsure after a correction, politely ask one more time, then move on without blaming the caller.
- Ground everything you say in information you have:
- What the caller has told you,
- The FAQ section in this prompt,
- Obvious, generic facts about insurance and surety that any agent would know.
- Never invent specific prices, coverage promises, or legal obligations. If you do not know the answer, say you are not sure and that a licensed agent from {company_name} will confirm the details.
- Stay polite and steady even if the caller is upset. Acknowledge their frustration and keep guiding the conversation toward collecting useful information.
Role
You are an inbound receptionist and after‑hours assistant for {company_name}, an insurance and surety / bond agency.
Your responsibilities:
- Answer calls politely and professionally, whether during the day or after hours.
- Understand why the caller is reaching out:
- New insurance or bond quotes,
- Questions about existing policies or bonds,
- Billing questions,
- Claims or urgent issues,
- General information.
- Ask a few simple clarifying questions so the human team can quickly understand the situation.
- Collect and confirm:
- The caller’s full name,
- The best phone number to reach them,
- Their email address.
- Capture a short spoken summary of their situation and any time sensitivity (for example, “needs a license bond before Friday” or “has an urgent claim question”).
- Decide whether to:
- Keep the call as an intake call, gather information, and promise a callback, or
- Transfer the caller to a live representative using the Call Routing system.
Transfer rule:
- If the caller clearly asks to speak with a real person right now (for example “Can I talk to a human?” or “Can I talk to someone on your team right now?”), and it sounds appropriate to transfer:
- Confirm what they want (“You’d like to speak with a live representative now, is that right?”).
- If they say yes, say exactly this phrase and then stop speaking so the system can transfer the call:
- “Let me connect you to a live representative now.”
- Do not modify this sentence. Use this exact wording whenever you intend to trigger a live transfer.
- If the caller does not ask to talk to someone live right now, or if no transfer is appropriate, stay in intake mode: collect information and promise a callback.
Transparency and boundaries:
- If the caller asks if you are a real person, you can say that you are an AI assistant that answers calls for {company_name} and helps the team respond faster.
- Do not pretend to be a licensed insurance producer, broker, or attorney.
- Do not give binding coverage guarantees, specific premium quotes, or legal advice.
- If the caller requests something you cannot safely provide (like detailed policy wording or legal interpretation), say you are not sure and that a licensed agent will review it and call them back.
FAQ
Use these FAQs as examples of how to answer common questions. Keep answers short and spoken‑style. If a caller asks something similar, you can adapt these answers. If you are not sure or the question is very specific, say that a licensed agent will confirm the details.
1. “Are you a real person or a bot?”
- “I’m an AI assistant that answers calls for {company_name}. I’m here to take down the details of what you need so a licensed agent can follow up with you.”
2. “What does {company_name} do?”
- “{company_name} helps people and businesses with insurance and surety bonds. That can include things like license and permit bonds, contractor and performance bonds, and some common insurance needs. A licensed agent can go over the exact products with you.”
3. “What are your business hours?”
- “Our main office hours are Monday through Friday, 9 AM to 5 PM Pacific Time. Outside of those hours I can still take your information and make sure someone follows up.”
4. “How can I reach support or talk to someone on the team?”
- “You can call this same number during our regular business hours to reach the team. If you prefer, I can take down your details now and have someone call or email you back as soon as they are available.”
5. “Can I talk to a human right now?”
- “If someone is available, I can connect you to a live representative. Before I transfer you, let me quickly confirm your name and the best number to reach you on, in case we get disconnected.”
Conversation flow
1. Opening:
- Greet the caller, introduce yourself as the virtual assistant for {company_name}, and ask how you can help today.
2. Understand the reason for the call:
- Ask what they are trying to accomplish.
- If their answer is vague, ask one or two short follow‑up questions such as:
- “Could you tell me a bit more about your situation?”
- “Is this about a new bond, an existing bond, or something else?”
- “Is there any deadline you are working toward?”
3. Decide: live transfer vs. intake:
- If the caller clearly says they want to speak to a live person right now:
- Confirm: “You’d like to talk to a live representative now, is that right?”
- If they say yes:
- Quickly confirm their name and best callback number.
- Then say exactly: “Let me connect you to a live representative now.” and stop speaking so Call Routing can transfer the call.
- Otherwise, stay in intake mode.
4. Intake details:
- Ask for their name.
- Ask for the best phone number to reach them and confirm the digits once.
- Ask for the best email address and confirm it once (or ask them to repeat if it sounds invalid).
- Optionally ask about deadlines or urgency.
5. Light bond/insurance context:
- If helpful, ask:
- “Is this about a license or permit bond, a contractor or performance bond, or another type of insurance or bond?”
- “Are you looking for something new, or do you have an existing policy or bond with a question?”
6. Handle simple FAQs:
- Answer simple, general questions using the FAQ section.
- For detailed or legal questions, say a licensed agent will review and call back.
7. Summarize:
- In one short sentence, repeat what you understood about their situation and timing.
8. Next steps and closing:
- Explain that a licensed agent from {company_name} will review everything and reach out, usually by the next business day.
- Encourage them to keep their phone nearby and to watch for a call or email.
- Thank them for calling and end the call politely.
General rules:
- Never use the transfer phrase “Let me connect you to a live representative now.” unless you truly intend to transfer the call.
- Never guess about coverage, pricing, or legal responsibilities. Capture the question and promise a follow‑up from a licensed agent when in doubt.
- Always prioritize being clear, calm, and helpful.
```
Save the agent after pasting and customizing the prompt. 4. Enable Call Routing for live transfers
## 4. Enable Call Routing for live transfers
Because this example prompt uses live transfers, enable and configure the **Call Routing** skill.
1. On the **Basic Information** tab, under **Choose Skills**, click **Call Routing**.
2. In the **Configure Call Routing** dialog, create at least one rule, for example:
* **When the**: `bot`
* **says**: `Let me connect you to a live representative now.`
* **Transfer to**: `Support`
* **at**: your support phone number (a valid US number)
3. Use the **exact same phrase** in both:
* The Call Routing rule, and
* The Agent Prompt.
For more details on routing options and behavior, see\
**[Call Routing (Skill)](/product/features/skills/call-routing)**.
***
## 5. Get a phone number
To make this agent available for inbound calls, you need a phone number.
If you don’t have one yet:
1. Go to **Numbers** in the left sidebar.
2. Click **New** or **Link Existing**.
3. Follow the steps to:
* Buy a new number (if supported), or
* Link an existing number from your telephony provider.
4. When creating or editing the number, select this agent as the **Inbound Agent**.
For more details on buying and linking numbers, see the\
**[Numbers Feature Guide](/product/features/numbers)**.
***
## 6. Assign an existing number to the agent
If you already have numbers in your account, you can attach one to this agent:
* Either:
* From **Numbers**, edit a number and choose this agent as the **Inbound Agent**, or
* From the right side of the agent page, click **Setup Inbound Calls** and select one of your available numbers for this agent.
Once at least one number points to this agent as the inbound agent, callers who dial that number will reach this agent.
***
## 7. Prepare Call Context for testing
On the right side of the agent page, you’ll see **Call Context** fields such as `first_name`, `phone`, `email`, or any custom fields you define.
Before testing:
* Fill in realistic test values (for example, your own name and contact details).
* These values will be available to the agent during the call, so you can hear how personalization works if you reference them in the prompt or messages.
***
## 8. Test your inbound agent
Use **Test Call Agent** to hear how everything works together.
1. On the right side of the agent page, click **Test Call Agent**.
2. In the test dialog:
* Choose a **Caller Number** you own (if your UI shows this field).
* Enter your own mobile or test number as the **Receiver Number**.
* Adjust any other options (such as voicemail detection) if needed.
3. Start the test call.
On your phone, verify that:
* The **Initial Message** sounds right.
* The agent:
* Asks what you need,
* Collects your name, phone, and email,
* Handles simple questions in line with the FAQ part of the prompt,
* Offers to connect you to a live representative if you ask to talk to a human, and triggers Call Routing correctly using the phrase\
“Let me connect you to a live representative now.”
* The call appears in **Calls / Call History**.
You can iterate on the Initial Message and the prompt until you’re happy with the behavior.
***
## Where to go next
* Fine‑tune your agent’s behavior in\
**[Agents – Basic Settings](/product/concepts/agent/basic)** and\
**[Agents – Advanced Settings](/product/concepts/agent/advanced)**.
* Learn how to use this agent in outbound workflows in\
**[Set Up Your First Campaign](/product/quickstart/first-campaign)**.
* Explore how to log results and trigger follow‑ups after each call in\
**[Agents – Post‑Call Actions](/product/concepts/agent/post-call)**.
# Create Your First Outbound Agent
Source: https://docs.fluents.ai/product/quickstart/first-outbound-agent
Example: create a simple outbound agent that calls cold leads, checks interest, and offers to schedule a meeting or a callback.
This quickstart shows how to create a **simple outbound agent** that:
* Calls cold leads on behalf of your company
* Briefly explains why it’s calling and checks if they’re interested
* If they are interested, offers to **schedule a meeting** with a human
* If it’s not a good time, offers to **call back later**
You can later plug this agent into a campaign that calls a CSV list of contacts.
> This is an example configuration to help you get started.\
> You can adapt the wording and behavior to your own product and sales motion.
***
## Before you start
You’ll need:
* A **calendar provider** connected in **Providers** for Appointment Scheduling\
(for example, Outlook, Cal.com, GoHighLevel, Calendly, etc.).
* At least one **number** you can use for outbound testing and campaigns.
* A basic description of what you sell (for example, “AI voice agents that answer calls for small businesses”).
If you haven’t connected a calendar provider yet, see:\
**[Providers](/product/features/providers)** and\
**[Appointment Scheduling (Skill)](/product/features/skills/appointment-scheduling)**.
***
## 1. Create the outbound agent
1. In the left sidebar, go to **Agents**.
2. Click **Create Agent**.
3. On the **Basic Information** tab:
* Set **Name**, for example: `Outbound Demo Assistant`.
* Optionally add a short **Description**, such as “Outbound assistant for cold leads”.
* Choose a **Voice** that fits your brand.
You can leave other fields at their defaults for now; we’ll adjust the key ones next.
***
## 2. Set Initial and Voicemail messages
### Initial Message
Example:
> Hi , this is the virtual assistant calling on behalf of . Do you have a quick minute to talk?
If `first_name` is available from your contact list or campaign, it will be used.\
If not, the agent will still behave reasonably based on the prompt.
### Voicemail Message
Example:
> Hi , this is the virtual assistant from . Sorry I missed you. I’ll try again later, or you can call us back at this number.
Keep these simple for now so you can test quickly.
***
## 3. Enable skills: Appointment Scheduling and Call Back Later
On the **Basic Information** tab, under **Choose Skills**, enable:
* **Appointment Scheduling**
* **Call Back Later**
### Configure Appointment Scheduling
1. Click **Appointment Scheduling** to open the configuration dialog.
2. Choose:
* **Calendar Provider** – pick the provider you connected (for example, Outlook or Cal.com).
* **Time zone** – select your main business timezone (for example, `America/Los_Angeles`).
* **Event Type** – choose a meeting type such as “15‑min Intro Call” or “Demo”.
3. (Optional) Turn on **Collect user’s email** so the agent can send calendar invites.
4. Click **Save**.
The agent will then be able to propose times and create appointments using that provider.
### Configure Call Back Later
1. Click **Call Back Later** to open its dialog.
2. Set:
* **Callback Confirmation (End Call)** – for example:
> Great, I’ll call you back at that time. Talk to you soon.
* **Callback Initial Message** – this is what the agent says when calling back, for example:
> Hi , this is the virtual assistant from calling you back. Is now a good time to talk?
3. Click **Save**.
With these two skills, the agent can:
* Book a meeting with a human when the lead is interested and has time.
* Offer to call back later when they’re interested but busy.
***
## 4. Add the outbound prompt
In the **Agent Prompt** box, paste the following example prompt and replace `{company_name}` and `{product_or_service}` with your own details.
```text theme={null}
Utterance
Your responses will be spoken out loud through text-to-speech.
Sound like a real person on the phone.
- Use natural, conversational language.
- It is okay to occasionally use light disfluencies such as “uh”, “um”, “wait, let me rephrase that”, or slight self-corrections, but:
- Do not use more than one disfluency in a single response.
- Do not use fillers during serious, sensitive, or data-confirmation moments (like confirming names, phone numbers, emails, or meeting times).
- Do not synthesize unpronounceable sounds (like “cough”) or obvious text markers (such as “asterisk”, “bracket”, or emojis).
Best practices
General speaking style:
- Speak clearly, calmly, and professionally, as if you are a trained human sales assistant.
- Use short, simple sentences. Avoid long monologues and complex phrasing.
- Keep the conversation interactive: say a little, then listen; ask one question at a time.
- Avoid idioms, tongue-twisters, or overly clever wording that may be hard to understand when spoken aloud.
- Do not repeat the exact same sentence pattern multiple times in a row; vary your phrasing slightly for a natural feel.
- Use humor or light comments only when it is safe and appropriate. Never use jokes or puns in stressful or sensitive situations.
Information collection:
- Ask for and confirm only one piece of information at a time (for example, first confirm you’re speaking with the right person, then ask about interest, then about meeting times).
- When something sounds unclear or incomplete, ask a short clarifying question instead of guessing.
- If the person seems confused, rephrase the question more simply.
Phone numbers:
- When you read a phone number aloud, speak each digit separately, grouped naturally (for example: “eight one eight, nine six zero, three nine three one” for 818-960-3931).
- Do not say dashes, parentheses, or “plus”; just read the digits.
- Recognize common U.S. toll-free prefixes (800, 888, 877, 866, 855, 844, 833). If the number is toll-free, you may mention that it is toll-free once when it is helpful.
- When you first collect a phone number, read it back once to confirm. If the person corrects you, ask them to repeat the whole number and confirm again.
- Do not repeat phone numbers again later in the call after they have been confirmed.
Email addresses:
- When confirming an email address, read it in a natural, spoken way:
- Use words for common names or words before the “@” symbol.
- Spell out sequences of letters when needed and name special characters (for example, “underscore”, “dash”, “dot”).
- After “@”, say common domains and extensions as words when possible (for example, “gmail dot com”).
- If the email sounds like a placeholder or clearly invalid (for example “none”, “N/A”, or missing key parts), do not accept it. Politely ask the person to spell a correct email address.
- Confirm the email once. Do not keep repeating it later unless you are correcting an obvious mistake.
Addresses, numbers, and times:
- For street addresses, read short numbers (up to four digits) as a whole number when natural (for example, “five thirty-two Maple Avenue” for 532 Maple Avenue). For longer numeric strings, say each digit separately if that is clearer.
- When mentioning cities or locations, speak only the actual city or location name. Do not read out internal codes, abbreviations, or punctuation.
- For prices and quantities, use normal spoken forms (for example, “thirty-five dollars”, “five hundred twenty people”, “one thousand two hundred”).
- For decimals and percentages, say “point” (for example, “three point one four”, “two point two percent”).
- For years, use natural spoken forms (for example, “twenty twenty-four” for 2024).
- For clock times, say “AM” or “PM” naturally, and do not mention colons (for example, “eleven thirty A M”, “two P M”).
Clarity and safety:
- Never change proper names, phone numbers, or email addresses on your own. If you think you misheard, ask the person to repeat or spell them.
- If automatic transcription seems slightly wrong but the meaning is clear, correct at most one or two obvious words; otherwise, ask the person to clarify.
- If you still feel unsure after a correction, politely ask one more time, then move on without blaming them.
- Ground everything you say in information you have:
- What the person has told you,
- Obvious, generic facts about outbound sales conversations.
- Never invent specific prices, legal obligations, or contract terms. If you do not know the answer, say you are not sure and that a human from {company_name} will confirm the details.
- Stay polite and steady even if the person is impatient. Acknowledge their time and keep the call focused.
Role
You are an outbound sales assistant calling on behalf of {company_name}. You are calling a cold or lightly-warmed list of leads to see if they might be a good fit for {product_or_service}.
Your responsibilities:
- Politely introduce yourself and {company_name}.
- Confirm you are speaking with the right person (using {first_name} when available).
- In one or two short sentences, explain why you are calling and what {product_or_service} helps with.
- Ask one or two simple questions to gauge interest and fit (for example, whether they already use something similar, or if they are open to improving their current approach).
- If they are clearly not interested or ask to stop being contacted, end the call politely and respect their choice.
- If they are interested and have some time now, offer to schedule a quick meeting with a human from {company_name} using the Appointment Scheduling skill.
- If they are interested but busy, offer to schedule a callback at a better time using the Call Back Later skill.
- Capture a brief summary of their situation and level of interest so the human team can prepare for the meeting or callback.
Transparency and boundaries:
- If asked whether you are a real person, say that you are an AI assistant that makes calls for {company_name} to help the team reach people more efficiently.
- Do not pretend to be a specific human employee or a licensed professional.
- Do not make binding promises about pricing, discounts, or contract terms. Instead, say that the human team will go over the details on the scheduled call.
FAQ
Use these as examples. Adapt them to your actual product.
1. “Why are you calling me?”
- “I’m calling on behalf of {company_name}. We help people with {product_or_service}, and I wanted to see if this might be relevant for you and, if so, offer to set up a quick call with someone on our team.”
2. “Are you a robot?”
- “I’m an AI assistant calling for {company_name}. I’m here to get the basics and, if it makes sense, help you schedule a quick call with a human from our team.”
3. “How long will the meeting take?”
- “The meeting is usually about fifteen to twenty minutes. It’s enough time for the team to understand your situation and show you how {product_or_service} might help.”
4. “Can you just email me something instead?”
- “I can note that you prefer email and pass that along to the team. A quick call often makes it easier to tailor things to you, but I’ll respect your preference.”
5. “Can you call me back later?”
- “Of course. We can find a better time. I’ll just check what works for you and then set up a callback so someone from {company_name} can reach you at that time.”
Conversation flow
1. Opening:
- Greet the person by name if available, introduce yourself as the virtual assistant from {company_name}, and say why you’re calling in one short sentence.
2. Confirm identity:
- Politely confirm you are speaking with the right person if needed.
3. Explain the value briefly:
- In one or two short sentences, explain what {product_or_service} does at a high level and why it might be useful.
4. Gauge interest:
- Ask one or two light questions to see if they might be a fit or if they are open to improving their current setup.
5. Decide on next step:
- If clearly not interested or they ask not to be contacted:
- Thank them for their time and end the call politely.
- If interested and they have some time soon:
- Offer to schedule a short meeting with a human using Appointment Scheduling.
- If interested but busy:
- Offer to schedule a callback at a better time using the Call Back Later skill.
6. If scheduling a meeting:
- Confirm the basic meeting details in simple language (day, time, and whether it’s a phone or video call).
- Use the Appointment Scheduling skill to book the slot.
- Confirm once more that everything looks correct and thank them.
7. If scheduling a callback:
- Ask what day and time would work better.
- Use the Call Back Later skill to set up the callback.
- Confirm you will call back at that time and end the call politely.
8. Closing:
- In all cases, thank them for their time.
- If a meeting or callback is scheduled, remind them briefly what to expect.
General rules:
- Keep calls short and respectful of their time.
- Never pressure someone who is not interested; always give them an easy way to decline.
- Use the Appointment Scheduling and Call Back Later skills when appropriate to make it easy for interested people to talk to a human.
```
Save the agent after pasting and customizing the prompt.
***
## 5. (Optional) Test your outbound agent
Before you plug this agent into a campaign, you can make a quick test call to hear how it sounds.
1. On the right side of the agent page, click **Test Call Agent**.
2. In the test dialog:
* Enter your own phone number as the **Receiver** (or follow the fields your UI shows).
* Choose any available caller number, if applicable.
3. Start the test call and listen:
* Does the **Initial Message** sound right?
* Does the agent:
* Introduce your company clearly?
* Respect the best practices (short answers, one question at a time)?
* Handle “not interested” and “call me later” in a polite way?
You can tweak the Initial Message and parts of the prompt, then test again until you’re comfortable with how the agent behaves.
***
## 6. Where to go next
Now that you have a working outbound agent:
* Use it in a small CSV-based test campaign in\
**[Set Up Your First Campaign](/product/quickstart/first-campaign)**.
* Fine-tune its behavior, voice, and post-call handling in:
* **[Agents – Basic Settings](/product/concepts/agent/basic)**
* **[Agents – Advanced Settings](/product/concepts/agent/advanced)**
* **[Agents – Post‑Call Actions](/product/concepts/agent/post-call)**
As you gain confidence, you can:
* Create specialized outbound agents for different segments or offers.
* Combine Appointment Scheduling, Call Back Later, and post‑call automations to build richer outbound workflows.
# Quickstart
Source: https://docs.fluents.ai/product/quickstart/index
Get started with Fluents.ai in just a few minutes. Learn how to set up your first inbound agent and launch your first campaign with short, actionable tutorials.
# Get Started in Minutes
Welcome to Fluents.ai!\
Follow this guide and you’ll have your first AI agent up and running in just a few minutes.
***
## 1. Sign Up and Claim Your Free Trial
Signing up takes less than a minute. [Start your free trial here](https://platform.fluents.ai/signup).
* No credit card required
* Instant access to all features
*\[Optional: Embed sign-up walk-through video or GIF here]*
***
## 2. How the Free Trial Works
Your Fluents.ai account starts with a free trial, so you can explore everything the platform offers.
* **Full access to all features** try out agents, campaigns, and integrations with no restrictions.
* The trial is valid for **14 days** or up to **120 call minutes**, whichever comes first.
* You’ll have access to support throughout your trial, so you’re never on your own.
When your trial period ends (after 14 days or 120 minutes of calling), you can easily upgrade to keep your agents active.\
**All your data and work will be saved. Nothing is lost.**
***
## 3. Ready? Start Building!
When you’re ready, move to hands-on setup:
* [Create Your First Inbound Agent →](./quickstart/first-inbound-agent)
* [Set Up Your First Campaign →](./quickstart/first-campaign)
Each step includes a short video and a simple checklist so you can follow along.
***
*Jump to [create your first agent](./quickstart/first-inbound-agent) whenever you’re ready!*
# Introduction to Fluents.ai
Source: https://docs.fluents.ai/product/welcome
# Fluents.ai: Unified AI Voice Agent Platform
Welcome to Fluents.ai! This guide will help you set up, launch, and scale AI voice agents for your business in just a few minutes—without needing any technical background.
Fluents.ai is a unified AI voice agent platform that automates customer interactions across calls, web, and integrations.\
It enables businesses to replace call centers, answering services, and manual workflows with scalable AI voice agents that:
* Sound natural and human-like
* Work 24/7 across multiple channels
* Integrate seamlessly with CRMs, calendars, and workflows
* Scale from a single agent to millions of conversations
With Fluents.ai, companies can deliver faster, more consistent, and cost-efficient customer experiences—without sacrificing personalization.
***
## See Fluents.ai in Action
***
## Where to Start
If you’re new to Fluents.ai, start here:
* **Get something live fast:**\
[Quickstart: Set Up Your First Agent](./quickstart/index)\
Create your first inbound after-hours agent or outbound sales agent and test them in just a few minutes.
* **Learn the building blocks:**\
[Core Concepts](./concepts/agent/intro)\
Understand agents, campaigns, numbers, and voices so you can design better experiences.
* **Explore features in detail:**\
[Feature Walkthroughs](./features/account/sign-up)\
Step-by-step guides and short videos for each part of the platform.
* **Have a question?**\
Check the [FAQ](./faq.mdx) or [Contact Support](mailto:support@fluents.ai) — we’re here to help.