# AI Prompt Editor Source: https://docs.agents.fontumi.ai/ai-assistants/ai-prompt-editor Edit and improve your assistant's prompts using AI-powered suggestions through a conversational interface The AI Prompt Editor is an intelligent tool that allows you to edit and improve your AI assistant's prompts using natural language. Instead of manually editing text, you can chat with an AI assistant that understands your requests and suggests intelligent modifications. ## Overview The AI Prompt Editor provides: * **Conversational editing** - Describe changes in plain language * **Smart suggestions** - AI understands context and makes relevant changes * **Review before apply** - Accept or reject each change individually * **Variable management** - Easily manage pre-call and post-call data * **Template library** - Start with proven prompt templates AI Prompt Editor Interface ## Getting Started Navigate to **Assistants** in the sidebar and click on the assistant you want to edit. In the edit form, scroll to the **System Prompt** section and find the **AI Prompt Editor** tab. Click the **Launch AI Prompt Editor** button. A modal window will open with the editor interface. You must save your assistant at least once before you can use the AI Prompt Editor. ## Interface Overview The AI Prompt Editor has three main areas: ### Chat Panel (Left Side) This is where you interact with the AI: * Type your requests in the input box at the bottom * View conversation history above * Use quick suggestion chips for common actions: * **Make it more concise** - Shorten the prompt * **Add more detail** - Expand with specifics * **Improve clarity** - Make instructions clearer * **Add instructions** - Add new behavioral guidelines ### Editor Panel (Right Side) This shows your current prompt with two tabs: * **System Prompt** - The main instructions for your assistant * **Initial Message** - The greeting message when calls start Toggle between **Edit** mode (textarea) and **Preview** mode (formatted view with diff highlights). ### Side Tabs * **Variables** - Manage pre-call data variables * **Post-Call** - Define data to collect after calls ## Using the Chat ### Making Requests Simply describe what you want to change: **You:** "Make the tone more friendly and casual" **AI:** The AI will suggest changes to make greetings warmer, use more conversational language, and soften formal phrases. **You:** "Add information about our return policy - 30 days no questions asked" **AI:** The AI will find the appropriate place in your prompt and add the return policy details. **You:** "Add instructions for handling angry customers" **AI:** The AI will add behavioral guidelines for de-escalation and when to transfer to a human. ### Tips for Better Results * **Be specific** - "Add a 10% discount mention" is better than "add discount info" * **Provide context** - "When asked about pricing, mention..." gives AI better understanding * **One change at a time** - Break complex changes into multiple requests ## Reviewing Changes When the AI suggests changes, they appear in the diff view: * **Green highlighting** - New text being added * **Red highlighting** - Text being removed * **Blue highlighting** - Text being modified ### Accept or Reject Changes Each change has two buttons: * **✓ Accept** - Apply this specific change * **✗ Reject** - Discard this change You can also use bulk actions: * **Accept All** - Apply all pending changes * **Reject All** - Discard all pending changes Always review changes before accepting. The AI makes intelligent suggestions, but you know your business best. Reviewing Changes with Diff View ## Variables Variables allow you to personalize calls with dynamic data. ### Adding Variables 1. Click the **Variables** tab 2. Click **Add Variable** 3. Enter a name (e.g., `customer_name`, `appointment_time`) 4. Set a default value ### Using Variables in Prompts Type variables directly in your prompt using curly braces: `{variable_name}` **Example prompt:** ``` Hello {customer_name}, I'm calling from {company_name} about your appointment on {appointment_date}. ``` ## Post-Call Schema Define structured data you want to collect during or after calls. ### Adding Post-Call Fields 1. Click the **Post-Call** tab 2. Click **Add Field** 3. Configure: * **Name** - Field identifier (e.g., `meeting_scheduled`) * **Type** - `string`, `number`, or `boolean` * **Description** - What this field captures ### Example Fields | Name | Type | Description | | ------------------- | ------- | ------------------------------------ | | `meeting_scheduled` | boolean | Whether a meeting was booked | | `interest_level` | string | Customer's interest: hot, warm, cold | | `callback_time` | string | Preferred callback date/time | | `objection_reason` | string | Main objection if not interested | The AI can suggest post-call fields based on your prompt. Just ask: "What data should I collect from these calls?" Post-Call Fields Configuration ## Templates When you first open the AI Prompt Editor, you can choose to start with a template: * **Continue with existing** - Keep your current prompt * **Start from scratch** - Begin with a blank prompt * **Start with template** - Choose from pre-built templates Templates are organized by use case: * Sales calls * Customer support * Appointment scheduling * Surveys and feedback * Lead qualification Template Selection Screen ## Saving Your Work Click the **Save** button in the top-right to save all changes to your assistant. The editor auto-detects unsaved changes. If you try to close with unsaved work, you'll be prompted to save or discard. ## Best Practices Templates provide proven starting points. Customize rather than starting from zero. Make small changes, test, and refine. Don't overhaul everything at once. The AI is helpful but not perfect. Always review suggestions before accepting. Make test calls after changes to verify the assistant behaves as expected. ## Related Resources * [System Prompts Guide](/ai-assistants/system-prompt) - Deep dive into prompt writing * [Flow Builder](/ai-assistants/flow-builder) - Visual alternative for conversation design * [Testing Your Assistant](/ai-assistants/testing) - How to test your changes # Assistant best practices Source: https://docs.agents.fontumi.ai/ai-assistants/assistant-configuration Quick guide to fine-tune mode, transcriber, model, and other settings for the best call experience. > **Last updated:** September 1, 2025 Getting great results often comes down to **picking the right engine settings**. Use this checklist when configuring an assistant: ## 1. Pick a Mode | Mode | Why choose it? | Notes | | --------------------------------- | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------ | | **Dualplex (Beta)** | Fast turn-taking + premium/cloned voices | Recommended default. Pair with **Gemini Flash 2.0/2.5** or **GPT‑5 Realtime**. | | **Speech-to-Speech (Multimodal)** | Fastest turn-taking & most natural flow | Recommended model: **GPT‑5 Realtime**. | | **Pipeline** | Maximum control over voice & long-form replies | Recommended model: **GPT‑5 Mini**. If you select Pipeline, continue to the **Transcriber** step below. | Want to know more about the differences between the modes? Read the Assistant modes guide. Experiment with all three modes: record the same scenario in each and compare response time and caller satisfaction.
## 2. Choose a Transcriber (Pipeline only) | Transcriber | Accuracy | Latency | Best for | | ------------ | -------- | --------------- | -------------------------------------------------------------------------------- | | **Azure** | ⭐⭐⭐⭐ | ⏱️⏱️⏱️ (slower) | When you need the highest transcription fidelity. | | **Gladia** | ⭐⭐⭐ | ⏱️ (faster) | Good all-rounder for most languages. | | **Deepgram** | ⭐⭐⭐ | ⏱️ (faster) | Another solid choice—test which performs better for your language & audio setup. | > **Tip:** Different languages, accents, or background noise can impact each engine differently. Run a quick A/B test and keep the best performer. ## 3. Select an LLM Model | Model | Strengths | Trade-offs | | -------------------------- | ------------------------------------------------- | --------------------------------------------------------- | | **GPT-5 Mini** | Balanced reasoning with low latency | May be slower than realtime models for rapid turn-taking. | | **GPT-5 Realtime** | Designed for ultra-low-latency voice turns | Best for **Speech-to-Speech** and **Dualplex**. | | **GPT-4o** | Strong reasoning and multimodal understanding | Higher latency. | | **Gemini Flash 2.0 / 2.5** | Ultra-fast for voice turns in Dualplex/Multimodal | Excellent for minimizing perceived latency. | If speed is critical, use **GPT‑5 Realtime** (great for **Speech-to-Speech**) or **Gemini Flash 2.0/2.5** (great with **Dualplex**). For richer reasoning, use **GPT-4o** or **GPT-5 Mini** and offset latency by using filler audios. ## 4. Noise Cancellation If callers are on speaker phone or in a quiet environment, keep **noise cancellation ON**. If your call volume is low or some words are "clipped," **turn it OFF** so the transcriber gets the full waveform. If your assistant is not hearing you well, you can try to turn off noise cancellation. ## 5. Conversation Timers | Parameter | Recommended | Why | | ------------------------ | ----------- | ------------------------------------------------------------------ | | **Re-engagement** | `≈ 30 s` | Gives callers enough time to think. Lower values can feel pushy. | | **Max silence duration** | `≈ 60 s` | Prevents premature hang-ups while still ending truly silent calls. | Test different values in real calls—too low can interrupt, too high leaves awkward gaps. ## 6. Initial Message | Mode | How it's used | Best practice | | -------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | | **Pipeline** | Read **exactly** as written (converted by TTS). | Write the greeting verbatim: "Hello, this is Alex from …". | | **Dualplex** | Read **exactly** as written (rendered via ElevenLabs TTS). | Write the greeting verbatim, then select your cloned voice. | | **Speech-to-Speech** | Interpreted as a **prompt** by the model. | Include instructions like "Greet the customer and say …" *or* prepend `say exactly: ` to ensure literal output. | ## 7. Ambient sound Enabled by default, ambient sound is a feature that adds background noise to the assistant's voice. If the assistant is not hearing you well, you can try to turn off ambient sound or turn the volume lower. ## 8. Endpointing sliders **Control when your assistant starts talking** with the endpointing sensitivity slider at the bottom of assistant settings. | Setting | Effect | Use when | | ---------------------- | --------------------------------------------------------- | ------------------------------------------ | | **Lower sensitivity** | Assistant responds **faster** after caller stops speaking | You want snappy, quick-turn conversations | | **Higher sensitivity** | Assistant waits **longer** before responding | Callers give longer, more detailed replies | **Pro tip:** If your assistant cuts off callers mid-sentence, **increase** the sensitivity. If responses feel sluggish, **decrease** it. ## 9. Debug using call transcript If you are having issues with your assistant, you can use the call transcript to debug the issue. 1. Go to the Call history page. 2. Click on the last call you tested 3. The call transcript will be shown including function calls and its parameters. ## 10. Still have questions? If you have any questions, please contact our support team via the chat widget inside the app. Test different settings with real calls—the right balance depends on your conversation flow and caller behavior patterns. *** Need a complete list of every toggle and slider? See the full Assistant settings reference. # Assistant Modes Source: https://docs.agents.fontumi.ai/ai-assistants/assistant-modes Understand the three voice generation modes available for your AI assistants and when to use each one. AI assistants on Fontumi iAgents can speak in **three distinct modes**. Each mode determines how a caller's speech is understood and how the assistant's reply is generated: Choosing the right mode can improve response time, naturalness, and overall call experience. ## 1. Pipeline | | | | ---------------- | ---------------------------------------------------------- | | **Label in UI** | `Pipeline` | | **How it works** | Speech-to-Text → LLM → Text-to-Speech | | **Latency** | \~800 – 1500 ms (depends on language & model) | | **Best for** | Complex reasoning, dynamic prompts, multi-sentence replies | Pipeline mode first transcribes the caller's words into text, runs that text through the language model, then converts the response back to audio. It's a tried-and-true approach that offers maximum flexibility: * Supports **all voices** in the library (including custom-cloned voices). * Handles **long-form answers** or paragraph-style responses well. * Allows the LLM to **inject variables** and reference earlier context cleanly. ### When to choose Pipeline 1. You need rich, multi-sentence answers (e.g. support queries, detailed explanations). 2. The assistant must reason over **structured data** or complex prompts. 3. You prefer absolute control of the spoken voice (clone or brand voice). ## 2. Speech-to-Speech (Multimodal) | | | | ---------------- | ------------------------------------------------------------- | | **Label in UI** | `Speech-to-speech` | | **How it works** | Direct **speech-to-speech** generation (no intermediate text) | | **Latency** | \~300 – 600 ms (ultra low) | | **Best for** | Natural back-and-forth, short & reactive replies | Speech-to-speech mode skips separate transcription and TTS. Instead, it uses a **multimodal model** that listens and speaks directly, producing more conversational flow: * **Fast turn-taking** – callers experience near-instant responses. * Generates **more expressive prosody** natively (intonation, fillers). * Currently supports a **limited voice set**, but more are added regularly. ### When to choose Speech-to-Speech 1. The conversation needs to feel **snappy** (sales, booking confirmations). 2. Your replies are generally **short sentences** or quick acknowledgements. 3. You're okay with the system-provided voice options for faster interaction. Speech-to-speech is evolving rapidly. If you need a custom cloned voice with low latency, try **Dualplex**. ## 3. Dualplex (Beta) | | | | ---------------- | ------------------------------------------------------------------ | | **Label in UI** | `Dualplex` | | **How it works** | Multimodal STT + LLM (speech-to-speech) with ElevenLabs TTS output | | **Latency** | Low (varies by voice and model) | | **Best for** | Fast, natural replies with high-quality/brand voices (cloned) | Dualplex blends the responsiveness of speech-to-speech with the premium voices and cloning from ElevenLabs used in Pipeline. The assistant uses the multimodal model to understand the caller and plan the reply, then renders the final speech through ElevenLabs for consistent, high‑fidelity output. * **Near-instant turn-taking** similar to speech-to-speech. * Access to **ElevenLabs** voice library, including **custom-cloned voices**. * Great for **short to medium** replies with expressive prosody. * **Recommended default** for most use-cases today; currently in **Beta**. ### When to choose Dualplex 1. You want fast back-and-forth but need a branded or cloned voice. 2. You want more expressive delivery without giving up precise voice choice. 3. You're comfortable using a new feature that is still in Beta. ## Switching modes You can pick the mode for each assistant in **Assistant → Settings → Voice Engine**. Test all three modes to see which delivers the best balance of speed and quality for your use-case. `Dualplex` is currently labeled **Beta**. *** **Pro Tip:** Record two calls – one in each mode – and compare the caller's perceived latency and engagement level to decide which fits your flow. # Cal.com Appointment Scheduling Source: https://docs.agents.fontumi.ai/ai-assistants/cal-com-scheduling Enable your AI assistant to schedule appointments using Cal.com Enable your AI assistant to schedule meetings using Cal.com integration. The system automatically configures booking fields for you. ## Setup ### 1. Get API Key 1. Log in to [Cal.com](https://cal.com/) 2. Go to **Settings** → **Developer** → **API Keys** 3. Create a new API key and copy it ### 2. Connect Cal.com 1. In your assistant settings → **Tools** tab → **Appointment Scheduling** 2. Select **Cal.com** from calendar type 3. Paste your API key 4. Select an event from the dropdown ### 3. Sync Event Click the **"Sync Event"** button to automatically configure booking fields. The sync configures: name, email, phone (required) + notes (optional). All other fields become optional. ## Multiple Calendars Click **"+"** next to Appointment Scheduling to add more calendars (e.g., 15min, 30min meetings). ## Email Setup For calendar invites to work: 1. Define `email` in assistant [input variables](/ai-assistants/settings/prompt-and-tools#call-variables) 2. Pass customer email when creating leads The phone number is automatically included after sync. ## Troubleshooting **Invalid API Key:** Verify it's active in Cal.com settings and includes `cal_live_` prefix **Sync Failed:** Click **"Troubleshoot"** button to reset fields **No Invites Sent:** Ensure `email` variable is defined and passed with leads **Field Errors:** Use "Troubleshoot" to reset. Only name, email, phone should be required. For detailed troubleshooting, see [Cal.com Issues](/troubleshooting/cal-com). ## Testing 1. Make a test call and request a meeting 2. Verify booking appears in Cal.com 3. Check calendar invitation email was received # Custom Mid-Call Tools Source: https://docs.agents.fontumi.ai/ai-assistants/custom-tools Learn how to create and configure custom API integrations that your AI assistant can use during calls Custom Mid-Call Tools let your AI assistant interact with external systems during calls. Whether checking inventory, verifying customer data, or fetching real-time information, these tools make your AI more powerful and connected. ## Overview Custom Mid-Call Tools enable your AI assistant to: * Make real-time API calls during conversations * Fetch or submit data to your systems * Make informed decisions based on live data * Provide accurate, up-to-date information to callers - No coding required - just configure the API endpoint and parameters - AI automatically knows when and how to use the tools - Real-time data access during calls - Seamless integration with your existing systems ## Setting Up Your Tool ### 1. Basic Configuration Main Tool Configuration Navigate to **Mid call tools** and click **Create Mid-Call Tool** Fill in the essential details: * **Name**: Use lowercase and underscores (e.g., `check_order_status`) * **Description**: Explain when and how the AI should use this tool * **Endpoint**: Your API URL (e.g., `https://api.yourcompany.com/orders`) * **Timeout**: How long to wait for responses (in seconds) * **Method**: Choose GET, POST, PUT, PATCH, or DELETE Common headers you might need: ```yaml theme={null} Content-Type: application/json Authorization: Bearer your_token ``` ### 2. Variable Configuration Variable Configuration These are the pieces of information your AI will collect during the call: ```yaml theme={null} Name: order_number Type: string Description: "10-digit order number from the customer" ``` Add format requirements in the description: ```yaml theme={null} "Date in dd/mm/yyyy format" "Phone number without spaces" "Email address for confirmation" ``` ## Understanding Parameter Types Text values like names, addresses, or reference numbers ```yaml theme={null} Type: string Examples: "John Doe", "123 Main St" ``` Numeric values like amounts, quantities, or IDs ```yaml theme={null} Type: number Examples: 42, 99.99 ``` Boolean values for yes/no situations ```yaml theme={null} Type: true_false Examples: true, false ``` Add format instructions in descriptions ```yaml theme={null} "Date in dd/mm/yyyy" "Phone without spaces" ``` ## Dynamic Endpoints When using variables in your endpoint URL, make sure to enclose them in curly braces and use the exact parameter name. You can make your endpoints dynamic using variables: ```yaml theme={null} Basic URL: https://api.example.com/orders/status With Variables: https://api.example.com/orders/{order_id}/status ``` The AI will automatically replace `{order_id}` with the actual value collected during the conversation. ## Testing Made Easy Click "Test Tool" to run a test with dummy data: * String parameters: "test" * Number parameters: 1 * Boolean parameters: true You'll see the response code and body, helping you verify everything works. ## Power User Feature: Automation Platform Integration Need more complex logic? Connect your tool to the automation platform for advanced workflows. For advanced integrations and complex workflows, you can combine custom tools with our [Automation Platform](/automation-platform/introduction). Here's how to create powerful integrations: 1. In the automation platform: * Create a new flow * Add a webhook trigger * Build your logic (API calls, data transformation, etc.) * End with "Return Response" 2. In your custom tool: * Use the webhook URL as your endpoint * Add `/sync` at the end * Example: `https://automate.agents.fontumi.ai/webhook/abc123/sync` This lets you: * Transform data before/after API calls * Make multiple API calls in sequence * Apply complex business logic * Handle errors gracefully ## Real-World Examples ```yaml theme={null} Name: check_order Endpoint: https://api.yourshop.com/orders/{order_number} Parameters: - Name: order_number Type: string Description: "Order reference (format: ORD-XXXXX)" ``` The AI will: 1. Ask for the order number 2. Fetch the status 3. Explain delivery dates and status to the customer ```yaml theme={null} Name: check_slots Endpoint: https://api.calendar.com/availability Parameters: - Name: service Type: string Description: "Service type (haircut, massage, consultation)" - Name: date Type: string Description: "Preferred date (dd/mm/yyyy)" ``` The AI will: 1. Ask about the desired service 2. Get preferred date 3. Show available time slots ```yaml theme={null} Name: verify_customer Endpoint: https://api.crm.com/verify Parameters: - Name: phone Type: string Description: "10-digit phone number" - Name: email Type: string Description: "Email address for verification" ``` The AI will: 1. Collect contact details 2. Verify against your CRM 3. Proceed based on verification status ## Configuring Your AI The AI needs clear instructions in its system prompt to effectively use your custom tools. Example prompt section: ```yaml theme={null} When to use check_order tool: 1. Customer asks about order status 2. Mentions tracking or delivery 3. Wants to know where their package is How to use it: 1. Ask for order number if not provided 2. Verify format (ORD-XXXXX) 3. Use tool to fetch status 4. Explain results in simple terms ``` Test your tools with various conversation flows to ensure the AI handles all scenarios smoothly. Start with simple test calls before going live. # Filler Audio Source: https://docs.agents.fontumi.ai/ai-assistants/filler-audio Learn how to use filler audio to create more natural conversations with your AI assistant Filler audio adds natural conversation sounds (like "hmm" or "one moment") while your AI assistant processes responses. This creates a more human-like interaction by eliminating awkward silences. ## How It Works When enabled, your AI assistant will: * Use short audio fillers during processing time * Maintain engagement while formulating responses * Signal active listening to the caller ## Benefits 1. **Improved Conversation Flow** * Eliminates dead air * Keeps callers engaged * Reduces hang-ups * Creates natural dialogue rhythm 2. **Enhanced User Experience** * More human-like interaction * Less awkward waiting * Better caller retention * Increased trust ## Setup 1. Go to your [AI assistant settings](/ai-assistants/settings/general#audio-enhancement-settings) 2. Find the "Filler Audio" option 3. Toggle it on 4. Save your changes ## Best Practices ### Combine with Fast Engine * Use filler audio with the Fast Engine setting * Creates the most natural conversation flow * Minimizes perceived response time ### Use Cases * **Sales Calls**: Keep prospects engaged * **Customer Service**: Show active listening * **Lead Qualification**: Maintain natural flow ## Testing After enabling filler audio: 1. Make a test call 2. Listen for natural transition sounds 3. Verify timing and appropriateness 4. Adjust if needed *** **Tip:** Start with filler audio enabled - you can always disable it if it doesn't suit your use case. # Flow Builder Source: https://docs.agents.fontumi.ai/ai-assistants/flow-builder Design conversation flows visually with an intuitive drag-and-drop interface Flow Builder is a visual, drag-and-drop conversation flow editor that lets you design AI assistant scripts without writing code. Create multi-step conversation flows by connecting nodes that represent different actions and decision points. ## Overview Flow Builder provides: * **Visual design** - Drag-and-drop nodes on a canvas * **Multiple node types** - Messages, prompts, actions, and more * **Branching logic** - Create different paths based on responses * **Settings panel** - Configure agent personality and behavior * **Import/Export** - Save and share flows as JSON files Flow Builder Interface ## When to Use Flow Builder * Structured conversation scripts * Multi-path decision trees * Complex call flows with branches * Visual thinkers who prefer diagrams * Simple, linear conversations * Highly dynamic AI responses * Quick prompt iterations * Text-focused editing ## Getting Started Navigate to **Assistants** and click on the assistant you want to edit. In the edit form, scroll to the **System Prompt** section and click the **Flow Builder** tab. Click **Launch Flow Builder**. A full-screen editor will open. * **Continue with existing** - Edit your current flow * **Start from scratch** - Begin with just a Start node * **Start with template** - Load a pre-built flow template ## Interface Overview ### Canvas Area (Center) The main workspace where you build your flow: * **Nodes** - Drag to reposition * **Connections** - Lines showing flow between nodes * **Grid background** - Helps with alignment * **Zoom controls** - Zoom in/out and fit to view * **Pan** - Click and drag on empty space to move around ### Bottom Toolbar Quick actions for managing your flow: | Button | Action | | -------------- | ---------------------------------- | | ⚡ Auto Layout | Automatically arrange nodes neatly | | 📋 Duplicate | Copy selected node | | 🗑️ Delete | Remove selected node or connection | | **+ Add Node** | Add a new node to the canvas | ### Settings Panel (Right Side) Configure your assistant's personality and behavior: * **Agent Name** - The name your AI will use * **Agent Type** - Sales, Support, Survey, etc. * **Language** - Spoken language for calls * **Assertiveness** - How pushy the AI should be * **Humor** - Level of humor in responses * **Variables** - Pre-call data fields * **Post-Call Fields** - Data to collect after calls ## Node Types Flow Builder has 5 node types, each with a specific purpose: Flow Builder Node Types ### Start Node (Green) The entry point of every conversation. Every flow must have exactly one Start node. **Properties:** * **Greeting** - The initial message when the call begins **Example:** "Hi, this is Sarah from Acme Insurance. How are you today?" ### Speak Node (Blue) Delivers a pre-written message exactly as specified. Use when you need precise wording. **Properties:** * **Text** - The exact message to speak * **Outcomes** - Different paths based on customer response **Example:** "We're offering a limited-time 20% discount on all plans. Would you like to hear more?" ### Prompt Node (Purple) Gives the AI instructions on how to respond. More flexible than Speak nodes - the AI generates contextual responses. **Properties:** * **Prompt** - Instructions for the AI * **Outcomes** - Different paths based on response categories **Example prompt:** "Ask the customer about their current insurance coverage. Be conversational and empathetic. Listen for mentions of their family size, budget concerns, or timeline." ### Action Node (Orange) Executes special actions during the call. **Action Types:** * **Call Forward** - Transfer to another number * **Book Appointment** - Schedule using connected calendar * **Custom Action** - Trigger a custom mid-call tool **Example:** Forward to sales team at +1-555-123-4567 when customer is ready to purchase. ### End Node (Red) Terminates the call or transfers to another destination. **End Types:** * **End Call** - Hang up with a closing message * **Forward Call** - Transfer to a phone number * **Transfer Agent** - Hand off to another assistant **Example closing:** "Thank you for your time today. Have a great day!" ## Working with Nodes ### Adding Nodes 1. Click **+ Add Node** in the bottom toolbar 2. Select the node type from the dropdown 3. The node appears on the canvas 4. Drag it to your desired position ### Connecting Nodes 1. Hover over a node's bottom edge to see the **output handle** (small circle) 2. Click and drag from the output handle 3. Connect to another node's **input handle** (top edge) 4. Release to create the connection ### Editing Nodes 1. Click on any node to select it 2. The node's properties appear in a panel 3. Edit the text, prompt, or settings 4. Changes save automatically to the canvas ### Deleting Nodes * Select a node and press **Delete** key, or * Select a node and click the 🗑️ button in the toolbar The Start node cannot be deleted. Every flow must have one Start node. ## Outcomes (Multiple Paths) Speak and Prompt nodes can have multiple **outcomes** - different paths based on how the customer responds. ### Adding Outcomes 1. Select a Speak or Prompt node 2. In the properties panel, find **Outcomes** 3. Click **Add Outcome** 4. Name the outcome (e.g., "Interested", "Not interested", "Wants callback") ### Connecting Outcomes Each outcome appears as a colored dot at the bottom of the node. Connect each outcome to a different destination node to create branching logic. Conversation Branching with Outcomes **Example flow:** ``` [Start] → [Ask about interest] ↓ [Prompt: "Ask if interested"] ↓ ┌─────────┼─────────┐ ↓ ↓ ↓ [Interested] [Maybe] [Not Interested] ↓ ↓ ↓ [Book Demo] [Send Info] [Thank & End] ``` ## Settings Panel Flow Builder Settings Panel ### Agent Identity | Setting | Description | | -------------- | ------------------------------------------------ | | **Agent Name** | Name the AI uses to introduce itself | | **Agent Type** | Preset personality: Sales, Support, Survey, etc. | | **Language** | Primary language for the conversation | ### Personality | Setting | Options | Description | | ----------------- | ------------------------- | --------------------------- | | **Assertiveness** | Low / Medium / High | How persistent the AI is | | **Humor** | Off / Low / Medium / High | Level of humor in responses | ### Variables Add pre-call data that can be used in your messages: 1. Click **Add Variable** 2. Enter a **Name** (e.g., `product_interest`) 3. Set a **Default Value** Use variables in messages with curly braces: `{variable_name}` **Example:** "Hi , I see you were interested in our ." ### Post-Call Fields Define data to extract from calls: 1. Click **Add Field** 2. Enter **Name**, **Type**, and **Description** 3. The AI will attempt to fill these based on the conversation **Types:** `string`, `number`, `boolean` ## Import/Export ### Export Your Flow 1. Open the Settings panel 2. Scroll to the bottom 3. Click **Export JSON** 4. Save the `.json` file ### Import a Flow 1. Click **Import JSON** in settings 2. Select your `.json` file 3. The flow loads on the canvas Export your flows regularly as backups. You can also share flows with team members this way. ## Voicemail Settings Configure what happens when voicemail is detected: * **Voicemail Message** - Message to leave if voicemail answers * **End Call on Voicemail** - Toggle to automatically hang up on voicemail ## Saving Your Flow Click the **Save** button in the top-right corner to save your flow to the assistant. The flow is stored as JSON in your assistant's system prompt field. If you switch to the Classic Editor, you'll see the raw JSON data. ## Best Practices Begin with a basic flow and add complexity gradually. Test at each step. Prompt nodes give the AI flexibility. Use them for dynamic, context-aware responses. Before building, sketch the main paths: positive, negative, and neutral responses. Make test calls covering all paths. Verify each outcome leads to the right destination. ## Troubleshooting * Ensure you're dragging from an **output handle** (bottom) to an **input handle** (top) * Check that you're not creating a circular connection * The Start node only has an output, End node only has an input * Check your internet connection * Ensure you have at least one node (besides Start) * Look for any validation errors in the settings panel * Use Speak nodes for exact wording requirements * Make Prompt node instructions more specific * Check that outcomes are clearly defined and connected ## Related Resources * [AI Prompt Editor](/ai-assistants/ai-prompt-editor) - Chat-based alternative for prompt editing * [System Prompts Guide](/ai-assistants/system-prompt) - Understanding prompt fundamentals * [Testing Your Assistant](/ai-assistants/testing) - How to test your flows # GoHighLevel Appointment Scheduling Source: https://docs.agents.fontumi.ai/ai-assistants/gohighlevel-scheduling Learn how to enable your AI assistant to schedule appointments using GoHighLevel integration Enable your AI assistant to seamlessly schedule meetings and appointments using GoHighLevel integration. This powerful feature allows your AI to check availability and book meetings directly during calls with your existing GoHighLevel calendar system. ## Prerequisites Before setting up GoHighLevel integration, you'll need: * An active GoHighLevel account * Calendar(s) configured in your GoHighLevel location * Admin or appropriate permissions to authorize app connections ## Setup Process ### 1. GoHighLevel Account Requirements **Account Setup:** * Ensure you have an active GoHighLevel account * Verify that your calendars are properly set up in your account * Confirm you have the necessary permissions to connect external applications **Calendar Configuration:** * Create or verify existing calendars in your GoHighLevel location * Set appropriate availability times and booking settings * Configure any required custom fields for appointments ### 2. Connecting GoHighLevel to Your Assistant 1. In your [AI assistant settings](/ai-assistants/settings/prompt-and-tools#default-tools), navigate to the **Tools** section 2. Select **Appointment Scheduling** from the available tools 3. Choose **GoHighLevel** as your calendar integration type 4. Click **Connect to GoHighLevel** **OAuth Authorization Process:** 1. You'll be redirected to GoHighLevel's authorization page 2. **Choose your account** from the available options 3. **Authorize the application** to access your calendar data 4. You'll be redirected back to your assistant settings If you have issues connecting to GoHighLevel, try using an **Incognito/Private browsing window** as this can resolve authentication conflicts. ### 3. Calendar Selection After successful connection: 1. Select the specific **calendar** from your GoHighLevel location 2. Your available calendars will be automatically fetched and displayed 3. Choose the calendar where appointments should be booked ### 4. Testing the Integration **Essential testing steps:** 1. Make a test call to your AI assistant 2. Request to schedule an appointment during the conversation 3. Verify the booking appears in your GoHighLevel calendar 4. Check that confirmation details are sent appropriately 5. Test different scenarios (available/unavailable times) ## Required Information from GoHighLevel To complete the integration, the system needs access to: ### From Your GoHighLevel Account: * **Location ID:** Automatically obtained during OAuth authorization * **Calendar IDs:** Retrieved from your location's available calendars * **Access Tokens:** Managed automatically through OAuth flow ### Calendar Permissions: * **Read calendar availability:** To check open time slots * **Create appointments:** To book new meetings * **Access calendar details:** To retrieve calendar names and settings ## Integration Features ### Automatic Appointment Booking * **Real-time availability checking:** AI verifies open time slots * **Instant booking confirmation:** Appointments created immediately in GoHighLevel * **Conflict prevention:** System prevents double-booking * **Time zone handling:** Respects calendar and customer time zones ### Email Requirement for Appointments **Important:** To book appointments, your AI assistant needs an email address from the customer. **Setup options:** 1. **Define email in input variables:** Add `email` as an input variable in your [assistant settings](/ai-assistants/settings/prompt-and-tools#call-variables) 2. **Import leads with email:** When importing leads, ensure email addresses are included 3. **AI collection during call:** Configure your assistant to ask for email during the conversation if not available **Example prompt instruction:** ``` "If the customer wants to book an appointment and I don't have their email address, ask them to provide their email address for the booking confirmation." ``` ## Best Practices ### Calendar Management * **Keep calendars updated:** Ensure availability is current in GoHighLevel * **Set buffer times:** Configure appropriate gaps between appointments * **Use clear calendar names:** Makes selection easier during setup ### Assistant Configuration * **Include calendar context in system prompt:** Help AI understand booking scenarios * **Define appointment variables:** Extract relevant information for GoHighLevel * **Configure appointment duration:** Specify how long appointments should be **Appointment Duration Setup:** Tell your AI assistant about appointment lengths in the system prompt: ``` "When booking appointments, use 45-minute slots. If a customer says they want to meet at 8:00 AM, set the end_time to 8:45 AM. Always calculate the end_time based on the start time plus 45 minutes." ``` **Example scenarios:** * Customer says: "Can we meet at 2:00 PM?" * AI books: 2:00 PM - 2:45 PM (45-minute slot) * **Test various scenarios:** Different time requests, conflicts, rescheduling ### Security & Compliance * **Token management:** OAuth tokens are refreshed automatically * **Data privacy:** Only necessary calendar data is accessed * **Permission scope:** Integration uses minimal required permissions ## Troubleshooting ### Quick Fixes: **Missing API Key Error:** * **Solution:** Disconnect and reconnect your GoHighLevel account, then select an assistant and save * **Steps:** Go to [assistant settings](/ai-assistants/settings/prompt-and-tools#default-tools) → Appointment Scheduling → Disconnect → Connect again → Select assistant → Save **Connection Issues:** * **Try incognito mode** for OAuth authorization * **Verify account permissions** and calendar setup **Calendar Problems:** * **Refresh connection** if calendars don't appear * **Check time zones** and availability settings For comprehensive GoHighLevel troubleshooting, including detailed solutions and additional issues, see [GoHighLevel Issues](/troubleshooting/gohighlevel). # Initial Message & Audio Source: https://docs.agents.fontumi.ai/ai-assistants/initial-message Learn how to create effective initial messages and use custom audio files for the best first impression The first few seconds of a call are crucial - they determine whether the customer stays on the line. You have two options for your assistant's first greeting: text-based initial message or custom initial audio. ## Initial Message This is the first thing your AI assistant says when starting a call. The message is read exactly as written, so: ### Best Practices 1. **Keep it Short** * Aim for 5-10 seconds * Get to the point quickly * Avoid long company introductions 2. **Write Exactly as Needed** * Include proper diacritics (é, ñ, ü, etc.) * Use punctuation for proper pausing * Write numbers as they should be spoken 3. **Example Formats** ``` Good: "Hi! This is Sarah from ABC Company. How can I help you today?" Better with pausing: "Hi! This is Sarah from ABC Company... How can I help you today?" With diacritics: "¡Hola! Soy María de ABC Company. ¿Cómo puedo ayudarte?" ``` ## Initial Audio For the best first impression, you can use a pre-recorded audio file: ### Benefits * Professional quality * Perfect pronunciation * Human warmth * Consistent delivery * Higher customer retention ### Setup Process 1. Record your greeting with a professional voice actor 2. Upload the audio file in [assistant settings](/ai-assistants/settings/general#call-flow-configuration) 3. Clone the same voice for the rest of the conversation 4. Enable initial audio playback ### Best Practices 1. **Recording Quality** * Use professional equipment * Record in a quiet environment * Maintain consistent volume * Save in high quality format 2. **Voice Matching** * Use the same voice actor for cloning * Maintain consistent tone and style * Match energy levels 3. **Content Guidelines** * Keep under 10 seconds * Include company name * State purpose clearly * Sound welcoming ### Example Script Structure ``` [Greeting] + [Company Name] + [Purpose/Question] "Hello! This is ABC Company calling about your recent inquiry. How are you today?" ``` ## Combining Both Methods You can set up both: * Initial audio as primary greeting * Initial message as backup * System will use audio when available ## Testing Before going live: 1. Call your assistant 2. Listen for: * Clear pronunciation * Natural pauses * Proper volume * Smooth transition to AI conversation ## Language Considerations * Each language needs its own initial message/audio * Use native speakers for recordings * Consider regional accents * Test with target audience *** **Pro Tip:** Record several versions of your initial audio and test which one gets better response rates. # General Settings Source: https://docs.agents.fontumi.ai/ai-assistants/settings/general Basic configuration settings for your AI assistant including call direction, phone numbers, voice, and advanced settings. Configure the fundamental settings for your AI assistant including call direction, phone numbers, voice selection, and technical parameters. ## Quick Start Guide Ready to set up your first AI assistant? Here's the essential flow: 1. **Choose Call Direction:** Inbound (answers calls) or Outbound (makes calls) 2. **Set Assistant Name:** Internal label like "Support Bot" or "Sales Bot" 3. **Configure Phone Numbers:** Assign platform numbers, SIP, or Caller ID 4. **Select Voice & Language:** Choose from built-in voices or clone custom ones 5. **Adjust Advanced Settings:** Fine-tune models, timing, and audio parameters **Always test your changes** by calling the assistant or running a small campaign to confirm it behaves as expected. Follow this page section by section to configure your assistant. Each setting includes detailed explanations and best practices to help you make the right choices. ## Call Direction & Basic Setup ### Assistant Type Choose whether your assistant handles **inbound** or **outbound** calls. This fundamental choice affects which other options become available. **Inbound (Receive calls):** Handles incoming calls from customers. See [Inbound calls overview](/inbound-calls/overview). **Outbound (Make calls):** Initiates calls to leads or customers. See [Outbound calls overview](/outbound-calls/overview). ### Assistant Name A descriptive name to identify your assistant in the dashboard. Use something memorable that describes the assistant's purpose (e.g. "Sales Qualifier", "Support Bot", "Appointment Scheduler"). ## Phone Number Configuration Your assistant needs a phone number to operate. The available options depend on your call direction choice. ### For Outbound Assistants You can use: * **Platform numbers:** Numbers rented directly from our platform * **SIP numbers:** Connect your existing VOIP/PBX system * **Caller ID only:** Verify ownership of an existing number to display it on outbound calls ### For Inbound Assistants You can use: * **Platform numbers:** Numbers rented directly from our platform * **SIP numbers:** Connect your existing VOIP/PBX system **Note:** Caller ID only numbers cannot handle inbound calls - they only display on outbound calls. ### Pricing & Costs * **Platform numbers:** Monthly rental fees starting from \$3.99/month. See [renting a dedicated number](/pricing/number-rentals#1-renting-a-dedicated-number) for detailed pricing. * **SIP integration:** No monthly fee, only \$0.00045/min for AI bridging. See [SIP integration pricing](/pricing/number-rentals#2-sip-integration-no-monthly-fee). * **Caller ID:** No monthly fee, region-based per-minute rates (e.g., \$0.01/min in the US). See [Caller ID pricing](/pricing/number-rentals#3-caller-id-no-monthly-fee). See [Phone number types](/phone-numbers/types) for detailed explanations and [SIP integration guide](/provisioning/sip-trunking/sip-integration) for VOIP setup. ## Engine Type (Voice Processing Mode) Choose how your AI processes speech and generates responses. Each mode is optimized for different use cases. See [Assistant modes](/ai-assistants/assistant-modes) for detailed comparisons. ### Pipeline Mode Traditional Speech-to-Text → LLM → Text-to-Speech pipeline. Offers maximum control over voice selection and response generation. **Best for:** Complex reasoning, function calling, custom voice requirements ### Speech-to-Speech Mode Direct speech-to-speech generation without intermediate text processing. Provides the most natural conversational flow. **Best for:** Quick conversations, natural back-and-forth dialogue ### Dualplex Mode (Beta) Combines fast multimodal processing with premium ElevenLabs voice output. **Best for:** Most use cases - recommended default ## Language Configuration ### Primary Language The main language your assistant will use for speech recognition and synthesis. This affects: * Speech recognition accuracy * Available voice options * Filler audio phrases * Voice model selection See [Language support](/conversation-design/language-support) for all available languages and accents. ### Secondary Languages Additional languages your assistant can understand and speak. Useful for: * Multilingual customer support * International businesses * Code-switching conversations **Note:** The AI can detect which language the customer is speaking and respond appropriately. ## TTS Provider & Voice Selection ### TTS Provider Select your Text-to-Speech provider. Available in **Pipeline** and **Dualplex** modes. **Available Providers:** * **ElevenLabs** - High-quality voices * **Cartesia** - Fast, low-latency synthesis Your assistant can choose from existing voices, clone custom voices, or request voices from the ElevenLabs library. ### Voice Options You have three ways to get the perfect voice for your assistant: **1. Choose from existing voices:** * **Professional voices:** Pre-trained, high-quality options from ElevenLabs * **Multiple accents:** Available for most languages * **Gender options:** Male and female voices for each language * **Tone variety:** From formal business to casual conversational **2. Clone a custom voice:** Create a custom voice by uploading audio samples. Available in **Pipeline** and **Dualplex** modes. **Requirements by provider:** * **Cartesia** - Single audio file, at least 10 seconds, 1 speaker, no background noise * **ElevenLabs** - Samples over 1 minute, 1 speaker, no background noise. Max 5 minutes total. **Process:** 1. Click "Clone voice" next to voice selector 2. Select provider (Cartesia or ElevenLabs) 3. Choose the voice language 4. Enter a name for your voice 5. Record or upload audio 6. Wait for processing 7. Select your new voice from dropdown **Use cases:** * Brand consistency with company spokesperson * Personal touch for customer relationships * Matching voice to specific business persona **3. Request from ElevenLabs library:** You can request specific voices from the ElevenLabs public library - contact support to add them to your account. Browse the [ElevenLabs Voice Library](https://elevenlabs.io/docs/product-guides/voices/voice-library) to discover thousands of professional voices across different languages, accents, and use cases. See [Voice selection guide](/ai-assistants/voice-selection) for detailed setup instructions. ## Timezone Configuration ### Timezone Set the timezone your assistant operates in. This affects: * Time-based variables in conversations * Appointment scheduling functions * "Current time" references in system prompts * Timestamps in call logs and data extraction **Important:** Choose the timezone where your business operates or where most customers are located. The assistant will use this for any time-related calculations or scheduling. ## Audio Enhancement Settings ### Ambient Sound Optional background sound mixed under your assistant's voice to mask processing delays and create a more natural audio experience. **Options:** * **None:** No background sound (default) * **Office:** Subtle office environment sounds **Volume control:** Adjust the level of ambient sound relative to the voice. Lower values are usually better - too much background sound can interfere with speech recognition. Turn off or lower volume if the assistant isn't hearing the customer clearly. ### Filler Audio Short conversational phrases like "mhm", "okay", "I understand" that play during AI processing time. See [Filler audio guide](/ai-assistants/filler-audio) for full details. * Eliminates awkward silences during processing * Keeps callers engaged * Creates more natural conversation flow * Reduces hang-up rates **Language-aware configuration:** Filler phrases are automatically set for your selected language: "Great!", "Perfect!", "Super!" "Hmm.", "I see.", "Okay." "Right?", "Really?", "How so?" "Okay.", "I understand.", "Got it." **Customization:** You can edit the default phrases for each category to match your brand voice or regional preferences. Enable by default - most conversations benefit from fillers. Test with your target audience and adjust phrases to match your assistant's personality. ## Advanced Settings ### LLM Model Selection Choose the best language model for your assistant's mode. See [LLM model selection guide](/ai-assistants/assistant-configuration#3-select-an-llm-model) for detailed recommendations. **Recommended models by mode:** | Model | Strengths | Best for | | ------------------------ | --------------------------------------------- | ------------------------------------------- | | **GPT-5 Mini** | Balanced reasoning with low latency | **Pipeline** mode for complex reasoning | | **GPT-5 Realtime** | Ultra-low-latency voice turns | **Speech-to-Speech** and **Dualplex** | | **GPT-4o** | Strong reasoning and multimodal understanding | Complex tasks (higher latency) | | **Gemini Flash 2.0/2.5** | Ultra-fast for voice turns | **Dualplex/Multimodal** for minimal latency | **Quick selection guide:** * **Speed is critical:** Use GPT-5 Realtime or Gemini Flash 2.0/2.5 * **Rich reasoning needed:** Use GPT-4o or GPT-5 Mini with filler audios to offset latency ### LLM Temperature **Range:** 0.0 - 1.0 | **Default:** 0.1 Adjust the level of creativity of the AI when generating responses. Lower value yields better function call results. **More stable:** Predictable responses, better for function calling and business use cases **More random:** Creative and varied responses, good for casual conversations **Special behavior:** For GPT-5 Mini and GPT-5 Nano models in Pipeline mode, temperature is automatically set to 1.0 for optimal performance. ### Duration Settings Control timing and call limits to optimize user experience and costs: **Range:** 7 - 600 seconds | **Default:** 30 seconds AI will try to re-engage the user if no reply is detected within this time. **Recommended:** 30-60 seconds for professional calls. Custom prompt used when the AI tries to re-engage the user after silence. **Default:** Uses a standard re-engagement phrase like "Are you still there?" **Customization:** Write a prompt that instructs the AI how to re-engage. **Examples:** * "Gently ask if they are still there and if they need more time." * "Politely check if they have any questions." Variables like `{customer_name}` cannot be injected directly in this prompt. The AI has access to the conversation history and main system prompt, so it can reference information from there. Leave empty to use the default re-engagement behavior. **Range:** 20 - 1200 seconds | **Default:** 600 seconds (10 minutes) Call will automatically end if this value is reached. **Recommended:** 5-10 minutes for lead qualification to control costs. **Range:** 1 - 120 seconds | **Default:** 40 seconds Call will end if user doesn't reply within this time. **Recommended:** 30-45 seconds to balance patience with efficiency. **Range:** 1 - 60 seconds | **Default:** 30 seconds For how long the call will ring before marking as unanswered. **Good when you want to avoid voicemail by setting a lower value.** **Cost optimization:** Lower duration limits help control per-minute costs, especially important for high-volume campaigns. ### Call Protection Settings **Default:** Enabled Filters caller background noise for clearer speech recognition. Turn OFF if experiencing audio clipping. **Default:** Enabled Immediately ends call if voicemail is detected during outbound calls (saves costs). Prompt for the message the AI will say when voicemail is detected before ending the call. **Default:** Empty (hangs up immediately without leaving a message) **Use case:** Leave a brief message before hanging up so the recipient knows who called. **Example:** "Leave a brief voicemail message saying you called and ask them to call back." Variables like `{company_name}` cannot be injected directly in this prompt. The AI has access to the conversation history and main system prompt, so it can reference information from there. Only applies when "End Call on Voicemail" is enabled. Leave empty to hang up without a message. **Default:** Enabled Records call audio for review and analysis. **Ensure compliance with local recording laws.** **Range:** 1 - 120 seconds | **Default:** 20 seconds (when enabled) If enabled, end the call if no first user response within this time. Counts only from call start to first user response. **Use case:** Detect if anyone actually answered the phone. ## Synthesizer Settings Configure text-to-speech voice parameters for natural-sounding conversations. **Available for:** Pipeline and Dualplex modes only. Speech-to-Speech mode uses native voice generation. ### Voice Tuning Parameters Fine-tune your assistant's voice characteristics for optimal performance: **Default:** Enabled When enabled, the AI will add emotional cues to the synthesized speech based on the context of the conversation. This makes the voice sound more natural and expressive. **Effects:** * Adjusts tone based on conversation context (happy, concerned, empathetic) * Adds natural inflections and emphasis * Makes the assistant sound more human-like Disable if you prefer a more neutral, consistent tone across all conversations. **Range:** 0.0 - 1.0 | **Default:** 0.7 Lower settings make the voice more expressive but less predictable, while higher settings make it steadier but less emotional. Dynamic and varied delivery but less predictable Consistent and steady but less emotional range **Range:** 0.0 - 1.0 | **Default:** 0.5 Determines how closely the AI matches the original voice. Higher settings potentially include unwanted noise from the original recording. Cleaner audio but less accurate to original voice Accurate to original but may include background noise **For cloned voices:** Start at 0.5 and increase gradually. Higher similarity can introduce unwanted artifacts from the original recording. **Range:** 0.7 - 1.2 | **Default:** 1.0 Adjust the speed of the AI's speech for optimal comprehension and user experience. Better for complex information or older demographics Standard conversational pace for most use cases Quick conversations or time-sensitive scenarios ## Transcriber Settings Configure speech-to-text recognition for optimal accuracy and speed. **Available for:** Pipeline mode only. Speech-to-Speech and Dualplex modes use integrated transcription. ### Provider Selection Choose the best transcriber for your language and use case. The provider that will be used to transcribe the user speech. **Accuracy:** ⭐⭐⭐⭐ **Latency:** Slower Best for highest transcription fidelity when accuracy is critical. **Accuracy:** ⭐⭐⭐ **Latency:** Faster Good all-rounder for most languages. Supports multilingual configurations. **Accuracy:** ⭐⭐⭐ **Latency:** Faster Solid choice for English and major languages. Different languages, accents, or background noise can impact each provider differently. Test which performs better for your specific language and audio setup. ### Endpoint Configuration Uses AI to intelligently detect when the caller has finished speaking **Default:** Traditional voice activity detection Choose how the AI will detect the end of the user phrase ### Voice Activity Detection (VAD) Control when your assistant starts and stops talking. See [Handling interruptions guide](/conversation-design/interruptions) for detailed VAD configuration. Fine-tune these settings if experiencing interruption issues or sluggish responses. **Range:** 0 - 5 seconds | **Default:** 0.5 Adjust the time the AI will wait for the user to speak after the last word. Lower values make the AI faster, higher values are better for long user phrases. * **0 (Faster):** Quick responses but may cut off callers * **5 (Slower):** Waits longer, reduces interruptions How easily the assistant stops when caller talks over it. Controls the sensitivity for detecting when a caller is trying to interrupt. Require at least N caller words before interrupting assistant. **Use:** Prevents false triggers from background noise or brief sounds. **Available for:** Speech-to-Speech and Dualplex modes only **Range:** 0 - 1 | **Default:** Auto (model decides) Controls how sensitive the multimodal model is to detecting when the caller has finished speaking. Lower values make the assistant respond faster, higher values wait longer for the caller to finish. * **Lower (0.3-0.5):** Faster responses, good for quick conversations * **Higher (0.7-0.9):** Waits longer, better for detailed responses * **Auto:** Let the model decide based on conversation context Only visible when using Speech-to-Speech or Dualplex modes. **Pro tip:** Start with default VAD settings and adjust based on real call testing. Increase endpoint sensitivity if callers get cut off, decrease if responses feel slow. # Post-call Actions Source: https://docs.agents.fontumi.ai/ai-assistants/settings/post-call-actions Extract data from the call and send it to an app/webhook for automation workflows. Configure what happens after calls end - extract specific information from conversations and send it to external systems for further processing. ## Overview Post-call actions automatically: * Extract structured data from conversations using AI * Send extracted variables to webhooks for automation * Trigger workflows in connected platforms * Update CRM records and databases * Enable complex automation scenarios ## Post-call Variables Define the variables that the AI will extract from the call and send to a webhook. ### Variable Configuration Configure which information the AI should extract from each conversation: Create variables that the AI will identify and extract from conversations. **How extraction works:** The AI analyzes the complete call transcript and considers your system prompt context to extract the requested variables. It understands what was discussed during the call and extracts relevant information based on your variable descriptions. **Configuration:** * **Name:** Variable identifier (3-16 characters, lowercase, alphanumeric) * **Type:** Data type for the extracted value * **Description:** Clear explanation so AI understands what to extract from the conversation **Variable Types:** * **String:** Text values (names, addresses, comments) * **Number:** Numeric values (quantities, prices, scores) * **True/False:** Boolean values (yes/no answers, objectives achieved) Every assistant includes these essential variables by default: **Status (True/False):** Whether the call objective was achieved or not **Summary (String):** Call summary in a few words You can add custom variables based on your specific use case. Common variables for different scenarios: **Sales qualification:** * `budget` (Number): Customer's budget range * `decision_maker` (True/False): Is caller the decision maker * `timeline` (String): When they need the solution * `pain_points` (String): Main challenges mentioned **Appointment booking:** * `appointment_date` (String): Preferred appointment date * `service_type` (String): Type of service requested * `contact_method` (String): Preferred contact method **Support calls:** * `issue_type` (String): Category of the problem * `urgency_level` (Number): Priority score (1-10) * `resolution_status` (True/False): Was issue resolved ### Extraction Process The AI uses sophisticated analysis to extract variables from your calls: **Data sources:** * **Complete call transcript:** Everything said by both the AI and the customer * **System prompt context:** Your assistant's objectives and instructions help guide extraction * **Variable descriptions:** Clear descriptions you provide for each variable **Analysis method:** 1. AI reviews the entire conversation transcript 2. Considers the system prompt and call objectives 3. Identifies relevant information based on variable descriptions 4. Extracts and formats data according to specified types 5. Validates extracted values before sending to webhook ### Best Practices **Variable naming:** Use lowercase, alphanumeric characters only. No spaces or special characters except underscores. **Clear descriptions:** Write descriptions that clearly explain what the AI should look for in the conversation transcript. The more specific and context-aware, the better the extraction accuracy. **System prompt synergy:** Your variable descriptions work best when they align with your system prompt objectives. If your assistant is designed for lead qualification, your variables should reflect that purpose. ## Webhook Configuration Make a request to a URL that sends the extracted variables to external systems. ### Webhook Settings **Enabled/Disabled:** Control whether webhooks are sent after calls **Default:** Disabled - Enable only when you have a webhook endpoint ready to receive data **URL endpoint:** Where to send the extracted data **Format:** Must be a valid URL **Example:** `https://automate.fontumi.ai/api/v1/webhooks/your-webhook-id` **Test functionality:** Built-in test feature sends sample data to verify connectivity **Send webhook only on completed:** * **Yes (Default):** Only send data for completed calls * **No:** Send data for all calls regardless of completion status **Include recording in webhook:** * **Yes (Default):** Include recording URL in the webhook payload * **No:** Send only extracted variables without recording link ### Webhook Payload The webhook will receive a comprehensive JSON payload containing call details, extracted variables, and transcript. For complete API documentation, see [Post-Call Webhook API](/api-reference/webhooks/post-call-webhook). **Key payload fields:** * **id:** Unique call identifier * **customer\_phone:** Customer's phone number (E.164 format) * **assistant\_phone:** Assistant's phone number * **duration:** Call duration in seconds * **status:** Call status (initiated, ringing, busy, in-progress, ended, completed, ended\_by\_customer, ended\_by\_assistant, unanswered, failed) * **created\_at/finished\_at:** ISO 8601 timestamps * **extracted\_variables:** AI-extracted data based on your post-call schema configuration (see [Post-call Variables](#post-call-variables) section above) * **input\_variables:** Variables passed before the call (see [Call Variables](/ai-assistants/settings/prompt-and-tools#call-variables)) * Includes default variables (status, summary) plus your custom variables * **transcript:** Detailed conversation transcript with timestamps * **formatted\_transcript:** Human-readable conversation format * **recording\_url:** Call recording URL (if enabled) * **lead:** Lead information (for campaign calls) * **campaign:** Campaign details and settings * Only included for calls that are part of campaigns **Example webhook payload:** ```json theme={null} { "id": 12345, "customer_phone": "+1234567890", "assistant_phone": "+1987654321", "duration": 125, "status": "completed", "extracted_variables": { "status": true, "summary": "Customer interested in product demo", "lead_quality": "high", "budget": 5000 }, "input_variables": { "customer_name": "John Doe", "product_interest": "Pro Plan" }, "transcript": [ { "text": "Hello! This is Sarah from Fontumi iAgents.", "type": "transcript", "sender": "bot", "timestamp": 1756812511.315143 }, { "text": "Hi, I'm doing well, thanks.", "type": "transcript", "sender": "human", "timestamp": 1756812514.104436 } ], "formatted_transcript": "AI: Hello! This is Sarah from Fontumi iAgents.\\nCustomer: Hi, I'm doing well, thanks.", "recording_url": "https://agents.fontumi.ai/storage/recordings/call-12345.mp4", "created_at": "2025-01-15T10:30:00.000000Z", "finished_at": "2025-01-15T10:32:05.000000Z" } ``` ### Testing Webhooks **Test before going live:** Use the "Make test request" button to send sample data to your webhook endpoint and verify it's working correctly. **Test process:** 1. Configure your variables and webhook URL 2. Save your assistant settings 3. Click "Make test request" 4. Check your webhook endpoint receives the test data 5. Verify the payload structure matches your expectations ## Integration Examples ### Our Automation Platform **Primary integration:** Use our built-in no-code automation platform for seamless workflows: * **Direct webhook processing:** No external setup required * **250+ app integrations:** Connect to CRM, email, calendars, and more * **Visual workflow builder:** Create complex automation without code * **Real-time data sync:** Instant processing of extracted variables * **Pre-built templates:** Ready-to-use workflows for common scenarios **Common automation workflows:** * **CRM updates:** Automatically update contact records in HubSpot, Salesforce, Pipedrive * **Email follow-ups:** Send personalized emails based on call outcomes * **Lead scoring:** Update lead scores based on extracted variables * **Calendar booking:** Schedule follow-up meetings automatically * **Team notifications:** Alert team members about important calls ### External Platforms **Any platform with webhook support:** * Receive webhook data from our platform * Process extracted variables in your own systems * Create custom automation workflows * Integrate with any API or service that accepts webhooks **Use cases:** * Connect to any CRM, email platform, or business tool * Send data to custom applications * Trigger workflows in third-party automation platforms * Store data in external databases or systems ### Custom Development **API endpoints:** Build custom receivers for webhook data **Database integration:** Store call data in your own systems **Business logic:** Trigger complex workflows based on extracted variables ## Testing Your Assistant After configuring your assistant settings, it's important to test thoroughly before deploying to production. ### Testing Methods **Web-based testing:** Use the "Speak with your assistant" button to test directly from your browser **Features:** * Real-time voice conversation through your web browser * Test all assistant capabilities including tools and knowledge base * No phone required - perfect for quick iterations * Immediate feedback on responses and behavior **Best for:** Quick testing during development and configuration **Real phone call testing:** Call your assistant from any phone number **Outbound assistants:** * If no specific number is set: Assistant calls from a random number * If caller ID is configured: Assistant calls from your specified number * Test the complete outbound flow including dialing and initial message **Inbound assistants:** * Call the assigned phone number directly * Test how the assistant handles incoming calls * Verify call routing and response quality **Best for:** Final testing with real phone conditions and audio quality ### Testing Checklist **Comprehensive testing:** Test all configured features including tools, knowledge base queries, variable extraction, and webhook delivery. **Essential tests:** * Voice clarity and response speed * Knowledge base integration (if configured) * Tool functionality (transfer, scheduling, etc.) * Variable extraction accuracy * Webhook delivery (check your endpoint receives data) * Edge cases and error handling ## Web Widget Integration Configure your assistant to work as a web widget on your website for seamless customer interactions. ### Widget Configuration **Easy integration:** Add your AI assistant to any website with a simple code snippet **Features:** * **Voice chat:** Customers can speak directly to your assistant * **Text fallback:** Option for text-based conversations * **Customizable appearance:** Match your brand colors and styling * **Mobile responsive:** Works on all devices and screen sizes **Smart interactions:** The widget adapts to your assistant configuration **Capabilities:** * Uses same knowledge base and tools as phone assistant * Supports all configured languages * Extracts same post-call variables * Sends webhooks for web conversations * Respects same system prompt and personality **Common applications:** **Customer support:** 24/7 automated support on your website **Lead qualification:** Qualify visitors before they contact sales **Appointment booking:** Allow visitors to schedule directly through the widget **FAQ handling:** Answer common questions instantly **Product demos:** Guide visitors through your product features For detailed testing guides and widget integration instructions, see our [Testing Your Assistant](/ai-assistants/testing) documentation. For detailed webhook integration guides and examples, see our [Automation documentation](/automation/overview). # Prompt & Tools Source: https://docs.agents.fontumi.ai/ai-assistants/settings/prompt-and-tools Configure your assistant's knowledge base, tools, variables, and system prompt to define its capabilities and behavior. Configure the objective of the assistant and the tools it can use during calls. ## Knowledge Base Give information to the assistant to use as a knowledge base when responding to customers. From website contents, documents, etc. ### Knowledge Base Selection Select a knowledge base store containing relevant information for the assistant to use. **Requirements:** * Must be created in your [Knowledge Bases](/knowledgebases) section first * Shows status (Active, Processing, etc.) and description * Only your own knowledge bases are available Create knowledge bases from website content, PDFs, or custom documents to give your assistant domain-specific information. For comprehensive setup guide including content types, processing status, website scraping, and troubleshooting, see the complete [Knowledge Base Guide](/conversation-design/knowledge-bases). Choose how the AI will use the knowledge base. **Recommended for most cases** Uses a function call to search for information in the knowledgebase, only when needed. More accurate and efficient. **For simple use cases** Performs a search after every customer speech. More accurate but can be slower without filler audios. **Mode availability:** Speech-to-Speech and Dualplex modes only support Function Call mode. ## Custom Mid-Call Tools Create and assign your own custom tools that AI can use **mid-call** with the customer. Build tools tailored to your specific business needs: API integrations, database queries, custom workflows, and external service calls. **Quick action:** Direct link to tool creation page. Select which custom tools this assistant can use with multiple selection, search by name/description, and real-time assignment. **Scope:** Only your own tools are available. Read the [Custom Tools documentation](/ai-assistants/custom-tools) for detailed guides on creating and configuring custom tools. ## Default Tools Choose built-in tools that AI can use **mid-call** with the customer. Route calls to multiple destination phone numbers like different people or departments according to your flow. **Use cases:** * Escalation to human agents * Department routing * Specialist handoffs **Configuration options:** * **Standard mode:** Use regular phone numbers (e.g., +1234567890) * **Advanced mode:** Use SIP URI format for SIP providers (e.g., sip:+1234567890\@sip-server) **For SIP integrations:** * Set transfer to "Advanced" mode * Use SIP URI format: `sip:number@sip-server` * Verify your SIP provider supports SIP REFER * Test with different URI formats if transfers fail **Prompt instruction:** Include in your system prompt something like "call the transfer function when the user requests to speak with someone else" to ensure the AI uses this tool appropriately. If transfers aren't working, see our [SIP Integration troubleshooting guide](/troubleshooting/sip-integration#transfer-phone-call-not-working) for detailed solutions. Ends the call when the conversation is complete. **Use cases:** * Natural conversation conclusion * Objective achieved * Customer satisfaction confirmed **Prompt instruction:** If the AI doesn't call the end call function automatically, include in your system prompt "call the hang\_up function to close the call" when the conversation should end. Easily send keypad inputs during outbound calls, enabling smooth navigation through IVR menus and automated workflows. The AI navigates using keypad buttons when calling and responding to prompts. **Use cases:** * Navigate phone menus * Enter extension numbers * Input security codes * IVR system navigation **Prompt instruction:** Include in your system prompt instructions about when to use DTMF input, such as "use the send\_dtmf tool to navigate phone menus when needed to reach the right person." For detailed information about DTMF capabilities, see [Tools & Functions](/ai-assistants/tools-and-functions#4-dtmf-input). Real-time booking scheduling integration with multiple calendar platforms. **Available integrations:** * **Cal.com:** Full setup guide available at [Cal.com Scheduling](https://agents-docs.fontumi.ai/ai-assistants/cal-com-scheduling#cal-com-appointment-scheduling) * **GoHighLevel:** Complete integration guide at [GoHighLevel Scheduling](/ai-assistants/gohighlevel-scheduling) **Use cases:** * Book appointments with calendars * Check real-time availability * Send automatic confirmation details * Sync with existing calendar systems Available when calendar integration is enabled in your platform settings. ## Call Variables Define variables that can be passed **before** making the call and used in the prompt **like **. ### Variable Configuration Create call variables to pass information to your assistant before the call starts. **Setup process:** * Define variable names and default values * Pass values when creating calls/leads or importing clients * Variables available immediately in prompts and during calls * Use for personalization and context **Configuration:** * **Variable name:** The identifier (e.g., `customer_name`) * **Default value:** Used when not passed (e.g., "John") How to use call variables in your assistant: **In system prompts:** * Reference variables with `{variable_name}` syntax * Personalize conversations dynamically * Provide context-specific information **Examples:** * `{customer_name}` for personalization ("Hello ") * `{email}` for calendar integrations * `{account_type}` for tailored responses * `{company}` for business context Ways to populate call variables: **Manual entry:** * When creating individual calls * Through campaign lead creation **Import methods:** * CSV import with variable columns * API integration with client data * Direct CRM synchronization **Automation platform integrations:** * **GoHighLevel (GHL):** Automatically pull contact data and custom fields * **Google Sheets:** Import leads with variables from spreadsheet columns * **Connect with 250+ popular tools** and platforms using our no-code platform * **Any other platform** through webhooks for custom integrations **Platform integration:** * Automatically populated from client profiles * Connected to existing customer databases * No-code automation workflows Call variables are essential for personalizing AI conversations. They allow the AI to use specific customer information during calls, making interactions more relevant and effective. ## Call Flow Configuration ### Who Speaks First? Control whether your assistant or the customer initiates the conversation. **Default behavior:** Assistant starts the conversation The AI will immediately greet the caller and begin the conversation flow as soon as the call connects. **Best for:** Most outbound scenarios, sales calls, appointment reminders **Wait for customer:** Assistant listens first If you choose "Customer", the AI will wait for the customer to speak first before responding. **Best for:** Inbound support calls, reception scenarios, reactive assistance ### Initial Message Configure the first thing your assistant says when the call begins. Write the opening message your assistant will speak at the start of each call. **Best practices:** * Keep it concise and friendly * Introduce your company/purpose clearly * Set expectations for the conversation * Use variables for personalization (e.g., `{customer_name}`) **Example:** "Hi , this is Sarah from ABC Company. I'm calling to follow up on your recent inquiry about our services. Do you have a moment to chat?" **Optional:** Upload a custom audio file instead of text-to-speech **Requirements:** * MP3 or WAV format * Clear, high-quality recording * Professional voice and tone * Matches your assistant's voice if using voice cloning **Benefits:** * Perfect pronunciation and delivery * Consistent brand voice * Professional first impression * No text-to-speech latency for opening This works best if the AI voice is cloned using the same voice used in the initial audio. See our [Initial Message guide](/ai-assistants/initial-message) for detailed best practices and examples. ## System Prompt Define the assistant's personality, objectives, and behavior guidelines. ### Prompt Configuration Write your own system prompt from scratch * Full control over assistant behavior * Tailored to specific use cases * Markdown formatting supported Start with pre-built templates * Multiple languages available * Different conversation types * Proven effective prompts ### Best Practices Clearly define the assistant's role, objectives, and constraints. **Include:** * Who the assistant represents * What they're trying to achieve * What they should/shouldn't do Define what topics and actions are off-limits. **Consider:** * Data privacy requirements * Legal compliance * Brand guidelines Provide sample conversations to guide behavior. **Examples help with:** * Tone and style * Response length * Handling objections See our [System Prompt guide](/ai-assistants/system-prompt) for detailed best practices and examples. # System Prompts Source: https://docs.agents.fontumi.ai/ai-assistants/system-prompt Learn how to create effective system prompts - the core intelligence of your AI assistant The system prompt is the most crucial component of your AI assistant. It defines your assistant's personality, behavior, knowledge, and capabilities. Think of it as the "brain" and "training manual" combined. ## Editing Options You have three ways to create and edit your system prompt: System Prompt Editing Options Chat with AI to edit your prompt. Best for quick iterations and improvements. Visual drag-and-drop editor. Best for structured, multi-path conversations. Direct text editing. Best for full control and manual fine-tuning. ## Quick Start with Templates To get started quickly: 1. Go to your [assistant settings](/ai-assistants/settings/prompt-and-tools#system-prompt) 2. Find the system prompt field 3. Click the "Templates" button nearby 4. Choose a template that matches your use case 5. Customize it for your needs ## Language Support Your system prompt can be written in any language, regardless of the spoken language setting: * Write the prompt in your preferred language * Set the spoken language separately in [assistant settings](/ai-assistants/settings/general#language-configuration) * The AI will follow the prompt's instructions while speaking in the selected language For example: * System prompt in English, spoken language set to Spanish * System prompt in German, spoken language set to French * System prompt in Chinese, spoken language set to English ## Why They Matter Your system prompt: * Shapes how the AI thinks and responds * Defines conversation boundaries * Provides essential knowledge * Controls behavior and tone * Determines handling of edge cases ## Key Components A good system prompt should include: ### 1. Role & Identity ``` You are a professional sales representative for [Company]. You specialize in [Product/Service] and have extensive knowledge of our offerings. ``` ### 2. Conversation Style ``` Maintain a friendly, professional tone. Use clear, concise language. Avoid technical jargon unless specifically asked. ``` ### 3. Key Information ``` Our main products are: - Product A ($X/month): [features] - Product B ($Y/month): [features] Current promotion: 20% off first 3 months ``` ### 4. Behavioral Guidelines ``` - Always verify customer information before discussing account details - Transfer to a human agent if the customer seems frustrated - Don't make promises about delivery dates ``` ### 5. Response Framework ``` When asked about pricing: 1. First understand their needs 2. Present relevant package options 3. Explain the value proposition 4. Share any applicable discounts ``` ## Best Practices 1. **Be Specific** * Clear instructions get better results * Include examples of good responses * Define what NOT to do 2. **Structure Matters** * Organize information logically * Use bullet points and sections * Keep related information together 3. **Test and Iterate** * Start with a basic prompt * Test various scenarios * Refine based on call recordings * Add handling for edge cases ## Common Mistakes * **Too Vague**: "Be helpful and professional" (Not specific enough) * **Too Rigid**: Scripting every possible response (Reduces natural flow) * **Information Overload**: Including unnecessary details * **Missing Guidelines**: Not specifying how to handle common situations ## Example Structure ``` # Role and Purpose [Define who the AI is and its main goals] # Core Knowledge [Essential information about products/services] # Conversation Guidelines [How to interact with customers] # Response Patterns [How to handle specific situations] # Limitations and Boundaries [What the AI should NOT do] ``` ## Testing Your Prompt 1. Make test calls covering: * Common scenarios * Edge cases * Difficult situations * Various customer personalities 2. Review and adjust: * Listen to call recordings * Check response accuracy * Verify tone consistency * Test knowledge retention ## Optimization Tips * Start with Fast Engine for quick iterations * Use call recordings to identify gaps * Add examples of good/bad responses * Include handling for unexpected questions *** **Pro Tip:** Your system prompt is a living document - regularly update it based on actual call experiences and customer interactions. # Test Chat Interface Source: https://docs.agents.fontumi.ai/ai-assistants/test-chat Test your assistant with a text-based chat interface for rapid iteration The Test Chat interface provides a quick way to test your assistant's conversation flow without making actual phone calls. ## Accessing Test Chat 1. Navigate to your assistant's page 2. Click the **"Test Assistant"** button with the chat icon 3. A chat interface will open in a slide-over panel Test Assistant Button ## How It Works The Test Chat interface simulates a conversation with your assistant: * **Text-based interaction:** Type messages instead of speaking * **Real AI responses:** Your assistant processes messages using the same logic as phone calls * **Variable testing:** Test how your assistant handles variables and data collection * **Tool execution:** See how your assistant uses configured tools and functions * **Fast iteration:** Quickly test prompt changes without phone calls ## When to Use Test Chat **Ideal for:** * Testing conversation flow and logic * Verifying prompt behavior and responses * Debugging variable collection * Testing tool/function calls * Rapid prompt iteration **Not suitable for:** * Testing voice quality or speech recognition * Testing call transfers (use phone testing) * Testing phone-specific features * Evaluating conversation timing and pacing ## Testing Workflow **1. Test conversation flow with chat interface:** * Verify your assistant understands user intents * Check that variables are collected correctly * Ensure tools execute as expected * Validate response quality **2. Test voice quality with Web Call:** * Verify voice clarity and tone * Check response timing and pacing * Test interruption handling **3. Final testing with Phone Call:** * Test all features including call transfers * Verify real-world call quality * Test edge cases and error handling Test Chat creates conversation records that appear in your **Conversations** page, helping you review and analyze test sessions. ## Cost Considerations Test Chat interactions: * Use AI processing credits from your account balance * Are typically more cost-effective than phone testing * Allow for faster iteration with immediate feedback * Create conversation records for later review Use Test Chat for initial prompt development, then move to phone testing for final validation before deploying to production. # Testing Your Assistant Source: https://docs.agents.fontumi.ai/ai-assistants/testing Learn how to quickly test your AI assistant for both inbound and outbound calls There are multiple ways to test your AI assistant, depending on whether you want to test inbound or outbound functionality and your preferred testing method. ## Web Call Testing **Browser-based voice testing** with the "Speak with your assistant" button: 1. Go to your assistant dashboard 2. Click "Speak with your assistant" button 3. Test voice conversation directly in your browser 4. Evaluate voice quality, response timing, and conversation flow **Pros:** * Instant voice testing without phone setup * Tests voice components and timing * Easy access from dashboard **Cons:** * Call transfer functionality will not work during web testing **Cost Notice:** Web call testing deducts 1 minute from your account balance per minute of call for AI processing costs. This is not free testing. ## Phone Call Testing **Real phone call testing** for outbound capabilities: 1. Go to your assistant's settings 2. Find the "Speak to your assistant" purple button 3. Enter your phone number 4. Click to initiate the test 5. You'll receive a call from your AI assistant immediately ## Testing Inbound Calls **Real phone call testing** for inbound functionality: 1. Make sure you have a phone number assigned to your assistant 2. Call that number from any phone 3. Your AI assistant will answer and handle the call ## Testing Best Practices **Start with web calls** for quick iteration: * Test basic conversation flow and voice quality * Verify prompt behavior and response timing * Note: Call transfers won't work in web testing **Move to phone calls** for comprehensive testing: * Test all tools including call transfers * Verify real-world call quality and timing * Test edge cases and interruption handling **Cost Management:** * Both web and phone testing use account balance * Plan your testing sessions to manage costs * Use text-based prompt testing first when possible *** **Tip:** Save your AI's phone number in your contacts to easily make inbound test calls whenever needed. # Tools & Functions Source: https://docs.agents.fontumi.ai/ai-assistants/tools-and-functions Explore the built-in tools and functions that enhance your AI assistant's capabilities during calls Fontumi iAgents offers built-in "tools" that your AI assistant can use during a call. These help you shape the conversation flow and automate actions like transferring calls or scheduling appointments. ## 1. End Call Tool * **Purpose**: Tells the AI to politely wrap up the conversation. * **How It Works**: You can specify in the system prompt or logic, for instance: "If the user says `goodbye`, end the call." * **Configuration**: Enable in [Prompt & Tools settings](/ai-assistants/settings/prompt-and-tools#default-tools) and define conditions in your system prompt that should trigger the end call. ## 2. Transfer Tool * **Purpose**: Moves the caller from the AI assistant to a human agent or external phone number. * **Use Cases**: Warm leads on a sales call, escalations on a support call, etc. * **Configuration**: Set up in [Prompt & Tools settings](/ai-assistants/settings/prompt-and-tools#default-tools) by adding the phone number or department the call should go to, and optionally a short hold message. ## 3. Appointment Scheduler * **Purpose**: Lets the AI check your calendar availability and book appointments automatically. * **Available Integrations**: Cal.com, GoHighLevel, and Calendly calendar systems * **Typical Flow**: 1. AI offers scheduling. 2. Caller selects date/time. 3. AI confirms and sends a confirmation (using email or SMS if configured). * **Configuration**: Set up in [Prompt & Tools settings](/ai-assistants/settings/prompt-and-tools#default-tools) with your calendar integration. ## 4. DTMF Input * **Purpose**: Allows the AI to send keypad inputs during calls to navigate phone menus, IVR systems, and automated workflows. * **How It Works**: The AI can press phone keypad buttons (0-9, \*, #) when encountering automated systems or menu prompts. * **Use Cases**: * Navigate through company phone menus * Enter extension numbers to reach specific departments * Input security codes or account numbers * Bypass IVR systems to reach human agents * **Configuration**: Enable in [Prompt & Tools settings](/ai-assistants/settings/prompt-and-tools#default-tools) and include instructions in your system prompt about when to use DTMF. ## 5. No-Code Automation Platform * **Purpose**: After calls, the AI can trigger actions in the automation platform (like updating a CRM, sending an email, or logging results in Google Sheets). * **Configuration**: Set up triggers and actions in the [Automation Platform](/automation-platform/introduction), then link to your assistant via webhook configuration in [Post-call Actions](/ai-assistants/settings/post-call-actions#webhook-configuration). ## 6. Custom Mid-Call Tools * **Purpose**: Create your own custom API integrations that the AI can use during calls. * **Use Cases**: Check inventory, verify customer data, fetch real-time information, or integrate with your own systems. * **Configuration**: Set up in [Prompt & Tools settings](/ai-assistants/settings/prompt-and-tools#custom-mid-call-tools) by defining API endpoints, parameters, and when the AI should use them. * For detailed setup instructions and examples, see our [Custom Mid-Call Tools Guide](/ai-assistants/custom-tools). *** **Note:** Tools can be combined. For instance, the AI can use a custom tool to check availability, then schedule an appointment, and finally transfer to a human agent if needed. # Voice Selection & Voice Cloning Source: https://docs.agents.fontumi.ai/ai-assistants/voice-selection Learn how to select built-in voices or clone your own voice for your AI assistants Your AI assistant can speak with **built-in voices** or a **custom cloned voice**. Natural, realistic voices increase customer trust and engagement. ## TTS Provider Select your Text-to-Speech provider in the assistant settings. Available in **Pipeline** and **Dualplex** modes. **Available Providers:** * **ElevenLabs** - High-quality voices * **Cartesia** - Fast, low-latency synthesis The TTS Provider dropdown appears after selecting a language. ## Voice Library Each TTS provider has its own voice library. Select male/female, accent, or language based on your provider. ## Voice Cloning Clone a voice from an audio sample. Available in **Pipeline** and **Dualplex** modes. **Clone to Provider:** * **Cartesia** - Single audio file, at least 10 seconds, 1 speaker, no background noise * **ElevenLabs** - Samples over 1 minute, 1 speaker, no background noise. Max 5 minutes total. Quality over quantity. **Steps:** 1. Click "Clone voice" next to voice selector 2. Select provider (Cartesia or ElevenLabs) 3. Choose the voice language 4. Enter a name for your voice 5. Record or upload audio 6. Wait for processing 7. Select your new voice from dropdown ## Best Practices 1. **High-Quality Audio**: Clearer samples give better results 2. **Steady Delivery**: Natural tone, no abrupt changes 3. **No Background Noise**: Record in a quiet environment 4. **Legal**: Ensure permission to clone voices that aren't yours *** **Tip:** After selecting or cloning a voice, do a test call to confirm it sounds as expected. # Web Widget Source: https://docs.agents.fontumi.ai/ai-assistants/web-widget Embed your AI assistant on your website with voice and chat capabilities Add your AI assistant to any website with a customizable widget that supports voice calls, text chat, or both. ## Overview The Web Widget allows website visitors to interact with your AI assistant directly through: * **Voice conversations:** Real-time voice calls in the browser * **Text chat:** Messaging interface for text-based interactions * **Hybrid mode:** Seamless switching between voice and chat ## Accessing Widget Configuration 1. Navigate to your assistant's edit page 2. Click the **"Web widget"** button (yellow/warning color) 3. The widget configuration panel opens with live preview Web Widget Button Location Web Widget is a premium feature. Ensure your plan includes web widget access before configuration. ## Widget Modes Choose how visitors interact with your assistant: ### Voice & Chat (Recommended) Users can seamlessly switch between voice and text during conversations. **Best for:** * Maximum flexibility for users * Accessibility (voice for mobile, chat for quiet environments) * Complex interactions requiring both modes ### Chat Only Text-based messaging interface only. **Best for:** * Customer support and FAQs * Environments where voice isn't appropriate * Lead capture and qualification forms ### Voice Only Real-time voice conversations only. **Best for:** * Phone-like experience on website * Voice-first use cases * Hands-free interactions ## Configuration Options ### General Settings Widget General Configuration **Widget Mode:** Voice, Chat, or Voice & Chat **Position:** Choose from 8 positions (bottom-right, bottom-left, middle-right, etc.) **Primary Color:** Brand color for buttons and accents **Toggle Button Size:** Small or Normal **Toggle Button Style:** Simple or Animated ### Text Customization Customize all visible text to match your brand voice and language: **Header:** * Header Title (default: "AI Assistant") * Header Subtitle (default: "Ready to help you ✨") **Toggle Button:** * Button Main Text (default: "Need help?") * Button Sub Text (default: "Chat with us") **Modal (Voice Mode):** * Modal Title (default: "Ready to chat?") * Modal Description (default: "Click below to start your conversation") * Start Button Text (default: "Start Voice Chat") **Chat Interface:** * Chat Placeholder (default: "Type your message...") * Send Button Label **Voice Interface:** * Connecting Text (default: "Connecting...") * Disconnect Text (default: "Disconnect") * Error Text (default: "Connection failed. Please try again.") ### Pre-Chat Form Pre-Chat Form Configuration Collect information before starting conversations: **Form Configuration:** * Pre-form Title * Pre-form Description * Submit Button Text **Form Fields:** Add custom fields to collect data: * **Variable Name:** Internal variable name (maps to assistant variables) * **Field Label:** Display label shown to users * **Field Type:** Text, Email, Phone, or Textarea * **Required:** Make field mandatory * **Placeholder:** Placeholder text shown in the field * **Helper Text:** Optional description below the field **Variable Mapping:** Form field names automatically map to your assistant's variables, making collected data available during conversations. **Example Form Fields:** ``` Name: Full Name (required, text) Email: Email Address (required, email) Company: Company Name (optional, text) Message: How can we help? (optional, textarea) ``` ## Live Preview The configuration panel includes a live preview showing exactly how your widget will appear: * **Auto-updates:** Preview updates as you change settings * **Real interaction:** Test widget functionality in the preview * **Reset Data:** Clear stored data to test first-time visitor experience Use the "Reset Data" button to test how your widget appears to new visitors. This clears all stored preferences and form data in the preview. ## Installation ### 1. Save Configuration After customizing your widget: 1. Click **"Save widget settings"** in the configuration panel 2. Wait for confirmation notification ### 2. Get Embed Code Copy the generated embed code from the "Embed Code" section. ### 3. Add to Website Paste the script tag before the closing `` tag on your website: ```html theme={null} ``` ### 4. Verify Installation 1. Visit your website 2. The widget button should appear in the configured position 3. Click to test voice/chat functionality 4. Check that pre-chat form appears (if configured) ## Widget Behavior ### First Visit * Widget button appears in configured position * Click opens modal/chat interface * Pre-chat form displays (if configured) * After form submission, conversation starts ### Return Visits * Previous conversation state may be restored * Form data remembered (if visitor hasn't cleared cookies) * Seamless continuation of support experience ### Conversation Tracking All widget conversations appear in your [Conversations](/conversations/overview) page for review and analysis. HTTPS (SSL certificate) is required for voice functionality. HTTP sites can only use chat mode due to browser security restrictions. ## Troubleshooting For setup and configuration issues, see [Web Widget Troubleshooting](/troubleshooting/web-widget). ## Next Steps * Test widget using the live preview * Embed code on your website * Monitor conversations in the [Conversations](/conversations/overview) page # What is an AI Assistant? Source: https://docs.agents.fontumi.ai/ai-assistants/what-is-ai-assistant Understand what an AI Assistant is, its key components, and how it can help automate your phone interactions An **AI Assistant** (sometimes called an agent) is your configurable bot that speaks with customers or leads over the phone—either when they call you (**inbound**) or when your system calls them (**outbound**). ## Why Use an AI Assistant? * **Automate Common Interactions**: Answer FAQs, book appointments, or qualify leads 24/7. * **Reduce Workload**: Free your human team from repetitive tasks like verifying contact info or taking messages. * **Scalable**: One assistant can handle many calls in parallel, allowing you to grow without adding more agents. ## Key Components 1. **System Prompt**: The core instructions guiding how your assistant behaves. 2. **Initial Message**: The very first phrase the AI says (especially critical for inbound calls). 3. **Voice Settings**: Choose a built-in voice or clone your own. 4. **Tools** (Optional): Transfer, end call, scheduling, and more. *** **Next Steps** * Learn how to [Create and Edit an AI Assistant](/ai-assistants/settings/general). * Explore the various [Tools & Functions](/ai-assistants/tools-and-functions) you can add to your assistant. # Post-Call Webhook Source: https://docs.agents.fontumi.ai/api-reference/webhooks/post-call-webhook Webhook sent after a call is completed containing extracted variables and call data The Post-Call Webhook is automatically sent to your specified webhook URL after each call is completed. This webhook contains call details, extracted variables, transcript, and optionally the recording URL. ## Webhook Configuration To enable post-call webhooks: 1. Configure your assistant's webhook URL in the [assistant settings](/ai-assistants/settings/post-call-actions#webhook-configuration) 2. Enable "Post call webhook" in the [assistant configuration](/ai-assistants/settings/post-call-actions#webhook-configuration) 3. Define post-call variables that the AI should extract ## Request Format The webhook is sent as a POST request to your configured URL with the following JSON payload: ### Payload Structure Unique identifier of the call Phone number of the customer in E.164 format (e.g., "+1234567890") or null if not available Phone number used by the assistant in E.164 format or null if not available Duration of the call in seconds Final status of the call (e.g., "completed", "busy", "failed") Variables extracted by AI based on your post-call schema configuration Whether the call objective was achieved Call summary in a few words Any custom variables you defined in the assistant configuration Variables that were passed to the assistant before the call started Full transcript of the conversation URL to download the call recording (only included if "Include recording in webhook" is enabled in [assistant settings](/ai-assistants/settings/post-call-actions#webhook-configuration)) ISO 8601 timestamp when the call was initiated ISO 8601 timestamp when the call was completed (uses updated\_at from the call record) Lead information (only included for campaign calls) Unique identifier of the lead Lead's phone number Variables associated with the lead Current status of the lead When the lead was created When the lead was last updated Campaign information (if available) Campaign ID Campaign name Campaign status Campaign allowed start time Campaign allowed end time Campaign allowed days Maximum concurrent calls for campaign Maximum retry attempts for leads Retry interval in minutes When the campaign was created When the campaign was last updated ```json 200 Post-Call Webhook Request theme={null} { "id": 12345, "customer_phone": "+1234567890", "assistant_phone": "+1987654321", "duration": 125, "status": "completed", "extracted_variables": { "status": true, "summary": "Customer interested in product demo", "lead_quality": "high", "next_action": "schedule_demo" }, "input_variables": { "customer_name": "John Doe", "product_interest": "Pro Plan" }, "transcript": [ { "text": "Hello! This is Sarah from Fontumi iAgents How are you today?", "type": "transcript", "sender": "bot", "timestamp": 1756812511.315143 }, { "text": "Hi, I'm doing well, thanks for calling.", "type": "transcript", "sender": "human", "timestamp": 1756812514.104436 }, { "text": "I'm calling to tell you about our new product features.", "type": "transcript", "sender": "bot", "timestamp": 1756812522.918859 }, { "text": "That sounds interesting, tell me more.", "type": "transcript", "sender": "human", "timestamp": 1756812525.234567 } ], "formatted_transcript": "AI: Hello! This is Sarah from Fontumi iAgents How are you today?\nCustomer: Hi, I'm doing well, thanks for calling.\nAI: I'm calling to tell you about our new product features.\nCustomer: That sounds interesting, tell me more.", "recording_url": "https://automate.fontumi.ai/storage/recordings/call-12345.mp4", "created_at": "2025-01-15T10:30:00.000000Z", "finished_at": "2025-01-15T10:32:05.000000Z", "lead": { "id": 789, "phone_number": "+1234567890", "variables": { "source": "website", "interest_level": "high" }, "status": "contacted", "created_at": "2025-01-15T09:00:00.000000Z", "updated_at": "2025-01-15T10:32:05.000000Z", "campaign": { "id": 456, "name": "Product Demo Campaign", "status": "active", "allowed_hours_start_time": "09:00", "allowed_hours_end_time": "17:00", "allowed_days": ["monday", "tuesday", "wednesday", "thursday", "friday"], "max_calls_in_parallel": 5, "max_retries": 3, "retry_interval": 60, "created_at": "2025-01-15T08:00:00.000000Z", "updated_at": "2025-01-15T08:00:00.000000Z" } } } ``` ## Webhook Settings You can configure the following options for your post-call webhook: * **Send webhook only on completed**: Only send the webhook for successfully completed calls * **Include recording in webhook**: Include the `recording_url` field in the payload * **Custom variables**: Define custom variables that the AI should extract from the conversation ## Important Notes * The `customer_phone` and `assistant_phone` fields can be `null` if the information is not available * The `recording_url` field is only included if you have enabled "Include recording in webhook" in your [assistant settings](/ai-assistants/settings/post-call-actions#webhook-configuration) * The `lead` object is only included for calls that are part of a campaign * The `extracted_variables` object will contain the variables you defined in your assistant's post-call schema configuration # Building Flows Source: https://docs.agents.fontumi.ai/automation-platform/building-flows Flow consists of two parts, trigger and actions ## Trigger The flow's starting point determines its frequency of execution. There are various types of triggers available, such as Schedule Trigger, Webhook Trigger, or Event Trigger based on specific service. ## Action Actions come after the flow and control what occurs when the flow is activated, like running code or communicating with other services. In real-life scenario: Flow Parts # Common Integrations Source: https://docs.agents.fontumi.ai/automation-platform/calls-related/common-integrations Explore popular integrations with Google Sheets, calendars, CRMs, and notification tools Below are some popular tools you can connect to Fontumi iAgents using the built-in no-code platform or direct integrations: ## 1. Google Sheets * **Import Leads**: Poll a sheet of phone numbers for an outbound campaign. * **Log Call Results**: Append transcripts or call summaries to a "Call History" sheet. ## 2. Calendars (Cal.com, Google Calendar, etc.) * **Appointment Scheduling**: The AI can suggest free slots, then create events. * **Reminders**: If a call is about an upcoming appointment, the AI can confirm or reschedule. ## 3. HubSpot / CRMs * **Lead Data**: Post-call info can be saved to a contact record. * **Status Updates**: Change lead status to "Interested" or "Requires Follow-Up" automatically. ## 4. Slack / Email Notifications * **Immediate Alerts**: If a user says "I want to cancel" or "I want to buy," trigger a Slack ping. * **Daily Summary**: Email your team a daily summary of calls, outcomes, and new leads. ## 5. Others (Facebook Leads, etc.) * Some advanced users integrate with Facebook Lead Ads or other marketing platforms to feed real-time leads into an Fontumi iAgents outbound campaign. *** **Tip:** In the Fontumi iAgents automation editor, you'll see pre-built blocks for many popular tools. If something's missing, you can often use **Webhooks** or the **API** to connect. # Automatic Tool Source: https://docs.agents.fontumi.ai/automation-platform/calls-related/iagents-tool Learn how to use triggers and actions in your AI calling flows # Automatic Tool The Automatic tool is the core component that connects your AI calling system with automation flows. It enables real-time data exchange between your AI assistants and business systems, allowing for personalized conversations and automated follow-ups. You can find the Automatic tool prominently displayed at the top of the searching sidebar when looking for either triggers or actions. ## Triggers ### Call Ended Automatic Call Ended Trigger The Call Ended trigger activates immediately after an AI call completes, providing comprehensive data about the interaction: * Complete conversation transcript with timestamps * AI assistant responses and decisions * Call duration and technical metadata * Customer information and phone number * Call outcome and sentiment analysis * Variables set during the conversation #### Configuration 1. Select "Call Ended" as your trigger 2. Choose specific AI assistant to monitor 3. Configure variable mapping ### Inbound Call Variable Injection This powerful trigger activates before your AI assistant picks up an inbound call, allowing you to: * Fetch and inject real-time customer data * Customize AI behavior based on context * Set conversation parameters * Define AI personality traits * Provide business logic variables #### Configuration 1. Select "Inbound Call" as your trigger 2. Define required variables for AI context ## Actions ### Add Lead to Campaign Autocalls Action This action helps manage your AI calling campaigns by: * Creating new leads from extenal tools like Sheets, Hubspot, Facebook leads * Assigning leads to specific AI campaigns * Adding context for future calls #### Configuration 1. Select target AI campaign 2. Map contact details from trigger data 3. Add custom attributes for AI context ### Return Variables This action is crucial for inbound calls, returning context that gets injected into the AI's prompt: * Customer profile and preferences * Conversation history summary * Business rules and constraints * Custom AI behavior flags * Dynamic response templates #### Configuration 1. Structure response JSON 2. Map customer data to variables 3. Set AI conversation parameters 4. Configure timeout handling ## Example Usage ### Post-Call Lead Management ```javascript theme={null} Trigger: AI Call Ended ↓ Extract conversation insights ↓ Update Hubspot record ↓ Add to follow-up campaign if qualified ``` ### Intelligent Inbound Routing ```javascript theme={null} Trigger: Inbound Call to AI ↓ Fetch customer profile from CRM ↓ Get interaction history ↓ Return enriched context for AI prompt ``` ## Best Practices 1. **Variable Injection Performance** * Keep processing under 2 seconds * Set sensible defaults 2. **Data Structure** * Follow AI prompt requirements * Validate all variables * Structure nested objects clearly * Document custom fields 3. **Error Handling** * Provide fallback values * Log injection failures * Monitor response times * Handle missing data gracefully # Sending SMS Source: https://docs.agents.fontumi.ai/automation-platform/calls-related/sms-capabilities Learn how to send SMS messages using the automation platform and SMS-capable numbers If your rented or custom-provisioned number supports SMS capabilities, you can leverage the automation platform to send text messages: ## 1. SMS Actions * Send confirmation messages after calls * Deliver follow-up information or links * Send appointment reminders * Provide quick updates or notifications ## 2. Configuration 1. Ensure your phone number is SMS-capable 2. Use the "Send SMS" action in your automation flow 3. Configure message template and variables 4. Set up triggers (e.g., after call completion) ## 3. Best Practices * Keep messages concise and professional * Include opt-out instructions if required by local laws * Test SMS delivery before large campaigns * Monitor delivery rates and costs *** **Note:** SMS capability depends on your phone number's region and type. Contact support to confirm if your number supports texting. # Debugging Runs Source: https://docs.agents.fontumi.ai/automation-platform/debugging-runs Ensuring your business automations are running properly You can monitor each run that results from an enabled flow: 1. Go to the Dashboard, click on **Runs**. 2. Find the run that you're looking for, and click on it. 3. You will see the builder in a view-only mode, each step will show a ✅ or a ❌ to indicate its execution status. 4. Click on any of these steps, you will see the **input** and **output** in the **Run Details** panel. The debugging experience looks like this: Debugging Business Automations # Introduction Source: https://docs.agents.fontumi.ai/automation-platform/introduction Learn How to Automate Your AI Call Workflows with Fontumi iAgents # Automation Platform The Fontumi iAgents Automation Platform helps you create powerful AI call automation workflows without coding. Build flows that enhance your AI calling system by processing variables before calls, handling post-call actions, and creating seamless integrations with your existing tools. Flow Builder ## Key Features ### AI Call-Based Triggers 1. **Call Ended Trigger** * Activates immediately when an AI call completes * Access full conversation transcript and AI responses * Use call duration, status, and detailed metadata * Perfect for post-call automation like CRM updates * Trigger follow-up actions based on call outcomes 2. **Inbound Call Variable Injection** * Triggers before AI assistant picks up the call * Enriches AI context with real-time customer data * Customizes AI behavior based on caller information * Returns variables that get injected into AI prompts * Enables personalized conversation flows ### Essential Actions 1. **Hubspot Integration** * Update contact records with call outcomes * Create new contacts from inbound calls * Sync conversation insights to CRM * Track AI interaction history * Automate lead qualification 2. **Campaign Management** * Add qualified leads to AI calling campaigns * Schedule AI follow-up calls * Manage call priorities based on outcomes * Track conversion rates per campaign * Automate campaign assignments 3. **External Systems** * Send post-call summary emails * Update spreadsheets with call data * Trigger webhooks for custom integrations * Connect with your business tools * Automate multi-step workflows ## How It Works 1. **Choose Your Call Trigger** * "Call Ended" for post-conversation automation * "Inbound Call" for real-time AI context injection 2. **Configure Call Variables** * Map AI conversation data and transcripts * Access caller details and history * Define AI routing logic * Set up custom conversation variables 3. **Add Smart Actions** * Update CRM with call outcomes * Send automated notifications * Schedule follow-up activities * Return enriched context to AI ## Example Use Cases ### Intelligent CRM Update ```javascript theme={null} Trigger: AI Call Ended ↓ Process Conversation Insights ↓ Update Hubspot Contact ↓ Schedule Next AI Interaction ``` ### Smart Inbound Call Handling ```javascript theme={null} Trigger: Inbound Call to AI ↓ Lookup Customer in Hubspot ↓ Return Enriched Context ↓ AI Assistant Personalizes Conversation ``` # Technical limits Source: https://docs.agents.fontumi.ai/automation-platform/known-limits Technical limits for flows execution ### Overview ### Flow Limits * **Execution Time**: Each flow has a maximum execution time of **600 seconds (10 minutes)**. Flows exceeding this limit will be marked as a timeout. * **Memory Usage**: During execution, a flow should not use more than **128 MB of RAM**. ### File Storage Limits * **Maximum File Size**: 10 MB ### Data Storage Limits Some pieces utilize the built-in key store, such as the Store Piece and Queue Piece. The storage limits are as follows: * **Maximum Key Length**: 128 characters * **Maximum Value Size**: 512 KB # Passing Data Source: https://docs.agents.fontumi.ai/automation-platform/passing-data Using data from previous steps in the current one ## Data flow Any flow is a vertical diagram that **starts with a trigger step** followed by **any number of action steps**. Steps are connected vertically. Data flows from parent steps to the children. Children steps have access to the output data of the parent steps. ## Example Steps