# Introduction

Welcome to Dapta! We are a platform to build automations with Artificial Intelligence.

**Dapta** is an all-in-one, user-friendly platform for developing and deploying AI agents and automations.

{% hint style="info" %}
Here you will find guides to get started with Dapta, from the most basic to the most complex to implement your projects.<br>

If you have problems you can always find us at: <support@daptatech.com>
{% endhint %}

## Quick Start

{% content-ref url="/pages/NZY77oCuxbPhXVxuMDdZ" %}
[How to create an account in Dapta?](/fundamentals/how-to-create-an-account-in-dapta)
{% endcontent-ref %}

## Demo Overview

Got 2 minutes? Check out a video overview of our product:

{% embed url="<https://www.youtube.com/watch?v=SyGGzU4RvHY>" %}


# Dapti: Your AI Assistant

Dapti is your AI assistant inside Dapta. Ask questions in natural language to analyze performance, create and improve agents, build automations, manage your account, and more, all from a single chat i

**Dapti** is the AI assistant built into Dapta. Instead of clicking through menus to find what you need, you can just ask. Dapti understands your workspace, your agents, your data, and the entire Dapta platform, and helps you turn that into insights and action.

<figure><img src="/files/LNP901CA8U2k9cm5Kt6Q" alt="Dapti welcome screen with greeting, quick action buttons, chat input, integrations, and active conversations"><figcaption><p>The Dapti welcome screen, with quick actions, a chat input, connected tools, and your recent conversations.</p></figcaption></figure>

{% hint style="info" %}
Dapti is currently in **Beta**. Features and capabilities continue to evolve as we improve the experience.
{% endhint %}

***

## What Dapti Can Do

Dapti is more than a chatbot. It is a working partner that can read your data, take action on your behalf, search the web, and walk you through anything in Dapta. Here is what that looks like in practice:

### Analyze your performance

Ask Dapti to pull call statistics, connection rates, sentiment trends, outcomes, qualified leads, and the best times to call. Get a full agent report in one question, or zoom in on a single call. Compare your performance against privacy-safe industry benchmarks. Evaluate the maturity of your account against a structured framework and get a prioritized action plan.

### Create and improve agents

Build a new voice agent or text agent in a few turns of conversation. Improve an existing prompt, change voice speed and tone, adjust how the agent handles interruptions, manage post-call output variables, and calibrate behavior through iterative testing. Connect WhatsApp to a text agent, or link a voice agent to a chat widget.

### Automate your workflows

Design and deploy Flow Studio automations directly from a chat. Dapti generates the flow structure, validates it, runs a test execution, and connects it to your agents. Once it works, ask Dapti to schedule it on any cadence you want.

### Schedule recurring tasks

Tell Dapti to send you a daily call report, a weekly performance summary, or to run any prompt on a schedule. Dapti will fire the same conversation at the time you specify and deliver the result however you prefer.

### Research the web

Ask Dapti to search the web, read external URLs, look up best practices, or research a topic. Dapti can generate a downloadable Word document with the results.

### Manage your business

Check your credit balance, review usage, understand your subscription, and handle commercial needs like updating payment methods, downloading invoices, booking a sales demo, canceling a plan, requesting refunds, or transferring account ownership. Dapti routes you to the right path or escalates to a human when needed.

### Get answers and tutorials

Ask "how do I..." questions and Dapti will search Dapta's documentation and suggest the right Academy video with the exact timestamp. Stuck on something? Open a support ticket from the chat.

***

## How Dapti Helps You Work

A few things make Dapti different from a generic AI assistant:

* **Natural language**: ask in plain English, Spanish, or any language you write in. Dapti responds in the same language you used.
* **Workspace-aware**: Dapti automatically knows which workspace you are in and scopes every answer to your data.
* **Image-aware**: drop a screenshot of a chart, error, or configuration and Dapti will analyze it directly.
* **Interactive**: when there is a choice to make, Dapti presents buttons, cards, and confirmations inside the chat instead of just text.
* **Linked**: agent names, call IDs, and resources in Dapti's responses are clickable and take you straight to the right page in Dapta.
* **Private**: Dapti can only see data in your current account. It cannot access other companies' workspaces, ever.

***

## Start Here

New to Dapti? These two pages cover everything you need to begin.

{% content-ref url="/pages/ZlEtvQUx2YZA8qqkQtsb" %}
[Getting Started with Dapti](/dapti/getting-started)
{% endcontent-ref %}

{% content-ref url="/pages/01v2oqCpyko6kA3SQ8uv" %}
[Interface Guide](/dapti/interface-guide)
{% endcontent-ref %}

***

## Explore Capabilities

Each page below walks through example prompts and what to expect in the response.

{% content-ref url="/pages/tGdZKRq1oCqpksmxm3rK" %}
[Capabilities](/dapti/capabilities)
{% endcontent-ref %}

### Build & Improve Agents

{% content-ref url="/pages/O5M0qkWH3Xt43SlXnHnk" %}
[Voice Agents](/dapti/capabilities/voice-agents)
{% endcontent-ref %}

{% content-ref url="/pages/MzogOBuvpNDcwcSMQe39" %}
[Text Agents](/dapti/capabilities/text-agents)
{% endcontent-ref %}

### Analyze Performance

{% content-ref url="/pages/ITt1P6qAQhK8f6FgbVFk" %}
[Call Analytics](/dapti/capabilities/call-analytics)
{% endcontent-ref %}

{% content-ref url="/pages/9VV2mFTv81FnCZ0y12C3" %}
[Account Evaluation](/dapti/capabilities/account-evaluation)
{% endcontent-ref %}

{% content-ref url="/pages/8wVES3iaqOWdKUGLxUjn" %}
[Industry Benchmarks](/dapti/capabilities/industry-benchmarks)
{% endcontent-ref %}

### Automate & Schedule

{% content-ref url="/pages/YqBTi7hYBrv2edraanBJ" %}
[Flow Studio](/dapti/capabilities/flow-studio)
{% endcontent-ref %}

{% content-ref url="/pages/Dgtsw9D6WGPWhpK6Eoyq" %}
[Scheduled Tasks](/dapti/capabilities/scheduled-tasks)
{% endcontent-ref %}

### Manage Your Business

{% content-ref url="/pages/AAvv9wLuzQ2ZGvTY9w6W" %}
[Sales Meetings](/dapti/capabilities/sales-meetings)
{% endcontent-ref %}

{% content-ref url="/pages/SVbyMomeBBz3EjauEFly" %}
[Billing & Credits](/dapti/capabilities/billing-and-credits)
{% endcontent-ref %}

{% content-ref url="/pages/UjlkeeYDNhNUVMDiFvdf" %}
[Commercial Support](/dapti/capabilities/commercial-support)
{% endcontent-ref %}

### Research

{% content-ref url="/pages/t9cOTETVuHh9eobmhtII" %}
[Web Research](/dapti/capabilities/web-research)
{% endcontent-ref %}

***

## Reference & Tips

{% content-ref url="/pages/z2MqYMcg82nfTMVD8SSU" %}
[Use Cases](/dapti/use-cases)
{% endcontent-ref %}

{% content-ref url="/pages/WlLQa9OkMJ9pDvj852NH" %}
[Privacy & Scope](/dapti/privacy-and-scope)
{% endcontent-ref %}

{% content-ref url="/pages/XgNL8X3CGabWk1aDE5X4" %}
[Tips & Prompting](/dapti/tips-and-prompting)
{% endcontent-ref %}


# Getting Started with Dapti

Open Dapti for the first time, send your first message, and learn what to expect from Dapti's responses.

This page walks you through opening Dapti, sending your first message, and understanding how Dapti responds. If you have never used Dapti before, start here.

***

## Opening Dapti

You can access Dapti from two places inside Dapta:

* **The Home page** (your default landing when you log in): the entire Home page is Dapti. You can start asking questions right away.
* **The sidebar entry**: click **Dapti** in the left sidebar to open the dedicated Dapti page. Look for the small `BETA` tag next to the name.

Both entry points show the same welcome screen.

<figure><img src="/files/LNP901CA8U2k9cm5Kt6Q" alt="The Dapti welcome screen showing a personalized greeting, quick action buttons, chat input, integration shortcuts, and a list of active conversations"><figcaption><p>The Dapti welcome screen.</p></figcaption></figure>

The welcome screen has five parts:

1. **A personalized greeting** that addresses you by name.
2. **Quick action buttons** for the most common tasks: Create voice agent, Create text agent, Create a flow, and AI Note Taker.
3. **The chat input** where you can ask anything (labeled **Ask Dapti anything...**).
4. **Connect your tools to Dapta**: shortcuts to link integrations like Google Sheets, HubSpot, Google Calendar, WhatsApp, and Gmail.
5. **Active conversations**: a list of your recent chats so you can pick up where you left off.

***

## Asking Your First Question

Type any question into the **Ask Dapti anything...** input and press **Enter** or click the send icon on the right.

{% hint style="info" %}
Dapti understands plain English, Spanish, and any other language you write in. No special syntax or commands needed.
{% endhint %}

You can also:

* **Click a quick action button** to start with a pre-filled prompt for that task.
* **Click an active conversation** to resume an earlier chat with full history.
* **Attach an image** using the paperclip icon next to the **Dapti** dropdown. Dapti can analyze screenshots, charts, and configurations.

As soon as you send a message from the Home page, Dapti automatically moves you to the dedicated `/dapti` page, where the conversation continues.

***

## Anatomy of a Response

When Dapti works on your question, several things happen on screen. Here is what each part means.

### 1. The thinking indicator

While Dapti is reasoning through your question, you will see a **thinking indicator** that shows a brief description of the current step. For example: *"The user wants to know their credit balance."*

<figure><img src="/files/8RbR97yQ8yWHG81a3kvw" alt="Dapti mid-response showing the user&#x27;s question, the Dapti label, a reasoning line, and a loading spinner"><figcaption><p>Dapti reasoning through a question.</p></figcaption></figure>

The reasoning text updates as Dapti makes progress. You can stop a response at any time by clicking the **stop** button (the square icon) inside the chat input.

### 2. The collapsed reasoning summary

Once Dapti finishes, the thinking collapses into a single line at the top of the response: **Thought for Ns**. Click the arrow next to it to expand the full reasoning and see how Dapti approached your question.

### 3. The response

Below the thinking summary, Dapti presents the answer.

<figure><img src="/files/DQPzoDkRLBa5CnKR99pg" alt="A complete Dapti response showing the collapsed thinking summary, an intro line, two formatted tables (credit balance and usage breakdown), summary text with bold highlights and inline links, an interactive button, and a row of message action icons"><figcaption><p>A complete Dapti response with tables, links, an interactive button, and message actions.</p></figcaption></figure>

Responses can include:

* **Formatted text** with bold highlights and bullet points.
* **Tables** for structured data, like credit balances or call statistics.
* **Inline links** to agents, calls, flows, or other resources in Dapta. Click any link to jump directly to that page in the admin panel.
* **Interactive buttons** that take you to the relevant section (in this example, the **Billing & Plans** button opens your subscription page).
* **Suggested follow-ups** when Dapti has more it can show you on the same topic.

### 4. Message actions

At the bottom of every Dapti response, you will see a row of icons.

<figure><img src="/files/rVuwdCvkJiigwkmrwYBd" alt="A Dapti response showing the Dapti label, a Thought for 1s indicator, the response text, and a row of five message action icons: thumbs up, thumbs down, copy, download, and pin"><figcaption><p>Message actions appear under every Dapti response.</p></figcaption></figure>

* **👍 / 👎**: tell Dapti whether the response was helpful. If you click 👎, Dapti will ask for an optional reason so the team can improve.
* **📋 Copy**: copy the response to your clipboard.
* **⬇️ Download**: save the response as a file.
* **📌 Pin**: pin the message for later reference.

***

## Continuing the Conversation

After Dapti responds, you can keep going in the same chat by typing another question. Dapti remembers what you have already discussed in this conversation and uses it for context.

To start fresh, click **New Chat** in the top-right corner of the page. Your previous chat is saved automatically in **History**.

***

## Next Steps

Now that you know the basics, explore more of Dapti.

{% content-ref url="/pages/01v2oqCpyko6kA3SQ8uv" %}
[Interface Guide](/dapti/interface-guide)
{% endcontent-ref %}

{% content-ref url="/pages/tGdZKRq1oCqpksmxm3rK" %}
[Capabilities](/dapti/capabilities)
{% endcontent-ref %}

{% content-ref url="/pages/XgNL8X3CGabWk1aDE5X4" %}
[Tips & Prompting](/dapti/tips-and-prompting)
{% endcontent-ref %}


# Interface Guide

A field guide to every part of the Dapti chat interface: the home page, the chat input, conversation history, the activity panel, message actions, and the feedback form.

This page is a quick reference to every element of the Dapti interface. If you are new to Dapti, start with the [Getting Started](/dapti/getting-started) page first.

***

## The Home Page

When you log in to Dapta, you land on the Home page. The Home page **is** Dapti: a personalized greeting, quick-action buttons, the chat input, your active conversations, and shortcuts to connected tools.

<figure><img src="/files/LNP901CA8U2k9cm5Kt6Q" alt="The Dapti home page showing the greeting, four quick action buttons, the chat input, integration shortcuts, and a list of active conversations"><figcaption><p>The Dapti home page.</p></figcaption></figure>

### Quick action buttons

Four shortcuts to the most common tasks. Each one starts a Dapti conversation pre-filled for that workflow.

| Button                     | What it does                                                    |
| -------------------------- | --------------------------------------------------------------- |
| **🎙️ Create voice agent** | Walks you through creating a new voice agent with Dapti's help. |
| **💬 Create text agent**   | Walks you through creating a new text or chat agent.            |
| **🔀 Create a flow**       | Opens the Flow Studio creation flow inside Dapti.               |
| **📝 AI Note Taker**       | Sets up the AI Note Taker to join your calendar meetings.       |

### Active conversations

Your recent Dapti chats, listed by date. Click any item to resume the conversation with full history.

### Connect your tools to Dapta

A row of integration shortcuts (Google Sheets, HubSpot, Google Calendar, WhatsApp, Gmail, and more) for linking external services to Dapta. Click any icon to start connecting that tool.

***

## The Chat Input

The chat input is where you talk to Dapti. It is present on both the Home page and inside any conversation.

It has two controls:

* **Paperclip** (left): attach an image to your message. Dapti can analyze screenshots, charts, dashboards, and configurations.
* **Send icon** (right): send your message. You can also press **Enter**.

While Dapti is responding, the send icon turns into a **stop button** (a square). Click it to interrupt the response.

***

## Inside a Conversation

Once you send a message from the Home page, Dapti moves you to the dedicated conversation view at `/dapti`. A new top bar appears.

<figure><img src="/files/b2cTYu1XVw3zeZAHZMCk" alt="Top bar of a Dapti conversation showing the Dapti BETA title on the left and New Chat plus History buttons on the right"><figcaption><p>The conversation top bar.</p></figcaption></figure>

* **New Chat**: start a fresh conversation. The current chat is saved automatically in **History**.
* **History**: open the conversation history popover.

***

## Chat History

Click **History** in the top right to open the history popover. It is a floating panel anchored to the History button.

<figure><img src="/files/il5DZx9eaE4jItF5oy63" alt="The Dapti history popover showing a search bar and a list of past conversations grouped by date"><figcaption><p>The conversation history popover.</p></figcaption></figure>

The popover has:

* **A search bar** for finding past conversations by keyword.
* **Date-grouped sections** (Last 30 days, Older) listing your conversations.
* **Tabs at the top** if your account has access to more than one assistant. Each tab shows the conversations for that assistant.

Click any conversation to load it and continue chatting.

***

## The Activity Panel

While Dapti is reasoning through your question, the conversation shows a **thinking indicator** above the response. Once Dapti is done, the indicator collapses to a single line: **Thought for Ns ›**.

Click that line to open the **Activity panel** on the right side of the screen. The panel shows Dapti's plain-English reasoning, step by step, with a green check next to each completed step.

<figure><img src="/files/RddXNyAbxSAhrHexPmoF" alt="A Dapti conversation with the Activity panel open on the right, showing step-by-step plain-English reasoning ending with Thought for 35s Done"><figcaption><p>The Activity panel showing Dapti's reasoning.</p></figcaption></figure>

The Activity panel is read-only. Close it by clicking the **X** in the top-right corner of the panel.

{% hint style="info" %}
The Activity panel never shows internal tool names, database queries, or technical implementation details. It is written for non-technical readers.
{% endhint %}

***

## Message Actions

At the bottom of every Dapti response, you will see a row of icons.

<figure><img src="/files/rVuwdCvkJiigwkmrwYBd" alt="A close-up of the message action icons: thumbs down highlighted in red, copy, download, and pin"><figcaption><p>Message actions appear under every response.</p></figcaption></figure>

| Icon               | What it does                                               |
| ------------------ | ---------------------------------------------------------- |
| **👍 Thumbs up**   | Mark the response as helpful.                              |
| **👎 Thumbs down** | Mark the response as not helpful. Opens the feedback form. |
| **📋 Copy**        | Copy the response to your clipboard.                       |
| **⬇️ Download**    | Save the response as a file.                               |
| **📌 Pin**         | Pin the message for later reference.                       |

Selecting **👍** or **👎** highlights the icon to confirm your selection. You can change your mind by clicking the other option.

***

## The Feedback Form

When you click **👎**, a **Share feedback** panel appears under the response.

<figure><img src="/files/ZHo3kxrqlMg7pul6TxPz" alt="The Share feedback panel showing five reason chips (Incorrect or incomplete, Not what I asked for, Slow or buggy, Safety or legal concern, Other), an optional text area, and a Submit button"><figcaption><p>The feedback panel that appears when you click thumbs down.</p></figcaption></figure>

The panel offers five reason chips:

* **Incorrect or incomplete**
* **Not what I asked for**
* **Slow or buggy**
* **Safety or legal concern**
* **Other**

You can also add free-form details in the optional text area. Click **Submit** to send your feedback to the Dapta team.

{% hint style="success" %}
Your feedback directly shapes how Dapti improves. Even a quick reason chip without details is helpful.
{% endhint %}

***

## Sidebar Navigation

The left sidebar provides access to every area of the Dapta platform. Click the toggle at the top to expand or collapse it.

When expanded, you will see:

* **Home** (Dapti)
* **Dapti** (with a `BETA` badge)
* **Voice Agents**
* **Text Agents**
* **Campaigns**
* **CRM**
* **Flow Studio**
* **Data Studio**
* **Sales Intelligence**
* **Marketing Studio**
* **Help Center**

At the bottom of the sidebar, you can switch workspaces, see your plan and credits used, and access your account.

***

## Next Steps

Now that you know your way around the interface, explore what Dapti can do.

{% content-ref url="/pages/tGdZKRq1oCqpksmxm3rK" %}
[Capabilities](/dapti/capabilities)
{% endcontent-ref %}

{% content-ref url="/pages/z2MqYMcg82nfTMVD8SSU" %}
[Use Cases](/dapti/use-cases)
{% endcontent-ref %}

{% content-ref url="/pages/XgNL8X3CGabWk1aDE5X4" %}
[Tips & Prompting](/dapti/tips-and-prompting)
{% endcontent-ref %}


# Capabilities

An index of everything Dapti can help you with, grouped by area: build and improve agents, analyze performance, automate and schedule, manage your business, and research.

Dapti's capabilities span the entire Dapta platform. Pick the area you want to explore. Each page below walks through example prompts and what to expect in Dapti's response.

{% hint style="info" %}
If you are not sure which area your question falls under, just ask Dapti in plain language. Dapti will figure out which capability to use.
{% endhint %}

***

## Build and Improve Agents

Use Dapti to create, configure, calibrate, and refine your AI agents.

{% content-ref url="/pages/O5M0qkWH3Xt43SlXnHnk" %}
[Voice Agents](/dapti/capabilities/voice-agents)
{% endcontent-ref %}

{% content-ref url="/pages/MzogOBuvpNDcwcSMQe39" %}
[Text Agents](/dapti/capabilities/text-agents)
{% endcontent-ref %}

***

## Analyze Performance

Ask Dapti to pull stats, surface trends, compare against benchmarks, and prioritize what to fix.

{% content-ref url="/pages/ITt1P6qAQhK8f6FgbVFk" %}
[Call Analytics](/dapti/capabilities/call-analytics)
{% endcontent-ref %}

{% content-ref url="/pages/9VV2mFTv81FnCZ0y12C3" %}
[Account Evaluation](/dapti/capabilities/account-evaluation)
{% endcontent-ref %}

{% content-ref url="/pages/8wVES3iaqOWdKUGLxUjn" %}
[Industry Benchmarks](/dapti/capabilities/industry-benchmarks)
{% endcontent-ref %}

***

## Automate and Schedule

Build automations and put recurring work on autopilot.

{% content-ref url="/pages/YqBTi7hYBrv2edraanBJ" %}
[Flow Studio](/dapti/capabilities/flow-studio)
{% endcontent-ref %}

{% content-ref url="/pages/Dgtsw9D6WGPWhpK6Eoyq" %}
[Scheduled Tasks](/dapti/capabilities/scheduled-tasks)
{% endcontent-ref %}

***

## Manage Your Business

Track sales conversations, billing, and account operations in one place.

{% content-ref url="/pages/AAvv9wLuzQ2ZGvTY9w6W" %}
[Sales Meetings](/dapti/capabilities/sales-meetings)
{% endcontent-ref %}

{% content-ref url="/pages/SVbyMomeBBz3EjauEFly" %}
[Billing & Credits](/dapti/capabilities/billing-and-credits)
{% endcontent-ref %}

{% content-ref url="/pages/UjlkeeYDNhNUVMDiFvdf" %}
[Commercial Support](/dapti/capabilities/commercial-support)
{% endcontent-ref %}

***

## Research

Dapti can search the web, read external pages, and generate downloadable research documents.

{% content-ref url="/pages/t9cOTETVuHh9eobmhtII" %}
[Web Research](/dapti/capabilities/web-research)
{% endcontent-ref %}

***

## Don't See What You're Looking For?

Browse the use-case cookbook for practical example prompts grouped by intent.

{% content-ref url="/pages/z2MqYMcg82nfTMVD8SSU" %}
[Use Cases](/dapti/use-cases)
{% endcontent-ref %}


# Voice Agents

Use Dapti to create voice agents conversationally, improve prompts, and tune voice settings without ever leaving the chat.

Dapti can build and refine voice agents for you. Instead of clicking through the Voice Agents builder yourself, you describe what you want in plain language and Dapti handles the configuration. Below are three of the most common things you can ask.

{% hint style="info" %}
Dapti always proposes changes before applying them. You will see an **Apply changes** button on any action that modifies an agent, so nothing happens to your live agents without your confirmation.
{% endhint %}

***

## Create a Voice Agent

Ask Dapti to create a new voice agent and it will collect just enough information to build a complete, ready-to-test agent.

**Try this prompt:**

> *I want to create a voice agent for a dental clinic. Name her Lia.*

Dapti pulls up your account, asks a few targeted questions (clinic name, what the agent does, what she should collect during calls), then builds the agent and opens a preview so you can see and test her immediately.

<figure><img src="/files/rFDlMVEvjy9c1yCpf15q" alt="A Dapti conversation creating a voice agent named Lia for a dental clinic, with the finished agent preview open on the right showing identity, objective, key information, and call flow steps"><figcaption><p>Dapti gathers context, builds the agent, and opens a side preview with the full configuration.</p></figcaption></figure>

The agent that Dapti creates includes:

* **Identity and objective**: who the agent is and what she is trying to accomplish.
* **Key information**: clinic name, location, hours, services, and any other facts the agent should know.
* **Information to collect**: the fields the agent will gather from each caller.
* **Call flow steps**: greeting, identifying the caller's need, collecting details, confirming, and closing.
* **Output variables**: data points that get captured automatically after every call (appointment scheduled, appointment date, patient type, etc.).
* **A test call button**: click **Start Web Call** in the preview to talk to your new agent right away.

***

## Improve an Existing Prompt

Once an agent is live, you can ask Dapti to improve a specific behavior. Dapti reads the current prompt, identifies the weak section, proposes a stronger version, and asks you to confirm before applying the change.

**Try this prompt:**

> *Improve my Lia prompt so it handles pricing objections better.*

<figure><img src="/files/X0og7T2a1ezhKx9DJUAa" alt="Dapti analyzing Lia&#x27;s current prompt, showing the weak pricing section, proposing an improved version with empathy, insurance reassurance, and a redirect script, with an Apply changes button at the bottom"><figcaption><p>Dapti diagnoses the weak section, proposes a stronger version, and asks for confirmation before applying.</p></figcaption></figure>

You can ask Dapti to improve any part of an agent:

* Objection handling (pricing, availability, hesitation)
* Greeting and opening lines
* How the agent responds to specific question types
* Handoff and escalation behavior
* Closing and confirmation language

{% hint style="success" %}
After Dapti applies the change, place a test call. If the new behavior is not quite right, just tell Dapti what to adjust and it will iterate.
{% endhint %}

***

## Adjust Voice Settings

Dapti can tune how the agent sounds, not just what it says. Speed, interruption sensitivity, and voice selection are all editable from chat.

**Try this prompt:**

> *Make my Lia speak a bit slower and don't interrupt callers.*

<figure><img src="/files/E4Vga9Df5A3mDx7JHC1Y" alt="Dapti showing a before/after table for Lia&#x27;s voice speed and interruption sensitivity, with an Apply changes button to update the settings"><figcaption><p>Dapti shows the current settings, proposes new values, and waits for you to confirm.</p></figcaption></figure>

Common voice-tuning requests:

| What you ask                                      | What Dapti adjusts          |
| ------------------------------------------------- | --------------------------- |
| "Speak slower" or "speak faster"                  | Voice speed                 |
| "Don't interrupt callers" or "be more responsive" | Interruption sensitivity    |
| "Use a male voice" or "switch to a Spanish voice" | Voice provider and voice ID |
| "Sound warmer" or "sound more professional"       | Tone guidance in the prompt |

{% hint style="info" %}
Voice speed and interruption sensitivity take effect on the next call. There is no need to restart anything.
{% endhint %}

***

## Next Steps

{% content-ref url="/pages/MzogOBuvpNDcwcSMQe39" %}
[Text Agents](/dapti/capabilities/text-agents)
{% endcontent-ref %}

{% content-ref url="/pages/ITt1P6qAQhK8f6FgbVFk" %}
[Call Analytics](/dapti/capabilities/call-analytics)
{% endcontent-ref %}

{% content-ref url="/pages/XgNL8X3CGabWk1aDE5X4" %}
[Tips & Prompting](/dapti/tips-and-prompting)
{% endcontent-ref %}


# Text Agents

Use Dapti to create text agents, improve prompts, and fine-tune chat behavior without leaving the conversation.

Dapti can build and refine the text agents that power your website chat widget, WhatsApp inbox, and embedded chat experiences. Describe what you need in plain language and Dapti handles the configuration. Below are three of the most common things you can ask.

{% hint style="info" %}
Dapti always proposes changes before applying them. You will see an **Apply changes** button on any action that modifies an agent, so nothing happens to your live agents without your confirmation.
{% endhint %}

***

## Create a Text Agent

Ask Dapti to create a new text agent and it will pick the right starter template, gather the business details it needs, and build the agent in one pass.

**Try this prompt:**

> *Create a text agent for a real estate brokerage. Name her Sophia.*

Dapti starts by recommending a template (Receptionist, Customer Service, Ecommerce Sales, or Custom), confirms the language, then collects the brokerage details. When it has enough, it builds the agent and opens a side-by-side preview so you can see Sophia's full configuration and start testing immediately.

<figure><img src="/files/iAoxdnfFkcYhg4Jkunjm" alt="A Dapti conversation creating Sophia, a text agent for Lone Star Realty, with the finished agent configuration open on the right showing settings, prompt, and a chat preview"><figcaption><p>Dapti picks the template, collects context, and opens a live preview of the agent it just built.</p></figcaption></figure>

The agent that Dapti creates includes:

* **Template-based foundation**: Receptionist, Customer Service, Ecommerce Sales, or a fully custom build.
* **Identity and tone**: who the agent is and how she should sound (professional, friendly, concise).
* **Company context**: brokerage name, services offered, locations served, any FAQs.
* **Greeting and conversation flow**: opening message, qualifying questions, handoff behavior.
* **Test chat panel**: send messages to your new agent right inside Dapta to see how she replies.

***

## Improve an Existing Prompt

Once an agent is live, you can ask Dapti to improve a specific behavior. Dapti reads the current prompt, identifies the weak section, proposes a stronger version, and asks you to confirm before applying.

**Try this prompt:**

> *Improve my Sophia text agent prompt so she qualifies leads better (budget, timeline, location).*

<figure><img src="/files/LD0rdYCZFgoVYWLBYDQM" alt="Dapti analyzing Sophia&#x27;s prompt and proposing a structured lead-qualification flow covering budget, timeline, location, hot/nurture lead scoring, and escalation rules, with an Apply changes button"><figcaption><p>Dapti diagnoses what is missing and proposes a structured replacement.</p></figcaption></figure>

You can ask Dapti to improve any part of a text agent:

* Lead qualification (budget, timeline, location, intent)
* Handoff and escalation rules (when to transfer to a human)
* Tone and voice (more formal, warmer, more direct)
* Conversation flow and the order it asks questions
* Closing scripts and confirmation messages

{% hint style="info" %}
If Dapti cannot find your agent on the first try, add the words "text agent" to your message. This helps Dapti search the right product area when you have both voice and text agents.
{% endhint %}

***

## Adjust Behavior

Dapti can tweak how an agent communicates, not just what it knows. Style, response length, mandatory steps, and conversation closure rules are all editable from chat.

**Try this prompt:**

> *Make Sophia (text agent) reply more concisely and always confirm the lead's preferred contact time before ending the chat.*

<figure><img src="/files/UXcehg0AMqIWqaKefDF4" alt="Dapti showing two targeted improvements for Sophia: a conciseness rule capping replies at 1 to 3 sentences and a mandatory preferred-contact-time confirmation before closing, with an Apply changes button"><figcaption><p>Dapti turns natural-language behavior requests into structured prompt changes.</p></figcaption></figure>

Common behavior-tuning requests:

| What you ask                              | What Dapti adjusts                   |
| ----------------------------------------- | ------------------------------------ |
| "Keep replies short" or "be more concise" | Style and length rules in the prompt |
| "Always confirm X before closing"         | Mandatory pre-close steps            |
| "Ask one question at a time"              | Conversation pacing rules            |
| "Escalate to a human when X"              | Handoff and escalation logic         |
| "Never discuss pricing in chat"           | Boundaries and content restrictions  |

***

## Next Steps

{% content-ref url="/pages/O5M0qkWH3Xt43SlXnHnk" %}
[Voice Agents](/dapti/capabilities/voice-agents)
{% endcontent-ref %}

{% content-ref url="/pages/ITt1P6qAQhK8f6FgbVFk" %}
[Call Analytics](/dapti/capabilities/call-analytics)
{% endcontent-ref %}

{% content-ref url="/pages/XgNL8X3CGabWk1aDE5X4" %}
[Tips & Prompting](/dapti/tips-and-prompting)
{% endcontent-ref %}


# Call Analytics

Ask Dapti to pull call stats, review individual calls, surface patterns across calls, and recommend what to improve next.

Dapti has direct access to your call data. Instead of opening dashboards and filtering manually, you ask a question in plain English and Dapti pulls the numbers, reads the transcripts, and points out what matters. Below are three of the most common analytics conversations.

{% hint style="info" %}
Dapti can read connection rates, outcomes, durations, sentiment, transcripts, and the structured variables your agents capture after each call. The more context an agent collects (appointment booked, lead qualified, etc.), the richer Dapti's analysis becomes.
{% endhint %}

***

## Get a Performance Snapshot

Ask Dapti for a high-level read on how an agent (or your whole workspace) is doing over any time range you specify: today, this week, last month, or a custom range.

**Try this prompt:**

> *How is Lia performing this week?*

Dapti pulls the call counts, success rate, average duration, and credits used. It then summarizes the numbers in plain English and points out anything worth a closer look.

<figure><img src="/files/mMG8HJmrPO9OWIr0PiaU" alt="Dapti showing a weekly summary table for Lia with total calls, connected calls, successful calls, average duration, and credits used, followed by plain-English key takeaways and a follow-up question"><figcaption><p>Dapti returns a structured metrics table and a written analysis of what stands out.</p></figcaption></figure>

Other snapshot prompts you can use:

* *"Compare Lia and Sarah this month"*
* *"How was yesterday compared to the day before?"*
* *"How are my voice agents performing today?"*
* *"What is my success rate this week?"*

***

## Review Recent Calls

When you want to see what actually happened on individual calls, ask Dapti to list them with summaries. Dapti reads each transcript and tells you what the call was about, what was collected, and where it went well or got stuck.

**Try this prompt:**

> *Show me my recent Lia calls and what each one was about.*

<figure><img src="/files/f3JkmlYLHoUHArr2OKhG" alt="Dapti showing a table of 5 recent Lia calls with time, duration, outcome, sentiment, and call ID, followed by a plain-English summary of what each call was about including a flagged friction point on call 2"><figcaption><p>Dapti pairs the structured outcome data with a human-readable summary of each conversation.</p></figcaption></figure>

You can narrow the list with any filter that makes sense to you:

* *"Show me calls from the last 24 hours"*
* *"Find calls where the caller asked about pricing"*
* *"Show me failed calls this week and explain why each one failed"*
* *"Pull the calls where sentiment was negative"*

Dapti will also flag individual calls that look worth your attention, like the name-collection refusal in the screenshot above.

***

## Surface Patterns and Recommendations

The most useful question to ask Dapti is open-ended: *what is going wrong, and what should I do about it?* Dapti reads across the calls, finds the patterns, and tells you which fix would have the biggest impact.

**Try this prompt:**

> *What patterns do you see in Lia's calls and what should I improve next?*

<figure><img src="/files/fOYN5fyWgNsJjWFDp4tK" alt="Dapti analyzing 5 calls and identifying patterns: no appointments actually booked, friction collecting patient info, no pricing answers, emergency handling works well, followed by a top-3 improvements section with specific recommendations"><figcaption><p>Dapti finds the structural issues across calls and proposes specific, prioritized improvements.</p></figcaption></figure>

In this example Dapti flagged that:

1. Every "successful" call still ended without an appointment actually being booked.
2. The agent created friction by asking for the caller's name before understanding why they called.
3. Pricing questions had no good answer.
4. Emergency handling was working correctly.

It then proposed three concrete fixes in priority order, including the option to apply the prompt changes right there in chat.

{% hint style="success" %}
Once Dapti recommends a fix, you can ask it to apply the change directly. See [Voice Agents](/dapti/capabilities/voice-agents) for how the prompt-improvement flow works.
{% endhint %}

***

## Next Steps

{% content-ref url="/pages/9VV2mFTv81FnCZ0y12C3" %}
[Account Evaluation](/dapti/capabilities/account-evaluation)
{% endcontent-ref %}

{% content-ref url="/pages/8wVES3iaqOWdKUGLxUjn" %}
[Industry Benchmarks](/dapti/capabilities/industry-benchmarks)
{% endcontent-ref %}

{% content-ref url="/pages/O5M0qkWH3Xt43SlXnHnk" %}
[Voice Agents](/dapti/capabilities/voice-agents)
{% endcontent-ref %}


# Flow Studio

Ask Dapti to design, build, deploy, list, and modify Flow Studio automations from a conversation.

Dapti can build and edit Flow Studio automations end to end: it designs the flow, checks for missing integrations, generates the JSON, validates it, deploys it to your workspace, and wires it up to a voice agent. You stay in the chat the whole time.

{% hint style="info" %}
Dapti checks dependencies before it builds. If a flow needs Google, Gmail, or another integration you have not connected yet, Dapti tells you up front and provides a one-click action to connect it.
{% endhint %}

***

## Build a New Flow

Describe what you want the automation to do and Dapti handles the rest: it picks the right nodes, fills in the configuration, validates the JSON, deploys the flow, and connects it to the right voice agent if needed.

**Try this prompt:**

> *Build a flow that saves Lia's appointment leads to a Google Sheet after every successful call.*

Dapti recognizes the agent, verifies your integrations, creates the spreadsheet, builds the flow (Trigger → Filter → Save to Sheets), validates it, deploys it, and wires the webhook to Lia. The Flow Studio canvas opens on the right so you can see the visual flow that Dapti just generated.

<figure><img src="/files/HfSWwYSeREviT13DMlAu" alt="Dapti building a flow that saves Lia&#x27;s appointment leads to a Google Sheet, with the Flow Studio visual canvas opened on the right showing the generated nodes and a status table confirming the spreadsheet was created and the flow was deployed"><figcaption><p>Dapti generates, deploys, and wires up the flow. The visual canvas opens on the right so you can see what was built.</p></figcaption></figure>

Other build prompts you can use:

* *"Create a flow that emails me a daily call summary at 8 a.m."*
* *"Build an outbound calling flow that calls all leads in my Google Sheet"*
* *"Create a flow that posts new lead info to my Slack channel"*
* *"Set up a flow that adds qualified leads to HubSpot after every call"*

{% hint style="success" %}
Dapti generates the full JSON. There is no need to drag nodes around or wire connections manually unless you want to.
{% endhint %}

***

## List and Review Your Flows

Ask Dapti for a read on what is already running in your workspace. Dapti groups flows by folder, lists their triggers and node counts, and reports execution status.

**Try this prompt:**

> *Show me my existing flows and their status.*

<figure><img src="/files/2gikt720klMgiyCm5gaE" alt="Dapti listing the flows in the workspace grouped by folder, with a table showing flow name, node count, trigger type, and creation date, plus an execution status section and a summary with suggested next steps"><figcaption><p>Dapti groups flows by folder and tells you which ones have run, which have not, and what to try next.</p></figcaption></figure>

Other review prompts you can use:

* *"How many times has my Lia flow run this week?"*
* *"Which of my flows are failing?"*
* *"Show me the version history of my Sheets flow"*
* *"What does my outbound campaign flow do?"*

***

## Modify an Existing Flow

Once a flow is live, you can ask Dapti to extend it. Dapti reads the current flow, pulls the relevant credentials and templates, generates the updated JSON with the new step in place, validates it, and redeploys.

**Try this prompt:**

> *Modify my Lia Sheets flow so it also sends me an email summary whenever a new appointment is saved.*

<figure><img src="/files/XswU3ccJCNwP5qIXwcDa" alt="Dapti confirming the flow update with a status card, a smoke-test result of HTTP 200, a table showing the 4 nodes of the rebuilt flow including the new Send Email Summary node, and a credentials table confirming both Google Sheets and Gmail are pre-configured"><figcaption><p>Dapti rebuilds the flow with the new step, runs a smoke test, and reports exactly what changed.</p></figcaption></figure>

Other modify prompts you can use:

* *"Add a Slack notification step to my Lia flow"*
* *"Filter the flow so it only fires for new patients"*
* *"Change the spreadsheet that my flow writes to"*
* *"Remove the email step from my Lia flow"*

{% hint style="info" %}
Every modification is validated and smoke-tested before it goes live. If something fails, Dapti reports the error instead of silently breaking your automation.
{% endhint %}

***

## Next Steps

{% content-ref url="/pages/Dgtsw9D6WGPWhpK6Eoyq" %}
[Scheduled Tasks](/dapti/capabilities/scheduled-tasks)
{% endcontent-ref %}

{% content-ref url="/pages/O5M0qkWH3Xt43SlXnHnk" %}
[Voice Agents](/dapti/capabilities/voice-agents)
{% endcontent-ref %}

{% content-ref url="/pages/ITt1P6qAQhK8f6FgbVFk" %}
[Call Analytics](/dapti/capabilities/call-analytics)
{% endcontent-ref %}


# Account Evaluation

Ask Dapti to evaluate your whole account: scorecard your setup, diagnose what is blocking progress, and prioritize the single next thing to do.

Beyond looking at one agent or one call, Dapti can step back and evaluate your entire Dapta account. It scorecard your configuration, surfaces gaps and inconsistencies, and tells you what to fix next, in order of impact. Below are three of the most useful evaluation conversations.

{% hint style="info" %}
Dapti pulls from everything it has access to: your agents, calls, output variables, integrations, plan, credits, contacts, and onboarding data. The richer your workspace, the sharper its analysis.
{% endhint %}

***

## Run a Full Health Check

Ask Dapti for a top-to-bottom scan of your workspace. Dapti returns a phased scorecard (Configuration → Optimization → Scale), notes what is done and what is missing, and ends with a plain-English summary and prioritized next steps.

**Try this prompt:**

> *Give me an overall health check of my Dapta account.*

Dapti will pull agents, calls, feedback, integrations, and plan data in parallel, then organize everything into a scorecard. It also catches inconsistencies, like an agent prompt that does not match the company on file.

<figure><img src="/files/0mkNygUzObB50hjGj07I" alt="Dapti running a full account health check showing Phase 1 configuration checklist with status for objective, phone number, test calls, feedback, test phone, and onboarding data, plus Account Context, an inconsistency callout flagging that the agent&#x27;s prompt references the wrong company, and a bottom-line summary"><figcaption><p>Dapti's full health check: a phased scorecard, an Account Context block, and a plain-English summary of where you stand.</p></figcaption></figure>

Other health-check prompts you can use:

* *"Score my account from 1 to 10 and explain why"*
* *"Compare my account today to last week"*
* *"What's working well in my workspace right now?"*

***

## Diagnose a Specific Gap

When you suspect something is off but you are not sure what, ask Dapti to drill in. Dapti will pull only the data relevant to the question and answer with the diagnosis plus a prioritized fix list.

**Try this prompt:**

> *Why am I not getting real customer calls yet, and what do I need to fix?*

<figure><img src="/files/Q6jjiDADPk4lRpsz8oM3" alt="Dapti diagnosing why no real calls are happening, listing 5 prioritized next steps including assigning a phone number, setting up a test number, making a real test call, creating a campaign, and a prompt-alignment warning, plus an Account Context block and a one-sentence short answer summary"><figcaption><p>Dapti diagnoses the blocking issue and returns a prioritized fix list, not a generic checklist.</p></figcaption></figure>

Other drill-down prompts you can use:

* *"Are my integrations set up correctly?"*
* *"Is Lia ready to go live with real customers?"*
* *"Why are some of my agents performing better than others?"*
* *"What changed in my account this week?"*

{% hint style="success" %}
Dapti will catch inconsistencies you might miss on your own, like a prompt that still references your old business name, an agent that has no phone number, or a flow with no executions in weeks.
{% endhint %}

***

## Get the Single Next Step

When you want one answer instead of a list, ask Dapti to pick the highest-impact action and stop. It compresses the scorecard into one recommendation, explains why it matters, and tells you exactly how to do it.

**Try this prompt:**

> *What's the single most important thing I should do this week to get value from my Dapta account?*

<figure><img src="/files/8armmqPqrbe65NyB3iGW" alt="Dapti recommending the single highest-impact next step (assign a phone number to Lia), with a brief explanation of why, a status table confirming everything else is in good shape, and a 2-minute step-by-step guide for completing the fix"><figcaption><p>Dapti picks the single highest-impact next step, explains why, and gives you exactly the steps to do it.</p></figcaption></figure>

Other prioritization prompts you can use:

* *"What should I focus on first this quarter?"*
* *"If I only have 30 minutes today, what should I do?"*
* *"What's the cheapest win I can get this week?"*

***

## Next Steps

{% content-ref url="/pages/8wVES3iaqOWdKUGLxUjn" %}
[Industry Benchmarks](/dapti/capabilities/industry-benchmarks)
{% endcontent-ref %}

{% content-ref url="/pages/ITt1P6qAQhK8f6FgbVFk" %}
[Call Analytics](/dapti/capabilities/call-analytics)
{% endcontent-ref %}

{% content-ref url="/pages/UjlkeeYDNhNUVMDiFvdf" %}
[Commercial Support](/dapti/capabilities/commercial-support)
{% endcontent-ref %}


# Industry Benchmarks

Ask Dapti to compare your account against your industry on Dapta, surface what the best performers in your vertical do differently, and translate that into concrete improvements.

Dapti has access to anonymized, aggregated benchmarks across every industry on the Dapta platform. Ask how your performance compares, what high-performing peers do that you do not yet, and how to close any gap. Below are three of the most useful benchmark conversations.

{% hint style="info" %}
Benchmarks are privacy-safe: Dapti only sees aggregated industry averages, never individual companies' data. Your numbers are also kept private from peers.
{% endhint %}

***

## Compare Against Your Industry

Ask Dapti for a side-by-side comparison of your account against your industry's averages on Dapta. Dapti pulls live benchmarks and your numbers in parallel and returns a metric-by-metric table with plain-English commentary.

**Try this prompt:**

> *How do my voice agents compare to other real estate agents on Dapta?*

<figure><img src="/files/8qOAZwHPwkUN1u2oWwtB" alt="Dapti comparing the user&#x27;s voice agent against the Real Estate and Construction industry benchmark on Dapta (185 companies), with a side-by-side table covering connection rate, success rate, average call duration, total calls, and agents deployed, plus a What This Means section analyzing each metric"><figcaption><p>Dapti returns a side-by-side comparison and explains what each metric difference actually means in your industry.</p></figcaption></figure>

Other comparison prompts you can use:

* *"Compare my account to the ecommerce average on Dapta"*
* *"How does my connection rate compare to dental clinics?"*
* *"Where am I ahead of my industry, and where am I behind?"*

***

## See What High Performers Do Differently

Beyond raw metrics, ask Dapti what the top performers in your industry are doing structurally: which use cases they cover, what kinds of agents they run, what they extract from every call, how they retire and re-engage leads.

**Try this prompt:**

> *What do the best-performing real estate companies on Dapta do that I'm not doing yet?*

<figure><img src="/files/XRjTqT2254ERq2RkVZzc" alt="Dapti listing 5 patterns that top real estate companies use including running at scale, multiple specialized agents (buyer qualifier, outbound prospector, appointment scheduler), longer richer calls, post-call output variables, and a re-engagement loop, followed by a prioritized &#x27;Your 3 Highest-Impact Next Moves&#x27; table"><figcaption><p>Dapti turns peer behavior into a prioritized action list specific to your account.</p></figcaption></figure>

Other peer-pattern prompts you can use:

* *"What use cases do dental clinics typically run on Dapta?"*
* *"What output variables do real estate top performers capture?"*
* *"What kind of campaigns work best in my industry?"*

{% hint style="success" %}
Dapti combines its industry view with what it knows about your account. The "next moves" it surfaces are gaps you specifically have, not generic advice.
{% endhint %}

***

## Translate the Gap Into Specific Improvements

When the benchmarks surface a gap (shorter calls than peers, fewer agents, lower success rate), ask Dapti to translate that gap into concrete prompt or workflow changes you can apply.

**Try this prompt:**

> *How should I structure my real estate agent's prompt to close the 32-second call duration gap with my industry peers?*

<figure><img src="/files/8lgYl4kPBlGgs7GR7Rd5" alt="Dapti diagnosing why the call duration gap exists and proposing a structured prompt rewrite covering identity and conversational persona, layered discovery, objection handling, and closing sequence. Includes a table showing where seconds are lost and how to recover them, plus a linked Academy tutorial video on improving voice agent prompts"><figcaption><p>Dapti translates the benchmark gap into concrete prompt changes and surfaces a relevant Academy tutorial video.</p></figcaption></figure>

Other gap-closing prompts you can use:

* *"My connection rate is below average. How do I improve it?"*
* *"My call success rate trails dental benchmarks by 10 points. Where should I focus?"*
* *"What prompt patterns help close my industry's most common objections?"*

***

## Next Steps

{% content-ref url="/pages/9VV2mFTv81FnCZ0y12C3" %}
[Account Evaluation](/dapti/capabilities/account-evaluation)
{% endcontent-ref %}

{% content-ref url="/pages/O5M0qkWH3Xt43SlXnHnk" %}
[Voice Agents](/dapti/capabilities/voice-agents)
{% endcontent-ref %}

{% content-ref url="/pages/ITt1P6qAQhK8f6FgbVFk" %}
[Call Analytics](/dapti/capabilities/call-analytics)
{% endcontent-ref %}


# Sales Meetings

Ask Dapti about your sales meetings: list them, get structured summaries with action items, and surface patterns across multiple meetings.

Dapti has access to every meeting the AI Note Taker has recorded for your workspace. It can list them, dig into any one of them for a full structured summary, and spot patterns across the whole set. Below are three of the most useful meeting conversations.

{% hint style="info" %}
For Dapti to see a meeting, the AI Note Taker has to have joined the call. See the [AI Note Taker guide](https://github.com/Dapta-Tech/dapta-docs/blob/develop/docs-en/dapti/capabilities/broken-reference/README.md) to make sure it joins your future meetings automatically.
{% endhint %}

***

## List Your Recent Meetings

Ask Dapti for a quick read on what meetings happened recently. Dapti returns a table with every meeting, its date, duration, and a clickable link to the full record.

**Try this prompt:**

> *Show me my recent sales meetings.*

<figure><img src="/files/GeDJ9Xnae22OSlLIZKpf" alt="Dapti listing 15 recent sales meetings in a table showing meeting title, date and time in the user&#x27;s timezone, and duration in minutes, with each meeting title as a clickable link"><figcaption><p>Every meeting the Note Taker recorded, in one clickable list.</p></figcaption></figure>

Other meeting-list prompts you can use:

* *"What meetings do I have this week?"*
* *"Show me my meetings from last week"*
* *"Find meetings with \[participant name]"*
* *"Which of my meetings ran longer than an hour?"*

***

## Get a Full Meeting Summary

Ask Dapti to dig into any specific meeting and return a structured summary with everything that mattered: who was there, what was discussed, what was committed to, and what to do next.

**Try this prompt:**

> *Give me a detailed summary of the Sprites Demo meeting and key action items.*

Dapti reads the transcript and returns an organized brief with overview, key topics, stakeholders, action items with owners and priorities, AI-generated sales coaching tips, and call insights.

<figure><img src="/files/G3OoafTfC8k4gbXhBWfK" alt="Dapti&#x27;s full summary of the Sprites Demo meeting: overview, key topics covered table, action items table with task, owner, and priority columns, sales tips from AI analysis (reduce monologue, summarize key points, clarify technical requirements, align on stakeholders earlier), and call insights identifying decision drivers and next steps"><figcaption><p>Dapti's structured meeting brief: overview, topics, stakeholders, action items, AI sales tips, and call insights.</p></figcaption></figure>

Other deep-dive prompts you can use:

* *"What were the key takeaways from the \[meeting name] call?"*
* *"Pull all action items from my meeting with \[participant]"*
* *"Who said what during the \[meeting name] call?"*
* *"What objections came up in the \[meeting name] meeting?"*

{% hint style="success" %}
The action items Dapti extracts include owner and priority. Use these to feed your task tracker or follow-up email without rewatching the call.
{% endhint %}

***

## Surface Patterns Across Meetings

The most powerful question to ask Dapti is across multiple meetings at once: what keeps coming up, where does friction cluster, and what is your team consistently hearing.

**Try this prompt:**

> *What are the most common questions or objections coming up across my recent Office Hours meetings?*

<figure><img src="/files/5k7lkBNeHOYILY9fhbn9" alt="Dapti analyzing 8 recent Office Hours meetings and surfacing recurring themes including CRM integration, credit consumption, campaign setup, inbound call configuration, agent behavior, WhatsApp integration, Google Sheets as a CRM alternative, and platform onboarding, plus a Key Objections frequency table and Strategic Implications with prioritized recommendations"><figcaption><p>Dapti clusters questions and objections across multiple meetings and translates them into strategic recommendations.</p></figcaption></figure>

Other pattern prompts you can use:

* *"What product features do customers ask about most often?"*
* *"What is the most common reason a deal doesn't move forward?"*
* *"Where are prospects getting confused in my demos?"*
* *"What are the top three things to fix in our onboarding?"*

{% hint style="info" %}
Patterns are most useful when you have 5 or more meetings to compare. The more recordings Dapti can read, the sharper the cross-meeting insights become.
{% endhint %}

***

## Next Steps

{% content-ref url="/pages/ITt1P6qAQhK8f6FgbVFk" %}
[Call Analytics](/dapti/capabilities/call-analytics)
{% endcontent-ref %}

{% content-ref url="/pages/9VV2mFTv81FnCZ0y12C3" %}
[Account Evaluation](/dapti/capabilities/account-evaluation)
{% endcontent-ref %}

{% content-ref url="/pages/UjlkeeYDNhNUVMDiFvdf" %}
[Commercial Support](/dapti/capabilities/commercial-support)
{% endcontent-ref %}


# Billing & Credits

Ask Dapti about your credit usage, plan tier, what each plan includes, and how to estimate the cost of a campaign before you run it.

Dapti has access to your plan, credit balance, and usage history. Ask it for a usage report, compare plans, or estimate the cost of a campaign before you launch. Below are three of the most useful billing conversations.

{% hint style="info" %}
You can also access exact pricing, your invoices, and plan upgrades any time at **Billing → Plans** in the admin panel. Dapti links you straight there at the end of every billing response.
{% endhint %}

***

## Check Your Credit Usage

Ask Dapti for a snapshot of your current credit picture: plan, credits used, credits remaining, and a usage breakdown.

**Try this prompt:**

> *How am I doing on credits this month? Give me a usage breakdown.*

<figure><img src="/files/F8yTp74TsHViTWVZEvVx" alt="Dapti showing a credit overview for the current month with plan, credits used, credits available, and usage percentage in a table, followed by a plain-English breakdown and suggested actions when usage is low"><figcaption><p>Dapti's credit overview: plan, balance, usage percentage, and contextual guidance based on where you are.</p></figcaption></figure>

Other usage prompts you can use:

* *"How many credits did I use yesterday?"*
* *"Show me my credit usage day by day this week"*
* *"Which agent is using the most credits?"*
* *"When did I last hit my credit limit?"*

***

## Compare Plans

Not sure which plan is right for you? Ask Dapti to walk through every plan and what you actually get. Dapti will also recommend a tier based on your current account.

**Try this prompt:**

> *What are the different Dapta plans and which one should I be on?*

<figure><img src="/files/8v6X3EJZQPXDsaHFUgaB" alt="Dapti showing a comparison table of Dapta&#x27;s Free, Starter, Scale Up, and Prime plans across features like price, credits, agents, flows, users, workspaces, support level, and WhatsApp support, followed by a recap of the user&#x27;s current plan and credits"><figcaption><p>Dapta plans side by side, plus a recap of where you stand today.</p></figcaption></figure>

Other plan-comparison prompts you can use:

* *"What's the difference between Starter and Scale Up?"*
* *"Which plan includes WhatsApp support?"*
* *"What do I get if I upgrade to Prime?"*
* *"Am I being charged for the right plan based on how I use Dapta?"*

***

## Estimate Campaign Cost Before You Launch

Before you spin up a big outbound campaign, ask Dapti how many credits it will consume. Dapti uses the platform's billing rates plus your inputs (calls, average duration) to give you a forecast and tell you whether your current plan covers it.

**Try this prompt:**

> *How many credits would it cost to run 500 voice calls per month with an average call duration of 2 minutes?*

<figure><img src="/files/fQi28E7RbgTLAJBZAWRb" alt="Dapti calculating credit cost for 500 voice calls of 2 minutes each, showing the math (1000 minutes at 15 credits per minute = 15,000 credits), then comparing against the user&#x27;s current plan and showing which plans (Free, Starter, Scale Up) would cover that volume"><figcaption><p>Dapti runs the math and tells you whether your current plan can cover the workload.</p></figcaption></figure>

Other cost-estimation prompts you can use:

* *"How long will my remaining credits last at my current usage rate?"*
* *"If I run 100 outbound calls a day, how many credits is that per month?"*
* *"What would it cost to add a second voice agent that takes inbound calls?"*
* *"Help me plan a credit budget for the next 90 days"*

{% hint style="success" %}
Always check the estimate before running a large campaign. It is cheaper to upgrade a plan in advance than to pause a campaign halfway through.
{% endhint %}

***

## Next Steps

{% content-ref url="/pages/9VV2mFTv81FnCZ0y12C3" %}
[Account Evaluation](/dapti/capabilities/account-evaluation)
{% endcontent-ref %}

{% content-ref url="/pages/UjlkeeYDNhNUVMDiFvdf" %}
[Commercial Support](/dapti/capabilities/commercial-support)
{% endcontent-ref %}

{% content-ref url="/pages/ITt1P6qAQhK8f6FgbVFk" %}
[Call Analytics](/dapti/capabilities/call-analytics)
{% endcontent-ref %}


# Scheduled Tasks

Use Dapti to schedule recurring tasks: daily reports, periodic flow runs, cron jobs, and one-time reminders, all set up from a conversation.

Anything Dapti can do once, you can ask it to do on a schedule: daily reports, weekly summaries, hourly Sheets updates, every-30-minutes hot-lead alerts. Dapti translates "every weekday at 8 a.m." into the cron and the Flow Studio plumbing for you. Below are three of the most useful scheduling conversations.

{% hint style="info" %}
Many scheduled tasks send results somewhere (email, Sheets, Slack), so they need the relevant integration connected. Dapti will tell you up front if something is missing and link you to the integrations page.
{% endhint %}

***

## Create a Scheduled Task

Tell Dapti what to do and when. Dapti builds the underlying flow, schedules it, and tests it before going live.

**Try this prompt:**

> *Schedule a recurring task to send me a daily summary of yesterday's meetings every weekday at 8 a.m.*

Dapti plans the full setup (build the flow, test it, schedule the cron) and checks the integrations it needs first. If anything is missing, you get a one-click link to connect it before Dapti continues.

<figure><img src="/files/MNWPBNYojEkjY85L8Ug6" alt="Dapti planning a scheduled task to send a daily meeting summary every weekday at 8am, flagging that Google is not connected yet and providing a Connect Google link, with clear instructions on what to do once the integration is connected"><figcaption><p>Dapti plans the full setup and stops to ask for any missing integrations before it builds.</p></figcaption></figure>

Other create-schedule prompts you can use:

* *"Send me a call summary every Monday at 9 a.m."*
* *"Log qualified leads to my Google Sheet every hour"*
* *"Run my outbound campaign flow every weekday at 10 a.m."*
* *"Remind me tomorrow at 3 p.m. to review agent feedback"*

***

## List Your Scheduled Tasks

Ask Dapti for a quick read on what is currently scheduled in your workspace. If there is nothing yet, Dapti will suggest a few starter automations.

**Try this prompt:**

> *What scheduled tasks and recurring jobs do I have set up?*

<figure><img src="/files/UrPdY1hnieEDUlethhoy" alt="Dapti reporting that no scheduled tasks exist yet in the workspace, then suggesting four common automation patterns the user could set up: email reports, Google Sheets updates, flow executions, and one-time reminders"><figcaption><p>An empty-state response that also gives you four starting points to set up your first schedule.</p></figcaption></figure>

Other list/manage prompts you can use:

* *"Pause my Monday email report"*
* *"Change my 8 a.m. summary to 9 a.m."*
* *"Stop sending me the weekly Sheets update"*
* *"Show me the execution history for my scheduled flow"*

***

## Get Ideas for High-Impact Automations

If you do not know what to automate yet, ask Dapti for recommendations grounded in your actual workspace and use case. Dapti returns concrete, business-focused suggestions, not generic advice.

**Try this prompt:**

> *Show me 3 powerful ways I could use scheduled tasks to grow my business with Dapta.*

<figure><img src="/files/eJyHuRGgemfyXUyCfZrM" alt="Dapti recommending 3 specific scheduling patterns including a daily call performance digest, a 30-minute hot-lead alert to sales, and a weekly ROI tracker that appends KPIs to a Google Sheet, each with business impact rationale and the exact prompt to activate them, plus a linked Academy tutorial on email automation"><figcaption><p>Dapti turns "what should I automate?" into three concrete, business-focused recommendations, each with the exact prompt to activate it.</p></figcaption></figure>

Other ideation prompts you can use:

* *"What's the most useful daily report I could set up?"*
* *"Help me automate my Monday morning routine"*
* *"What scheduled tasks should I run for a real estate brokerage?"*
* *"Which scheduled jobs give the highest ROI for a 5-person sales team?"*

{% hint style="success" %}
Once Dapti recommends an automation, you can activate it in the same chat: just say "set up the hot-lead alert" and Dapti builds the flow and schedules the cron.
{% endhint %}

***

## Next Steps

{% content-ref url="/pages/YqBTi7hYBrv2edraanBJ" %}
[Flow Studio](/dapti/capabilities/flow-studio)
{% endcontent-ref %}

{% content-ref url="/pages/9VV2mFTv81FnCZ0y12C3" %}
[Account Evaluation](/dapti/capabilities/account-evaluation)
{% endcontent-ref %}

{% content-ref url="/pages/XgNL8X3CGabWk1aDE5X4" %}
[Tips & Prompting](/dapti/tips-and-prompting)
{% endcontent-ref %}


# Web Research

Ask Dapti to search the web, read external URLs, and generate downloadable research documents grounded in real sources.

Dapti can step outside your account to do research: search the web, read external pages, and pull everything together into a downloadable document with cited sources. Below are three of the most useful research conversations.

{% hint style="info" %}
Every web-research response includes a source count and citations. Click any source link to read the original page. The downloadable document includes the same citations so you can verify or share with confidence.
{% endhint %}

***

## Search the Web

Ask Dapti for the latest information on a topic and it will run a live web search, synthesize what matters, and generate a downloadable summary.

**Try this prompt:**

> *Search the web for the latest 2026 small business productivity statistics and what's driving them.*

Dapti returns a structured digest of what it found, a stats table with cited sources, key takeaways, and a downloadable document.

<figure><img src="/files/ypLnie4g9ybR6mmaMajV" alt="Dapti returning a structured digest of web search results on 2026 small business productivity statistics, including a Big Picture overview and a top statistics table with adoption rates, ROI numbers, and time-saved metrics, each cited to sources like the US Chamber of Commerce, LinkedIn Economic Graph, and Crunchbase, ending with 3 key numbers that matter most"><figcaption><p>A live web search, summarized in plain English, with a stats table, cited sources, and a downloadable report.</p></figcaption></figure>

Other web-search prompts you can use:

* *"What are the latest trends in dental practice automation?"*
* *"What does recent research say about no-show rates in service businesses?"*
* *"What are the most common objections SaaS prospects raise in 2026?"*
* *"Show me the latest customer service productivity benchmarks"*

***

## Extract Information From a Specific URL

Point Dapti at a URL and it will read the page and answer your question about it: summarize, extract facts, compare to your own product, anything.

**Try this prompt:**

> *Read <https://dapta.ai> and summarize what the company does and who it's for.*

<figure><img src="/files/mmK4afkmgfoFL7v65mKF" alt="Dapti reading dapta.ai and producing a structured summary covering what Dapta does, target audience (SMB owners and operators including home service, law firms, universities), core value proposition, and key selling points, with a downloadable report generated as well"><figcaption><p>Dapti reads the page, answers your question, and offers a downloadable summary.</p></figcaption></figure>

Other URL-extract prompts you can use:

* *"Read <https://example.com/pricing> and tell me what's included in the Pro plan"*
* *"Summarize the key points in this article: \[URL]"*
* *"What does this competitor say their differentiator is? \[URL]"*
* *"Extract the email addresses listed on <https://example.com/contact>"*

***

## Generate a Full Research Report

Ask Dapti to produce a comprehensive, downloadable report on a topic. Dapti cross-references multiple sources, structures the findings, and delivers a .docx file you can share with your team.

**Try this prompt:**

> *Research best practices for AI voice agents in appointment scheduling and create a downloadable guide I can share with my team.*

<figure><img src="/files/zxD0xK0rsfVmJJGKDidf" alt="Dapti producing a downloadable best-practices guide for AI voice agents in appointment scheduling, with an executive summary covering industry adoption and benchmarks, an 8-section breakdown covering lifecycle, conversation design, integrations, KPIs, escalation, roadmap, ROI, and a top-10 checklist, plus 3 specific things to apply in Dapta right now"><figcaption><p>A multi-source best-practices guide with an executive summary, 8 structured sections, and a downloadable .docx.</p></figcaption></figure>

Other report-generation prompts you can use:

* *"Build me a report on AI compliance requirements for outbound calling in 2026"*
* *"Research best practices for lead qualification flows in real estate"*
* *"Create a market overview of AI adoption in dental practices"*
* *"Generate a one-pager on objection handling for outbound sales calls"*

{% hint style="success" %}
The downloadable .docx works great as a starting point for internal docs, pitch decks, and onboarding material. Edit it freely, the citations are embedded.
{% endhint %}

***

## Next Steps

{% content-ref url="/pages/8wVES3iaqOWdKUGLxUjn" %}
[Industry Benchmarks](/dapti/capabilities/industry-benchmarks)
{% endcontent-ref %}

{% content-ref url="/pages/UjlkeeYDNhNUVMDiFvdf" %}
[Commercial Support](/dapti/capabilities/commercial-support)
{% endcontent-ref %}

{% content-ref url="/pages/z2MqYMcg82nfTMVD8SSU" %}
[Use Cases](/dapti/use-cases)
{% endcontent-ref %}


# Commercial Support

Ask Dapti about plan upgrades, custom contracts, talking to sales, and the partner or affiliate programs.

When you have a question that goes beyond the product (pricing, custom contracts, partner programs, talking to a human), Dapti routes you to the right place: the right page, the right form, or the right team. Below are three of the most common commercial conversations.

{% hint style="info" %}
For account-specific commercial questions (your invoices, refunds, plan changes), Dapti will always direct you to the right tool or to the Dapta sales team. It does not change billing on your behalf.
{% endhint %}

***

## Upgrade Your Plan

If you want to scale up or unlock a feature gated to a higher tier, ask Dapti and it will walk you to plans and pricing or to a sales conversation, depending on what you need.

**Try this prompt:**

> *Help me, I'd like to upgrade my plan and need to know about pricing and what's included.*

<figure><img src="/files/ZmSGPxFB1tIQlhOQyu83" alt="Dapti responding to an upgrade request with a friendly recommendation to book a sales demo for accurate pricing plus a Plans and Pricing reference card with a link to the in-app billing page, and a follow-up question asking what specifically the user wants to unlock"><figcaption><p>Dapti points you to the Plans page and to sales if you need a tailored conversation.</p></figcaption></figure>

Other upgrade prompts you can use:

* *"What do I get if I move from Starter to Scale Up?"*
* *"How do I add WhatsApp support to my plan?"*
* *"Can I upgrade for just one month?"*

***

## Talk to the Dapta Team

If you need a custom contract, agency pricing, or a real human walkthrough, ask Dapti and it will route you to the sales team's intake form.

**Try this prompt:**

> *I need to talk to someone at Dapta about a custom contract for my agency, how do I get in touch?*

<figure><img src="/files/H36iYlhC5zOcgVqHMorO" alt="Dapti responding to a custom contract request with a link to book a meeting directly with the Dapta sales team, explaining it as the fastest way to connect with the right person for agency pricing and custom contracts"><figcaption><p>Dapti gives you the fastest path to a human when the request goes beyond what it can answer directly.</p></figcaption></figure>

Other sales prompts you can use:

* *"I run an agency and want to white-label Dapta. Who do I talk to?"*
* *"Can I get a yearly contract for my team of 20?"*
* *"I'd like a demo of the Prime plan"*
* *"Who handles enterprise procurement at Dapta?"*

***

## Partner and Referral Programs

If you want to recommend Dapta to others, ask Dapti about the referral and partnership options. Dapti returns the reward structure, payout timing, where to find your referral code, and a contact for follow-up questions.

**Try this prompt:**

> *Does Dapta have a partner or referral program I can join?*

<figure><img src="/files/G6fLP3Yjxzb2QUBL3zrW" alt="Dapti explaining the Dapta Refer and Earn program with a table showing the reward ($50 USD or credits per successful referral), the new user reward (10,000 bonus credits), and payout timing (first week of the month after the referral makes their payment), plus instructions for finding the referral banner in the dashboard and a contact email for program questions"><figcaption><p>Dapti returns the program structure, your reward, payout timing, where to find your referral link, and who to contact for questions.</p></figcaption></figure>

Other partnership prompts you can use:

* *"What's the difference between the Partner and Affiliate programs?"*
* *"How do I become a certified Dapta partner?"*
* *"What kind of commission can I earn as an affiliate?"*
* *"Who does Dapta already have in their partner directory?"*

***

## Next Steps

{% content-ref url="/pages/SVbyMomeBBz3EjauEFly" %}
[Billing & Credits](/dapti/capabilities/billing-and-credits)
{% endcontent-ref %}

{% content-ref url="/pages/WlLQa9OkMJ9pDvj852NH" %}
[Privacy & Scope](/dapti/privacy-and-scope)
{% endcontent-ref %}

{% content-ref url="/pages/z2MqYMcg82nfTMVD8SSU" %}
[Use Cases](/dapti/use-cases)
{% endcontent-ref %}


# Use Cases

A cookbook of practical things you can ask Dapti, organized by intent and paired with concrete example prompts you can copy.

A reference of the most useful things you can ask Dapti, grouped by what you are trying to accomplish. Each entry has an example prompt you can copy directly into the chat input.

{% hint style="info" %}
You do not need to phrase prompts exactly like the examples. Dapti understands plain language. Use these as starting points, not templates.
{% endhint %}

***

## Build and Configure Agents

| What you want                 | Example prompt                                                                 |
| ----------------------------- | ------------------------------------------------------------------------------ |
| Create a voice agent          | "Create a voice agent for a dental clinic. Name her Lia."                      |
| Create a text agent           | "Create a text agent for my real estate brokerage. Name her Sophia."           |
| Improve a prompt              | "Improve my Lia prompt so she handles pricing objections better."              |
| Adjust voice settings         | "Make Lia speak slower and don't interrupt callers."                           |
| Adjust text agent style       | "Make Sophia reply more concisely and always confirm contact time."            |
| Configure post-call variables | "Add a customer\_intent variable to Lia so I can see what each caller wanted." |
| Switch agent language         | "Switch Sophia to Spanish."                                                    |
| Delete an agent               | "Delete the agent I created last week called Test Agent."                      |

See [Voice Agents](/dapti/capabilities/voice-agents) and [Text Agents](/dapti/capabilities/text-agents) for full walkthroughs.

***

## Analyze Performance

| What you want                 | Example prompt                                                            |
| ----------------------------- | ------------------------------------------------------------------------- |
| Weekly performance snapshot   | "How is Lia performing this week?"                                        |
| List recent calls             | "Show me my recent Lia calls and what each one was about."                |
| Find specific calls           | "Find calls where the caller asked about pricing."                        |
| Surface patterns              | "What patterns do you see in Lia's calls and what should I improve next?" |
| Compare agents                | "Compare Lia and Sarah this month."                                       |
| Pull a single call transcript | "Show me the transcript of call \[ID]."                                   |
| Sentiment analysis            | "Pull the calls where sentiment was negative."                            |
| Time-of-day analysis          | "What time of day do my calls perform best?"                              |

See [Call Analytics](/dapti/capabilities/call-analytics) for full walkthroughs.

***

## Evaluate Your Account

| What you want              | Example prompt                                                         |
| -------------------------- | ---------------------------------------------------------------------- |
| Full account health check  | "Give me an overall health check of my Dapta account."                 |
| Diagnose a specific issue  | "Why am I not getting real customer calls yet?"                        |
| Get the single next step   | "What's the single most important thing I should do this week?"        |
| Compare to industry        | "How do my voice agents compare to other real estate agents on Dapta?" |
| See what top performers do | "What do the best-performing dental clinics on Dapta do differently?"  |
| Close a benchmark gap      | "How do I close the call duration gap with my industry peers?"         |

See [Account Evaluation](/dapti/capabilities/account-evaluation) and [Industry Benchmarks](/dapti/capabilities/industry-benchmarks) for full walkthroughs.

***

## Automate Work

| What you want             | Example prompt                                                                                   |
| ------------------------- | ------------------------------------------------------------------------------------------------ |
| Build a Sheets flow       | "Build a flow that saves Lia's appointment leads to a Google Sheet after every successful call." |
| Build an email flow       | "Build a flow that emails me when a new hot lead comes in."                                      |
| Build a Slack flow        | "Build a flow that posts new lead info to my #sales Slack channel."                              |
| List existing flows       | "Show me my existing flows and their status."                                                    |
| Modify a flow             | "Add an email step to my Lia Sheets flow."                                                       |
| Schedule a recurring task | "Send me a daily summary of yesterday's meetings every weekday at 8 a.m."                        |
| Get automation ideas      | "Show me 3 powerful ways I could use scheduled tasks to grow my business."                       |
| List your schedules       | "What scheduled tasks do I have running?"                                                        |

See [Flow Studio](/dapti/capabilities/flow-studio) and [Scheduled Tasks](/dapti/capabilities/scheduled-tasks) for full walkthroughs.

***

## Work With Meetings

| What you want                | Example prompt                                                                          |
| ---------------------------- | --------------------------------------------------------------------------------------- |
| List recent meetings         | "Show me my recent sales meetings."                                                     |
| Summarize a meeting          | "Give me a detailed summary of the \[meeting name] meeting and key action items."       |
| Extract action items         | "Pull all action items from my meeting with \[participant]."                            |
| Surface meeting patterns     | "What are the most common questions or objections coming up across my recent meetings?" |
| Find meetings by participant | "Find meetings with \[participant name]."                                               |
| Compare meeting outcomes     | "Which of my demos converted into deals?"                                               |

See [Sales Meetings](/dapti/capabilities/sales-meetings) for full walkthroughs.

***

## Manage Billing and Plans

| What you want         | Example prompt                                                     |
| --------------------- | ------------------------------------------------------------------ |
| Check credit usage    | "How am I doing on credits this month?"                            |
| Forecast credit needs | "How many credits would 500 calls of 2 minutes each cost?"         |
| Compare plans         | "What are the different Dapta plans and which one should I be on?" |
| Plan recommendation   | "Am I on the right plan based on how I use Dapta?"                 |
| Upgrade help          | "Help me upgrade my plan."                                         |
| Talk to sales         | "I need a custom contract for my agency, how do I get in touch?"   |
| Partner program       | "Does Dapta have a partner or referral program I can join?"        |

See [Billing & Credits](/dapti/capabilities/billing-and-credits) and [Commercial Support](/dapti/capabilities/commercial-support) for full walkthroughs.

***

## Research and Learning

| What you want        | Example prompt                                                          |
| -------------------- | ----------------------------------------------------------------------- |
| Web search           | "Search the web for the latest news on AI voice agents in real estate." |
| Read a specific URL  | "Read <https://example.com> and summarize what they do."                |
| Competitive research | "Research the top 3 AI voice agent competitors and create a report."    |
| Industry trends      | "What are the latest trends in dental practice automation?"             |
| Find a tutorial      | "Show me a tutorial on improving voice agent prompts."                  |
| Get help             | "How do I use the AI Note Taker?"                                       |
| Find a doc page      | "Where in the Dapta docs do I read about Brains?"                       |

See [Web Research](/dapti/capabilities/web-research) for full walkthroughs.

***

## Quick Recipes

A few combinations that work well together:

* **Morning standup**: *"What happened in my account yesterday?"* → quick scan of new calls, completed flows, scheduled tasks.
* **Weekly review**: *"Compare this week to last week across calls, success rate, and credits."*
* **Before launching a campaign**: *"Estimate the credit cost for 200 outbound calls at 3 minutes each, then check whether my current plan covers it."*
* **After a demo**: *"Pull the action items from my last demo and summarize what to follow up on this week."*
* **Quarterly board prep**: *"Generate a downloadable report covering my account performance, the top 3 patterns from my meetings, and a benchmark comparison against my industry."*

***

## Next Steps

{% content-ref url="/pages/XgNL8X3CGabWk1aDE5X4" %}
[Tips & Prompting](/dapti/tips-and-prompting)
{% endcontent-ref %}

{% content-ref url="/pages/WlLQa9OkMJ9pDvj852NH" %}
[Privacy & Scope](/dapti/privacy-and-scope)
{% endcontent-ref %}

{% content-ref url="/pages/tGdZKRq1oCqpksmxm3rK" %}
[Capabilities](/dapti/capabilities)
{% endcontent-ref %}


# Privacy & Scope

Understand what Dapti can and cannot see: workspace scope, account boundaries, industry benchmarks, and the privacy guarantees built in.

Dapti's job is to help you operate your Dapta account. To do that it needs access to your data, but only your data. This page explains exactly what Dapti can and cannot see, where the boundaries are, and how anonymized benchmarks are kept safe.

***

## What Dapti Can See

When you ask Dapti a question, it can read everything inside your own workspace, including:

* **Agents**: your voice and text agents, their prompts, voices, language settings, and post-call variables.
* **Calls**: every call placed or received by your agents, with full transcripts, durations, outcomes, and sentiment.
* **Meetings**: every meeting your AI Note Taker has joined, with transcripts, participants, and timestamps.
* **Flows**: every Flow Studio automation you have built, with their nodes, configuration, and execution history.
* **Scheduled tasks**: every cron job and recurring task in your workspace.
* **Account context**: your plan, credit balance, usage history, connected integrations, and onboarding answers.
* **CRM-style data**: contacts, lead lists, and campaigns that live inside Dapta.

{% hint style="info" %}
Dapti uses this access in real time, only when you ask. It does not run analyses in the background or pre-cache your data.
{% endhint %}

***

## What Dapti Cannot See

Dapti is scoped strictly to your workspace. It cannot:

* **Read other companies' data**. Even when you ask about industry benchmarks, Dapti only sees aggregated averages, never any individual peer account.
* **Access other users in your company without permission**. Dapti respects the same role and permission model as the rest of the Dapta platform. If a user does not have access to a flow, neither does Dapti when that user is logged in.
* **Reach into your CRM, calendar, or email unless you have explicitly connected the integration**. When an integration is missing, Dapti will tell you and provide a link to connect it. It does not silently fall back to anything.
* **Modify billing or your plan**. Dapti can answer questions about pricing and route you to the right page, but plan changes always happen through the in-app billing flow.
* **Take destructive actions without confirmation**. Anything that modifies a live agent, deploys or changes a flow, or schedules a recurring task is always presented as a confirm-before-apply step.

***

## Customer Dapti vs. Internal DaptaIQ

There are two assistants with a similar look and feel inside the Dapta platform:

* **Dapti** (this product): workspace-scoped. Reads only your own data. Privacy-safe. Available to every Dapta customer.
* **DaptaIQ**: an internal-only assistant used by Dapta employees for cross-account analytics. Not available to customers.

If you ever see the name "DaptaIQ" anywhere, that is the internal product, not Dapti.

***

## How Industry Benchmarks Work

When you ask Dapti how you compare to other companies in your industry, here is what actually happens:

1. Dapta computes industry-level statistics across all customers in a given industry (Real Estate & Construction, Dental, Ecommerce, etc.) using **aggregated, anonymized** data.
2. The result is a single set of averages per metric per industry. There is no way to trace any number back to a specific company.
3. Dapti shows your numbers next to those aggregates so you can see where you stand.

You are part of those aggregates too, but only as one anonymous data point alongside many others.

***

## Audit and Transparency

Dapti's reasoning is auditable. Every response includes:

* A collapsed "**Thought for Ns**" indicator. Click it to open the Activity panel and see the step-by-step reasoning in plain English.
* Source citations whenever Dapti pulls information from the web or from your data.
* A clear note when Dapti cannot answer a question (for example, missing data, missing integration, or out-of-scope request) instead of guessing.

***

## Reporting a Concern

If you ever see Dapti behave in a way that looks like a privacy issue (mentioning data that should not be visible, accessing something you did not connect, or returning information about another account), let us know:

* Submit feedback through the **👎 thumbs-down** button on the offending Dapti response.
* Contact us at **<support@daptatech.com>** for anything urgent.

***

## Next Steps

{% content-ref url="/pages/XgNL8X3CGabWk1aDE5X4" %}
[Tips & Prompting](/dapti/tips-and-prompting)
{% endcontent-ref %}

{% content-ref url="/pages/tGdZKRq1oCqpksmxm3rK" %}
[Capabilities](/dapti/capabilities)
{% endcontent-ref %}

{% content-ref url="/pages/z2MqYMcg82nfTMVD8SSU" %}
[Use Cases](/dapti/use-cases)
{% endcontent-ref %}


# Tips & Prompting

Tips to get more out of Dapti: how to phrase questions, attach images, switch languages, follow up effectively, and recover from a bad answer.

Dapti is good at plain language. You do not need to learn a special syntax. But a few small habits will make every conversation better. This page is a collection of the practical tips that experienced Dapta users have found most useful.

***

## Phrase Questions Like You Would Ask a Coworker

Dapti is built to understand the way people actually talk. Skip jargon, skip prompt-engineering tricks, and just ask what you would ask a colleague.

| Good                                                           | Less good                                                       |
| -------------------------------------------------------------- | --------------------------------------------------------------- |
| "How is Lia doing this week?"                                  | "QUERY: agent\_id=Lia, time\_range=7d, metrics=all"             |
| "Improve her prompt so she handles pricing objections better." | "Modify prompt section 3.2 with objection-handling block"       |
| "What's blocking me from getting real calls?"                  | "Diagnose configuration blockers preventing outbound execution" |

The closer your prompt sounds to natural speech, the better Dapti understands intent.

***

## Be Specific About the Subject

Dapti has access to a lot. When more than one agent, flow, or meeting matches your question, the answer gets fuzzy. Add a specific name and the response sharpens.

| Vague                        | Sharper                                               |
| ---------------------------- | ----------------------------------------------------- |
| "Improve my agent's prompt." | "Improve Lia's prompt so she handles pricing better." |
| "Pull my recent calls."      | "Pull Lia's calls from the last 7 days."              |
| "Summarize my meeting."      | "Summarize my May 15 demo with Acme Corp."            |

If Dapti finds more than one possible subject, it will ask you to clarify. Naming the subject up front skips that round-trip.

***

## Add "Text Agent" or "Voice Agent" When the Name Is Shared

If you ever have both a voice agent and a text agent with similar names (or even the same name), tell Dapti which one you mean. Dapti's first lookup defaults to voice agents.

| What to write                             | Why                                 |
| ----------------------------------------- | ----------------------------------- |
| "Improve my Sophia **text agent** prompt" | Skips the failed voice-agent lookup |
| "Show me **voice agent** Lia's calls"     | Clarifies which surface to query    |

***

## Use Follow-Ups Instead of Restarting

Dapti remembers the full context of the current conversation. If the first answer was almost what you wanted, follow up instead of starting a new chat:

* "Good, but only show calls longer than 90 seconds."
* "Now group those by patient type."
* "Apply that change to Lia too."
* "Same analysis but for last month."

This is how you get from a generic answer to one that fits your actual situation.

***

## Attach Images for Visual Questions

Click the **paperclip** icon to attach a screenshot or image. Dapti can read:

* Screenshots of agent settings or flow diagrams ("what does this configuration do?")
* Charts and dashboards ("what's the trend here?")
* Error messages ("why is this failing?")
* Hand-written notes or call logs ("convert this into a list of follow-ups")

Attach the image, type your question, send.

***

## Switch Languages Anytime

Dapti understands and replies in whichever language you write in. Mix Spanish and English in the same conversation if you want. You can also be explicit:

* *"Switch to Spanish."*
* *"Responde en español a partir de ahora."*
* *"Translate that last response to Portuguese."*

Voice and text agents Dapti builds for you can also be configured in any language. Just say so when you create the agent.

***

## Always Confirm Before Big Changes

Dapti always asks before making destructive changes (modifying a live agent, deploying a flow, scheduling a recurring task). When you see an **Apply changes** confirmation card, read it. The summary tells you exactly what will change.

If you want to inspect the underlying configuration before approving, ask:

* *"Show me the full prompt change you're about to apply."*
* *"What nodes will be in the flow after this change?"*
* *"What's the cron schedule you're about to set?"*

***

## When the Answer Looks Off

Sometimes Dapti will surprise you with an answer that does not match what you expected. A few moves that almost always help:

* **Click the "Thought for Ns" indicator** to see the step-by-step reasoning. Often the data was right but the question was interpreted differently than you meant.
* **Ask again, more specifically**: name the subject, the time range, the metric.
* **Try a different angle**: instead of "what's wrong?", try "compare today to last week" or "what changed?"
* **Click 👎** to flag a bad answer. Your feedback shapes how Dapti improves.

***

## Bookmark the Prompts That Work

When you find a prompt that gives you a great answer, save it. Use it again next week, next month, next quarter. A few patterns worth bookmarking:

* Your **Monday morning prompt**: "How did last week go? Compare to the week before."
* Your **end-of-quarter prompt**: "Generate a full performance report covering Q\[N], including industry comparison and top 3 wins."
* Your **pre-campaign prompt**: "Estimate the credit cost for \[N] outbound calls and check whether my plan covers it."
* Your **pre-meeting prep prompt**: "Pull everything you know about \[contact name] from our recent meetings and calls."

***

## Don't Overthink It

The single biggest tip: just ask. Dapti is forgiving with phrasing, will ask clarifying questions when needed, and will tell you if it cannot help. Less time crafting the perfect prompt, more time iterating on real answers.

***

## Next Steps

{% content-ref url="/pages/z2MqYMcg82nfTMVD8SSU" %}
[Use Cases](/dapti/use-cases)
{% endcontent-ref %}

{% content-ref url="/pages/WlLQa9OkMJ9pDvj852NH" %}
[Privacy & Scope](/dapti/privacy-and-scope)
{% endcontent-ref %}

{% content-ref url="/pages/tGdZKRq1oCqpksmxm3rK" %}
[Capabilities](/dapti/capabilities)
{% endcontent-ref %}


# Referals

Here we show you step by step how to refer and earn with Dapta

**Step 1: Create your Referral Code**

* Once you're logged into Dapta, go to the bottom left corner and click on your account, "My Account".<br>

  ![](https://docs.dapta.ai/~gitbook/image?url=https%3A%2F%2F365551146-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FMUYDYzjmxpzlYaw0gcaZ%252Fuploads%252FrmWSE1OMQyNfQ4qxjtFV%252FReferals%2520Nuevo.png%3Falt%3Dmedia%26token%3Df466446e-e2d7-4842-b390-ab7e58914812\&width=768\&dpr=3\&quality=100\&sign=dc1b1b32\&sv=2)

Then in the menu click on Profile, there you will find a link for “Refer & Earn 50.00”\
\
![](/files/8V7FIMpAomP01QBeKYT9)

* Your code will appear; you can copy it and share it with your referrals. Further down, you'll also be able to see:\
  \
  \- Your total number of invitations\
  \- Your potential earnings\
  \- Your earnings with Dapta<br>

  ![](https://docs.dapta.ai/~gitbook/image?url=https%3A%2F%2F365551146-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FMUYDYzjmxpzlYaw0gcaZ%252Fuploads%252FxTyuHnNf7p9lvgtTobFI%252FCaptura%2520de%2520pantalla%25202025-11-20%2520a%2520las%252010.47.14%25E2%2580%25AFa.%25E2%2580%25AFm..png%3Falt%3Dmedia%26token%3Df47dc7e2-5658-4bca-a92f-2b8bc611afea\&width=768\&dpr=3\&quality=100\&sign=68f08eb9\&sv=2)

\
**Step 2: Share your Referral Code**

\
Your invitations become effective when your referral makes a payment. How is the payment made?\
Here's how:\
Your referral must follow these steps:

Go to the bottom left corner,\
click on your email address, and select the Billing option, and within that, the Billing tab

![](https://docs.dapta.ai/~gitbook/image?url=https%3A%2F%2F365551146-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FMUYDYzjmxpzlYaw0gcaZ%252Fuploads%252Fq38Ybor6v4klYxfjSmYG%252FCaptura%2520de%2520pantalla%25202025-11-13%2520a%2520las%25205.38.58%25E2%2580%25AFp.%25E2%2580%25AFm..png%3Falt%3Dmedia%26token%3Df86e43f2-829d-45ff-8273-846001f12e87\&width=768\&dpr=3\&quality=100\&sign=9d923543\&sv=2)

* On the “Billing” tab, you will see “Enter your referral code”, enter the code and click on **“Redeem code”.**

![](https://docs.dapta.ai/~gitbook/image?url=https%3A%2F%2F365551146-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FMUYDYzjmxpzlYaw0gcaZ%252Fuploads%252Fc5bU4CWfWluqW6U3TK4R%252FCaptura%2520de%2520pantalla%25202025-11-20%2520a%2520las%252010.39.59%25E2%2580%25AFa.%25E2%2580%25AFm..png%3Falt%3Dmedia%26token%3Dbea86e68-a982-4f46-a0fe-4558331ceb81\&width=768\&dpr=3\&quality=100\&sign=3e298d61\&sv=2)

* When you see the green message **“Your referral code successfully claimed”,**\
  you can now make the payment for one of Dapta's plans by clicking on the **“Start Now”** button.

![](https://docs.dapta.ai/~gitbook/image?url=https%3A%2F%2F365551146-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FMUYDYzjmxpzlYaw0gcaZ%252Fuploads%252FHMaiCElScAVwEP54InFA%252FCaptura%2520de%2520pantalla%25202025-11-20%2520a%2520las%252010.40.22%25E2%2580%25AFa.%25E2%2580%25AFm..png%3Falt%3Dmedia%26token%3D7bc89750-2c8c-44aa-b15a-d2b6a6f71134\&width=768\&dpr=3\&quality=100\&sign=635957aa\&sv=2)

* It takes you to the Stripe screen and you make the payment. **That's it!** You will automatically be charged an additional 100,000 credits that month, on top of your plan's allowance.

**Step 3: Check which of your referrals made the payment**

* To see who made the payment, click on the “Refer & Earn” banner,\
  and you will see the people who redeemed your code and are:\
  \- **Pending:** They have not yet made the payment\
  \- **Earning:** They did make the payment

☝️ **Remember:**

We will deposit your $50.00 reward in cash (or Dapta credits, if you prefer) during the first week of the month following your referral's payment.\
**For example,**\
If your referral made a payment on October 12th,\
we will process your payment during the first week of November.

Any questions or inquiries can be directed to: <camila@daptatech.com>

<br>


# How to create an account in Dapta?

In this guide we show you step by step how to create a Dapta account.

{% embed url="<https://www.tella.tv/video/creating-a-dapta-account-ajnh?b=0>" %}

## Signing up manually

1. Visit our website:

   * Go to [dapta.ai](https://www.dapta.ai/)
   * In the upper right corner, click on the “Create an Account” button.

   <figure><img src="/files/grUGOaY3idI6zP54mpyh" alt=""><figcaption></figcaption></figure>
2. **Enter your details:**
   * Provide your first name, last name, and a valid email address.
   * Make sure you have access to the email provided, as we will send you a verification code.
   * Click on "Send Email Code" to receive the verification code to y

<figure><img src="/files/hLFBSiu296Z0biaVLVnf" alt=""><figcaption></figcaption></figure>

3. **Verify your email address:**

* Check your inbox; you will receive an email with a verification code.

> IMPORTANT: If you do not find the email in your main inbox, check your spam folder or request another code by clicking "Resend".

<figure><img src="/files/o0QVstGmfSr3DIL5DaMO" alt=""><figcaption></figcaption></figure>

4. **Enter the verification code:**
   * Copy the code received by mail and paste it into the corresponding verification field on the website.

<figure><img src="/files/XdkHV6SBwXlxRqIdAmpf" alt=""><figcaption></figcaption></figure>

5. **Finish the process:** Congratulations! You now have your Dapta account.

## Signing up with Google

Visit our website:

1. Go to [dapta.ai](https://www.dapta.ai/)
2. In the upper right corner, click on the “Create an Account” button.
3. Now you can easily create an account in Dapta using google sign in. Just click in continue with Google.

<figure><img src="/files/S6BD1phf5RbsmzWjPRMg" alt=""><figcaption></figcaption></figure>

4. Select your Google account

<figure><img src="/files/jUy4E7y616rYpQVnGVDj" alt=""><figcaption></figcaption></figure>

5. **Finish the process:** Congratulations! You now have your Dapta account.


# How to recover your password?

Follow these steps to recover your password.

1. From <https://app.dapta.ai/login> click on 'Forgot Password?'

<figure><img src="/files/dnwvsxSszzwVOe8n8PIZ" alt="" width="326"><figcaption></figcaption></figure>

2. Enter your email address in the Email address field

<figure><img src="/files/lLG9IcPB33kUIKxeGSFo" alt="" width="375"><figcaption></figcaption></figure>

3. You will receive a verification code in your email address
4. Complete the following fields, including the verification code you received.

<figure><img src="/files/WXRvmiNhms2K3OoW4nAZ" alt="" width="375"><figcaption></figcaption></figure>

5. When you click Reset Password you will have set your new password and will be able to log in to your account. ⭐

> If you need additional support, please contact us at <support@daptatech.com>. The team will be happy to help you.


# How Credits Work in Dapta

Dapta enables various actions, from AI-powered calls to automation flows. Credits are used to standardize billing across different use cases.​

Voice Agents - AI Calls​

To generate an AI call, several technologies are typically required, each incurring consumption costs. Dapta consolidates these costs into a single credit measure per minute.

To make an AI call, the following are needed:

* A language model (LLM) like ChatGPT or Claude by Anthropic, responsible for determining the correct response to user inputs.​
* Speech-to-text and text-to-speech models like Elevenlabs or Deepgram.​
* A telephony platform like Twilio.

Each of these components has an individual cost. Dapta aggregates these costs into a simple credit measure as follows:​

* 1 minute of effective (answered) call = 333 credits​
* 1 call that goes to voicemail = 75 credits (a cost is incurred because a call is still initiated, and the AI must work to identify the voicemail)​. A call is classified as voicemail only if the recipient's operator answers with a standard voicemail tone or a non-personalized message. If the message has been modified by the recipient, the call is interpreted as answered and consumes a full minute. The "end call" option can also be configured, allowing the call to be manually ended before the second minute be consumed.

Billing is done per minute consumed, not per second. That is:​

* If a call lasts 1 minute and 58 seconds, 2 minutes are billed
* If a call lasts 1 minute and 20 seconds, 2 minutes are billed

Yes, all calls, whether test or not, consume credits. This is neither optional nor negotiable, for the following reasons:​

* For the AI, a call is a call; it has no way of differentiating whether it's a test or not.​
  * An analogy would be when you test an electrical connection in your home to see if it works. For the electric company, energy is consumed regardless of whether it's a test for you.​
* Test calls are a fundamental part of configuring an AI agent. They are not only made the first time the agent is set up but must be done constantly to improve the agent over time.​
  * When you hire a salesperson, you don't just give them instructions once at the beginning; you have to monitor their performance and provide feedback to help them improve. It's the same with AI.
* All calls generate costs for Dapta. If a call is initiated, we must pay for the server that generates the call, the telephony carrier, and the language model (LLM). We cannot tell OpenAI that it was a test call and shouldn't be charged.

#### Inbound Line Costs

To receive calls on an inbound number, it must be through a number that Dapta purchases and assigns to the client. An additional cost will be applied for line activation, and this cost is deducted in credits.

| Country   | Cost USD | Credits |
| --------- | -------- | ------- |
| USA       | $4       | 4,000   |
| Canada    | $4       | 4,000   |
| Colombia  | $28      | 28,000  |
| Mexico    | $13      | 13,000  |
| Peru      | $270     | 270,000 |
| Argentina | $16      | 16,000  |
| Brazil    | $9       | 9,000   |
| Chile     | $14      | 14,000  |
| Panama    | $16      | 16,000  |

#### Dapti

Dapti is Dapta's co-pilot that helps you build voice and text agents using natural language.

Dapti charges per response, not per time or based on the number of tools it uses internally.

Each time you send a message and Dapti answer, a certain number of credits are deducted from your plan, depending on the complexity of that interaction.

Typical cost range per message:

| Interaction Type                                    | Credit's (aprox.) | USD Equivalent |
| --------------------------------------------------- | ----------------- | -------------- |
| Very simple question (greeting, short confirmation) | 60 – 100          | $0.06 – $0.10  |
| Normal question (one-off inquiry)                   | 100 – 300         | $0.10 – $0.30  |
| Analysis or agent creation                          | 300 – 700         | $0.30 – $0.70  |
| Complex operations (flows, large JSONs)             | 700 – 2,000       | $0.70 – $2.00  |
| Exceptional cases (very long sessions)              | 2,000+            | $2.00+         |

Note: An average Dapti message costs 150 credits (approximately $0.150).

* Charging is automatic at the end of each conversation, deducting the credits from your balance.
* Who pays credits:
  * Free and Pro plan customers → pay for each Dapti message.
  * Scale-Up, Prime, or Enterprise plan customers → Dapti is included at no additional cost.
* As long as you have available credit, you can use Dapti without message limits. There are no speed restrictions, only balance limits.
* Flow Studio automations do not consume Dapti credits, as they run as system processes with separate credit charges.

#### Text Agents (Dapta)

Text agents in Dapta also consume credits, just like voice agents. Here's how consumption works:​

#### Message Costs

In Dapta, you can choose between different language models based on your needs. Each model has a specific credit cost per message sent:​

*One message = one full turn (the AI processing an incoming message and sending its response). Each turn is billed once, regardless of how many characters or tokens it contains.*

| Model                            | Credits |
| -------------------------------- | ------- |
| OpenAI gpt-4o                    | 40      |
| OpenAI gpt-5.1                   | 40      |
| Manual message (human via Inbox) | 10      |

*Manual messages are those sent by a human agent directly from the Inbox interface, rather than generated by the AI.*

#### Audio Costs

Audio messages are currently **not charged**. Pricing is subject to change.

*Note: The AI can process voice audios but respond only through text messages.​*

#### Cost per Line When Choosing Dapta as Provider

If you decide to use Dapta as your messaging provider, an additional cost will be applied for line activation. This cost is applied only once when choosing Dapta as the line provider.​

|           | Credits (one-time) |
| --------- | ------------------ |
| Line Cost | 75,000             |

#### Message Templates​

**What are templates?** Templates are the pre-approved message formats that WhatsApp requires a business to use whenever it **starts** a conversation with a customer (outbound / business-initiated messages). If you want to reach out first — for example, to launch a campaign, send an order confirmation, or deliver a one-time passcode — that first message must use an approved template.

Templates only apply to **outbound** messages. Once the customer replies and opens a 24-hour conversation window, you can send regular free-form messages within that window (these fall under the "Service" category below).

To conduct outbound campaigns via WhatsApp, it's mandatory to comply with Meta's policies, which include the use of pre-approved templates. These templates ensure regulatory compliance and correct message categorization.

When sending messages through WhatsApp Business, the cost varies depending on the type of template and the destination country. WhatsApp classifies messages into four main categories, each with a distinct pricing structure:

#### WhatsApp Business-Initiated Message Categories

Business-initiated WhatsApp messages are divided into three categories: Marketing, Authentication, and Utility. Each type differs based on intent and is primarily classified to define WhatsApp's pricing model and the cost of each message.

* **​Marketing Messages**: Messages focused on driving sales through WhatsApp, such as sending offers, coupons, product recommendations, and promotional or advertising notifications.
* **Authentication Messages**: Messages used to authenticate users with one-time passcodes, such as account verification or two-factor authentication.
* **Utility Messages**: Messages that facilitate a specific, agreed-upon request or transaction, or update a customer about an ongoing transaction. Examples include order confirmations, transaction updates, and account alerts.
* **Service Messages:** These are messages in which the company responds when the customer initiates communication. This category is associated with request handling, such as account updates, order tracking, or replies to frequently asked questions (product availability, location, hours, etc.).

#### Costs by Template Type and Country

The table below shows the cost per message sent, organized by country and category. It is important to consider this information when planning your campaigns to maintain profitability and comply with WhatsApp's policies.

| Country                  | Marketing | Utility | Authentication | Service |
| ------------------------ | --------- | ------- | -------------- | ------- |
| Colombia                 | 26        | 18      | 16             | 4       |
| Mexico                   | 91        | 56      | 50             | 6       |
| Peru                     | 147       | 88      | 79             | 37      |
| Argentina                | 129       | 85      | 77             | 19      |
| Brazil                   | 131       | 73      | 66             | 18      |
| Chile                    | 186       | 123     | 110            | 27      |
| North America            | 52        | 32      | 28             | 18      |
| Rest of Latin America    | 155       | 103     | 93             | 89      |
| Egypt                    | 225       | 144     | 129            | 38      |
| France                   | 300       | 161     | 145            | 51      |
| Germany                  | 286       | 179     | 161            | 48      |
| India                    | 21        | 9       | 59             | 2       |
| Indonesia                | 86        | 42      | 285            | 11      |
| Israel                   | 74        | 39      | 35             | 11      |
| Italy                    | 145       | 88      | 79             | 23      |
| Malaysia                 | 182       | 42      | 38             | 14      |
| Netherlands              | 334       | 167     | 151            | 186     |
| Nigeria                  | 108       | 67      | 60             | 65      |
| Pakistan                 | 99        | 53      | 48             | 30      |
| Russia                   | 168       | 100     | 90             | 83      |
| Saudi Arabia             | 85        | 53      | 47             | 41      |
| South Africa             | 79        | 42      | 38             | 35      |
| Spain                    | 129       | 80      | 72             | 77      |
| Turkey                   | 23        | 20      | 17             | 6       |
| United Arab Emirates     | 71        | 41      | 37             | 40      |
| United Kingdom           | 148       | 83      | 75             | 81      |
| Rest of Africa           | 47        | 33      | 30             | 76      |
| Rest of Asia Pacific     | 153       | 99      | 89             | 47      |
| Central & Eastern Europe | 180       | 129     | 117            | 52      |
| Middle East              | 71        | 41      | 37             | 46      |
| Western Europe           | 124       | 88      | 79             | 83      |
| Other                    | 126       | 71      | 64             | 30      |

**⚠️ Disclaimer**

If you integrate with WhatsApp or another telephony provider, the costs associated with that provider are **ADDITIONAL** to Dapta’s credits.

#### Billing Clarifications by Message Type

* **Utility messages** are charged **only once per message**. If the user replies to the template, a service message will be charged.
* If the user replies to a template, a **service message** is charged.
* **Service messages** are charged **once** when the user initiates the conversation or when a template is sent. Additionally, this fee is charged **only once per conversation**. Each conversation includes all exchanged messages within a **24-hour period** from the last message sent by the user.
* If the user sends another message **after 24 hours**, a new conversation is opened and a new service message will be charged, whose cost varies by country as shown in the table above.

#### Flow Studio

In Dapta, you can create automation flows that integrate various services and actions. Each action within a flow may consume credits, depending on the services involved. For example, sending an email, updating a CRM record, or invoking an AI model could have associated credit costs.

**Note**: The specific credit consumption for flows depends on the complexity and the services used within each flow. It's recommended to monitor your credit usage regularly to manage costs effectively.


# Add team members

{% embed url="<https://www.tella.tv/video/adding-members-0q1v>" %}

Enhance collaboration by inviting new members to your Dapta account, enabling efficient automation and teamwork. Here's how to get started.

1. Log in to your Dapta account.
2. Click the on your profile on lower left column.

<figure><img src="/files/wzFNbfxykfVd8q5SwRaI" alt=""><figcaption></figcaption></figure>

3. Click on "Members".

<figure><img src="/files/MUxa9k4fUkNs32v9zqV8" alt=""><figcaption></figcaption></figure>

4. Click on "Invite Member"

<figure><img src="/files/EymW6n8LdMqjvsL86Iaq" alt=""><figcaption></figcaption></figure>

5. Invite the member to your workspace using their email address.

<figure><img src="/files/SxCfdKMHI6bVCEhrQOTI" alt=""><figcaption></figcaption></figure>

5. Click on **Send Invitation.**

The user will now receive an invitation to join your workspace directly in their email.


# Create a Workspace in Dapta

Creating workspaces is essential for keeping your projects organized and ensuring your usage is tracked accurately. In Dapta, you can create multiple workspaces within a single account.

{% embed url="<https://www.tella.tv/video/clip-creating-workspaces-and-adding-members-ax4c>" %}

**Step 1: Navigate to the Workspace Section**

Click on your profile on the bottom-left corner of the screen and click on **Workspace**. This will take you to the **Workspace** overview page.

<figure><img src="/files/wzFNbfxykfVd8q5SwRaI" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/u17bd9MrNhHWqU1SDQfJ" alt=""><figcaption></figcaption></figure>

#### Step 2: Explore Your Projects Overview

On the **Workspace** page, you’ll find a complete list of your existing workspaces (if any). This section also provides important insights, such as:

* **Workspaces**: The number of workspaces you’ve created.
* **Users:** The number of users in you workspace.

<figure><img src="/files/k8VXpvELqy8MW2QOmzwx" alt=""><figcaption></figcaption></figure>

#### Step 3: Add a New **Workspace**

To create a new **Workspace**, go to the top-right corner of the page and click on **New Workspace**.

<figure><img src="/files/6lFvfc6AppHIMQUgNTE0" alt=""><figcaption></figcaption></figure>

Step 4: Configure Your **Workspace** Details

Fill in the required details for your new **Workspace**, such as:

* **Workspace Title**
* **Description**
* Any additional configurations necessary for your specific use case.

<figure><img src="/files/ocoJyRqFafcksyM1LJ9j" alt=""><figcaption></figcaption></figure>

Once completed, save your **Workspace**. You’re now ready to start building workflows, agents and content inside Dapta.


# Creating a Voice Agent

How to enter proper context and instructions to create an a voice agent.

In this section, you will learn how to create your first voice AI agent, including the initial steps and instructions for training and testing your agent.

{% embed url="<https://www.tella.tv/video/audio-fixed-setting-up-your-first-agent-ee5m?b=0>" %}

**Step 1:** From the main menu on the left side, go to **Voice Agents** > **Agents**.

<figure><img src="/files/rBByGEUYreNUkIde9O1t" alt=""><figcaption></figcaption></figure>

***

**Step 2:** On the Agents page, click **New Agent** in the top right corner.

<figure><img src="/files/60iOSLEi3PObZEb1JV09" alt=""><figcaption></figcaption></figure>

***

**Step 3:** A window will show up with fields for you to fill out your **Company Context**. Provide relevant information about your business such as the product/service you offer, location, FAQs, etc.

> **💡 Note:** You can use the **Website URL** section to input your comany's website URL and have Ai generate context automatically.

* **Company Name:** Enter the name of your company.
* **Company Description:** Provide a brief description of what your company does. This helps the agent understand your business.

<figure><img src="/files/VfqKXEwIngYSlEjOc85q" alt=""><figcaption></figcaption></figure>

You may also **Choose a Template** using the button to quickly create an agent with one of our pre-built templates. **These are meant for demo purposes rather than real use cases unless edited after being created.**

<figure><img src="/files/UbPVL56GYcp3DN5FC2pm" alt=""><figcaption></figcaption></figure>

Click **Save and continue** to move to the next step.

***

**Step 5: Select Your Agent’s Purpose**

<figure><img src="/files/i0Fd93x6bgQMW3o97RwO" alt=""><figcaption></figcaption></figure>

Choose the purpose that best fits your agent’s role. This helps Dapta tailor its behavior and prompt style to match the use case.

* **Language:** Choose the language your agent will speak.
* **Identity Name:** This is the **name of your agent** (e.g., Brian). It will be used in introductions and throughout the conversation.
* **Purpose:** Select from the predefined options below, or choose **Custom** to define your own.

Available options for Purpose include:

* 📅 **Schedule Meetings** – Help leads book a time on your calendar.
* 📞 **Meeting Confirmation Call** – Confirm upcoming appointments with leads or clients.
* 📞 **Lead Qualification Call** – Ask pre-set questions to determine if a lead is a good fit.
* 💻 **Customer Service & Support** – Answer product or service-related inquiries.
* 📅 **Send Reminders** – Remind leads or customers about meetings, payments, or events.
* 💰 **Debt Collection Call** – Handle payment recovery in a compliant manner.
* 🛠 **Custom** – Don’t see what you need? Choose this option to define your own unique purpose.

> ✅ If your use case doesn't fall under the predefined options, **select "Custom"** and describe your agent’s purpose in detail in the instructions box below.

* **Important Instructions:** Describe how it should sound (friendly, professional, empathetic), what it must or must not do, and any rules it must always follow. This shapes the AI’s behavior.\
  \
  Click **Save and continue** to move forward.

***

**Step 6: Test Your Agent**

<figure><img src="/files/VIgL1uhN2SNO2gtP47OQ" alt=""><figcaption></figcaption></figure>

In this step, Dapta automatically generates the first version of your agent's **prompt** based on the context you’ve provided so far. This prompt acts as the script your AI agent will follow on calls.

**🧠 Prompt Overview**

✨ The prompt is **fully customizable** and can be edited in detail later in **Advanced Settings**.

The **auto-generated prompt** includes:

* Agent Identity & Objectives
* Company and Product Context
* Objection Handling Strategies
* Communication Standards (tone, pronunciation, style)
* Call Flow
* Input Variables used during the call (e.g., `{{contact_name}}`, `{{demo_date}}`, etc.)

It's pre-filled using the details from earlier steps, but you can refine it anytime in Advanced Settings.

**🔁 Working with Variables**

* Dapta will auto-generate a list of variables detected from your prompt (e.g., `contact_name`, `company_name`, `demo_date`)
* These variables are used dynamically during calls to personalize the conversation
* You can manually add or remove variables using the **Add Variable** button
* Fill in sample values for these variables in the **Test Call Setup** section to preview how they’ll sound

**📞 Try a Test Call**

* Add a test phone number
* Click **Test Call** to hear your AI agent deliver the prompt using the variable values you entered

**⚙️ Giving Feedback**

Once you have completer your first test call you will be prompted to provide feedback. We appreciate and welcome all feedback as it help us improve the way our AI agents sound and perform.

<figure><img src="/files/Ruh4iC1CwKdy97lHVeCs" alt=""><figcaption></figcaption></figure>

Once you have provided feedback you, will now be able to access all of the settings to further customize and fine-tune your agent.

👉 Please refer to this article for an in-depth guide of how each parameter works:

[Customizing your Voice AI Agent](https://docs.dapta.ai/ai-voice-agents/how-to-set-up-your-ai-voice-agent)

<figure><img src="/files/14QBmt3cN25U5on98SRf" alt=""><figcaption></figcaption></figure>

Last updated: Feb 11th 2026


# How to set up your AI Voice Agent

In this section, you will learn how to set up the initial steps for your AI voice agent, including speech settings, voice configuration, and call settings. These steps will help you tailor your agent

{% embed url="<https://www.tella.tv/video/voice-settings-2uzx>" %}


# Improving prompts with AI

Use the Improve with AI tool to quickly refine any part of your prompt. Whether you're adjusting tone, fixing clarity, or simplifying language, this feature makes it easy to polish your agent’s script

{% embed url="<https://www.tella.tv/video/editing-prompts-9mur?b=0>" %}

### **✨ Improving Prompts with AI**

To try it out, go to any of the **⚙️ Advanced Settings.**

<figure><img src="/files/X40S0lrpGwKHdVjiQyEp" alt=""><figcaption></figcaption></figure>

#### 💡 How It Works:

1. ✍️ **Highlight** any part of your prompt you'd like to improve.

<figure><img src="/files/RdjSDcf4IHphtIIEys0a" alt=""><figcaption></figcaption></figure>

2. 🛠️ Click the **“Improve”** button that appears.\
   \
   ![](/files/TB8YDOPpkPuOEX0b1Yl2)
3. 💬 A prompt will ask how you’d like to improve it (e.g. clearer, friendlier, more concise). And click "Improve".

<figure><img src="/files/nwOudS2WqjXM65OhT7RK" alt=""><figcaption></figcaption></figure>

4. 🤖 The AI suggests a new version.

<figure><img src="/files/YfgwRVWVxTqAENxXZX0D" alt=""><figcaption></figcaption></figure>

5. ✅ **Accept** or ❌ **Reject** the change—just like editing a doc!

<figure><img src="/files/DOyaRglrK5UwIYD1zXQg" alt=""><figcaption></figcaption></figure>

This is perfect for tightening up language, improving tone, or making your prompt easier for agents to follow.\ <br>

***

### **🌟** Improve with AI (Below Prompt)

Use this option to improve your entire prompt at once.\
\
💡 How It Works:

1. 📄 Scroll to the bottom of the prompt editor.
2. ✨ Click the **“Improve with AI”** button.
3. 🤖 The AI will analyze your full prompt and suggest broader changes—this might include rewording, restructuring, or improving tone.

<figure><img src="/files/6NgcKPjhgDlZW8UoS4Dw" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/ge0x9W1zcnbAkTfmBR7x" alt=""><figcaption></figcaption></figure>

4. 👀 Review the side-by-side comparison of old vs. suggested changes.

<figure><img src="/files/lFwLCrJWFRW51M3NBJzg" alt=""><figcaption></figcaption></figure>

5. ✅ Click **Accept Changes** or ❌ **Reject Changes**.

Ideal for refining the overall structure, tone, and clarity of your prompt with a single click.

***

### Updating Your Agent Context:

Once you have created your agent and have given it a language, name, purpose, etc. You must use the improve functionality for these changes to apply in your prompt.

How it works:

1. Edit any component in the "Context" tab
2. You will see the Improve with AI window pop up with a pre-defined prompt

<figure><img src="/files/7fzO5zmdLU2NK6HjN4En" alt=""><figcaption></figcaption></figure>

3. Hit "Improve" for the changes being made on the left panel to be applied to your prompt.

<figure><img src="/files/49gdNvdWPVbA12jnqdWR" alt=""><figcaption></figcaption></figure>

4. Accept or Reject the changes made

<figure><img src="/files/4tkqGG4sNzJX6eccsk2M" alt=""><figcaption></figcaption></figure>


# Using dynamic variables

{% embed url="<https://www.tella.tv/video/dynamic-input-variables-ejkk?b=0>" %}

Dynamic variables are placeholders used in AI prompts to personalize interactions by dynamically inserting specific information during a conversation. They are essential for tailoring the AI's responses to the individual needs and context of each customer interaction.

### Structuring the Input Variables Section <a href="#structuring-the-input-variables-section" id="structuring-the-input-variables-section"></a>

#### Purpose <a href="#purpose" id="purpose"></a>

The Input Variables section is crucial for defining the dynamic variables that will be used throughout the AI prompt. This section ensures that each variable is clearly documented, providing clarity on its purpose and usage.

Common use cases:

* Pre-fill variables previous to an outbound call for customization
* Grab user's name from database and greet them by their name
* Confirm user's address in a database
* Confirm an appointment with user in existing database

#### Notation <a href="#notation" id="notation"></a>

* Dynamic variables are enclosed in double curly braces, e.g., **{{variable\_name}}**.
* Each variable should be listed with a brief description of its role in the conversation.
* These variables go directly in your prompt and can be tested during test calls.

#### Declaration Example <a href="#declaration-example" id="declaration-example"></a>

* **{{customer\_name}}**: The name of the customer.
* **{{product\_interest}}**: The product the customer is interested in.
* **{{customer\_email}}**: The email address of the customer.
* **{{customer\_company}}**: The company the customer represents.

<figure><img src="/files/aTIAGQYpnM4xDONZB7eD" alt=""><figcaption></figcaption></figure>

#### Usage Example <a href="#usage-example" id="usage-example"></a>

Comment

* Greeting: "Hello {{customer\_name}}, I see you're interested in our {{product\_interest}}."Comment
* Company Reference: "I understand {{customer\_company}} has been experiencing {{specific\_issue}}."

***

#### Placement <a href="#placement" id="placement"></a>

Dynamic variables should be placed in the `# Input Variables` section of the prompt. It is recommended to position them at the end of this section to ensure clarity and organization.

<figure><img src="/files/t54jyTRSkuDwKN4QKceK" alt=""><figcaption></figcaption></figure>

***

### Reserved variable names <a href="#reserved-variable-names" id="reserved-variable-names"></a>

A few variable names are **reserved**. Dapta fills these in automatically when the call happens, so you don't — and can't — set them yourself. When you use one of them in your prompt, it:

* resolves to the system value during the call, and
* does **not** appear as a fillable field in the Input Variables section. Any value you try to provide for it is ignored.

| Variable                      | Resolves to                                                                                                                 |
| ----------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `{{call_id}}`                 | The call's unique ID                                                                                                        |
| `{{direction}}`               | `inbound` or `outbound`                                                                                                     |
| `{{user_number}}`             | The other party's number (the caller on inbound calls, the person being called on outbound calls)                           |
| `{{agent_number}}`            | Your agent's number (the number being called on inbound calls, the caller on outbound calls)                                |
| `{{current_time}}`            | The current time in the `America/Los_Angeles` timezone                                                                      |
| `{{current_time_<timezone>}}` | The current time in a specific timezone — for example `{{current_time_America/Bogota}}` or `{{current_time_Europe/Madrid}}` |

{% hint style="info" %}

* Any name that contains `current_time` is reserved, including one with a timezone suffix. The other four names are matched **exactly**.
* Names are **case-sensitive** and must be lowercase exactly as shown above.
* If you use an invalid timezone, the `{{current_time_<timezone>}}` placeholder is left blank.
  {% endhint %}

***

### Which names are accepted as variables <a href="#which-names-are-accepted-as-variables" id="which-names-are-accepted-as-variables"></a>

For a placeholder to be picked up as a fillable variable, its name has to be a plain identifier. A name qualifies only when **all** of these are true:

1. It starts with a letter (`a–z`, `A–Z`) or an underscore (`_`).
2. Every other character is a letter, a digit (`0–9`), or an underscore.
3. No other characters appear anywhere — no dots, hyphens, slashes, spaces, `@`, parentheses, brackets, or quotes.
4. The name is not empty.

A single invalid character anywhere disqualifies the whole name. Placeholders that break these rules are still allowed in your prompt text, but they're treated as template expressions and are **not** listed as fillable variables.

{% hint style="info" %}
These rules only apply to the variables **you** create. The [reserved system variables](#reserved-variable-names) are resolved automatically regardless of these rules — which is why `{{current_time_America/Bogota}}` works even though it contains a slash.
{% endhint %}

✅ **Valid:** `{{contact_name}}`, `{{_foo}}`, `{{order2}}`, `{{x}}`

The following examples are **not** shown as variables:

| Placeholder                      | Why                                             |
| -------------------------------- | ----------------------------------------------- |
| `{{user.email}}`                 | Contains a dot                                  |
| `{{contact_name.split(" ")[0]}}` | Dots, parentheses, quotes, spaces, and brackets |
| `{{contact-name}}`               | Contains a hyphen                               |
| `{{first name}}`                 | Contains a space                                |
| `{{1st_name}}`                   | Starts with a digit                             |
| `{{user@id}}`                    | Contains `@`                                    |
| `{{}}`                           | Empty                                           |

***

### Variables from action responses <a href="#variables-from-action-responses" id="variables-from-action-responses"></a>

Besides pre-filling variables before a call, your agent can create new dynamic variables **during** the call from the response of a Custom Action.

When configuring a Custom Action (**Settings** → **Agent Actions** → **Add** → **Custom Action**), use the **Store fields as variables** section:

* "Field in the response": the field to read from the action's response, e.g. `response.tracking`.
* "Variable name": the name of the variable that will store the value, e.g. `tracking_number`.

<figure><img src="/files/XKdjBvm3uJjBDQLYPaZU" alt=""><figcaption></figcaption></figure>

Once the action runs during a call, the value becomes available as a regular dynamic variable — for example **{{tracking\_number}}** — and can be used later in the same call, such as in a transfer message.

{% hint style="info" %}
Add one row per field you want to store. Rows with an empty field or variable name are ignored.
{% endhint %}

***

### Best Practices <a href="#best-practices" id="best-practices"></a>

* Ensure all dynamic variables are accurately populated before the conversation begins.
* Regularly update the list of dynamic variables to reflect any changes in business needs or customer interactions.
* Test the implementation of dynamic variables to ensure they function as expected in various scenarios.

***

### Conclusion <a href="#conclusion" id="conclusion"></a>

Dynamic variables are a powerful tool for creating personalized and effective AI interactions. By understanding and implementing them correctly, businesses can significantly improve the quality of their customer engagements.


# Improving pronunciation

In this guide, we share some tips and tricks to enhance your prompts and handle pronunciation in special cases. Add them and test them with your agents to improve your results.**Pronunciation Standards**

1. **Phone Numbers**:

   * Split each digit for clarity: "3214567890" → "3 - 2 - 1 - 4 - 5 - 6 - 7 - 8 - 9 - 0"Comment
   * Group by pairs for longer sequences: "1234567890" → "12 - 34 - 56 - 78 - 90"Comment
   * Use parentheses for area codes: "(+57) 321 - 456 - 7890"Comment
   * Note: Using " - " introduces pauses in speech, enhancing clarity.Comment

   CommentComment
2. **Email Addresses**:

   * Replace symbols for clarity: "@" → "arroba", "." → "punto"Comment
   * Split domains for better understanding: "<user@company.com>" → "user arroba company punto com"Comment
   * Avoid normalizing or altering the actual addressComment

   CommentComment
3. **Alphanumeric Codes**:
   * Separate letters and numbers: "123A" → "1 - 2 - 3 - A"Comment
   * Use "dash" or "hyphen" for "-"Comment
   * Spell out special characters for clarityComment
   * Note: Using " - " introduces pauses in speech, enhancing clarity.Comment

### Critical Preservation Rules <a href="#critical-preservation-rules" id="critical-preservation-rules"></a>

* Do not modify original data if uncertain.Comment
* Maintain exact spelling of names and companies.Comment
* Preserve unique identifiers as they are.Comment
* Document any standardization rules applied.Comment

### Verification Protocols <a href="#verification-protocols" id="verification-protocols"></a>

* Conduct an audio check before any interaction.Comment
* Confirm identity using multiple data points.Comment
* Use standardized format for information readback.Comment
* Obtain explicit confirmation for critical data.


# Adding pauses

Learn how to add natural pauses to your voice agent's speech using dashes. Control pacing for clearer, more human-sounding conversations.

Sometimes you want your voice agent to slow down — to take a breath between a long greeting and a question, to space out the digits of a phone number, or to pause dramatically before delivering an important piece of information. Dapta voice agents support this directly from your prompt using a simple dash-based syntax.

***

## How pauses work

Inside any text the agent will speak (prompts, greetings, fixed responses), a **dash (`-`) surrounded by spaces** is interpreted as a short pause of roughly **0.3 seconds**. To make the pause longer, just chain more dashes together — each additional dash adds about 0.3 seconds.

| Syntax              | Approximate pause |
| ------------------- | ----------------- |
| `word - word`       | \~0.3 s (short)   |
| `word - - word`     | \~0.6 s (medium)  |
| `word - - - - word` | \~1.2 s (long)    |

{% hint style="warning" %}
**The spaces around each dash matter.** `word-word` is read as a hyphenated word; `word - word` introduces a pause. Always keep one space on each side of every dash.
{% endhint %}

***

## Examples

**Short pause** for natural phrasing:

```
Hi, this is Sofia from Dapta - how can I help you today?
```

**Longer pause** before delivering a key piece of information:

```
Your confirmation number is - - - 4 - 8 - 2 - 9.
```

**Spacing out digits** so phone numbers and codes are easy to understand:

```
You can reach us at 3 - 2 - 1 - 4 - 5 - 6 - 7 - 8 - 9 - 0.
```

***

## When to use pauses

* **Phone numbers, codes, and emails** — split into smaller chunks so the listener can follow along. See [Improving pronunciation](/ai-voice-agents/how-to-set-up-your-ai-voice-agent/improving-pronunciation) for the full pattern.
* **Greetings and transitions** — a short pause after the agent introduces itself feels more natural than a single run-on sentence.
* **Emphasis** — a longer pause before an important value (price, date, deadline) draws attention to it.
* **Reading instructions step by step** — a pause between steps gives the caller a moment to process.

***

## Tips

> **💡 Tip:** Don't overuse pauses. Two or three well-placed dashes per response feel natural — a dash after every clause feels robotic and slow.

> **💡 Tip:** Never write instructions like `[pause]`, `[wait]`, or `(pause for 2 seconds)` in your prompt. The agent will read them out loud literally. Use dashes instead.

> **💡 Tip:** If you need a much longer pause (e.g., 3+ seconds), reconsider the script — long silences on a phone call usually feel like the line dropped. Consider phrasing it as a question that invites the caller to respond instead.

***

{% content-ref url="/pages/vXIOj6QMd8jL6IDkZeLB" %}
[Improving pronunciation](/ai-voice-agents/how-to-set-up-your-ai-voice-agent/improving-pronunciation)
{% endcontent-ref %}

{% content-ref url="/pages/HLpmU3btHRnsghtarlsM" %}
[Prompt Guide](/ai-voice-agents/how-to-set-up-your-ai-voice-agent/prompt-guide)
{% endcontent-ref %}


# Prompt Guide

Through proper configuration and structure of your voice agent's instructions, you can ensure it meets your objectives accurately and efficiently.

Designing clear and organized prompts not only improves the quality of interactions but also guarantees superior results.

In this guide, you'll find practical tips for structuring your prompts and customizing interactions with your AI Agent, making each conversation more effective and satisfying for your customers. From defining the agent's identity to establishing a logical and dynamic conversation flow, we'll help you maximize the potential of your agent.

{% embed url="<https://www.loom.com/share/ddb949eba1df486c80babe588573bbbf?sid=d87c287d-47bf-40b5-817c-a2d7c27a4d67>" %}

Here is the example shown in the video:

```
# Dapta.AI Prompt Generation Instructions

As a prompt-generating AI, your goal is to create clear and structured instructions for voice conversational agents. Follow this structure when receiving a use case:

## Base Structure

/*========================================
 �� DESCRIPTIVE TITLE OF THE USE CASE
==========================================
# PURPOSE:
A brief description of the assistant's purpose and main function.
It should explain the objective, expected impact, and the value it provides.
========================================*/

# PERSONA
    You are Mike, Sales rep at Dapta.
    Your tone is {{tone_attribute_1}}, {{tone_attribute_2}}, and {{tone_attribute_3}}.

# OBJECTIVE
    Your objective is {{main_objective}}, ensuring {{key_result}} while maintaining {{desired_interaction_quality}}.

# CONTEXT
    At {{company_name}}, we value {{company_value}}.
    We specialize in {{company_specialization}}.
    Our priority is {{company_priority}}.

# CONSTRAINTS
    behavior:
        - {{constraint_1}}
        - {{constraint_2}}
        - {{constraint_3}}
        - {{constraint_4}}
        - {{constraint_5}}

# CONVERSATION FLOW
    1. Initial Verification
        - "Hello {{contact_name}}, can you hear me?"
        - If no clear response: "{{contact_name}}, could you confirm if you can hear me well?"

    2. {{main_flow_steps}}
        - Ask the lead some questions to get to know where they live.
        - {{next_step}}

    3. {{closing_steps}}
        - {{final_message}}
        - {{follow_up_action}}

# VARIABLES
## Template Sections
These are template sections that structure the prompt content:

    - {{main_flow_steps}}: Describes the main steps of the flow
    - {{closing_steps}}: Defines the closing steps of the conversation

## Dynamic Variables
These are dynamic variables used to personalize calls in real-time:

    - {{contact_name}}: Full name of the contact
    - {{contact_email}}: Contact's email address
    - {{contact_phone}}: Contact's phone number
    - {{current_time}}: Current time in spoken format
    - {{user_name}}: User's name
    - {{user_email}}: User's email address



## Formatting Rules

1. Header
    - Use comment format with /*
    - Include a relevant emoji for the use case
    - Write the purpose in 2-3 lines
    - Maintain consistent visual formatting

2. Base Variables
    - Use curly braces {{ }} for all variables
    - Use underscores for spaces: {{variable_name}}
    - Do not use spaces or special characters
    - Keep names descriptive and clear

3. Section Structure
    - Main titles without indentation
    - Content indented with 4 spaces
    - Subsections with 8 spaces
    - Maintain clear visual hierarchy

4. Conversational Flow
    - Write only the actual dialogue lines
    - Structure conditional responses as:
        If [condition]:
            - "dialogue line"
        If [other condition]:
            - "alternative dialogue"
    - Keep one question or statement per line
    - Use natural transitions between topics
    - Include clear decision paths for different scenarios
    - Never write technical instructions like "[wait]" or "[pause]"

5. Response Handling
    - Structure alternative responses under clear conditions
    - Use indentation to show conversation hierarchy
    - Include fallback responses for unexpected scenarios
    - Specify clear exit points for each conversation path


## Important Notes
- Maintain consistency in the selected language.
- Ensure the entire prompt is written in a single language to avoid confusion.
- Adapt the tone according to the target market.
- Ensure all variables are documented.
- Maintain visual formatting throughout the document.
- Never include technical instructions in dialogue lines.
- Only write the actual words the AI should speak.
- Structure dialogue in a natural, conversational way.
- Include clear decision trees for different user responses.
- Specify conditions for alternative paths clearly.
- Use natural language transitions between topics.
- Keep the focus on actual spoken dialogue.
```

## AI Call Prompt Structure Guidelines

A well-crafted prompt is essential for guiding these interactions, ensuring that the AI can deliver clear, relevant, and personalized responses. By focusing on the quality of prompts, businesses can significantly improve the outcomes of their AI-driven conversations.Comment

### Sectioned Prompts <a href="#sectioned-prompts" id="sectioned-prompts"></a>

CommentA structured approach to designing AI interactions. By breaking down prompts into distinct sections, you can ensure clarity, consistency, and effectiveness in communication. Each section addresses a specific aspect of the conversation, allowing for a more organized and targeted interaction.Comment

#### Identity <a href="#identity" id="identity"></a>

CommentDefine the persona of the AI agent to ensure a consistent tone and approach throughout the interaction.Comment

* **Example**: "You are Sarah, a customer service representative for TechServe Solutions. Your role is to assist customers with their inquiries and ensure their satisfaction with our IT support services."Comment

#### Context <a href="#context" id="context"></a>

CommentProvide background information about the company and the purpose of the call. Create subsections to describe company mission, FAQs, or any other important data the AI should know. This helps lighten the Conversational Flow section and makes calls more fluid.CommentExample Structure:CommentCompany Background:- Leading logistics platform in Latin America- Specializes in last-mile delivery solutions- Operating in 8 countries with over 1000 active drivers​Key Services:- Same-day delivery- Real-time tracking- Automated dispatch system​Common Customer Scenarios:- Delivery status inquiries- Service registration- Technical supportComment

#### Style Guidelines <a href="#style-guidelines" id="style-guidelines"></a>

CommentSet the tone and style for interactions. Prompts should always be written in the language the call will be made in to avoid latency issues caused by translations.Comment

* **Be professional yet approachable**: "Maintain a friendly tone while being professional."Comment
* **Show empathy**: "Acknowledge customer concerns and validate their experiences."Comment
* **Example**: "When discussing delivery delays, say: 'I understand how important timely delivery is for your business. Let me help you resolve this situation.'"Comment

### Response Guidelines <a href="#response-guidelines" id="response-guidelines"></a>

`Provide clear instructions for handling various customer responses.CommentExample:CommentPositive Responses:- When customer shows interest: "That's great! Let me explain the next steps..."- After agreement: "Excellent choice! I'll help you get started right away."​Objections:- Price concerns: "I understand budget is important. Let me explain our ROI..."- Time constraints: "We can schedule a follow-up at your convenience."​Unclear Responses:- "Just to make sure I understand correctly, you're saying..."- "Could you please clarify if you mean..."`

#### Constraints <a href="#constraints" id="constraints"></a>

CommentDefine limitations and rules for the conversation.CommentExample:Comment- Do not quote prices without verifying customer's region- Never promise specific delivery times- Redirect technical issues to specialized support- Maximum call duration: 10 minutes- Must verify customer identity before sharing account details

####


# Giving Feedback on Calls

🗣️ You can provide feedback on any call to help improve our AI and support

{% embed url="<https://www.loom.com/share/cf2e76abf7074da6a0681f2bcebe5543>" %}

📍 Where to Start

Head to **⚙️ Advanced Settings** and select the **📞 Call Log** tab.

#### 🪄 How It Works:

1. 📋 From the call list, click on any call you’d like to review.

<figure><img src="/files/V0XIDSC0Mu28Mk4L5hDg" alt=""><figcaption></figcaption></figure>

2. 🎧 You’ll be taken to the **Call Analysis** page where you can listen to the recording and read the transcript.

<div align="left"><figure><img src="/files/eFMMZ9kBri3Ur65oQ5f3" alt=""><figcaption></figcaption></figure></div>

3. 👍 👎 Select either **thumbs up** or **thumbs down** depending on how the call went.

\
![](/files/R8KZPDNmvu2CS3KiqPmz)

4. 📝 A modal will appear asking for a quick comment—tell us what worked or what could be better.

\
![](/files/F2Ha8vU4pijOi0Y5aZKu)\
\
5\. 💬 You can also go to the **Comments** tab on the top right to leave additional or more detailed feedback.\
\
![](/files/SedWilyfisfp9lwMRIor)\
\
6\. 🔔 Mention the Dapta team by typing `@Dapta` or use `@` to select a specific team member. It’s a quick way to notify someone directly, loop in your team, or flag a call for review.\
\
![](/files/2c40p4o3dBbJAlTpYROM)<br>

💡 **Why it matters:** Your feedback helps us train the AI to get smarter and more accurate over time. Every comment helps improve future calls.


# Post Call Analysis – Call Analysis Flow 🔀

This section allows you to configure how calls made by the AI agent will be analyzed using the flows previously created in Flow Studio.

#### Select Call Analysis Flow

![](/files/NfrOvHIRYMPEyxMQn9y1)<br>

Click on “Select Call Analysis Flow”

![](/files/gPXameoI7HW6zMhJqYmm)<br>

You will only see flows that meet the specific criteria for call analysis. If your flow doesn’t appear in the list, it’s because it doesn’t meet the following conditions:

* The flow must have a “Trigger” type that receives all parameters through the body of the request.
* The flow must respond with text, since LLM models can only process text-based responses.
* Only one analysis flow can be selected in this feature.<br>

Once the flow is selected, you’ll see the flow’s URL and API Key already filled in under the “Call Analysis Flow” field.

<figure><img src="/files/nqBrFoA8xY4vD2WF6QMg" alt=""><figcaption></figcaption></figure>

⚠️ Warning:

If you change the name of a flow, you must update the corresponding webhook URL.


# Post Call Analysis – Post-Call Data Retrieval 🔁

This feature allows you to specify what information you want to extract from each interaction once the call has ended.

<figure><img src="/files/jWYfcqFP86StQO8V3UbK" alt=""><figcaption></figcaption></figure>

Extracting this data is essential for facilitating analysis, generating reports, or defining follow-up actions.

<p align="center"><br></p>

<figure><img src="/files/91i8buz26DtaPCpGUsJo" alt=""><figcaption></figcaption></figure>

In all cases, follow these steps:

* Step 1: Give the data point a name
* Step 2: Write detailed instructions
* Step 3: Provide formatting examples (Optional)

<br>

You can extract the following data types from post-call analysis:

#### Text (String):

Used to capture written, detailed information such as names, descriptions, and open-ended responses.

<figure><img src="/files/BVaNnsLzJNYrpQvFDXcb" alt=""><figcaption></figcaption></figure>

Example:

Call summaries, action items, or key topics discussed.

***

#### Selector (Enumeration):

Used to categorize information from a fixed list of predefined options.

Ideal when the user must choose from a limited set, such as dropdowns or selection menus.

<figure><img src="/files/Wf1mUPCYfZC2sWuHbBLY" alt=""><figcaption></figcaption></figure>

Example:

Issue types, product categories, or resolution status.

***

#### Boolean (True/False):

Used for simple yes/no determinations.

<br>

<figure><img src="/files/ZoeZVa1whVbaub4TtRRu" alt=""><figcaption></figcaption></figure>

Stores a logical value, either “true” or “false”. Useful for binary conditions like yes/no, true/false, or accept/reject.

Example:

Whether the customer answered for the first time.

***

#### Number (Numeric Value):

<br>

<figure><img src="/files/5CGXncWFQ5IF6rhumCar" alt=""><figcaption></figcaption></figure>

Ideal for quantitative measurements.

Represents numeric values—integers or decimals. Great for calculations, comparisons, or representing quantitative data like ages, amounts, prices, etc.

<br>

Example:

Transaction amounts, call duration, or satisfaction scores.


# Post Call Analysis – Notifications 🔔

Automatically send an email alert after a call, choosing who receives it, what call data it includes, and the post-call variable condition that triggers it.

The **Notifications** feature lets your agent send an automated email after a call is executed. You decide who receives it, which post-call data the email contains, and the condition that must be met for the email to be sent.

Emails are sent from `notifications@daptatech.com`.

You'll find it in the **Post-Call Analysis** section of your agent, selectable from the **Call Analysis** tab within the voice agents, below **Call Analysis Flow**.

<figure><img src="/files/ZvHozVVAkV6bLVf4Ihs0" alt=""><figcaption></figcaption></figure>

If no notification has been configured yet, the card shows an **Add Notification** button. Once configured, the card displays the recipient and trigger condition, and it can be edited or deleted.

***

## Setting Up a Notification

Click **Add Notification** to open the configuration modal.

<figure><img src="/files/934rz6ZEdg2Sc4DLhdgC" alt=""><figcaption></figcaption></figure>

### Name

A label to identify this notification internally (e.g. *Sales follow-up alert*). Required.

### To

The email address that will receive the notification. Required, and must be a valid email.

### Body

Choose which post-call data the email includes. Each section is a toggle and all are enabled by default:

* **Call Details** – basic call metadata such as numbers, duration and timestamps.
* **Customer Information** – the customer details associated with the call.
* **Post Call Analysis** – the custom variables extracted during post-call analysis.

Turn off any section you don't want to receive.

### Send Condition

The send condition is **required**. The email is delivered only when the chosen post-call analysis variable matches a specific value.

* **Variable** – pick one of the variables you defined in **Data Retrieval from your Calls**.
* **Condition** – `Equals` or `Does not equal`.
* **Value** – the value to compare against. The input adapts to the variable type:
  * **Boolean** → choose *Yes* or *No*.
  * **Selector (enum)** → choose from the variable's predefined options.
  * **Text / Number** → type the expected value.

{% hint style="info" %}
The send condition depends on a post-call variable. If no post-call variable has been created and the condition is not set, the notification can't be sent. Define your variables first under **Data Retrieval from your Calls**. See [Post Call Analysis – Post-Call Data Retrieval](/ai-voice-agents/how-to-set-up-your-ai-voice-agent/post-call-analysis-post-call-data-retrieval).
{% endhint %}

We recommend creating a new post-call variable specifically as the trigger for the notification (for example a `successful_call` boolean, or a `should_notify` selector), so the condition stays meaningful and isolated from variables used elsewhere.

Example: send the email only when `successful_call` **equals** `Yes`.

### Send Email Test

Use **Send Email Test** to send a sample email to the configured recipient with the currently enabled sections, so you can preview the format before saving.

### Saving

Click **Confirm** to save. All three send condition fields (variable, condition, value) must be completed before saving. Use **Cancel** to close without saving.

***

## Editing or Deleting

From the Notifications card, use the **pencil** icon to reopen the modal and adjust any setting, or the **trash** icon to remove the notification (a confirmation is required). Only one notification can be configured per agent.


# Voice Agent Settings Guide

Guides to fine-tune your agent.

{% embed url="<https://www.tella.tv/video/voice-settings-2uzx>" %}


# Conversation Behavior – Start Conversation ▶️

This feature allows you to configure who initiates the conversation.

**Options:**

**Conversation Start Behavior**

* User Initiates
* AI Initiates (Dynamic Message – Based on Instructions)
* AI Initiates (Predefined Message)

<figure><img src="/files/9yXyXfUZ78luX3Acoqvb" alt=""><figcaption></figcaption></figure>

The options to define who starts the conversation are:

* **User Initiates:**

  With this setting, the AI agent will wait for the user to speak first to start the conversation.
* **AI Initiates (Dynamic Message – Based on Instructions):**

  If you choose this option, the AI agent will start the conversation with dynamically generated messages. These messages will be created based on the instructions or “prompt” you have configured for the agent.
* **AI Initiates (Predefined Message):**

  By selecting this option, the AI agent will start the conversation using a single, specific message that you have previously defined in your prompt.


# Conversation Start Behavior - Response Delay ⏳

Change the time your agent waits before it begins to speak.

<figure><img src="/files/H68U3dz60kuJz3Uwk57p" alt=""><figcaption></figcaption></figure>

This setting can help make your AI agent feel more natural—especially in spoken interactions. Add a brief pause to simulate human-like reflection or reduce it for snappier conversations. Adjust as needed to match your preferred pace.\
\
Minimum: 0 seconds (No delay)\
Maximum: 5 seconds (Five second Delay)


# Speech Settings - Responsiveness ⚡️

Control how instantly your AI responds after a user finishes speaking. This setting fine-tunes the AI’s reaction time, shaping the rhythm of conversation.

<figure><img src="/files/l8y1Uzt4KUVj7oKDWSLF" alt=""><figcaption></figcaption></figure>

• Lower values (closer to 0) insert intentional pauses.

• Higher values (closer to 1) generate quicker, snappier replies—ideal for fast-paced tasks like support or routing.

*Minimum: 0 (Slow, deliberate)*

*Maximum: 1 (Fast, immediate)*

*Recommended: 0.5–0.8 for natural, fluid responsiveness*


# Speech Settings - Interruption Sensitivity 🛑 🎤

Set how attentively your AI listens for interruptions from the human speaker. This controls whether the agent yields mid-sentence or holds its turn before stopping.

<br>

<figure><img src="/files/slxQXK1N6w4zwJ5Cw1u2" alt=""><figcaption></figcaption></figure>

• Higher values (closer to 1) make the AI more interruptible—great for dynamic, user-led conversations.

• Lower values (closer to 0) let the AI finish its thought, helpful in structured or directive use cases.

<br>

*Minimum: 0 (Rarely interrupted)*

*Maximum: 1 (Highly interruptible)*

*Recommended: 0.5–0.8 for balanced flow›*

<br>

Fine-tuning this gives users more conversational control—without making the AI feel passive.


# Speech Settings - Active Listening 🎧

Enable subtle backchanneling cues—like “yeah,” “uh-huh,” or light affirmations—to make your AI sound more present and engaged during human speech.

<br>

<figure><img src="/files/FpnYvooMX5c5df6ur0xE" alt=""><figcaption></figcaption></figure>

When turned **on**, the AI interjects natural-sounding acknowledgments at key moments, simulating real-time attentiveness. This enhances trust and conversational warmth, especially in empathetic or rapport-driven scenarios.

\
When **off**, the AI remains silent while listening—ideal for efficiency-first or formal contexts.


# Speech Settings - Pronunciation 🗣️

Teach your voice agent how to pronounce specific names, brands, and terms by mapping a word to how it should sound out loud.

Teach your agent how to pronounce specific names, brands, and terms. Add a word as it's written and tell the agent how to say it out loud, so tricky names always sound right on a call.

<br>

<figure><img src="/files/GtQMMbFHrQCHq1I6cXNm" alt=""><figcaption></figcaption></figure>

Each pronunciation rule has two fields:

* **Word as written** — the term exactly as it appears in your prompt or data (for example, `ChatGPT`).
* **How to say it** — a simple, spelled-out version of how it should sound (for example, `Chat gee-pee-tee`).

When the agent is about to say the written word during a call, it uses your spelled-out version instead.

***

**Adding a rule**

Click **Add Word** to create a new row, then fill in both fields. Use the **play** button (▶) to hear how the spelled-out version sounds in your agent's current voice, and the **✕** button to remove a rule you no longer need.

{% hint style="info" %}
Write the **How to say it** field the way it should *sound*, not the way it's spelled — break the word into syllables and use hyphens or spaces to guide the agent (for example, `Dapta` → `Dap-tah`). The written word can be up to 50 characters and the spoken version up to 100.
{% endhint %}

{% hint style="warning" %}
**Every occurrence of the written word is replaced, including inside longer words.** A rule matches the text wherever it appears, not just when it stands alone. For example, a rule for `am/pm` would also affect words that contain those letters, so `example` or `program` could be mispronounced. Prefer full, distinctive words as your **Word as written** to avoid replacing text you didn't intend.
{% endhint %}

***

**When to use it**

Pronunciation rules are ideal for:

* Brand and product names (`ChatGPT`, `Cal.com`)
* Company or people's names with non-obvious pronunciation
* Acronyms that should be spelled out letter by letter
* Industry-specific or foreign terms

> **💡 Tip:** For pronunciation tweaks that are specific to phone numbers, emails, or codes inside a single prompt, you can also spell them out directly in your instructions — see [Improving pronunciation](/ai-voice-agents/how-to-set-up-your-ai-voice-agent/improving-pronunciation).


# Configure Conversation – Background Sound 🔊

This setting allows you to add background sound to your agent, giving the call a bit more realism. You can also configure the volume of the ambient sound.

<figure><img src="/files/ImMS3PbUd27uOcqcqxnA" alt=""><figcaption></figcaption></figure>

#### Background SounD<br>

#### The available options are:

* Café: Simulates the sound of a coffee shop
* Convention Center: Simulates the sound of a conference or convention
* Outdoors – Summer: Simulates the sound of a summer outdoor environment
* Outdoors – Mountain: Simulates the sound of a mountain outdoor environment
* Static Noise: Simulates static background noise
* Call Center: Simulates the sound of a contact center
* None: No background sound is added

**Ambient Sound Volume**

<figure><img src="/files/hNWaPlFzbMO209OgRYVY" alt=""><figcaption></figcaption></figure>

* Lower Value (0): No ambient sound is heard
* Higher Value (2): The selected ambient sound is clearly audible


# Configure Conversation – Boosted Keywords 🔡

Automatic transcription systems often struggle with:

* Specific, uncommon words or terms from a particular domain
* Technical terminology from specialized fields (medicine, law, engineering, etc.)<br>

To address this, Dapta provides the “Boosted Keywords” functionality, which allows you to:

* Customize the system’s vocabulary according to specific needs
* Improve accuracy in your agent’s specialized domains

<figure><img src="/files/WXjFFe2IYRmU6u8Fl0Yq" alt=""><figcaption></figcaption></figure>

You can include up to **100 words**, separated by commas ",".

This way, you can provide lists of specific terms to improve transcription accuracy for your particular use cases.


# Configure Conversation – Transcript Formatting 📄

The Transcript Formatting feature is designed to prevent common interpretation errors by agents, such as when phone numbers are incorrectly formatted as timestamps.

**This feature includes a toggle switch to enable/disable transcription formatting. It can help resolve certain issues, such as:**

* Phone numbers being misinterpreted as timestamps
* Double digits not being captured accurately

Disabling this feature may reduce transcription accuracy, but it could also improve the system’s response time.


# Configure Conversation – Clean Speech 🗣️💬

Normalize Text for Speech Synthesis

The Normalize Text for Speech Synthesis feature converts certain parts of the text (such as numbers, currencies, or dates) into their spoken form. This ensures more consistent speech synthesis, since TTS models can sometimes misinterpret text if it isn’t normalized.

For example, before generating the audio, the phrase:

> “Call my number 2137112342 on Jul 5th, 2024 for the $24.12 payment”<br>

will be transformed into:

> “Call my number two one three seven one one two three four two on July fifth, twenty twenty four for the twenty four dollars twelve cents payment”

It’s important to note that this feature adds a small latency (approximately 100 ms) to the overall process.

***

#### Language Configuration

Currently, speech normalization is supported in the following languages:

* English
* Spanish
* French
* German

For other languages, this feature will not make any modifications to the text. If you select a non-multilingual language, the normalization will use that language’s rules (for example, “1” will be normalized to “one” if English is used). If you select the multilingual option, the system will automatically detect the appropriate language based on the generated text and normalize it accordingly.


# Configure Voice – Voice Model 🤖

Choose the voice model your AI agent will use

<figure><img src="/files/0lk5sBxbk1yTLNrJPirn" alt=""><figcaption></figcaption></figure>

You can currently choose from these 4 models:

* **Elevenlabs Flash V2.5**

  Ultra-fast model optimized for real-time use (\~75 ms)
* **Elevenlabs Turbo V2**

  High-quality, low-latency model with a good balance between quality and speed (\~250–300 ms)
* **Elevenlabs Turbo V2.5**

  High-quality, low-latency model with a good balance between quality and speed (\~250–300 ms); in English, it’s 25% faster than Turbo V2.
* **Elevenlabs Multilingual V2**

  Most realistic model with rich emotional expression

***

Choose the model that best suits your agent’s purpose — we recommend doing a test run so you can see how it performs in real-time.

<br>


# Configure Voice – Voice 🗣️

Choose your agent’s voice

<figure><img src="/files/BBXQzVBQ1EzqjRePS33p" alt=""><figcaption></figcaption></figure>

Dapta offers voice options for use in your own AI agent. These voices are provided by Eleven Labs and OpenAI.

**There are over 40 male voices and 50 female voices available.**

You can filter by:

* *Gender: Female or Male*
* *Provider: OpenAI or Eleven Labs*
* *Accents: American or British*

<figure><img src="/files/9YoZ0vmELAuGgJuKtil9" alt=""><figcaption></figcaption></figure>

You can click Play ▶️ to listen to a sample of the voice and choose the one that fits your agent’s purpose.<br>

To use the voice you’ve selected, simply click ✔️ Use Voice.


# Voice Settings - Voice Speed 🏃‍➡️

Adjust how quickly the AI speaks—faster for efficiency, slower for clarity. This setting fine-tunes pacing to match your use case, from rapid-fire support calls to thoughtful, deliberate conversations.

<figure><img src="/files/47NKH7KygT9Q6rhp9NKH" alt=""><figcaption></figcaption></figure>

* Lower values (0.5–0.7) create a calm, deliberate tone—ideal for sensitive or complex topics.
* Higher values (1.3–2) boost urgency and energy, great for action-oriented workflows.

<br>

*Minimum: 0.5*

*Maximum: 2.0*

*Recommended: 0.7–1.3 for balanced flow and comprehension*


# Voice Settings - Voice Temperature 🌡️

Voice Temperature controls the **creativity** and **variation** in the AI’s speaking style. Higher values introduce more unpredictability in tone, pacing, and emphasis—making the voice sound livelier or more expressive. Lower values make it more consistent, focused, and neutral.

<figure><img src="/files/yp9FCvMXGRMFqMcbIS13" alt=""><figcaption></figcaption></figure>

* 0–0.7: Steady and predictable. Good for clarity and professionalism.
* 1.3–2: More varied and animated. Great for friendly or informal use cases.
* 1.0: Balanced—natural, engaging, and safe for most situations.

<br>

*Minimum: 0*

*Maximum: 2*

*Recommended: \~1 for default behavior*


# Voice Settings - Voice Volume 🎚️

Voice Volume sets how loud or soft the AI sounds during a call. This controls gain—not energy or tone—so you can match the AI’s voice level to different environments, hardware setups, or user preferences.

<figure><img src="/files/uXyvTdDYLtjioi5ys0Cr" alt=""><figcaption></figcaption></figure>

* Lower values (<1): softer output, useful for background blending or quieter devices.
* Higher values (>1): louder projection, ideal for noisy settings or low speaker gain.
* Value of 1.0 delivers neutral, calibrated output—safe for most systems.

<br>

*Minimum: 0*

*Maximum: 2*

*Recommended: 1 for standard volume balance*


# Conversation Settings - Voicemail Detection 📬

Voicemail Detection is mission-critical for ensuring your agent behaves correctly when a user doesn't pick up. Basically, this tool stops your agent from having a deep conversation with a recording—which acts as a great fail-safe.\
\
We highly recommend keeping this toggled ON to ensure maximum call efficiency.

To access it, go to your voice agent and hit Settings > Call Settings.

<figure><img src="/files/RzKnMKuHDkHJMjzWau2n" alt="" width="375"><figcaption></figcaption></figure>

Once enabled, you can choose between two main behaviors when a mailbox is detected:

* **Hang up immediately:** The system terminates the call the second it hits voicemail.
* **Leave a message:** The agent leaves a voicemail. You have two configuration paths here:
  * **Static Phrase:** A fixed script the agent reads every single time. Simple, reliable.
  * **Prompt:** Dynamic instructions based on business rules. This is the smart option—it allows you to vary the message based on context (e.g., asking for a call back to a specific number or checking meeting availability depending on the greeting).


# Configure Call – End Call on Silence 🔇

This feature allows your agent to end a call after a set number of seconds of silence.

End Call on Silence<br>

<figure><img src="/files/oLTH80qjR1R7YrWTGH66" alt=""><figcaption></figcaption></figure>

The time range you can choose is between **10 seconds and 30 minutes.**

This allows you to end the call if the person who answered remains silent and doesn’t continue the conversation, helping you avoid spending credits unnecessarily.


# Configure Call – Max Duration ⏫

This feature allows you to set a maximum duration for the calls your agent makes.

<figure><img src="/files/nDi0MUSh7qTEtKW8p62T" alt=""><figcaption></figcaption></figure>

You can define the maximum call duration within a **range of 1 minute to 2 hours**<br>

This allows you to ensure that if a conversation is not productive but no silence is detected, the call will still end at the set maximum duration — helping avoid unnecessary credit usage.


# Verifying an Existing Phone Number for Outbound Calls

{% embed url="<https://www.tella.tv/video/verifying-phone-number-for-outbound-calls-2elo?b=0>" %}

This guide explains how to verify an existing phone number inside Dapta so your Voice Agent can make outbound calls using that number.

This is useful for use cases such as:

* Cold calling
* Meeting reminders
* Appointment confirmations
* Follow-up calls
* Outbound campaigns

Once verified, your AI agent can place calls **from your own phone number** instead of a system-generated number.

***

### What Verification Does

Verifying a phone number allows Dapta to:

* Confirm that you own the phone number
* Grant permission to use it for outbound calls
* Assign it to one or more Voice Agents

After verification, your agent can make calls that appear to come directly from that number.

***

### Step 1: Go to Phone Numbers

1. Navigate to the **Voice Agents** tab
2. Click on **Phone Numbers**
3. Click on **New Phone Number**
4. Select the option **Verify Phone Number**

This will begin the verification process.

***

### Step 2: Enter Phone Details

You will be asked to:

* Provide a **name** for the phone number (for internal identification)
* Enter the **phone number** you want to verify

After entering the information, click **Verify**.

***

### Step 3: Complete Phone Verification

Once you click Verify:

* You will receive an automated phone call
* The system will provide a verification code
* You must enter the code using your phone keypad

After entering the code successfully, you will hear a confirmation message stating that the phone number has been validated.

At this point, the phone number is officially verified and ready to use.

***

### Step 4: Confirm the Number is Verified

After verification:

* Refresh the page
* Go to your **Verified** tab under Phone Numbers
* You should see your newly verified phone number listed
* You will also see the creation date

This confirms the phone number is active and connected to your account.

***

### Assigning the Verified Number to an Agent

After verification, you can assign the phone number to a Voice Agent.

To do this:

1. Go to one of your Voice Agents
2. Click on **Phone Call**
3. Select the verified phone number
4. Enter the destination phone number
5. Click **Start Phone Call**

The call will now be placed **from your verified number**, but handled by your AI agent.

***

### Testing the Call (No Credits Used)

When using the **Test Call** feature:

* The agent will place a call
* The verified number will appear as the caller
* The AI agent will handle the conversation
* No credits are consumed during test calls

This is useful for validating:

* Voice tone
* Script flow
* Confirmation logic
* Call behavior

***

### Important Note About Campaigns

Test calls are only for validation.

If you want to:

* Call a full database of leads
* Run cold outreach
* Automate reminder calls at scale

You must configure a **campaign**.

Campaign setup is covered in a separate guide.

***

### Common Use Cases

Verified outbound numbers are commonly used for:

* Cold calling using AI agents
* Appointment confirmation agents
* Meeting reminder systems
* Re-engagement campaigns
* Follow-up automation

***

### Testing Calls to the Same Verified Number

If you verify a phone number and then use it to send a test call **to that same number**, the call will work and you will be able to test your agent normally. However, there is an important behavior to keep in mind:

> **⚠️ Warning:** If you **reject** the incoming call, you may receive multiple additional calls (between 2 and 6 reattempts). This happens because the phone carrier gets confused when a call is both placed and received by the same number, which triggers automatic reattempts.

To avoid this, simply **answer the call and then hang up** when you are done testing. This prevents the carrier from retrying the call.

***

### Key Takeaways

* You must verify ownership before using an existing phone number
* Verification requires entering a code via keypad
* After verification, the number can be assigned to any Voice Agent
* Test calls do not consume credits
* Campaign setup is required for bulk outbound calls
* When testing calls to the same verified number, always answer and hang up — do not reject the call


# How to add a Phone Number for Testing in Dapta

In this guide you'll find the step by step process to add a phone number for testing purposes inside Dapta. Phone numbers for testing won't generate any credit consumption.

{% embed url="<https://www.tella.tv/video/using-a-test-number-4ys3?b=0>" %}

***

You can test your Voice Agent by receiving a real phone call on your device, and these test calls do **not consume any credits**.

This allows you to validate your agent’s behavior safely before using it in live campaigns.

This is useful for:

* Testing voice tone and clarity
* Validating scripts
* Reviewing conversation flow
* Hearing the agent in a real call environment

***

### What This Test Does

When you use the **Test Call** feature:

* The agent calls your phone
* The conversation runs exactly like a real outbound call
* No credits are consumed
* The call is labeled as a **Test Call** in your call logs

This makes it safe to experiment and refine your agent.

***

### Step 1: Go to the Phone Call Tab

1. Open your Voice Agent
2. Click on the **Phone Call** tab
3. Click on **Add a Test Number**

***

### Step 2: Add Your Phone Number

* Enter the phone number where you want to receive the test call
* Once added, the number will appear in the test number box

This is the number the agent will call.

***

### Step 3: Start the Test Call

Click **Start Phone Call**.

You will receive an incoming call from the system.

Once you answer:

* The AI agent will begin the conversation
* The call will behave like a real outbound call
* You can interact naturally with the agent

***

### Step 4: Confirm No Credits Were Used

After ending the call:

1. Go to your **Call Log**
2. Find the most recent call
3. You will see:
   * It is labeled as a **Test Call**
   * It consumed **0 credits**

This confirms that test calls do not affect your credit balance.

***

### Important Notes

* Test calls are only for validation
* They cannot be used for bulk outreach
* For real outbound calling at scale, you must set up a campaign

***

### Key Takeaways

* Test calls do not consume credits
* You can test agents using your real phone
* Call logs clearly label test calls
* This is the safest way to validate agent behavior before going live

## Step-by-step process:

{% embed url="<https://scribehow.com/shared/How_To_Add_a_Phone_Number_in_Daptaai__KAHgLmDZTpiSOPBp6cajHw>" %}


# Buying Phone Numbers through Dapta

{% embed url="<https://www.tella.tv/video/buying-a-phone-number-for-inbound-agents-5222?b=0>" %}

This guide explains how to purchase a phone number inside the Dapta platform and link it to one of your Voice Agents.

Once connected, whenever someone calls that phone number, your assigned agent will automatically answer the call.

***

### What Buying a Phone Number Allows You To Do

When you purchase a phone number inside Dapta:

* The number becomes part of your account
* You can assign it to a Voice Agent
* When someone calls that number, the assigned agent answers
* The number can be used for both voice calls and SMS

***

### Step 1: Navigate to Phone Numbers

1. Go to **Voice Agents**
2. Click on **Phone Numbers**
3. Click on **Buy Phone Number**

You will be redirected to the phone number marketplace.

***

### Step 2: Choose a Phone Number

You will see a list of available phone numbers.

Currently:

* All available numbers are based in the **United States**
* You can search by:
  * City
  * Area code
  * Specific digits

If you are outside the US (for example, in Latin America), you can contact **Customer Support** to request assistance with international number setup.

***

### Cost of a Phone Number

Each phone number costs:

**1,380 credits per month**

This amount will be deducted from the credits included in your plan.

Before purchasing, you will see a summary of the monthly charge.

***

### Step 3: Buy the Number

1. Click **Buy**
2. Review the purchase summary
3. Confirm by clicking **Buy Number**

The number will immediately appear in your list of purchased phone numbers.

***

### Step 4: Assign the Phone Number to an Agent

After purchasing the number:

1. Select the phone number
2. Choose the Voice Agent you want to assign it to
3. Click **Save Changes**

The phone number is now linked to that agent.

***

### Testing the Phone Number

Once assigned:

* Call the newly purchased phone number
* The assigned Voice Agent will answer the call
* The conversation will follow that agent’s configured script and behavior

This confirms the number is successfully connected.

***

### Reassigning a Phone Number to a Different Agent

If you want to change which agent answers the phone:

1. Go to **Phone Numbers**
2. Click **Actions**
3. Select **Edit**
4. Choose a different agent from the dropdown list
5. Save changes

The phone number will now be connected to the newly selected agent.

***

### Key Takeaways

* Purchased numbers are US-based
* Each number costs 1,380 credits per month
* Numbers can be used for voice and SMS
* You can assign or reassign numbers to agents at any time
* Once linked, the agent automatically answers incoming calls


# Connecting your telephony (SIP trunk) to Dapta

Learn how to connect Dapta to telephony using a Dapta-managed number, a Twilio SIP trunk you own, another SIP provider, or an enterprise setup.

Use this guide to choose how your Voice Agent should make and receive phone calls. Dapta supports a managed path where Dapta provisions the phone number for you, and bring-your-own paths where your company keeps its existing Twilio account, SIP carrier, PBX, or contact center.

***

## Choose your connection path

**Step 1:** Decide who should manage the phone number and carrier connection.

If you want the simplest setup, choose a **Dapta-managed number**. If your company already has Twilio, another carrier, a PBX, a contact center, or SIP routing that must stay in place, choose **bring your own SIP trunk**.

***

**Step 2:** Choose **Dapta-managed number** if you want Dapta to handle the carrier setup for you.

This is the default self-serve path. You buy a phone number inside Dapta, assign it to a Voice Agent, and Dapta provisions the telephony behind the scenes. You do not need to configure anything in Twilio or another carrier.

{% content-ref url="/pages/lOn5ZSMh2lswJ2DrpMhm" %}
[Connect a Dapta-managed number](/ai-voice-agents/connecting-your-sip-trunk/connect-a-dapta-managed-number)
{% endcontent-ref %}

You can also review the existing phone number purchase guide:

{% content-ref url="/pages/we5zspVTGdlh8PjAmZVe" %}
[Buying Phone Numbers through Dapta](/ai-voice-agents/buying-phone-numbers-through-dapta)
{% endcontent-ref %}

***

**Step 3:** Choose **Bring your own Twilio SIP trunk** if your company owns the Twilio account or phone numbers.

Use this path when Twilio is your carrier. Your telephony admin configures Twilio Elastic SIP Trunking, Dapta connects to that trunk, and your Voice Agents can use your Twilio routing for inbound calls, outbound calls, or both.

{% content-ref url="/pages/yqW1PzIwjbcUeE6a1XFU" %}
[Connect your own SIP trunk (custom / BYO)](/ai-voice-agents/connecting-your-sip-trunk/connect-your-own-sip-trunk-custom-byo)
{% endcontent-ref %}

***

**Step 4:** Choose **Bring your own SIP trunk** if Dapta needs to use another existing telephony provider.

Use this path when your carrier, PBX, compliance process, caller ID, billing, or routing must stay under your control. Your telephony admin provides the SIP credentials, Dapta connects to that trunk, and your Voice Agents can use it for inbound and outbound calls.

{% content-ref url="/pages/yqW1PzIwjbcUeE6a1XFU" %}
[Connect your own SIP trunk (custom / BYO)](/ai-voice-agents/connecting-your-sip-trunk/connect-your-own-sip-trunk-custom-byo)
{% endcontent-ref %}

***

**Step 5:** Choose **enterprise custom telephony** when the setup needs guided implementation.

Large companies often need fixed signaling, custom header handling, routing policy, multiple trunks, human queue transfers, or more concurrent channels. Dapta Success and Support can guide this setup.

{% content-ref url="/pages/yq0L9f5Vq1iFRZOVZpm0" %}
[Custom telephony for enterprise and large companies](/ai-voice-agents/connecting-your-sip-trunk/custom-telephony-for-enterprise-large-companies)
{% endcontent-ref %}

***

## Which path should I use?

| If you need...                                                                             | Use this path                                 |
| ------------------------------------------------------------------------------------------ | --------------------------------------------- |
| A fast setup with a number purchased in Dapta                                              | **Dapta-managed number**                      |
| No carrier, Twilio, or PBX configuration                                                   | **Dapta-managed number**                      |
| Your company already uses Twilio and wants to keep its Twilio account or phone numbers     | **Bring your own SIP trunk - Twilio example** |
| Dapta to use your existing carrier, PBX, or contact center                                 | **Bring your own SIP trunk**                  |
| Your own caller ID and telephony routing rules                                             | **Bring your own SIP trunk**                  |
| Dedicated routing, SIP proxy support, warm transfer to human queues, or higher concurrency | **Enterprise custom telephony**               |

{% hint style="info" %}
If you are not sure which path applies, start with **Dapta-managed number** unless your telephony or compliance team has already told you that calls must go through your own Twilio account, carrier, PBX, or contact center.
{% endhint %}


# Connect a Dapta-managed number

Buy a Dapta-managed phone number, assign it to a Voice Agent, and use it for inbound and outbound calls.

Use a Dapta-managed number when you want Dapta to handle the phone number and SIP trunk setup for you. This is the simplest path: buy the number in Dapta, assign it to an agent, then use it for inbound or outbound calls.

{% hint style="info" %}
This is different from connecting your own Twilio account as a SIP trunk. If your company owns the Twilio account or wants calls to route through its own Twilio Elastic SIP Trunking setup, use the bring-your-own SIP trunk guide instead.
{% endhint %}

***

## Before you begin

Make sure you have:

* A **Voice Agent** already created.
* Access to **Voice Agents > Phone Numbers**.
* Enough **Dapta credits** for the monthly number charge shown during purchase.

{% hint style="info" %}
If you do not see the country, area code, or number type you need, contact Dapta Support for help with availability.
{% endhint %}

***

## Connect the number

**Step 1:** Open **Voice Agents > Phone Numbers**.

Click **Buy Phone Number** to open the number marketplace.

<figure><img src="/files/H0uCXg5jhyVrrqQ36VLc" alt="Dapta Phone Numbers page showing the Verified, Purchased, Compliance, and End Users tabs with the New Phone Number button"><figcaption><p>Use the Phone Numbers page to verify, purchase, and manage numbers for Voice Agents.</p></figcaption></figure>

***

**Step 2:** Choose the phone number you want to use.

Search by the available filters, review the monthly credit charge, and click **Buy**. Confirm the purchase when Dapta shows the summary.

For the full buying flow, see:

{% content-ref url="/pages/we5zspVTGdlh8PjAmZVe" %}
[Buying Phone Numbers through Dapta](/ai-voice-agents/buying-phone-numbers-through-dapta)
{% endcontent-ref %}

***

**Step 3:** Assign the number to a Voice Agent.

After purchase, select the number, choose the **Voice Agent** that should answer calls, and click **Save Changes**.

***

**Step 4:** Test inbound calling.

Call the purchased number from a real phone. The assigned Voice Agent should answer and follow its configured prompt, tools, and call behavior.

You can also review the inbound call guide:

{% content-ref url="/pages/cBC9eVlBwGis5PgvXSXg" %}
[Inbound Calls and How to Activate Them](/ai-voice-agents/inbound-calls-and-how-to-activate-them)
{% endcontent-ref %}

***

**Step 5:** Use the number for outbound calling.

When you place test calls, run campaigns, or use a **Dapta Phone Call** node, select the managed number anywhere Dapta asks for the calling number or **From** number.

For outbound setup details, see:

{% content-ref url="/pages/yn7tfi9GqIKoGvAANXyv" %}
[Verifying an Existing Phone Number for Outbound Calls](/ai-voice-agents/verifying-phone-numbers-in-dapta)
{% endcontent-ref %}

{% content-ref url="/pages/0b3T09pM5YAcVQeKKAzF" %}
[Dapta Phone Call](/flow-studio/nodes/dapta-phone-call)
{% endcontent-ref %}

***

**Step 6:** Use the number in campaigns when you are ready to call at scale.

Create or open a campaign, assign the Voice Agent that uses the number, and use **Phone Number Rotation** if you want Dapta to rotate through more than one outbound number.

{% content-ref url="/pages/5MPXltpjbRmsnZdLbpCA" %}
[Create a campaign](/ai-voice-agents/how-to-create-your-first-campaign-in-dapta/create-a-campaign)
{% endcontent-ref %}

{% content-ref url="/pages/oAicUT9kkH5vABsAXEao" %}
[Managing your campaign](/ai-voice-agents/how-to-create-your-first-campaign-in-dapta/managing-your-campaign)
{% endcontent-ref %}

***

## Troubleshooting

| Issue                                             | What to check                                                                                                 |
| ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| The number does not appear after purchase         | Refresh **Phone Numbers**. If it still does not appear, contact Support with the purchase time and workspace. |
| Calls to the number do not reach the agent        | Confirm the number is assigned to the correct **Voice Agent** and saved.                                      |
| Outbound calls do not use the number you expected | Check the **From** number in the test call, campaign, or Flow Studio configuration.                           |
| The country or area code is not available         | Contact Support for international number assistance.                                                          |


# Connect your own SIP trunk (custom / BYO)

Connect your own Twilio Elastic SIP Trunking setup, carrier, PBX, or SIP trunk to Dapta for outbound and inbound Voice Agent calls.

Use a custom SIP trunk when your company already has Twilio Elastic SIP Trunking, another SIP carrier, a PBX, a contact center, or phone number routing that Dapta should use. Your telephony admin provides the trunk details, and Dapta uses that trunk for inbound calls, outbound calls, or both.

***

## Before you begin

You need access to the team that manages your carrier or PBX. Do not send credentials in a public channel; share them only through the secure process provided by Dapta Support or your implementation contact.

{% hint style="warning" %}
Some carriers only allow outbound calls from a caller ID that is already registered with them. Confirm the allowed caller IDs before you test outbound calls.
{% endhint %}

***

## Common BYO SIP trunk scenarios

| Scenario                                                                                    | Use this section                                                                                                          |
| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| Your company owns the Twilio account or Twilio phone numbers                                | [Twilio Elastic SIP Trunking example](#twilio-elastic-sip-trunking-example)                                               |
| Your company uses another SIP carrier, PBX, SBC, or contact center                          | [Other SIP trunks and PBX providers](#other-sip-trunks-and-pbx-providers)                                                 |
| You need dedicated routing, SIP proxy behavior, human queue transfer, or higher concurrency | [Enterprise custom telephony](/ai-voice-agents/connecting-your-sip-trunk/custom-telephony-for-enterprise-large-companies) |

{% hint style="info" %}
In this guide, "Twilio" means your own Twilio account. It is not the same as a Dapta-managed number purchased inside Dapta.
{% endhint %}

***

## Step 1 - Gather your trunk credentials

Ask your carrier or PBX admin for:

1. **SIP host / domain** and **port** - for example, `<your SIP host>` and port `5060`.
2. **SIP auth username** and **SIP auth password**.
3. The **DID(s)** or **extension** Dapta should use.
4. Which **caller IDs** the carrier will present and accept.
5. Whether the trunk should support **outbound**, **inbound**, or both.
6. The number of **concurrent channels** your carrier has provisioned.

If your carrier or PBX requires IP allowlisting, [contact Dapta Support](https://calendly.com/dapta-support/support-30) to get the signaling IPs your carrier should allow.

***

## Twilio Elastic SIP Trunking example

Use this section when you want Dapta to place or receive calls through your own Twilio account.

### Twilio terms to map into Dapta

| Twilio term                           | What it means for the Dapta setup                                                                                   |
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| **Termination**                       | Outbound calls from Dapta to Twilio, then from Twilio to the public phone network.                                  |
| **Termination SIP URI / Domain Name** | The Twilio SIP domain Dapta should dial, usually ending in `pstn.twilio.com`.                                       |
| **Credential List**                   | SIP username and password that Dapta can use to authenticate outbound calls to Twilio.                              |
| **IP Access Control List**            | Optional Twilio allowlist for Dapta's signaling IP instead of, or in addition to, username/password authentication. |
| **Origination**                       | Inbound calls from a Twilio number to Dapta.                                                                        |
| **Origination SIP URI**               | The Dapta-provided SIP URI where Twilio should send inbound calls.                                                  |
| **Phone Numbers**                     | Twilio numbers associated with the trunk for inbound routing.                                                       |

### For outbound calls through Twilio

Ask your Twilio admin to:

1. Create or open an **Elastic SIP Trunk** in Twilio.
2. Configure **Termination** for that trunk.
3. Share the trunk's **Termination SIP URI** with Dapta, such as `<your-trunk>.pstn.twilio.com`.
4. Create a **Credential List** for Dapta or allow Dapta's signaling IP in Twilio's **IP Access Control List**. If both are configured in Twilio, both must match.
5. Confirm which caller IDs Twilio will accept for outbound calls. Twilio commonly requires the caller ID to be a Twilio number in the account or a verified caller ID.
6. Confirm that outbound destination numbers will be sent in full E.164 format with the leading `+`, such as `+15555550123`.
7. Confirm whether your team enabled Twilio **Secure Trunking**. If they did, coordinate TLS/SRTP requirements with Dapta before testing.

Then configure the Dapta SIP trunk using:

| Dapta field           | Twilio value                                                                                                       |
| --------------------- | ------------------------------------------------------------------------------------------------------------------ |
| **Name**              | A clear label, such as `Main Twilio trunk`.                                                                        |
| **SIP host / domain** | The Twilio termination domain, such as `<your-trunk>.pstn.twilio.com`.                                             |
| **Port**              | The port provided by your Twilio setup. Use `5060` unless your Twilio or security setup requires a different port. |
| **Auth username**     | The SIP username from the Twilio Credential List.                                                                  |
| **Auth password**     | The SIP password from the Twilio Credential List.                                                                  |
| **DID / Extension**   | The Twilio number or caller ID Dapta should use, if required by the workspace setup.                               |
| **Dial Pattern**      | **ISO / with country code** so numbers are sent in E.164 format with the `+` prefix.                               |

{% hint style="warning" %}
Do not paste Twilio Auth Tokens, SIP passwords, or production phone numbers into public tickets or shared docs. Use the secure process provided by Dapta Support or your implementation contact.
{% endhint %}

### For inbound calls from Twilio to Dapta

Ask Dapta Support or your implementation contact for the SIP URI Twilio should use for inbound calls. Then ask your Twilio admin to:

1. Configure **Origination** on the Twilio trunk.
2. Set the **Origination SIP URI** to the Dapta-provided SIP URI.
3. Associate the Twilio phone number with the trunk.
4. Confirm Twilio can reach the Dapta SIP URI from the selected Twilio edge or region.
5. Route one test Twilio number first before moving production numbers.

After the Twilio side is ready, choose the **Inbound Agent** in Dapta and save the SIP trunk.

{% hint style="info" %}
For a Twilio setup that you own, Dapta needs the SIP trunk connection details. Dapta does not need access to your full Twilio account unless your implementation process explicitly requires it.
{% endhint %}

***

## Other SIP trunks and PBX providers

Use this section for carriers, PBXs, SBCs, and contact centers that are not Twilio.

Ask your telephony admin to provide the same core information:

| Requirement              | Examples                                                                 |
| ------------------------ | ------------------------------------------------------------------------ |
| SIP endpoint             | Carrier domain, PBX domain, SBC FQDN, or public IP.                      |
| Authentication           | SIP username/password or IP allowlisting.                                |
| Number format            | E.164 with `+`, E.164 without `+`, national format, or extension format. |
| Caller ID policy         | Which DIDs or caller IDs the provider accepts for outbound calls.        |
| Inbound routing          | Which DID, extension, or route should reach the Dapta Voice Agent.       |
| Media and firewall rules | RTP ports, SIP signaling IPs, and any NAT/SBC requirements.              |
| Capacity                 | Concurrent channels and calls-per-second limits.                         |

For providers that require IP allowlisting, [contact Dapta Support](https://calendly.com/dapta-support/support-30) to get the signaling IPs your provider should allow.

If the provider uses your SBC or PBX, confirm that the SBC or PBX does not rewrite SIP headers or SDP in a way that breaks routing or audio. If audio is one-way or calls drop after connecting, ask the telephony admin to review NAT, RTP, codec, and firewall behavior.

***

## Step 2 - Configure outbound calling

Outbound calling means Dapta dials out through your trunk. In Dapta, go to **Voice Agents > SIP Trunks** and click **New Sip Trunk Extension**.

<figure><img src="/files/GWwv3FdplL3SgxlpLD5a" alt="Dapta Sip Trunks page showing the search field, New Sip Trunk Extension button, and trunk table columns"><figcaption><p>Use the Sip Trunks page to add and manage SIP trunk extensions for Voice Agents.</p></figcaption></figure>

Fill in the trunk fields using generic carrier values:

| Field                 | What to enter                                                  |
| --------------------- | -------------------------------------------------------------- |
| **Name**              | A clear label, such as `Main SIP trunk`.                       |
| **SIP host / domain** | Your carrier or PBX host, such as `your-carrier.example.com`.  |
| **Port**              | Usually `5060`, unless your carrier gave you a different port. |
| **Auth username**     | The SIP username from your carrier or PBX.                     |
| **Auth password**     | The SIP password from your carrier or PBX.                     |
| **DID / Extension**   | The number or extension Dapta should use for this trunk.       |

In the trunk settings, set **Dial Pattern** to match what your carrier expects.

| Dial Pattern                     | Use it when...                                                  | Number format                                          |
| -------------------------------- | --------------------------------------------------------------- | ------------------------------------------------------ |
| **ISO / with country code**      | Your carrier expects the full international number.             | Full E.164, such as `+15555550123`.                    |
| **Local / without country code** | Your carrier expects local numbers and a separate country code. | Local number plus the **Country Code** field in Dapta. |

Before testing outbound calls, confirm:

* The **caller ID** Dapta presents is registered or accepted by your carrier.
* Your carrier accepts the number format Dapta sends.
* Some carriers require the leading `+` in E.164 numbers, for example `+15555550123`.
* The provider's firewall or access control allows Dapta's signaling IP if IP allowlisting is required.

{% hint style="warning" %}
If outbound calls fail at the carrier, check the dial pattern and the `+` prefix first. A number that works as `+15555550123` may fail if the carrier receives `15555550123`.
{% endhint %}

***

## Step 3 - Configure inbound calling

Inbound calling means calls to your DID or extension reach a Dapta Voice Agent.

In the trunk settings, choose the **Inbound Agent** that should answer calls for this trunk or extension, then save the trunk.

On your carrier or PBX side, route the DID or extension to Dapta using the trunk configuration. If your carrier requires IP allowlisting, make sure the signaling IPs provided by Dapta Support are allowed.

***

## Step 4 - Test both call directions

Test outbound first, then inbound:

1. Place a test outbound call from the Voice Agent using the SIP trunk.
2. Confirm the receiving phone sees the expected caller ID.
3. Call the DID or extension from an outside phone.
4. Confirm the assigned Voice Agent answers.
5. Review the call logs for errors before launching a campaign or production workflow.

***

## Troubleshooting

| Issue                                                 | Likely cause                                                                           | What to check                                                                                                                      |
| ----------------------------------------------------- | -------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| Outbound call is rejected by the carrier              | Wrong dial pattern, missing `+`, or unaccepted caller ID                               | Confirm **Dial Pattern**, full E.164 format, and registered caller ID with your carrier.                                           |
| Twilio rejects outbound calls                         | Termination domain, Credential List, IP ACL, caller ID, or number format is incorrect  | Confirm the Twilio termination domain, SIP credentials or IP allowlist, accepted caller IDs, and E.164 format.                     |
| Inbound calls do not reach the agent                  | DID/extension is not routed to Dapta or the wrong agent is assigned                    | Check carrier routing, Dapta's allowed signaling IP, and the **Inbound Agent** setting.                                            |
| Twilio inbound calls do not reach Dapta               | Origination SIP URI or phone number association is missing                             | Confirm the Twilio trunk has the Dapta-provided Origination SIP URI and that the Twilio phone number is associated with the trunk. |
| Transfers fail or never reach the human team          | Transfer destination is not reachable by telephony or needs carrier-side configuration | Confirm the destination can be called directly and that any SIP transfer requirements are enabled by your carrier.                 |
| **Dial Pattern** looks saved but changes after reload | The setting may not have persisted                                                     | Reopen the trunk, save again, and contact Support if the value still reverts.                                                      |
| Calls connect but show the wrong caller ID            | Carrier is overriding or rejecting the presented caller ID                             | Ask your carrier which caller IDs are registered and allowed for this trunk.                                                       |
| Calls connect but audio is one-way or drops           | Firewall, NAT, RTP, or codec behavior between the provider and Dapta                   | Ask the telephony admin to review SIP/RTP firewall rules, public IP handling, and supported codecs.                                |


# Custom telephony for enterprise and large companies

Plan an enterprise custom telephony setup with Dapta, including dedicated SIP proxy routing, human transfers, concurrency, and onboarding requirements.

Enterprise telephony often needs more than a single self-serve trunk. Use this page when your setup needs a dedicated SIP proxy, fixed signaling, custom routing, warm or cold transfer to human teams, or more concurrent channels.

***

## When to use enterprise custom telephony

Use this path when your company needs:

* A dedicated Dapta-operated SIP endpoint with a fixed IP for stable signaling and routing policy.
* Header handling or custom routing rules between Dapta and your telephony platform.
* Warm or cold transfer from a Voice Agent to a human queue.
* Multiple trunks, regions, caller IDs, or PBX destinations.
* More concurrent channels than the base plan includes.
* A guided rollout with Dapta Success or Support.

***

## Step 1 - Contact Dapta Success or Support

Enterprise custom telephony is an implementer-assisted process. [Contact your Dapta Success or Support representative](https://calendly.com/dapta-support/support-30) before changing production routing.

Share the business goal first: inbound support, outbound campaigns, appointment reminders, human transfers, contact center overflow, or another use case.

***

## Step 2 - Choose the telephony topology

Dapta will help you choose the right topology:

| Topology                                | Best for                                                                                                                 |
| --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| **Direct custom SIP trunk**             | A simpler carrier or PBX setup where Dapta can register directly to your trunk.                                          |
| **Dedicated SIP proxy**                 | Enterprise setups that need fixed signaling, custom header handling, routing policy, or multiple telephony destinations. |
| **Voice Agent to human queue transfer** | Calls start with a Dapta Voice Agent and then move to a human team when needed.                                          |

A dedicated SIP endpoint is operated by Dapta and can sit between Dapta's voice platform and your carrier, PBX, or contact center. Dapta provisions it for enterprise implementations that need a fixed signaling IP or more control over headers and routing behavior. Dapta Support configures this endpoint with you during onboarding.

***

## Step 3 - Prepare the onboarding details

Your telephony admin should provide:

1. **SIP host / domain** and **port** for each carrier or PBX trunk.
2. **SIP auth username** and **SIP auth password** for each trunk.
3. **DIDs**, extensions, and caller IDs that Dapta may use.
4. The list of caller IDs your carrier will accept for outbound calls and transfers.
5. The inbound routing goal for each DID or extension.
6. The outbound use cases, such as campaigns, test calls, or Flow Studio calls.
7. Human queue phone numbers or SIP destinations for warm and cold transfer.
8. Required SIP headers or metadata that must travel with the call.
9. Expected concurrent call volume and launch timeline.

If your carrier or PBX requires IP allowlisting, Dapta Support will provide the signaling IPs to allow during onboarding.

***

## Step 4 - Plan warm and cold transfer to a human queue

Transfers from a Dapta Voice Agent to a human team happen over telephony and SIP. They are not an API handoff.

Supported high-level flow:

1. The caller reaches, or is called by, a Dapta Voice Agent.
2. The Voice Agent decides that a human should take over.
3. For a **cold transfer**, Dapta sends the call to the human queue immediately.
4. For a **warm transfer**, Dapta passes context before or during the handoff so the human team understands the conversation.
5. The human queue answers the transferred call through your telephony system.

The transfer destination must be reachable by telephony and should not have an IVR between the Dapta transfer and the human queue. If an IVR answers first, the transfer may not reach the right person or queue.

For agent action setup, see:

{% content-ref url="/pages/qCIOdjGOCMlNQJwemM6b" %}
[Transfer Call](/ai-voice-agents/agent-actions/transfer-call)
{% endcontent-ref %}

***

## Step 5 - Plan concurrency and channels

The base plan includes **20 concurrent channels**. If your use case needs more simultaneous calls, coordinate with Dapta before launch so capacity can be increased and tested with your carrier.

For outbound campaigns, ramp gradually. Start with a lower volume, confirm answer rates and carrier behavior, then increase toward the target concurrency.

***

## Step 6 - Test before production

Before launch, test every path with your Dapta and telephony teams:

1. Outbound call through the trunk.
2. Inbound call from an external phone to the assigned Voice Agent.
3. Warm transfer to the human queue.
4. Cold transfer to the human queue.
5. Caller ID behavior for outbound and transferred calls.
6. Expected concurrency under a controlled load test.

***

## What Dapta provides and what you provide

| Area           | Your team provides                                                | Dapta provides                                             |
| -------------- | ----------------------------------------------------------------- | ---------------------------------------------------------- |
| SIP trunk      | Carrier/PBX host, port, credentials, DIDs, and allowed caller IDs | Trunk configuration in Dapta and guided validation         |
| Network access | Allow the signaling IPs provided by Dapta Support                 | Dapta signaling endpoint and implementation support        |
| Routing        | Desired inbound, outbound, and transfer destinations              | SIP proxy routing policy when needed                       |
| Human transfer | Reachable human queue destination without an IVR in between       | Warm or cold transfer setup from the Voice Agent           |
| Concurrency    | Required call volume and carrier channel limits                   | Base 20 concurrent channels and a scaling plan when needed |

{% hint style="warning" %}
Do not publish or paste SIP passwords, carrier hostnames, production IPs, or production extensions into public tickets or shared documents. Use the secure process provided by Dapta Support or your implementation contact.
{% endhint %}


# Test Agent

Test your voice agent before going live using the Test Agent section: chat with it in real time or let AI run an automated simulated conversation.

The **Test Agent** section lets you try your voice agent without placing a real phone call. Inside the **Try your Agent** panel you'll find two browser-based testing tools: **Chat**, where you talk to the agent yourself, and **Simulation**, where AI plays the customer for you.

{% hint style="info" %}
Both tools run entirely in your browser and use the agent's current, unsaved instructions — so you can tweak the prompt on the right and immediately test the change.
{% endhint %}

## Test Chat

Use **Chat** to have a live, text-based conversation with your agent, exactly as it would unfold on a call. It's the fastest way to sanity-check your prompt, greeting, and responses.

**Step 1:** From the agent editor, open the **Test Agent** tab and select **Chat** in the **Try your Agent** panel. Fill in any **input variables** (e.g. **contact\_name**, **contact\_email**) with sample values to personalize the conversation.

<figure><img src="/files/ySUaoTM8O5g7CY1tu2GQ" alt=""><figcaption></figcaption></figure>

***

**Step 2:** Click **Start Chat**. The agent opens with its greeting in the **Call Transcript**, just as it would at the start of a real call.

<figure><img src="/files/QurBgU0tF9YwcQPslBsq" alt=""><figcaption></figcaption></figure>

***

**Step 3:** Type your reply in the **Ask assistant anything...** box and press **Enter** to send. The agent responds in real time, so you can follow the full back-and-forth in the transcript. Use the **back arrow** to return to the testing options, or **New chat** to start over.

<figure><img src="/files/fglAtENhsQqd7sZFCQSk" alt=""><figcaption></figcaption></figure>

## Simulation

Use **Simulation** when you want AI to act as a customer and run an automated conversation against your agent. It's ideal for stress-testing how your agent handles a realistic persona end to end, without you typing a single message.

**Step 1:** In the **Try your Agent** panel, select **Simulation**. Dapta automatically generates a **Simulated user profile** describing the customer's **Goal** and **Personality**. You can edit this text to test a specific scenario.

> **💡 Note:** Toggle on **Use real conversations** to base the simulated customer on your agent's actual past conversations instead of a freshly generated profile.

<figure><img src="/files/P4CT7LXZmr6C4eTqTkyl" alt=""><figcaption></figcaption></figure>

***

**Step 2:** Click **Simulate Conversation**. The AI takes on the customer persona and starts chatting with your agent automatically.

<figure><img src="/files/NMNBuDVH0Bxu9Fjgy3Xs" alt=""><figcaption></figcaption></figure>

***

**Step 3:** Watch the exchange unfold in the **Call Transcript**. When the run finishes, you'll see a status such as **The agent ended the call**. Click **Run again** to launch a new simulation, or the **back arrow** to return to the testing options.

<figure><img src="/files/kZAOigIKkaVVqwjwzOmK" alt=""><figcaption></figcaption></figure>


# Voice Emotions

Give your voice agent emotional expression. Pick an expressive voice using the Emotionality rating, and see the emotions your agent used right inside the call transcript.

**Voice Emotions** lets your AI voice agent speak with emotional tone instead of a flat, monotone delivery. Expressive voices can sound warm, excited, empathetic, or firm depending on the moment in the conversation, and you can review exactly which emotions the agent used directly in the call transcript.

{% hint style="info" %}
Emotions are **expressed by your agent's voice** — they are chosen to fit the conversation as the agent speaks. This is not sentiment analysis of the customer; the tags you see in the transcript reflect how the **agent** delivered each line.
{% endhint %}

## Emotionality

Not every voice can express emotion. When you pick a voice, the **Select Voice** window shows an **Emotionality** rating for each voice so you can tell at a glance how expressive it is.

The rating is shown as a row of up to **five faces** — the more faces that are filled in (green), the more emotionally expressive the voice. Voices that don't support emotional expression show a dash (**—**) in the **Emotionality** column.

<figure><img src="/files/Zr0WaUAw8PeTdy12E3N1" alt="The Select Voice window showing the Emotionality column with filled face icons per voice"><figcaption><p>The <strong>Emotionality</strong> rating in the <strong>Select Voice</strong> window.</p></figcaption></figure>

> **💡 Tip:** Pick a voice with a higher **Emotionality** rating when your use case benefits from a warmer, more human delivery — for example surveys, customer care, or sensitive conversations.

## Emotion tags in the transcript

When your agent uses an expressive voice, its spoken lines in the **call transcript** are annotated with **emotion tags** — small colored labels that show the tone the agent used for that part of the message.

Your agent can express the following emotions:

| Tag         | When the agent uses it                       |
| ----------- | -------------------------------------------- |
| **Content** | Calm, warm, reassuring tone                  |
| **Excited** | Enthusiasm, good news, positive energy       |
| **Sad**     | Empathy, apologies, sensitive topics         |
| **Angry**   | Firm or assertive responses (used sparingly) |
| **Scared**  | Concern or a sense of urgency                |

<figure><img src="/files/a3qCouDleCrxxnS6wOOv" alt="A call transcript with colored emotion tags such as Content, Excited, Sad, Angry, and Scared on the agent&#x27;s lines"><figcaption><p>Emotion tags shown inline on the agent's lines in the transcript.</p></figcaption></figure>

A few details on how the tags display:

* The first time an emotion appears in a transcript it shows as a full **colored tag**. If the **same** emotion comes up again later, it appears as a small colored **dot** to keep the transcript easy to read — hover over the dot to see its label.
* A **neutral** tone is the default and is **not** tagged, so untagged text simply means the agent spoke neutrally there.


# Agent Actions

Enable your agents to perform actions such as scheduling appointments, ending or transferring calls


# End Call

Customize how the agent ends calls

With this function, you can customize how your agent ends phone conversations with users. Give specific instructions so your agent knows exactly how to say goodbye, what additional information to provide at the end, or how to direct users toward next steps. This ensures a consistent and professional experience across all calls.

This tool gives you complete control over call closures, ensuring that every interaction ends professionally, aligned with your brand, and appropriate for the conversation context.

### Step-by-Step Guide

#### **Step 1: Select Your Agent**

* Navigate to your agent list and select the agent you want to add the call ending instruction to.

#### **Step 2: Access Settings**

* Once inside the agent, go to the **Settings** tab.
* Within Settings, find and click on **Agent Actions** to access the available actions for your agent.

<figure><img src="/files/RMGaDIHOTAiC0SgElZry" alt="" width="375"><figcaption></figcaption></figure>

<figure><img src="/files/pg0gk1LsOLj5WE2FRLuT" alt="" width="375"><figcaption></figcaption></figure>

**Step 3: Add the End Call Function**

* A menu with available options will appear. Click **Add** and then select **End Call** from the list of options.

<figure><img src="/files/CN4KAn5QguobBPkRp8GT" alt=""><figcaption></figcaption></figure>

**Step 4: Configure Your Instruction**

* Assign a descriptive name to your function and write the specific instruction about how you want your agent to end calls.

### Here are some examples of End Call instructions:

* **For Scheduling:**

  "Before ending, confirm all meeting details: date, time, estimated duration, and format (in-person or virtual). If virtual, mention that we'll send the video call link via email. Thank them for their interest and say goodbye expressing that we look forward to our upcoming conversation."
* **For Lead Qualification:**

  "Based on the information gathered, inform them that our sales team will contact them within the next 24-48 hours with a personalized proposal. Thank them for their time and interest in our services. End by mentioning that we're excited to help them achieve their goals."
* **For Medical Appointments:**

  "When ending, confirm the scheduled appointment date and time, remind the patient to arrive 10 minutes early, and that if there are any changes, they can contact us with at least 24 hours' notice. Thank them for their confirmation and say goodbye cordially."
* **For Technical Support:**

  "Before hanging up, ask if the solution worked correctly, provide the support ticket number for future reference, and remind the user they can contact us if the problem persists. Thank them for their patience and say goodbye cordially."
* **For Restaurants:**

  "Confirm the reservation details (date, time, number of people), mention our cancellation policies, and thank them for choosing our restaurant. Say goodbye by telling them we look forward to welcoming them soon."

These examples will help you create personalized instructions that perfectly match your agent's specific purpose.


# Cal.com

Customize how the agent connects with calendars

[Cal.com](http://cal.com) is a free appointment scheduling platform that integrates seamlessly with Google Calendar and Google Meet. This guide will help you set up the connection between your agent and [Cal.com](http://cal.com) to enable availability checking and automatic scheduling functions.

### **Step-by-Step Guide**

Step 1: Create or access your [cal.com](https://cal.com/) account

* Visit [Cal.com](http://cal.com) and create a free account or log in if you already have one.
* A paid account is not necessary, as it automatically connects with Google Calendar and Google Meet.
* **Important:** Before continuing, make sure you have added the **Google Calendar** and **Google Meet** integrations within your [Cal.com](http://cal.com) account so the functions work correctly.

<figure><img src="/files/rj89FUAoaZlW8ExDv4x0" alt=""><figcaption></figcaption></figure>

Step 2: Generate your API key

* Once inside your account, go to **Settings**.
* In the Settings sidebar menu, look for the **Developers** section and click on **API Keys**.
* Click **Add API Key** to create a new key.
* Assign a descriptive name to your API Key and optionally set an expiration date or set it to never expire.
* Save the changes to generate your API key.
* **Copy the generated API Key** and paste it in the corresponding field when configuring the Check Availability or Book Appointment functions in your Dapta agent.

  [API Key.mov](attachment:b79ff5dc-bf97-42ff-9cef-12eea59c9e09:API_Key.mov)

<figure><img src="/files/4VPzW67yd5JGMuNQiH3I" alt=""><figcaption></figcaption></figure>

**Step 3: Get the Event ID**

* Return to the main Settings page and select **Event Types**.
* [Cal.com](http://cal.com) automatically creates 3 default event types: 15 minutes, 30 minutes, and "secret meeting". These can be edited according to your needs.
* When entering the event configuration, observe the URL in your browser. The **Event ID** is the number that appears in the link.
* **Copy that Event ID** and paste it in the corresponding field when configuring the Check Availability or Book Appointment functions in your Dapta agent.

  [Event ID.mov](attachment:2ee92e0c-9dc8-4fc9-a1b8-fd068331323a:Event_ID.mov)

<figure><img src="/files/aQ7YE9GFVoS7887FvsNx" alt=""><figcaption></figcaption></figure>

**Step 4: Configure the Function in Your Dapta Agent**

Depending on the function you're configuring, follow the corresponding guide:

* [Check calendar availability](https://docs.dapta.ai/agent-actions/check-calendar-availability) - To allow your agent to check available time slots
* [**Book on Calendar** -](https://docs.dapta.ai/agent-actions/book-calendar) To allow your agent to schedule appointments automatically

In both configurations you will need the **API Key** and **Event ID** that you obtained in the previous steps.


# Check calendar availability

Customize how the agent connects with calendars

This function integrates directly with [Cal.com](http://cal.com) to access your calendar in real-time so your agent can automatically check availability and provide open time slots to users during the conversation.

With this tool, your agent can answer questions like "What times are you available this week?" or "When can you see me?" without needing to transfer the call or ask the user to check your calendar externally.

**Note:** *To obtain your* [*Cal.com*](http://cal.com) *API Key and Event Type ID, check our documentation "*[*How to Configure* ](https://docs.dapta.ai/agent-actions/cal.com)*cal.com".*

### Step-by-Step Guide

#### Step 1: Select Your Agent

* Navigate to the agent list and select the agent you want to add the calendar availability checking action to.

#### Step 2: Access Settings

* Once inside the agent, go to the **Settings** tab.
* Within Settings, click on **Agent Actions** to access the available actions for your agent.

<figure><img src="/files/M1xewjrQzEIACA6VN7cr" alt=""><figcaption></figcaption></figure>

#### Step 3: Add the Check Calendar Availability Function

* A menu with available options will appear. Click **Add** and then select **Check Calendar Availability** from the list of options.

<figure><img src="/files/7UDOs9lyH44neCOyeI2C" alt=""><figcaption></figcaption></figure>

Step 4: Configure the Required Fields

To obtain your API Key and Event Type ID, check our documentation "*How to Configure* [*Cal.com*](http://cal.com)".

* **Name:** Assign a descriptive name (e.g., "check\_calendar\_availability")
* **Instructions:** Write how you want the agent to handle availability inquiries.
* **API Key:** Enter your [Cal.com](http://cal.com) API key
* **Event Type ID:** Specify the [Cal.com](http://cal.com) event type ID
* **Timezone:** Set the time zone (optional)

<figure><img src="/files/0i8xyHMlWzCIWFnVrOrS" alt=""><figcaption></figcaption></figure>

#### Important Instructions for the Agent

Remember that when referring to dates, you should always update the timezone of the location where you are. This is important to maintain clarity and consistency in communication.

To provide the AI with context about the current time, you must include the following variable in your prompt: `{{current_time}}`, which is a variable we introduce by default. This variable gives the agent context about the current time.

If you need a different time zone, you can specify it using `{{current_time_[timezone]}}`. For example: `{{current_time_America/New_York}}`.

**Note:** *The \[timezone] must be in **IANA (Internet Assigned Numbers Authority) format.***

Some of the available options are:

| Time Zone - City         | Format for \[timezone] |
| ------------------------ | ---------------------- |
| Bogotá, Colombia         | America/Bogota         |
| Santiago, Chile          | America/Santiago       |
| La Paz, Bolivia          | America/La\_Paz        |
| Lima, Peru               | America/Lima           |
| Caracas, Venezuela       | America/Caracas        |
| Madrid, España           | Europe/Madrid          |
| Ciudad de Mexico, Mexico | America/Mexico\_City   |

### Multiple Calendar Configuration

If you need to schedule appointments in different calendars, you can create multiple actions by specifying in each one which specific calendar the appointment should be scheduled to. This is useful for separating different types of services or work teams.

### Additional Examples for Check Availability

* **For scheduling meetings:** "When the user asks about availability, check the calendar and offer at least 3 time slot options within the next 7 days. Present the options clearly mentioning day, date, and time. If there's no availability in the requested period, offer the next available dates."
* **For Consultations:** "When patients inquire about availability, check the calendar and offer time slots on weekdays between 8:00 AM and 5:00 PM. Present a maximum of 4 options within a 2-week period. Mention that appointments last 30 minutes and ask if they prefer morning or afternoon times."
* **For Professional Services:** "When checking availability, verify the calendar and provide 1-hour meeting options. Offer both in-person and virtual time slots. Mention that in-person meetings are at our downtown offices and virtual meetings are conducted via Zoom. Ask for their preference before showing the schedule."
* **For Beauty/Spa Services:** "When they ask about availability for \[service type], check the calendar and offer time slots considering the specific duration of the treatment. Mention they can choose between morning times (9:00 AM - 12:00 PM) or afternoon times (2:00 PM - 6:00 PM). Inform them that we need 24 hours advance notice for reservations."
* **For Technical Services:** "When they request availability for technical support, check the calendar and offer 2-hour time windows (e.g., 9:00-11:00 AM). Mention that we can schedule both on-site and remote visits. For on-site visits, confirm that we cover the metropolitan area."


# Book calendar

Customize how the agent schedules an appointment

Allow your agent to schedule appointments directly in your calendar during a phone conversation. Once the user confirms their interest and provides the necessary information, the agent can automatically create the appointment without interrupting the call flow.

This feature works in conjunction with Check Availability to offer a complete scheduling experience: first it checks available times and then schedules the selected appointment.

**Note:** *To obtain your* [*Cal.com*](http://cal.com) *API Key and Event Type ID, check our documentation "How to Configure* [*Cal.com*](http://cal.com)*".*

### Step-by-Step Guide

#### Step 1: Select Your Agent

* Navigate to the agent list and select the agent you want to add the calendar booking action to

#### Step 2: Access Settings

* Once inside the agent, go to the **Settings** tab.
* Within Settings, find and click on **Agent Actions** to access the available actions for your agent.

<figure><img src="/files/M1xewjrQzEIACA6VN7cr" alt=""><figcaption></figcaption></figure>

Step 3: Add the Book on Calendar Function

* A menu with available options will appear. Click **Add** and then select **Book on the calendar** from the list of options.

<figure><img src="/files/MgzqgQPWTFkoXKtPWHUS" alt=""><figcaption></figcaption></figure>

Step 4: Complete the Configuration

To obtain your [Cal.com](http://cal.com) API Key and Event Type ID, check our documentation "*How to Configure* [*Cal.com*](http://cal.com)".

* **Name:** Assign a descriptive name (e.g., "book\_appointment")
* **Instructions:** Define how the agent should handle the scheduling process
* **API Key:** Enter your [Cal.com](http://cal.com) API key
* **Event Type ID:** Specify the [Cal.com](http://cal.com) event type ID
* **Timezone:** Time zone for appointments

<figure><img src="/files/dftnSJMsdyvSBbnrg1Fc" alt=""><figcaption></figcaption></figure>

#### Important Instructions for the Agent

Remember that when referring to dates, you should always update the timezone of the location where you are. This is important to maintain clarity and consistency in communication.

To provide the AI with context about the current time, you must include the following variable in your prompt: `{{current_time}}`, which is a variable we introduce by default. This variable gives the agent context about the current time.

If you need a different time zone, you can specify it using `{{current_time_[timezone]}}`. For example: `{{current_time_America/New_York}}`.

**Note:** *The \[timezone] must be in **IANA (Internet Assigned Numbers Authority) format.***

Some of the available options are:

| Time Zone - City         | Format for \[timezone] |
| ------------------------ | ---------------------- |
| Bogotá, Colombia         | America/Bogota         |
| Santiago, Chile          | America/Santiago       |
| La Paz, Bolivia          | America/La\_Paz        |
| Lima, Peru               | America/Lima           |
| Caracas, Venezuela       | America/Caracas        |
| Madrid, España           | Europe/Madrid          |
| Ciudad de Mexico, Mexico | America/Mexico\_City   |

### Multiple Calendar Configuration

If you need to schedule appointments in different calendars, you can create multiple actions by specifying in each one which specific calendar the appointment should be scheduled to. This is useful for separating different types of services or work teams.

### Additional Examples for Book Appointment

* **For scheduling meetings:** "Once the user selects a time slot, confirm all details (full name, phone, email, date and time) before creating the appointment. After successfully scheduling, confirm that the appointment has been scheduled and mention they will receive an email confirmation with all the details."
* **For Mental Health Services:** "To schedule a therapy session, request: full name, phone, email, and whether it's their first session. Ask if they prefer in-person or virtual session. After confirming the appointment, mention our cancellation policies (24 hours notice) and that they will receive intake forms via email."
* **For Educational Services:** "When scheduling a tutoring session, confirm: student's name, grade/level, specific subject, phone and contact email. Ask if they need special materials. After booking, inform them that the session will be 60 minutes long and they can reschedule with 12 hours notice."
* **For Real Estate Services:** "To schedule a property viewing, collect: full name, phone, email, type of property of interest, and approximate budget. Confirm the address of the property to visit. After scheduling, mention that the visit will last approximately 30 minutes and they will receive the exact address via text message."
* **For Veterinary Services:** "To schedule a veterinary appointment, confirm: owner's name, phone, email, pet's name and species, and reason for consultation. Ask for the animal's approximate age. After booking, remind them to bring vaccination records and to arrive 10 minutes early for check-in."


# Transfer Call

The "Transfer Call" function in Dapta allows you to transfer phone calls flexibly and in a personalized manner, either to predefined numbers or based on dynamic conditions according to the context of the conversation. You can choose between cold transfers (without context) or warm transfers (with a previous summary), and configure how the phone number is displayed to the agent receiving the call. This function is ideal for efficiently directing users to the appropriate resource, whether it's a human agent, support, sales, or any other department, ensuring a seamless experience tailored to their needs.

### Step-by-Step Guide

#### Step 1: Select your Agent

* Navigate to the list of agents and select the agent to which you want to add the call transfer instruction.

#### Step 2: Access the Configuration

* Once inside the agent, go to the **Settings** tab.
* Within Settings, click on **Agent Actions** to access the available actions for your agent.

<figure><img src="/files/yjw20pbkyTrfP7Q125j8" alt=""><figcaption></figcaption></figure>

#### Step 3: Add the Call Transfer Function

* A menu with available options will appear. Click on **Add** and then select **Transfer Call** from the list of options.

<figure><img src="/files/Hk7dHdqF0iz5XDWiKqT7" alt=""><figcaption></figcaption></figure>

#### Paso 4: Configura tu Instrucción

* Assign a descriptive name to your function in the "Name" field and write the specific instruction about when to use this function. According to the example, the instructions could be: "When the user is angry or requests a human agent, transfer the call to a human.”

<figure><img src="/files/2pCOUBzzkn9VOXhFGknN" alt=""><figcaption></figcaption></figure>

#### Paso 5: Define la función

* "Predefined Number": Enter the phone number to which the call will be transferred.
* "Dynamic Transfer": Select this option to provide instructions to the AI on how to dynamically transfer the call. In the example, the instructions are: "If the user wants to reach support, transfer to \[number\_1]; if the user wants to reach sales, transfer to \[number\_2].

<figure><img src="/files/BLmrC0RCzpgu7KmdLNn3" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/6EDnYKVJABJBloIb1IA5" alt=""><figcaption></figcaption></figure>

#### Paso 6: Tipo de Transferencia

Select the type of transfer you want to perform:

* "Cold Transfer": Transfers the call to the next agent without providing a previous summary.
* "Warm Transfer": Provides a summary of the situation to the next agent before transferring the call.

<figure><img src="/files/2HvxKToIZS5pYdKPMujI" alt=""><figcaption></figcaption></figure>

#### Paso 7: Displayed Phone Number

Choose how the phone number will be displayed to the agent receiving the transferred call:

* "Agent's Number": Displays the number of the agent transferring the call.
* "Transferee's Number": If you use custom telephony, enable SIP REFER and PSTN transfer. Keep in mind that you must configure the following in your telephony provider in order to make it work, because this option is internally simply the transfer via SIP REFER, and some telephony providers have the ability to set the caller ID for SIP REFER.

<figure><img src="/files/teTYFVYFtZLmEa18SZfw" alt=""><figcaption></figcaption></figure>

#### Step 8: Restrict to Business Hours (Optional)

If you only want your agent to transfer calls during your team's working hours, enable the **Restrict to business hours** toggle at the bottom of the Transfer Call configuration.

<figure><img src="/files/gh5YRIFzttpf3aDDT7wK" alt=""><figcaption></figcaption></figure>

When enabled, you can define your availability:

* "Days": Select the days of the week when your team is available to receive transferred calls.
* "Start Time" / "End Time": Set the time window during which transfers are allowed.
* "Timezone": Choose the timezone your schedule refers to.

<figure><img src="/files/PaUq1VOVX2ocOLdiNSuX" alt=""><figcaption></figcaption></figure>

During a call, the agent automatically knows whether the current time falls inside your business hours:

* **Within business hours**: transfers work normally.
* **Outside business hours**: the agent will not transfer the call under any circumstances.

If the toggle is off, the agent behaves exactly as before — transfers are available at any time.

{% hint style="info" %}
This option is available for agents using Dapta's native telephony or a connected SIP trunk.
{% endhint %}


# Brains

Brains are knowledge bases that power your AI agents with custom information. By uploading documents, adding web pages, or entering text directly, you create a searchable memory for your agents.

### Getting Started

#### Create Your First Brain

1. Navigate to the **Brains** section from the main menu (Sidebar → Data Studio → Brains).
2. Click the **Create Brain** button.
3. Enter a name for your Brain (up to 40 characters).
4. Add at least one source using any of the following methods:
   * **Upload Files** — Select documents from your computer.
   * **Add Web Pages** — Enter a domain to discover pages automatically, or add URLs manually.
   * **Add Text** — Type or paste text content directly.
5. Click **Save** to create your Brain.

Your Brain will begin processing immediately. You can monitor its status from the Brains list.

<figure><img src="/files/88ndYmdighxDQhL0zig3" alt=""><figcaption></figcaption></figure>

***

### Managing Brains

#### Brains List

The Brains page displays all your knowledge bases as cards in a grid layout. Each card shows:

* **Brain name**
* **Status** indicator
* **Number of sources** (file count)
* **Total storage size**

Use the **search bar** at the top to filter Brains by name. Click the **refresh** button to update the list.

<figure><img src="/files/glRBAG5O5ucybexA6rCI" alt=""><figcaption></figcaption></figure>

#### Brain Statuses

| Status         | Description                                                                                |
| -------------- | ------------------------------------------------------------------------------------------ |
| **Pending**    | The Brain has been created and is queued for processing.                                   |
| **Processing** | Sources are being indexed. This may take a few moments depending on the amount of content. |
| **Complete**   | All sources have been processed. The Brain is ready for use by your agents.                |
| **Error**      | Something went wrong during processing. Check individual source statuses for details.      |
| **Deleting**   | The Brain is being removed. The card will be disabled until deletion completes.            |

*Status badges are visible in the Brains list screenshot above — green for Complete, yellow for Pending.*

#### Rename a Brain

1. Open the Brain by clicking its card.
2. Click the **edit icon** next to the Brain name.
3. Enter the new name (up to 40 characters).
4. Click **Save** to confirm, or **Cancel** to discard.

#### Delete a Brain

1. From the Brains list, click the **delete** button on the Brain card.
2. Confirm the deletion in the dialog that appears.

The Brain will enter a **Deleting** status while all associated resources are removed. Once complete, it will disappear from the list.

> **Note:** Deleting a Brain permanently removes all its sources and indexed content. This action cannot be undone.

***

### Adding Sources

You can add sources when creating a Brain or at any time afterward from the Brain detail page. There are three types of sources:

#### Upload Files

1. Click **Add Source** and select **Upload Files**.
2. Select one or more files from your computer.
3. Files are validated automatically — you will see an error if a file exceeds the 50 MB size limit.

**Supported file formats:**

| Category      | Formats                                                                |
| ------------- | ---------------------------------------------------------------------- |
| Documents     | `.pdf`, `.doc`, `.docx`, `.odt`, `.rtf`, `.txt`, `.md`, `.rst`, `.org` |
| Spreadsheets  | `.csv`, `.tsv`, `.xls`, `.xlsx`                                        |
| Presentations | `.ppt`, `.pptx`                                                        |
| Email         | `.eml`, `.msg`, `.p7s`                                                 |
| Web           | `.html`, `.xml`                                                        |
| E-books       | `.epub`                                                                |
| Images        | `.bmp`, `.heic`, `.jpeg`, `.jpg`, `.png`, `.tiff`                      |

*File upload uses the native file picker from your operating system.*

#### Add Web Pages

You can add web pages in two ways:

#### Automatic Discovery (Sitemap)

1. Click **Add Source** and select **Add Web Pages**.
2. Enter the website domain (e.g., `example.com`).
3. Click **Discover Pages**.
4. If a sitemap is found, a tree of URLs organized by subdomain will appear.
5. Select the pages you want to include using the checkboxes.
   * Use **Select All** / **Deselect All** for quick selection.
   * Expand subdomains to select individual pages.
6. Click **Add N URLs** to confirm your selection.

#### Manual URL Entry

If no sitemap is found or you prefer to add URLs individually:

1. Click the **Add URL manually** link.
2. Enter the full URL (e.g., `https://example.com/page`).
3. Click **Save**.

> **Tip:** If you omit `https://`, it will be added automatically.

#### Add Text

1. Click **Add Source** and select **Add Text**.
2. Enter a **File Name** — this serves as the title for your text source.
3. Enter the **Text Content** in the text area.
4. Click **Save**.

<figure><img src="/files/4gOADTdCt6EsUWmURSnq" alt=""><figcaption></figcaption></figure>

***

### Sitemap Discovery

The Sitemap Discovery feature makes it easy to import multiple web pages at once by automatically finding all available pages on a website.

#### How It Works

**Step 1 — Enter Domain** Type the website domain (e.g., `docs.example.com`) and click **Discover Pages**. The system will search for the site's sitemap.

**Step 2 — Select Pages** If pages are found, they appear in an organized tree:

* Pages are grouped by subdomain.
* Each group shows the count of selected vs. total pages.
* Click a subdomain to expand and see individual URLs.
* Use checkboxes to select or deselect pages.
* The counter at the top shows your total selection.

**Step 3 — Confirm** Click the **Add N URLs** button to add the selected pages as sources.

<figure><img src="/files/VqjVeMrVSCocfTDPCdvI" alt=""><figcaption></figcaption></figure>

#### When No Sitemap Is Found

If the system cannot find a sitemap, you will see a message with the option to **Add URL manually**. This allows you to enter specific page URLs one at a time.

***

### Source Management

#### Brain Detail View

Click on any Brain card to open its detail view. Here you can see all sources in a list with the following information:

* **Source name**
* **Status** indicator
* **Type** label (URL, TEXT, or file extension like PDF, DOCX, etc.)
* **File size** (for uploaded documents)
* **Available actions**

Use the **search bar** to filter sources by name.

<figure><img src="/files/UhSJA4NjLBjjNd35g3im" alt=""><figcaption></figcaption></figure>

#### Source Statuses

| Status         | Description                                                                                                              |
| -------------- | ------------------------------------------------------------------------------------------------------------------------ |
| **Pending**    | The source is queued and waiting to be processed.                                                                        |
| **Processing** | The source is currently being indexed.                                                                                   |
| **Complete**   | The source has been successfully processed and is available for agent queries.                                           |
| **Error**      | Processing failed. Hover over the status to see the error details. Use the **Retry** button to attempt processing again. |

#### Source Actions

Each source has up to three actions available depending on its status:

| Action       | Available When                          | Description                                                                           |
| ------------ | --------------------------------------- | ------------------------------------------------------------------------------------- |
| **Download** | Status is Complete and source is a file | Download the original file to your computer.                                          |
| **Retry**    | Status is Error                         | Re-attempt processing the source. Hover over the error status to see what went wrong. |
| **Delete**   | Always                                  | Remove the source from the Brain permanently.                                         |

#### Bulk Operations

You can select multiple sources to perform actions in bulk:

1. Click the **checkbox** on individual source cards to select them.
2. The toolbar will show how many items are selected.
3. Click **Delete selected** to remove all selected sources at once.
4. Confirm the deletion in the dialog.

<figure><img src="/files/ZUtiINwTdsvG5XzcIFpS" alt=""><figcaption></figcaption></figure>

> **Warning:** If you delete all sources from a Brain, the Brain itself will also be deleted.

***

### Assigning Brains to Agents

Once a Brain is ready (status **Complete**), you can connect it to your Voice Agents or Text Agents so they can access its knowledge during conversations.

#### Where to Assign Brains

Brains are managed from the **Settings** page of each agent:

1. Open the agent you want to configure (Voice Agent or Text Agent).
2. Navigate to the **Settings** section.
3. Find the **Brains** accordion panel.

You will see a description: *"Connect knowledge bases to give your agent access to specific information and context."*

<figure><img src="/files/Vnj5dSz7RzpCkzwm2Pht" alt=""><figcaption></figcaption></figure>

#### Adding a Brain to an Agent

1. In the **Brains** section, click the **Add Brain** button.
2. A selector modal will appear showing all available Brains with status **Complete**.
   * Use the **search bar** to find a specific Brain by name.
   * Each Brain in the list shows its name, number of sources, and total size.
   * Brains already assigned to the agent are excluded from the list.
3. Click on the Brain you want to add.
4. Click **Save** to confirm.

The Brain will appear in the agent's brain list, and a confirmation message will be shown.

<figure><img src="/files/q1hhNKiw3y5NWGYYuk0Z" alt=""><figcaption></figcaption></figure>

> **Tip:** You can also create a new Brain directly from the selector modal without leaving the agent settings page.

#### Removing a Brain from an Agent

1. In the **Brains** section, find the Brain you want to remove.
2. Click the **delete** icon next to it.
3. Confirm the removal in the dialog that appears.

Removing a Brain from an agent does not delete the Brain itself — it only disconnects it from that agent. The Brain remains available and can be reassigned at any time.

#### Brain Limit per Agent

Each agent can have a maximum of **5 Brains** assigned at the same time. When the limit is reached:

* The **Add Brain** button is hidden.
* A label **(Max 5)** is displayed instead.
* If you need to add a different Brain, remove one of the existing ones first.

***

### Limits and Constraints

| Constraint              | Limit                                  |
| ----------------------- | -------------------------------------- |
| Brain name length       | 40 characters                          |
| Maximum file size       | 50 MB per file                         |
| Sources during creation | Up to 25 sources                       |
| File upload batch       | Up to 25 files at once                 |
| Bulk selection          | Up to 25 sources at a time             |
| Brains per agent        | Up to 5 Brains per Voice or Text Agent |

> **Note:** You can add more sources after the Brain is created. The 25-source limit only applies to the initial creation and per-batch uploads.

#### Duplicate Detection

The system automatically detects duplicate sources to prevent redundant processing:

* **URLs** — Duplicate URLs are rejected.
* **Files** — Files with identical names are flagged.
* **Text** — Text entries with the same title are prevented.

If a duplicate is detected, you will see a notification explaining which source already exists.

***

### Troubleshooting

#### A source shows "Error" status

Hover over the error status badge to see the error message. Click the **Retry** button to re-process the source. If the error persists, try removing the source and adding it again.

#### My file was rejected during upload

Check that the file does not exceed **50 MB** and that the format is one of the supported types listed in the [upload Files](#upload-files) section.

#### Sitemap discovery finds no pages

Not all websites have a sitemap. If discovery fails, use the **Add URL manually** option to enter specific page URLs.

#### My Brain is stuck in "Processing" status

Processing time depends on the number and size of your sources. Large files or many web pages may take longer. If the status does not change after several minutes, try refreshing the page.

#### I accidentally deleted a source

Deleted sources cannot be recovered. You will need to upload the file, add the URL, or enter the text again.

#### My Brain card shows "Deleting" and I cannot interact with it

The Brain is being removed in the background. This process deletes all associated files and indexed data. The card will disappear from the list once the process completes.


# How to create your first campaign in Dapta

A campaign lets you launch outbound voice calls at scale—no code or complex integrations needed. connect your contacts, configure your schedule, and let your AI voice agent handle the rest.

{% embed url="<https://youtu.be/L7gyosYNEs4?si=mvyzUXEzCtQVKXUP>" %}

Campaigns in Dapta give you a complete workflow for outbound calling: create a campaign in four steps, import your contacts, set your schedule and calling rules, then monitor performance through metrics and call logs—all from a single dashboard.

👉 Click **Next** to learn how to create your first campaign and start making calls.


# Create a campaign

Learn how to create an outbound calling campaign in Dapta — from naming your campaign and uploading contacts to configuring schedules and launching your first calls.

{% embed url="<https://youtu.be/L7gyosYNEs4?si=mvyzUXEzCtQVKXUP>" %}

Campaigns let you launch outbound calls at scale using your voice agents. This guide walks you through every step of the campaign creation wizard.

***

## Navigate to Campaigns

**Step 1:** Click **Campaigns** in the left sidebar to open the campaigns list page.

The table displays all your campaigns with their **Name**, **Start Date**, **End Date**, **Agent**, **Active** toggle, and **Status**. Use the search bar to find a specific campaign quickly.

**Step 2:** Click the **Create Campaign** button in the top-right corner to launch the creation wizard.

<figure><img src="/files/yMVdomNfy8xlODKHtY6o" alt=""><figcaption></figcaption></figure>

***

## Step 1 — Campaign Details

Fill in the basic information for your campaign.

1. **Campaign Name** (required) — A clear name that identifies this campaign in your list.
2. **Campaign Objective** (optional) — A short description for your own reference. This field does not affect how the agent behaves during calls.
3. **Agent** (required) — Select the voice agent that will handle the calls. The dropdown shows voice agents only, sorted by last update date.

Click **Save and continue** to move to the next step.

<figure><img src="/files/uPbpU2JQP4iD0UihQzcu" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/Pr2SgmX30gk31x0C8CKY" alt=""><figcaption></figcaption></figure>

***

## Step 2 — Upload a File

Upload the contact list your campaign will use to place calls.

**Step 1:** Drag and drop your file into the upload area, or click to browse your computer.

**Step 2:** Confirm the upload. After the file is processed, you will see the file name, type, and size displayed on screen.

Supported formats:

* **CSV** (.csv)
* **Excel** (.xlsx)

> **💡 Tip:** Make sure your file includes at least a contact name column and a phone number column before uploading.

{% hint style="info" %}
You can click **Skip** to skip the file upload and property mapping steps (Steps 2 and 3). You can always add contacts later from the campaign detail page.
{% endhint %}

<figure><img src="/files/PYvAi8gcSBnXYZSi4rG5" alt=""><figcaption></figcaption></figure>

***

## Step 3 — Property Mapping

Map the columns from your uploaded file to the corresponding fields in the Dapta CRM.

1. **Phone Number** is always the first row and is required. Select the column from your file that contains phone numbers.
2. **Contact Name** and other common fields are auto-populated when possible. Verify each mapping is correct.
3. To add a field that is not listed, click **+ Add Property** to create a new CRM field and map it to a column in your file.
4. Once all fields are mapped, click **Save and continue**.

<figure><img src="/files/U9qkBYGvpGjPQOUmQSmP" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/jaJoeZryGahAdDedVIOV" alt=""><figcaption></figcaption></figure>

***

## Step 4 — Handle Errors

Once you confirm your mappings, Dapta processes the file and shows any rows that failed validation.

* **Valid rows** are still added to your campaign and saved to your CRM.
* An **error log** is generated so you can review exactly which rows failed and why.
* Click **Back** to return to the upload step, fix your file, and re-upload — or click **Continue** to proceed with only the valid records.

{% hint style="info" %}
You do not need to fix all errors before launching your campaign. You can continue with the successfully uploaded contacts and add the remaining ones later from the **Contact List** tab.
{% endhint %}

<figure><img src="/files/QaSjgKoO8WFC01jb5ryQ" alt=""><figcaption></figcaption></figure>

***

## Step 5 — Configure Your Campaign

Define the schedule and calling rules for your campaign.

1. **Start Date** (required) — The date your campaign begins placing calls.
2. **End Date** (optional) — The date your campaign stops. Leave blank to run indefinitely.
3. **Calling Days** — Choose from **Every day**, **Weekdays** (Monday through Friday), or **Custom** to select specific days of the week.
4. **Max Attempts Per Contact** — The total number of retry attempts across all time slots (1 to 40). The available range adjusts based on your **Attempts Per Day** setting.
5. **Attempts Per Day** — How many times Dapta can call the same contact in a single day (1 to 5).
6. **Time Zone** (required) — Select the time zone for your campaign using the searchable dropdown. Defaults to your browser's time zone.
7. **Weekly Schedule** — A day-by-day table where you configure calling windows for each active day. Each day can have its own independent time slots. Click **+ Add Time Slot** to define additional windows within a day.

Click **Finish** to save your campaign. You will be taken to the campaign detail page.

<figure><img src="/files/cjVqSLlFMccDGqSfvz5E" alt=""><figcaption></figcaption></figure>

***

## What's next?

Once your campaign is created, head to the detail page to manage it, monitor call logs, and track performance.

{% content-ref url="/pages/oAicUT9kkH5vABsAXEao" %}
[Managing your campaign](/ai-voice-agents/how-to-create-your-first-campaign-in-dapta/managing-your-campaign)
{% endcontent-ref %}


# Managing your campaign

Learn how to manage your campaigns in Dapta — edit settings, monitor call logs, manage contacts, track performance metrics, and use list actions like duplicate and delete.

After creating a campaign you land on the detail page, which gives you full control and visibility over its execution. This guide covers everything you can do from the campaign detail page and the campaign list.

***

## Campaign Detail Page

The detail page includes four tabs: **Settings**, **Call Logs**, **Contact List**, and **Metrics**.

At the top of the page you will find:

* A **status capsule** showing the current campaign status.
* An **Active** toggle to enable or disable scheduled execution.
* A **Run** button to manually trigger the campaign for testing.
* A **Save Changes** button (on the Settings tab) that activates when you have unsaved edits.

{% hint style="info" %}
The **Active** toggle is disabled until you set a **Start Date** on the campaign. Configure your schedule first, then activate.
{% endhint %}

<figure><img src="/files/mr7d5rjSOW3Fike65qk7" alt=""><figcaption></figcaption></figure>

***

## Settings Tab

The **Settings** tab lets you view and edit all campaign configuration after creation. It is divided into three sections:

### Basic Data

* **Campaign Name** — Edit the name that identifies your campaign.
* **Campaign Objective** — Update the optional description.
* **Agent** — Change the voice agent assigned to this campaign.

### Schedule & Attempts

All the same fields from the creation wizard (start/end dates, calling days, weekly schedule, time zone, country, max attempts, attempts per day) are available here for editing. See [Create a campaign — Step 2](/ai-voice-agents/how-to-create-your-first-campaign-in-dapta/create-a-campaign#step-2-configure-your-campaign) for details on each field, including when the **Country** dropdown appears for multi-country time zones.

### Campaign summary

Once your dates and weekly schedule are filled in, a **Campaign summary** card appears at the bottom of the section. It restates your configuration in plain language so you can sanity-check it before saving:

> ℹ️ **Campaign summary** Your campaign will start on: April 27, 2026 It will call **Monday to Friday** between **08:00 AM - 06:00 PM** (America/Phoenix) Each contact will receive up to **5 calls** in total, max 1 per day.

<figure><img src="/files/uh6Hgt9tkBpBmcHl3cPZ" alt=""><figcaption></figcaption></figure>

### Advanced Settings

Expand the **Advanced Settings** accordion at the bottom of the Settings tab to access:

* **Batch Size** — Controls how many contacts are processed per batch. Set a value between 1 and 500 (default is 100).
* **Phone Number Rotation** — Toggle this on to rotate between multiple outbound phone numbers. Once enabled, select the numbers you want to use from the dropdown. Each number displays its nickname and SIP trunk status.

<figure><img src="/files/8AADfDBEPjZ1xeV9v5P3" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
Changes are not saved automatically. Click **Save Changes** in the top-right corner after making edits. If you try to navigate away with unsaved changes, a warning will appear.
{% endhint %}

***

## Call Logs Tab

The **Call Logs** tab shows a detailed record of every call attempt made by the campaign.

### Table columns

| Column                | Description                                                                                                                                      |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Phone Number**      | The contact's phone number. Searchable.                                                                                                          |
| **Disconnect Reason** | Why the call ended (e.g., User Hangup, Voicemail Reached). Filterable — see [Disconnect Reasons reference](#disconnect-reasons-reference) below. |
| **Status**            | The call's processing status. See the status table below.                                                                                        |
| **Call Successful**   | Whether the call achieved its intended goal. Filterable by Yes/No.                                                                               |
| **Duration**          | Length of the call. Filterable by duration.                                                                                                      |
| **Credits**           | Credits consumed by the call.                                                                                                                    |
| **Feedback**          | Per-call feedback you've left. See [Feedback](#feedback) below.                                                                                  |
| **Tools**             | Number of tools or actions the agent invoked during the call.                                                                                    |
| **Date**              | When the call was placed. Filterable by date.                                                                                                    |

<figure><img src="/files/1J1Ys3PeW3phghk0t7KQ" alt=""><figcaption></figcaption></figure>

### Call statuses

| Status                  | Description                                           |
| ----------------------- | ----------------------------------------------------- |
| **queued**              | Call is waiting to be placed.                         |
| **created**             | Call record has been created in the system.           |
| **registered**          | Call has been registered with the telephony provider. |
| **in\_progress**        | Call is currently active.                             |
| **ended**               | Call completed normally.                              |
| **not\_connected**      | Call was placed but did not connect to the contact.   |
| **error**               | An error occurred during the call.                    |
| **failed\_rate\_limit** | Call was not placed because a rate limit was reached. |

### Disconnect Reasons reference

The **Disconnect Reason** column tells you why each call ended. Click the filter icon on the column header to filter by a specific reason. The full list:

| Code                                   | What it means                                                                    |
| -------------------------------------- | -------------------------------------------------------------------------------- |
| `dial_no_answer`                       | The contact's phone rang but no one picked up.                                   |
| `dial_busy`                            | The contact's line was busy.                                                     |
| `dial_failed`                          | The dial attempt failed before the call could connect.                           |
| `voicemail_reached`                    | The call connected to the contact's voicemail system.                            |
| `user_hangup`                          | The contact answered and hung up before the conversation ended.                  |
| `agent_hangup`                         | The agent ended the call (typically when its objective was met).                 |
| `user_declined`                        | The contact actively declined the call (for example, sent it to voicemail).      |
| `inactivity`                           | The call ended because no one was speaking for an extended period.               |
| `max_duration_reached`                 | The call hit the maximum allowed duration and was cut off.                       |
| `call_transfer`                        | The call was transferred to another number or agent.                             |
| `marked_as_spam`                       | The call was flagged as spam by the carrier or recipient.                        |
| `invalid_destination`                  | The phone number is not valid or not reachable.                                  |
| `concurrency_limit_reached`            | Too many simultaneous calls were in progress; this one was deferred.             |
| `telephony_provider_unavailable`       | The telephony provider was temporarily unreachable.                              |
| `telephony_provider_permission_denied` | The telephony provider rejected the call (often a permissions or routing issue). |
| `error_no_audio_received`              | The call connected but no audio was received from the other side.                |
| `error_asr`                            | A speech recognition error occurred during the call.                             |
| `error_dapta`                          | A Dapta-side error interrupted the call.                                         |
| `error_unknown`                        | The call ended due to an unclassified error.                                     |

<figure><img src="/files/IE9OUzpkDPl48eSi3oGh" alt=""><figcaption></figcaption></figure>

### Call analysis data

Each call log includes analysis data that is generated after the call ends:

* **Call Successful** — Whether the agent completed its intended task. The agent itself decides this based on its prompt and conversation outcome (for example, "appointment booked", "lead qualified"). Filterable by **Yes** / **No**.
* **User Sentiment** — The detected emotional tone of the contact during the call. Typical values are **Positive**, **Neutral**, and **Negative**. Detected automatically from the conversation.
* **In Voicemail** — Whether the call reached a voicemail system.
* **Call Summary** — An AI-generated summary of the conversation.
* **Dynamic Variables** — Values that were passed into the agent for this call (for example, the contact's name or company), pulled from the CRM at dial time.
* **Custom Analysis Data** — Any additional values the agent extracted during the call, based on your agent's analysis configuration.

### Feedback

Each call row includes a **Feedback** column where you can rate the call. Click the icon to leave a thumbs up, thumbs down, or a written comment. Feedback is useful for QA reviews and for iterating on your agent's prompt — it does not affect call execution.

### Actions

* **Search** — Filter the logs by phone number or contact.
* **Download as Excel** — Export all call logs. The exported file includes the call analysis data, dynamic variables, and any custom analysis fields as additional columns.
* **Refresh** — Reload the logs list.
* **View call detail** — Click the eye icon on any row to open the full call history for that contact in a new tab.

***

## Contact List Tab

The **Contact List** tab displays all contacts enrolled in the campaign.

### Table columns

| Column                 | Description                                              |
| ---------------------- | -------------------------------------------------------- |
| **Phone Number**       | The contact's phone number.                              |
| **Attempts**           | Total call attempts for this contact, including retries. |
| **Connected**          | Number of attempts that connected.                       |
| **Successful**         | Number of calls marked as successful by the agent.       |
| **Credits**            | Total credits consumed for this contact.                 |
| **Duration**           | Total call duration across all attempts.                 |
| **Last Disconnection** | The disconnect reason from the most recent call.         |
| **Last Call Date**     | When the most recent call was placed.                    |
| **Created At**         | When the contact was added to the campaign.              |

### Row actions

Click the three-dot menu on any contact row to access:

* **Edit Contact** — Opens the CRM contact editor where you can update the contact's details.
* **Copy Contact ID** — Copies the contact's unique ID to your clipboard.
* **Remove from Campaign** — Removes the contact from this campaign. This does not delete the contact from your CRM.

### Bulk actions

* **Import CSV/XLSX** — Click the import button to upload a new file and add more contacts to the campaign. This opens the same property mapping interface used during campaign creation.
* **Download as Excel** — Export the full contact list including all mapped fields.
* **Refresh** — Reload the contacts list.

> **💡 Tip:** Click any contact row to jump directly to the Call Logs tab filtered by that contact, showing all their call attempts.

<figure><img src="/files/Oo1zkOdp3i2raLxq8OBD" alt=""><figcaption></figcaption></figure>

***

## Metrics Tab

The **Metrics** tab gives you a complete performance overview of your campaign. Use the date range picker at the top to filter the data — by default it is set from your campaign's start date to today.

### KPI Cards

Five summary cards are displayed at the top:

* **Credits Used** — Total credits consumed by the campaign.
* **Total Calls** — Number of call attempts made.
* **Contacts Called** — Unique contacts that were dialed.
* **Connection Rate** — Percentage of contacts that answered. Calculated as **(Contacts who answered ÷ Total Contacts) × 100**.
* **Avg. Call Duration** — Average length of connected calls.

<figure><img src="/files/C1HmVSCXUQbnibw4X8vQ" alt=""><figcaption></figcaption></figure>

### Calls Made Chart

A line chart showing the number of calls made per day, broken down by disconnect reason. Hover over any data point to see a detailed breakdown. Click any label in the legend to show or hide that line.

### Contact Funnel

A horizontal funnel visualization showing:

* **Total Contacts** — Everyone in the campaign.
* **Connected** — Contacts who answered the call, with percentage of total.
* **Successful** — Contacts where the agent marked the call as successful, with percentage of total.

{% hint style="info" %}
A large gap between **Connected** and **Successful** may indicate issues with your agent's prompt or conversation flow. A large gap between **Total Contacts** and **Connected** may suggest calling at suboptimal times or dialing invalid numbers.
{% endhint %}

***

## Campaign List Actions

Back on the campaigns list page, each campaign row has a three-dot menu with the following actions:

### Edit

Opens the campaign for editing. If the campaign does not have a start date configured yet, it opens directly in the creation wizard at the scheduling step. Otherwise, it opens the campaign detail page.

### Duplicate

Creates a copy of the campaign with all its settings (name, agent, schedule, calling rules). The copy is created with:

* The name appended with **(Copy)**.
* The **Active** toggle set to **off**.
* No contacts — you need to import contacts into the new campaign separately.

### Delete

Permanently deletes the campaign. This action **cannot be undone**. A confirmation dialog will appear before deletion.

{% hint style="warning" %}
Deleting a campaign removes all its call logs and contact associations. Make sure to export any data you need before deleting.
{% endhint %}

***

## Search and Sort

The campaign list page includes:

* A **search bar** to filter campaigns by name.
* A **sort button** to change the list order — sort by **Name** (alphabetical) or by **Creation Date** (default, newest first).


# Importing data

Learn how to import contacts into your Dapta voice campaign. This guide covers supported file types, required fields, phone number formatting, property mapping, and how to troubleshoot common import e

Importing data is how you load your contact list into a campaign so your AI voice agent knows who to call. You can upload a file during campaign creation or add more contacts to an existing campaign at any time.

## Supported file types

| Format        | Extension         | Notes                                                                    |
| ------------- | ----------------- | ------------------------------------------------------------------------ |
| CSV           | `.csv`            | Most common format. Easy to export from any spreadsheet tool.            |
| Excel         | `.xlsx`           | Modern Excel format only. The legacy `.xls` format is **not** supported. |
| Google Sheets | `.csv` or `.xlsx` | Export your sheet as CSV or XLSX before uploading.                       |

{% hint style="warning" %}
Only `.xlsx` Excel files are supported. If your file is in the older `.xls` format, open it in Excel or Google Sheets and re-save it as `.xlsx` before uploading.
{% endhint %}

***

## Required and optional fields

Your file needs at least one column — the phone number. Everything else is optional but recommended for personalization.

| Field           | Required         | Description                                                             |
| --------------- | ---------------- | ----------------------------------------------------------------------- |
| `contact_phone` | **Yes**          | The phone number your voice agent will call. Must be in E.164 format.   |
| `contact_name`  | No (recommended) | The contact's name. Useful for personalized greetings in your prompt.   |
| `company_name`  | No               | The contact's company. Helpful for B2B campaigns.                       |
| `email`         | No               | The contact's email address.                                            |
| Custom fields   | No               | Any additional column in your file can be mapped to a new CRM property. |

**Example CSV:**

| contact\_name | contact\_phone | company\_name | email             |
| ------------- | -------------- | ------------- | ----------------- |
| Alice Johnson | +14085550123   | Dapta         | <alice@dapta.com> |
| Bob Lee       | +12065550987   | Jarvis        | <bob@jarvis.io>   |
| Carol White   | +17145550765   | Nimbus        | <carol@nimbus.co> |

> **💡 Tip:** Make sure your file has column headers in the first row. The header names are what you will map to CRM fields during the property mapping step.

***

## Phone number format

All phone numbers must follow the **E.164 international format**: `+[country_code][number]` with no spaces, dashes, or parentheses.

**Valid examples:**

| Number          | Country                            |
| --------------- | ---------------------------------- |
| `+15551234567`  | United States                      |
| `+525551234567` | Mexico                             |
| `+573001234567` | Colombia                           |
| `1XXXXXXXXXX`   | US (without the `+` also accepted) |

**Invalid examples:**

| Number              | Reason                                   |
| ------------------- | ---------------------------------------- |
| `+1 (555) 123-4567` | Contains spaces, parentheses, and dashes |
| `12345`             | Too short to be a real phone number      |
| `0000000000`        | Not a real, dialable number              |
| *(blank)*           | Missing value — row will be skipped      |

{% hint style="info" %}
Numbers must be real and dialable. Fake or test numbers will fail validation and be excluded from your campaign.
{% endhint %}

***

## Property mapping

After you upload your file, you enter the **property mapping** step. This is where you connect your file's column headers to Dapta CRM fields.

**Step 1:** The **Phone Number** mapping is always shown first. It is required and cannot be removed. Match it to whichever column in your file contains the phone numbers.

***

**Step 2:** The **Contact Name** mapping is shown by default. Map it to the column that contains your contacts' names, or leave it unmapped if your file does not include names.

***

**Step 3:** To map additional columns, click **+ Add Property**. For each new property, you need to provide:

* **Display Name** — a human-readable label (e.g., "Company Name")
* **Field Name** — must match your file's column header exactly (e.g., `company_name`)
* **Data Type** — choose from Text, Number, Date, or Boolean

> **💡 Tip:** Mapped data is automatically saved to your Dapta CRM, so you can reuse these contacts across multiple campaigns without re-importing.

***

## What happens during import

Once you confirm the mapping and start the import, Dapta processes your file in real time:

1. Each row is validated against the required fields and phone number format.
2. **Valid rows** are imported into your campaign and added to your CRM.
3. **Invalid rows** are skipped — for example, rows with missing or malformed phone numbers.
4. An **error log** is generated that you can download to see exactly which rows failed and why.
5. Import progress is tracked in real time so you can watch the status as contacts are processed.

If too many rows fail, you can click **Back** to return to the upload step, fix your file, and re-upload it. Alternatively, you can continue with only the valid records.

***

## Adding contacts after campaign creation

You are not limited to importing data only during the initial campaign setup. There are two ways to add more contacts to an existing campaign:

* **Re-import from the Contact List tab** — Open your campaign, go to the **Contact List** tab, and click the **Import** button. Upload a new CSV or XLSX file to add more contacts to the same campaign.
* **Flow Studio** — Use Dapta's automation tool to programmatically add contacts to a campaign based on triggers or external data sources.

***

## Troubleshooting tips

| Problem                                 | Solution                                                                                               |
| --------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| File upload fails                       | Make sure your file is `.csv` or `.xlsx`. The legacy `.xls` format is not supported.                   |
| All rows are marked invalid             | Check that your phone numbers are in E.164 format with no spaces, dashes, or parentheses.              |
| Column not showing in mapping           | Ensure the first row of your file contains column headers. Empty headers are ignored.                  |
| Duplicate contacts                      | Dapta uses the phone number as a unique identifier. Duplicate numbers in the same file may be skipped. |
| Missing contact names in calls          | Verify that you mapped the `contact_name` column correctly during the property mapping step.           |
| Numbers rejected despite correct format | The number may not be a real, dialable phone number. Verify it is an active number.                    |


# Add contacts to a campaign via Flow Studio

Automatically sync leads from tools like HubSpot into your voice campaigns using Flow Studio. Perfect for keeping your contact lists up to date—without manual uploads.

🧱 **Step 1: Add the “Add Contact To Campaign” Node**\
In Flow Studio, start by adding the **Add Contact To Campaign** node to your flow.

1. Open the **Templates** panel
2. Search for **"Add Contacts To Campaign"**
3. Drag and drop the node into your flow

This node allows you to send contacts into a voice campaign directly from your data source. In the next steps, you’ll connect it to a list of leads from tools like HubSpot.

<figure><img src="/files/h0DmsIDRux2cz0BNuzMY" alt=""><figcaption></figcaption></figure>

***

🧱 **Step 2: What the “Add Contact To Campaign” Node Does**\
This node sends each contact into a specific Dapta campaign.

You must provide:

* ✅ **Campaign name** (already created in Dapta)
* 📞 **Valid phone number**
* 🔑 Optional mapped fields (e.g., name, email, external ID)

🚫 Contacts missing phone numbers or with invalid formatting will be skipped automatically.

<figure><img src="/files/o4c3rK223tNO5fAKoVCs" alt=""><figcaption></figcaption></figure>

***

🚀 **Step 3: Example Flow**

**Goal**: Sync all new HubSpot leads created after yesterday into a campaign.

#### 🛠 Node Breakdown:

1️⃣ **Trigger** – Scheduled Task (e.g., daily at 8 AM)\
2️⃣ **Search Record (HubSpot)** – Pulls new contacts using filters like `createdate > yesterday`\
3️⃣ **Loop List** – Iterates through each matching contact\
4️⃣ **Add Contact To Campaign** – Sends each contact to Dapta with mapped values:

| Property      | Value                                       |
| ------------- | ------------------------------------------- |
| Phone Number  | `{{contacts.item.properties.phone}}`        |
| Contact Name  | `{{contacts.item.properties.firstname}}`    |
| Contact Email | `{{contacts.item.properties.email}}`        |
| External ID   | `{{contacts.item.properties.hs_object_id}}` |

<figure><img src="/files/SQJQEqW5cJ938EvvKepV" alt="" width="290"><figcaption></figcaption></figure>


# Call Logic & Limits

Understand how Dapta manages call execution, batch processing, scheduling, retry attempts, and cooldown rules to keep your voice campaigns efficient and compliant.

Dapta voice campaigns are built around a set of timing rules, batch controls, and retry logic that work together to maximize contact rates while protecting call quality. This page explains every mechanism that governs how and when your contacts are called, so you can configure campaigns with confidence.

## Campaign Statuses

Every campaign moves through a lifecycle represented by its status. You can see the current status on the campaign list and on the campaign detail page.

| Status             | Description                                                              |
| ------------------ | ------------------------------------------------------------------------ |
| **Draft**          | Campaign created but not yet scheduled or activated.                     |
| **Scheduled**      | Campaign is set to run at the configured date and time.                  |
| **Running**        | Campaign is actively placing calls to contacts.                          |
| **Completed**      | All contacts in the campaign have been processed.                        |
| **Failed**         | Campaign encountered an error and stopped.                               |
| **Paused**         | Campaign was manually paused by a user.                                  |
| **Manual Running** | Campaign is running a manual test triggered by the **Run** button.       |
| **Waiting**        | Campaign is between batches or waiting for the next available time slot. |

{% hint style="info" %}
A campaign in **Waiting** status has not finished — it is simply idle until the next batch or time slot opens.
{% endhint %}

***

## Batch Processing

Dapta processes contacts in batches rather than all at once. This gives the system time to handle responses and keeps call pacing predictable.

**Batch size** is configurable from **1 to 500 contacts** per batch. The default value is **100**. You can adjust it in the **Advanced Settings** accordion on your campaign's **Settings** tab.

Within each batch, contacts are called sequentially at a fixed rate of **1 call every 3 seconds**. Once every contact in the current batch has been attempted, Dapta moves on to the next batch.

> **💡 Tip:** Smaller batch sizes give you more granular control and quicker feedback during testing. Larger batches are better for high-volume production campaigns.

<figure><img src="/files/8AADfDBEPjZ1xeV9v5P3" alt=""><figcaption></figcaption></figure>

***

## Calling Schedule

The calling schedule determines **which days** and **which hours** your campaign is allowed to place calls. All times follow the **time zone** configured on the campaign.

### Time zone and country

The campaign's **Time zone** sets the clock used for calling windows. Some time zones (for example `America/Phoenix`) are observed in more than one country, in which case Dapta also asks you to pick a **Country** so it knows how to dial bare phone numbers (numbers in your file without a `+` prefix). For details, see [Create a campaign — Country selection](/ai-voice-agents/how-to-create-your-first-campaign-in-dapta/create-a-campaign#country-selection-for-multi-country-time-zones).

### Calling Days

Choose one of three options:

* **Every Day** — the campaign runs seven days a week.
* **Weekdays (Mon–Fri)** — the campaign runs only on business days.
* **Custom** — pick the specific days of the week you want.

### Weekly Schedule

The schedule is configured through a **day-by-day table** where each day of the week can have its own independent time slots. This means you can set different calling windows for different days — for example, 8:00 AM – 6:00 PM on weekdays and 10:00 AM – 2:00 PM on Saturdays.

For each active day, you can:

* **Enable or disable** the day using the checkbox.
* **Set one or more time slots** with a start and end time.
* **Add additional time slots** by clicking the **+** button (for example, a morning window and an afternoon window).
* **Remove a time slot** by clicking the delete button next to it.

### Time Slot Rules

The following rules apply to time slots:

* Slots **cannot overlap** with each other within the same day.
* The **start time must be before the end time** within each slot.
* Times use the **HH:MM AM/PM** format.
* At least **one day must be enabled** with at least one time slot.

{% hint style="warning" %}
If the campaign reaches a point where no time slot is open, any remaining calls are automatically rescheduled for the next available slot. No contacts are skipped.
{% endhint %}

***

## Attempt Limits

You can control how aggressively Dapta retries contacts that do not answer or cannot be reached.

| Setting                      | Range  | Description                                                                                                                                            |
| ---------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Max Attempts Per Contact** | 1 – 40 | Total number of call attempts across the entire campaign lifetime. The available range adjusts dynamically based on your **Attempts Per Day** setting. |
| **Attempts Per Day**         | 1 – 5  | Maximum attempts allowed for a single contact within one calendar day.                                                                                 |

If an attempt cannot be made because the current time slot has closed, it is **not counted as a failed attempt**. Instead, it is rescheduled for the next available slot.

> **💡 Tip:** A common starting configuration is **3 max attempts** with **1 attempt per day**, spreading retries across multiple days to improve answer rates without overwhelming contacts.

<figure><img src="/files/mr7d5rjSOW3Fike65qk7" alt=""><figcaption></figcaption></figure>

***

## Contact Cooldown

To prevent contacts from receiving back-to-back calls, Dapta enforces a **1-hour cooldown** per contact. This rule applies **globally across all campaigns** — if a contact was attempted in any campaign within the last hour, no other campaign will call them until the cooldown period has passed.

This protects the recipient experience and reduces the risk of your numbers being flagged as spam.

***

## Parallel Execution

You can run **multiple campaigns simultaneously** without any conflicts. Each campaign operates independently with its own batch queue, schedule, and call pacing.

Every active campaign places **1 call every 3 seconds**, regardless of how many other campaigns are running at the same time.

{% hint style="info" %}
The 1-hour contact cooldown still applies across campaigns. If two campaigns share contacts, the cooldown prevents a contact from being called by both campaigns within the same hour.
{% endhint %}

***

## Concurrency

**Concurrency** is the number of calls your account can have **live at the same time**, counting both inbound and outbound (campaigns included). It is separate from call pacing: pacing controls how fast new calls start, while concurrency caps how many can be active at once.

Your concurrency limit depends on your plan:

| Plan           | Concurrent calls |
| -------------- | ---------------- |
| **Free**       | 1                |
| **Pro**        | 5                |
| **Scale-Up**   | 20               |
| **Enterprise** | 30               |

Need more capacity? Additional concurrency spots can be added for **$10 USD/month each**. To raise your limit, contact support.

***

## Phone Number Rotation

Phone number rotation distributes your outbound calls across multiple phone numbers, reducing the likelihood that any single number gets flagged as spam.

**How to enable it:**

1. Open your campaign's **Settings** tab.
2. Expand the **Advanced Settings** accordion.
3. Toggle **Phone Number Rotation** on.
4. Select two or more outbound phone numbers from the list. Each number displays its nickname and SIP trunk status tag.

When enabled, Dapta automatically rotates between the selected numbers as it places calls. This is especially useful for high-volume campaigns where a single number might otherwise accumulate too many outbound calls in a short period.

<figure><img src="/files/8AADfDBEPjZ1xeV9v5P3" alt=""><figcaption></figcaption></figure>

***

## Manual Test / Run

Before activating a campaign for automatic execution, you can run a **manual test** to verify that everything works as expected.

**Step 1:** Make sure the campaign is **not active** — toggle the activation switch off.

***

**Step 2:** Click the **Run** button on the campaign detail page to start the manual test.

***

**Step 3:** Monitor progress using the progress bar, which shows the completion percentage and the phone number of the contact currently being called.

***

**Step 4:** Click **Stop** at any time to halt the test. The campaign will return to its previous status automatically.

After the manual test completes (or is stopped), the campaign returns to whatever status it had before the test began. No permanent state changes are made.

{% hint style="warning" %}
You cannot run a manual test while the campaign is active. Deactivate the campaign first, then click **Run**.
{% endhint %}


# Voice Agent Metrics

Understand your Voice Agent's performance with the Metrics tab — track call volume, connection rates, credit usage, and call outcome breakdowns.

The **Metrics** tab gives you a real-time overview of how your Voice Agent is performing. It shows key performance indicators, a daily call breakdown by outcome, and a contact conversion funnel — all filterable by date range.

To access it, open any Voice Agent and click the **Metrics** tab in the top navigation bar.

<figure><img src="/files/1OLamfQhMEB0YOxoVijT" alt="Voice Agent Metrics tab showing KPI cards, Calls Made chart, and Contact Funnel"><figcaption></figcaption></figure>

***

## Date Range Filter

At the top of the Metrics tab, a **date picker** lets you select a custom date range. By default, it shows the **last 30 days**. You can:

* Click the date range field to select a start and end date.
* Click **Clear** to remove the filter and show all available data.

All metrics, charts, and the funnel update automatically when you change the date range.

***

## KPI Cards

The top row displays five summary cards for the selected date range:

<figure><img src="/files/JXm6CjhtPAmGDxDzOMvV" alt="Five KPI cards showing Credits Used, Total Calls, Contacts Called, Connection Rate, and Avg. Call Duration"><figcaption></figcaption></figure>

| Metric                 | Description                                                                                                                                     |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| **Credits Used**       | Total credits consumed by this agent's calls during the selected period. Each call consumes credits based on duration and voice provider costs. |
| **Total Calls**        | The total number of call attempts made by this agent, including calls that did not connect.                                                     |
| **Contacts Called**    | The number of unique contacts dialed. A single contact may have multiple call attempts.                                                         |
| **Connection Rate**    | The percentage of contacts that had at least one connected call. Calculated as: (contacts with a connected call / total contacts) x 100.        |
| **Avg. Call Duration** | The average duration of all calls, displayed in minutes and seconds (e.g., `01m 46s`).                                                          |

***

## Calls Made Chart

The **Calls Made** line chart shows daily call volume over the selected date range. A white dashed line represents **Total Calls** per day. Each colored line represents a specific **disconnection reason** — the reason a call ended.

<figure><img src="/files/bAiLjdu31w4fL6XFuYNw" alt="Calls Made line chart showing daily call volume broken down by disconnection reason"><figcaption></figcaption></figure>

Click any label in the legend to show or hide that specific line on the chart. By default, only **Total Calls** is visible; the individual disconnection reasons are hidden until you click them.

### Disconnection Reasons

Each call ends with a disconnection reason. These are the possible outcomes:

| Reason                                   | Description                                                                                                                                                                                                                                                        |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **User Hangup**                          | The person being called hung up the phone. This is the most common outcome for connected calls.                                                                                                                                                                    |
| **Agent Hangup**                         | The AI agent ended the call. This typically happens when the agent completes its task (e.g., finishes a survey, confirms an appointment) or triggers an **End Call** action.                                                                                       |
| **Call Transfer**                        | The call was successfully transferred to another number using the **Transfer Call** agent action.                                                                                                                                                                  |
| **Voicemail Reached**                    | The call reached a voicemail system. The agent either left a message or hung up, depending on your [Voicemail Detection](/ai-voice-agents/how-to-set-up-your-ai-voice-agent/voice-agent-settings-guide/conversation-settings-voicemail-detection) settings.        |
| **Inactivity**                           | The call was disconnected due to silence. Neither the agent nor the contact spoke for the configured silence timeout. See [End Call on Silence](/ai-voice-agents/how-to-set-up-your-ai-voice-agent/voice-agent-settings-guide/configure-call-end-call-on-silence). |
| **Max Duration Reached**                 | The call hit the maximum allowed duration and was automatically ended. See [Max Duration](/ai-voice-agents/how-to-set-up-your-ai-voice-agent/voice-agent-settings-guide/configure-call-max-duration).                                                              |
| **Dial No Answer**                       | The call was placed but the contact did not pick up (rang until timeout).                                                                                                                                                                                          |
| **Dial Busy**                            | The contact's line was busy.                                                                                                                                                                                                                                       |
| **Dial Failed**                          | The call could not be placed due to a dialing error (e.g., invalid number format).                                                                                                                                                                                 |
| **Invalid Destination**                  | The phone number is not a valid or reachable destination.                                                                                                                                                                                                          |
| **Telephony Provider Permission Denied** | The telephony provider blocked the call, typically due to regulatory restrictions or insufficient permissions on the phone number.                                                                                                                                 |
| **Telephony Provider Unavailable**       | The telephony provider is temporarily unavailable or experiencing issues.                                                                                                                                                                                          |
| **Error Dapta**                          | An internal error occurred on Dapta's side during the call.                                                                                                                                                                                                        |
| **Error ASR**                            | An Automatic Speech Recognition (ASR) error occurred — the system failed to process the audio.                                                                                                                                                                     |
| **Error No Audio Received**              | The call connected but no audio was received from the contact's side.                                                                                                                                                                                              |
| **Error Unknown**                        | The call ended for an unidentified reason.                                                                                                                                                                                                                         |
| **Concurrency Limit Reached**            | The call was dropped because the maximum number of simultaneous calls was reached.                                                                                                                                                                                 |
| **Marked as Spam**                       | The call was flagged as spam by the carrier or the contact's device.                                                                                                                                                                                               |
| **User Declined**                        | The contact actively declined the incoming call.                                                                                                                                                                                                                   |

{% hint style="info" %}
High volumes of **Dial No Answer**, **Voicemail Reached**, or **Dial Busy** are normal for outbound campaigns. If you see frequent **Error Dapta** or **Telephony Provider** errors, contact Dapta support.
{% endhint %}

***

## Contact Funnel

The **Contact Funnel** shows how contacts progress through three stages, visualized as a funnel chart with percentages relative to total contacts.

<figure><img src="/files/n0J99senD7t1xZyDH3G3" alt="Contact Funnel showing Total Contacts, Connected, and Successful percentages"><figcaption></figcaption></figure>

| Stage                     | Description                                                                                                                                                                                                                               |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Total Contacts** (100%) | The total number of unique contacts the agent attempted to call during the selected period.                                                                                                                                               |
| **Connected**             | Contacts where at least one call was answered (the contact picked up). Shown as a percentage of total contacts.                                                                                                                           |
| **Successful**            | Contacts where at least one call was marked as successful. A successful call means the agent completed its intended task (e.g., delivered a message, booked an appointment, completed a survey). Shown as a percentage of total contacts. |

{% hint style="info" %}
The funnel helps you identify where contacts drop off. A large gap between **Connected** and **Successful** may indicate issues with your agent's prompt or conversation flow. A large gap between **Total Contacts** and **Connected** may suggest calling at suboptimal times or dialing invalid numbers.
{% endhint %}


# Channels

Connect your Voice Agent to communication channels like WhatsApp to receive and make voice calls through messaging platforms.

Channels let you connect your Voice Agent to external communication platforms. Once a channel is set up, your agent can receive and make voice calls through that platform using the instructions and knowledge you've configured.

You can access Voice Agent Channels from the left sidebar by expanding **Voice Agents** and clicking **Channels**.

<figure><img src="/files/SzibcvuVBj7QZYE77qfV" alt="Voice Agent Channels panel showing WhatsApp Business card"><figcaption></figcaption></figure>

## Available Channels

{% content-ref url="/pages/3ieVDcdx5uPanhxEuLJw" %}
[Connect your Voice Agent with WhatsApp](/ai-voice-agents/channels/connect-your-voice-agent-with-whatsapp)
{% endcontent-ref %}


# Connect your Voice Agent with WhatsApp

Learn how to connect a WhatsApp Business line to your Dapta Voice Agent so it can receive and make voice calls through WhatsApp.

Connecting a WhatsApp Business line to your Voice Agent allows it to receive and make voice calls through WhatsApp. Once connected, customers can call your agent directly from WhatsApp, and your agent can place outbound calls to WhatsApp numbers.

{% hint style="warning" %}
**Important:** Meta requires a minimum number of text messages to be exchanged on a WhatsApp Business line before enabling voice calls. We strongly recommend connecting a **Text Agent** to the line first and exchanging messages before linking a Voice Agent. This ensures the line is fully activated for calls.
{% endhint %}

## Prerequisites

Before you begin, make sure you have the following:

* **A Dapta Voice Agent** already created and configured.
* **A WhatsApp Business line** already connected through Dapta — either from the [Text Agent WhatsApp setup](/ai-text-agents/channels/connect-your-agent-with-whatsapp) or from this Channels panel.
* **A phone number** that is **not** already registered with another WhatsApp account.
* **Access to the phone number** to receive a verification code via SMS.
* **Pop-ups allowed** in your browser for the Dapta site.
* **A valid business website or Instagram Business profile URL** — Meta requires this to avoid blocks on your WhatsApp Business Account.

### Meta Prerequisites

In order to enable WhatsApp Business Calling on your sender, your WhatsApp business account needs to have a messaging limit of at least **2,000 business-initiated conversations** in a rolling 24-hour period. To achieve this limit, you need to complete [Meta's Business Verification](https://www.facebook.com/business/help/2058515294227817).

{% hint style="info" %}
If you haven't connected a WhatsApp line yet, follow the step-by-step guide below. If you already have a line connected (e.g., from your Text Agent), you can skip directly to [Linking a Voice Agent to an Existing Line](#linking-a-voice-agent-to-an-existing-line).
{% endhint %}

***

## Accessing Voice Agent Channels

**Step 1:** In the left sidebar, click on **Voice Agents** to expand the menu. You will see three sub-items: **Agents**, **Phone Numbers**, and **Channels**.

<figure><img src="/files/lH3L198XoMnIESXlayI2" alt="Left sidebar showing Voice Agents expanded with Channels sub-item"><figcaption></figcaption></figure>

***

**Step 2:** Click on **Channels**. You will see the Channels overview page with the available channel cards. Click on the **WhatsApp Business** card or the **View Connections** link.

<figure><img src="/files/SzibcvuVBj7QZYE77qfV" alt="Voice Agent Channels panel showing WhatsApp Business card"><figcaption></figcaption></figure>

***

**Step 3:** You will see the WhatsApp connections list showing all your connected lines. Each line displays its **Name**, **Number**, **Status**, linked **Text Agent**, linked **Voice Agent**, and **Creation Date**.

<figure><img src="/files/Ye1ANeCUMFvSpaWBieXd" alt="WhatsApp connections list showing connected lines with status and linked agents"><figcaption></figcaption></figure>

***

## Connecting a New WhatsApp Line

**Step 4:** Click the **New WhatsApp Line** button in the top-right corner. A requirements modal will appear.

Review the requirements checklist:

* Allow pop-ups for this site.
* Have access to the phone number to receive the verification code.
* The number must not be registered with another WhatsApp account.
* Your business must have a valid website or Instagram Business profile URL.

Check the confirmation box and click **Connect**.

<figure><img src="/files/Cqt4AkgccKaRpua9PhCO" alt="Meta requirements checklist before connecting WhatsApp"><figcaption></figcaption></figure>

***

**Step 5:** In the **WhatsApp Business Connection** modal, fill in:

* **Phone Number** — Select your country code from the dropdown and enter your phone number.
* **Display Name** — This is the name your customers will see on WhatsApp. It is pre-filled with your agent's name, but you can change it (max 64 characters).

Click **Connect** to proceed.

<figure><img src="/files/s7Zq46awVHcEwSBAySdV" alt="WhatsApp Business Connection modal with phone number and display name fields"><figcaption></figcaption></figure>

***

**Step 6:** A **Meta Embedded Signup** popup will open in a new browser window. Follow the steps in the popup to:

1. Log in to your Facebook/Meta account.
2. Create or select a **Meta Business Account**.
3. Create or select a **WhatsApp Business Account (WABA)**.
4. Register your phone number.

{% hint style="info" %}
If the popup doesn't appear, make sure pop-ups are allowed for this site in your browser settings.
{% endhint %}

***

**Step 7:** Once the Meta signup is complete, the popup will close automatically and Dapta will register your WhatsApp sender. You will see a **success screen** confirming your connection with the phone number displayed.

Click **Done** to finish.

***

## Linking a Voice Agent to an Existing Line

If you already have a WhatsApp line connected (for example, one you set up for a Text Agent), you can link a Voice Agent to it directly from the connections list.

**Step 1:** In the WhatsApp connections list, find the line you want to use and click the **edit icon** (pencil) on the right side of the row.

**Step 2:** In the edit panel, select the **Voice Agent** you want to link from the dropdown.

**Step 3:** Click **Save** to confirm the link.

{% hint style="warning" %}
**Reminder:** Make sure the line has exchanged text messages before linking a Voice Agent. Meta requires a minimum of text message activity on the line before enabling WhatsApp voice calls. Connect a Text Agent first, exchange some messages, and then link your Voice Agent.
{% endhint %}

***

## Connecting with an Existing WhatsApp Business Account

If your Dapta account already has a **WhatsApp Business Account (WABA)** linked from a previous connection, the process is slightly different:

1. Follow **Steps 1 through 5** as described above.
2. Instead of the Meta popup, you will receive a **6-digit verification code** via SMS to the phone number you entered.
3. Enter the code in the **verification modal** and click **Verify**.
4. Dapta will register the sender and display the success screen once complete.

> **Tip:** If you don't receive the verification code, click **Resend Code** to have it sent again.

***

## After Connecting

Once connected, each line in the connections list will show:

| Field             | Description                                                 |
| ----------------- | ----------------------------------------------------------- |
| **Name**          | The display name for the WhatsApp line                      |
| **Number**        | The connected phone number                                  |
| **Status**        | Current connection status (`Online`, `Creating`, `Offline`) |
| **Text Agent**    | The Text Agent linked to this line (if any)                 |
| **Voice Agent**   | The Voice Agent linked to this line (if any)                |
| **Creation Date** | When the line was first connected                           |

{% hint style="info" %}
Your Voice Agent will start handling WhatsApp calls automatically once the status shows **Online** and the line has been activated for voice by Meta. It may take some time after the initial text message activity.
{% endhint %}

***

## Troubleshooting

| Issue                               | Solution                                                                                                                |
| ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| Meta popup is blocked               | Allow pop-ups for `app.dapta.ai` in your browser settings and try again                                                 |
| Phone number already registered     | Deregister the number from your existing WhatsApp account first                                                         |
| Verification code not received      | Click **Resend Code** and check that you have signal on the phone number                                                |
| Connection stuck on "Creating"      | Wait a few minutes — the registration can take up to 60 seconds. If it persists, try disconnecting and reconnecting     |
| Voice calls not working             | Ensure the line has had sufficient text message activity first. Meta requires text messages before enabling voice calls |
| Meta requires business verification | Make sure your Meta Business Account has a valid website or Instagram Business profile URL configured                   |


# Integrating and activating your AI calls easily

In this section, you’ll learn how to quickly integrate and configure the steps needed to trigger calls and seamlessly integrate them with Google Sheets.

{% embed url="<https://www.loom.com/share/b2c9308f96554b3da2b4d2881106eb62>" %}


# Setting up Company Context

In this section, we’ll walk you through creating your company context.

Inside the voice agent, under the Context tab, you’ll find three fields:

1. **Company Name: (Required)**\
   Drop in the official name of the organization you represent.
2. **Website URL: (Optional)**\
   Your company’s website address. If you have one, you can place it and click the button"Generate Context",

<figure><img src="/files/5wNIlKcY53lW7p76ynED" alt="" width="213"><figcaption></figcaption></figure>

with this our Artificial Intelligence can create the context for you.

1. **Company Description: (Required)**\
   If you entered a URL, our AI will automatically add your company's context here.

   \
   If you don't have a URL, you can enter it yourself:\
   Add a description of your organization here. This is key for giving the voice agent the right context so it can respond optimally (help it help you!).

<figure><img src="/files/3o2bUu8IBQiVi9ve4YF7" alt="" width="375"><figcaption></figcaption></figure>


# Extracting Information from your Calls

Learn how to extract valuable data from your Dapta AI calls to improve performance and gain deeper insights.

Learn how to extract key data from your calls to analyze them in detail, evaluate their success, and uncover valuable insights. Follow our step-by-step guide to optimize the performance of your communications, plan future integrations, and make informed decisions with confidence.

Perfect for businesses using Dapta Voice Agents to qualify leads, confirm meetings, or manage customer interactions.

{% embed url="<https://www.loom.com/share/3b34a61f36824a07858a292fe64b434d?sid=1af53fbf-9c3c-4605-af8f-c5ae076afcd8>" %}

### Step-by-Step Process:

{% embed url="<https://scribehow.com/shared/Capturing_Information_from_Dapta_Calls__3uKpYjMDT8SyUG2RyMl_MA>" %}


# Extract AI Call Variables to a Google Sheets Template

In this guide you'll learn how to extract data from your Dapta AI calls and map it to a Google Sheets template.

{% embed url="<https://www.loom.com/share/c8ae2901ed1440108329586289811ec4?sid=a01b7d43-dacc-47f3-a97b-6f5a28460d4e>" %}

**FIND TEMPLATE HERE:** [**https://docs.google.com/spreadsheets/d/10cw6b\_6tiVsOOVZIwcVP-RcnA4oJrWY53lHUmYR14YQ/template/preview**](https://docs.google.com/spreadsheets/d/10cw6b_6tiVsOOVZIwcVP-RcnA4oJrWY53lHUmYR14YQ/template/preview)

1. Access the template link and click on **'USE TEMPLATE'.**

<figure><img src="/files/S8LPDFe9LGEEu7NTVKB3" alt=""><figcaption></figcaption></figure>

2. Once in the Google Sheets file go to **File → Make a Copy.**

<figure><img src="/files/ED4HIkmvIscQ1J919fge" alt=""><figcaption></figcaption></figure>


# Advanced Guide: AI Call Integration Templates and Google Sheets

In this advanced guide on AI voice call integrations, you will learn:

* How to set up the time in the AI system to align with your specific needs.
* How to define a timezone to ensure accuracy in all interactions and automations.
* How to implement loops to efficiently execute repetitive tasks.
* How to automatically log data in Google Sheets.

{% embed url="<https://www.loom.com/share/76bca1a8265047ef945336f75cd64841>" %}

**Use the Google Sheets template shown in the video** (Make a copy before using it) ☝️

* [**Template**](https://docs.google.com/spreadsheets/d/1maC5-1x8Ek0DZY7at13BoUX2vrUoR-UB6QhYB4UhQpQ/template/preview)


# How to Automatically Schedule Appointments with Your AI Voice Agent

Learn how to integrate Cal.com to automate real-time scheduling with your AI voice agent.

:information\_source: *Remember, when referring to dates, always update the timezone of your current location. This is important to maintain clarity and consistency in communication. For example: UTC -5: Bogotá Keep in mind that the current time is: {{current\_time}}, which is a variable introduced by us by default (there's no need to send it as a dynamic variable).*

{% embed url="<https://www.loom.com/share/649975e29dad405bbf5e893a489c2e98?sid=0c6828cc-8fe3-479a-8c2d-12d5579eb20f>" %}


# Inbound Calls and How to Activate Them

Learn how to activate inbound calls with Dapta and receive customer calls directly through an AI Agent.

### What is an Inbound Line and How Does It Work?

An inbound line allows you to receive incoming calls through a phone number activated via Dapta.

This means your customers can call you directly and be attended by an AI Agent or redirected according to the configuration you choose.

To activate this feature, Dapta handles the purchase of the phone number, which involves an additional monthly credit cost.

### Associated Costs

|  Country  | Cost (USD) | Credits |
| :-------: | :--------: | :-----: |
|     US    |     $4     |  4.000  |
|   Canada  |     $4     |  4.000  |
|  Colombia |     $28    |  28.000 |
|   Mexico  |     $13    |  13.000 |
|    Peru   |    $270    | 270.000 |
| Argentina |     $16    |  16.000 |
|   Brazil  |     $9     |  9.000  |
|   Chile   |     $14    |  14.000 |
|   Panama  |     $16    |  16.000 |

### Validation and Activation Process

1. Send your request to <support@daptatech.com> or to the tech person supporting you with the implementation.


# Voice Agent Use Case: Calling & Logging HubSpot Leads

In this tutorial, we’ll walk through a full workflow for integrating HubSpot with Dapta to run a voice campaign. The goal: trigger outbound calls to a HubSpot contact list, log results, and feed them

{% embed url="<https://www.loom.com/share/3a6c73a0575d443eb11c30c51eb42b30>" %}

**🎯 Campaign Objective**

Call newly added HubSpot contacts from a specific list and deliver a quick product intro using your voice agent. Log the call details and outcomes back to HubSpot for follow-up by your sales team.<br>

**🔧 Workflow Overview**

1. **Connect your HubSpot account**
2. **Fetch a list of contacts from HubSpot**
3. **Trigger calls using your AI voice agent**
4. **Capture call data (recording, transcript, status)**
5. **Log results and update contact records in HubSpot**

Let’s start with Step 1: **Connecting HubSpot credentials and configuring the “Get List” node** 👉\
\
🔑 **Step 1: Connect Your HubSpot Account**

To get started, you'll need to authorize your HubSpot account so Dapta can pull contact data and update records.

**🧭 How to Connect HubSpot:**

1. Click your profile avatar in the bottom-left corner of Dapta.\
   \
   ![](/files/RrDwPsVK8MF5pmzddD8E)<br>
2. Select **Credentials** from the dropdown.
3. Click the **➕** button next to HubSpot.<br>

   <figure><img src="/files/iC1Y9luAmNHk0EUPMXM6" alt=""><figcaption></figcaption></figure>
4. In the modal:
   * **Name** your connection (e.g., “HubSpot Main”).
   * Paste your **HubSpot Private App Token**.\
     [🔗 Learn more about Hubspot Private App Setup](/integrations/hubspot-private-app-setup)
   * Click **Save**.<br>

     <div align="left"><figure><img src="/files/Srb34QpePSd5BGnaiseC" alt="" width="549"><figcaption></figcaption></figure></div>

Once connected, you’ll be able to use HubSpot in any flow via the “Get List,” “Search Record,” and “Update Record” nodes.

✅ **Step 2: Create Your Flow and Add the “Get List” Node**

🆕 **Start a Flow**\
From the Flow Studio:

* Click **New Flow** > **New Flow From Scratch**<br>

  <figure><img src="/files/1o4qD9L7BFjhkvBDsP8j" alt=""><figcaption><p><br><br></p></figcaption></figure>

  <figure><img src="/files/kDNJjwxs47O15jTUhLTz" alt=""><figcaption><p><br><br></p></figcaption></figure>

  <div align="left"><figure><img src="/files/EuuA4FTehMVggWMWO4Hk" alt=""><figcaption></figcaption></figure></div>
* **Note:** You can also choose from pre-built templates here (e.g., “Update Contact and Log Call in HubSpot”)

🔌 **Add the “Get List” Node**\
Once inside your flow:

* Search for **“Get List”** in the right sidebar
* Drag it onto the canvas

<div align="left"><figure><img src="/files/ryZmD6j5nXVOtt1uFh6U" alt=""><figcaption></figcaption></figure></div>

1. **Connect to Trigger**\
   Link the **Trigger** node (already present in every new flow) to the **Get List** node by dragging from the bottom of the Trigger to the top of Get List.\
   \
   ⚡ About the Trigger Node

   Every new Dapta flow begins with a Trigger node. This is what starts the flow when a condition is met.<br>

   There are two main trigger types:

   * **Webhook (HTTP Request)** – Starts the flow when an external service sends a request to this URL. Useful for syncing data from CRMs like HubSpot or responding to user actions.
   * **Schedule** – Runs the flow automatically on a schedule (e.g., daily, hourly).

   For this use case, we’re using a **Webhook Trigger** with a `GET` method so the flow activates when a GET request is sent to the provided Webhook URL.

   [🔗 Learn more about Trigger types](/flow-studio/setting-up-triggers-in-flow-studio)\
   \
   ![](/files/2K9I5NM47XXjwQKiTMEy)<br>

   <figure><img src="/files/pRRmm6LsJEsCKhWhVvCW" alt=""><figcaption></figcaption></figure>
2. **Configure the Get List Node**
   * **Credentials**: Select your authorized **HubSpot** account.
   * **List**: Choose the list of contacts you want to retrieve.\
     [🔗](/flow-studio/setting-up-triggers-in-flow-studio)[Learn More about HubSpot Lists](https://knowledge.hubspot.com/lists/create-active-or-static-lists)
   * **Output Properties (optional)**: Define which fields you want to pull (e.g., `email`, `company`, `createdate`, etc.).\ <br>

     <figure><img src="/files/H82PaSel5h89yg8UJNZs" alt=""><figcaption></figcaption></figure>

This sets up your flow to pull a contact list from HubSpot each time it’s triggered.

#### 🔁 Step 3: Add the “Loop List” Node (Dapta Action)

Now that we’ve pulled your contacts from HubSpot, we need to loop through them one by one.

1. **Search & Add Node**\
   In the **Actions** panel, search for `Loop List`.\
   You’ll see it labeled as a **Dapta Action**.\
   Drag it onto the canvas.\ <br>

   <figure><img src="/files/QclpmntknL6HbwMbMIoP" alt="" width="563"><figcaption></figcaption></figure>
2. **Connect It**\
   Link the `Get List` node to the `Loop List` node to start iterating through your contact list.\
   \
   \
   ![](/files/pX9ZUvRUjwYK2sxmBBo1)\
   \
   3\. **Configure the Loop**\
   \
   In the **List of Items to Process** field, enter:\
   `{{get_list.response.results}}`\
   This tells Dapta to loop over each contact in the list. Each item will be accessible with the `item` variable in the following steps.\ <br>

   <figure><img src="/files/sihoFM6FNzDK0KeBB8rW" alt=""><figcaption></figcaption></figure>

   **📞 Step 4: Add the “Dapta Phone Call” Node**<br>

   Now that we’re looping through each contact, it’s time to place the calls.

   **Search & Add Node**\
   In the Actions panel, search for `Dapta Phone Call`.\
   \
   ![](/files/VyN45Jp34qWUrvkBMZi2)\
   \
   Drag it into the canvas and connect it to the Loop List node.

   **Configure the Call**\
   Click into the node to set your call parameters:

   * Choose your **Voice Agent**
   * You can map the variables like `{{item.firstname}}`, `{{item.phone}}`, etc.
   * Adjust call speed and retry logic if needed\
     [🔗 Learn more about Voice Agent Settings](/ai-voice-agents/how-to-set-up-your-ai-voice-agent/voice-agent-settings-guide)\
     \
     ![](/files/hftjBZaKAoBZhXEts4IL)<br>

   This node will dial each contact in your HubSpot list using the selected voice agent, one at a time.

📤 **Step 4: Configure Post‑Call Data Retrieval**\
\
[🔗 Learn Extraction Information From Your Calls](/ai-voice-agents/extracting-information-from-your-calls)\
\
**1. Go to Your Agent Settings**\
Open your agent in Dapta, then navigate to the **Call Analysis** tab.\
\
**2. Select a Call Analysis Flow**\
Click **“Select Call Analysis Flow”** and choose a Dapta flow you’ve created.\
\
![](/files/Qgb5XQ1TUjMlpGesaxOe)\
\
**3. Optional Add Post‑Call Fields**\
Under **Post Call Data Retrieval**, click **“+ Add”** to define the insights you want extracted.

<figure><img src="/files/zxLa78KEOHvgdAj2XwYx" alt=""><figcaption></figcaption></figure>

Example fields:

* `detailed_call_summary` → *“Give a detailed call summary regarding the details of the call.”*
* `reason_to_buy` → *“What was the main reason the contact was interested?”*

These instructions guide the AI on what to extract after the call ends.<br>

<figure><img src="/files/Dtm1eovKRVPg1oPXV0bh" alt="" width="494"><figcaption></figcaption></figure>

**4. Build the New Receiving Flow**\
Create a new Dapta flow to handle incoming post-call data:

* Start with a **Webhook Trigger**
  * Method: `POST`
  * Accept parameters like: `event`, `call`, and `data`
* Add your logic to update your CRM using values from:
  * `call_analysis.call_summary`
  * `call_analysis.custom_analysis_data.detailed_call_summary`, etc.\
    \
    ![](/files/JTvegTNxyyJexAsHwAw0)\ <br>

    <div align="left"><figure><img src="/files/nhZO01csK8ZETwNdH0rS" alt=""><figcaption><p><br></p></figcaption></figure></div>

✅ **Final Step: Connect the HubSpot Logging Node**

To push the analyzed call data into your CRM, connect the final **Log Phone Call** node.

**Required Fields:**

* **Call Data:** `{{trigger.body.call}}`\
  ⚠️ *Important:* This must be set to `trigger.body.call`. Dapta handles some CRM update mechanics in the background, so this specific structure is required for logging to work properly.
* **Call Name:** `{{trigger.body.call.call_id}}`
* **HubSpot Contact ID or Phone Number:** `{{trigger.body.call.to_number}}`\ <br>

  <div align="left"><figure><img src="/files/Cywkz8jTmOf9pQdzjUWP" alt="" width="177"><figcaption></figcaption></figure></div>

  <div align="left"><figure><img src="/files/y2x4tRFHhTF0LcijBEBc" alt="" width="375"><figcaption></figcaption></figure></div>

  #### 🧪 **Test and Debug Post-Call Logging**

  1. **Open the Flow**
     * Go to your webhook-triggered flow that receives post-call data.
  2. **Run a Previous Execution**
     * Go to the **Executions** tab in your Call Analysis Flow.
     * Click the 👁️ icon on a successful run.\
       \
       ![](/files/5CeLAhBcFLDN8wcBIcIr)<br>
     * In the **Request Body** panel, click **“Copy to input.”**\
       \
       ![](/files/jvkqfGe9tRPqrQluMfAA)\ <br>

       **View Request Body**

       * Expand the **Request Body** panel to inspect exactly what data was sent.

       \
       ![](/files/tnLsH4BvmYoM8Fg5mtnm)<br>
  3. **Trigger the Logging Flow**
     * Hit **“Run Flow”**
  4. **Confirm CRM Logging**
     * Check HubSpot Contacts to verify the call was logged correctly.\
       \
       ✅ **Once the flow runs successfully, the call will be logged inside the contact’s activity timeline in HubSpot.**\
       \
       ![](/files/VSUgwtUYFjL9IANqTLt8)<br>


# Designing Voice Agent Prompts for iOS Call Screening

### Overview

Apple’s iOS 26 introduces a system-level call screening feature that automatically answers calls from unknown numbers and asks the caller to explain who they are and why they are calling.

Because a large portion of outbound calls reach iPhone users, this change directly impacts how voice AI agents should be designed and deployed.

Dapta does not bypass or disable iOS Call Screening. Instead, success depends on how your **agent prompt, opening message, and call behavior** are configured.

This guide explains how iOS Call Screening works and provides con

<figure><img src="/files/fpIugUL1KFhVCxy3N4d7" alt="" width="375"><figcaption></figcaption></figure>

***

### What Is Apple’s iOS Call Screening?

iOS Call Screening is built on Apple’s Live Voicemail system. When enabled by the user, it intercepts calls from unknown numbers before the phone rings.

#### How it works

1. The iPhone user must be on iOS 26 and manually enable Call Screening
2. Calls from unknown numbers are automatically answered by iOS
3. A system prompt is played, such as:\
   “Please state your name and reason for calling.”
4. The caller speaks while the recipient remains muted
5. If the caller says nothing, the call ends
6. After approximately 30 seconds, the phone may begin to ring
7. The recipient sees a live transcription of what the caller said and decides whether to answer or decline

There is no two-way interaction during screening. The message is transcribed and presented exactly as spoken.

***

### Why This Matters for Voice AI Agents

When a Dapta voice agent encounters iOS Call Screening, its **first spoken sentence** becomes the deciding factor for whether the call is answered.

That sentence is:

* Recorded
* Transcribed in real time
* Displayed to the recipient
* Used to judge legitimacy and relevance

Generic, vague, or conversational openers are far more likely to be ignored or declined.

Clear, specific, and intentional messages are more likely to convert screening into a real conversation.

***

### Is iOS Call Screening the End of AI Calling?

No. It is a quality filter, not a blocker.

Important considerations:

* Call Screening is opt-in and disabled by default
* Calls still receive up to \~30 seconds of airtime
* Screening favors relevance and clarity, not volume

Agents with strong prompts perform better under screening than agents with generic scripts.

***

### Designing Dapta Voice Agent Prompts for iOS Call Screening

Dapta gives users full control over agent prompts and behavior. To perform well with iOS Call Screening, prompts must be written intentionally for **non-interactive first contact**.

***

### Core Prompt Design Principles

#### 1. Assume the recipient cannot respond

Your agent should assume:

* The listener is muted
* No questions will be answered
* Only one sentence will be heard

Do not wait for confirmation or ask questions.

***

#### 2. Use a single, self-contained sentence

Your agent’s opening message should clearly state:

* Who is calling
* From which company
* Why they are calling

**Target length**

* 12–18 words
* Under 5 seconds when spoken

***

#### 3. Avoid conversational or salesy openers

Avoid:

* “Hi, how are you?”
* “Is now a good time?”
* “Just following up”
* “Touching base”
* “Calling to discuss an opportunity”

These perform poorly when transcribed and often resemble spam.

***

#### 4. Lead with specificity

The message should reference something concrete that the recipient recognizes.

Good examples:

* A demo request
* A form submission
* An appointment
* A quote
* A support request

Vague intent reduces trust.

***

### Example Screening-Optimized Openers

**Effective**

> “Hi, this is Alex from Dapta calling about your AI agent demo request.”

**Effective**

> “This is Maria with Dapta following up on the automation inquiry you submitted yesterday.”

**Ineffective**

> “Hi, I’m calling to see if you’re interested in AI solutions.”

***

### Recommended System Prompt Guidance

You can include guidance like the following in your agent configuration:

> “If asked to state your name or reason for calling, respond with one clear sentence that includes your name, company, and a specific reason for the call. Do not ask questions. Do not pause for a response.”

Optional enhancement:

> “Assume the listener cannot speak yet and will decide whether to answer based only on your first sentence.”

***

### Testing Your Agent Against iOS Call Screening

Before deploying an agent at scale, it is recommended to test against a real iPhone with Call Screening enabled.

Suggested testing steps:

1. Call your own iPhone from an unknown number
2. Enable iOS Call Screening
3. Listen to how the agent sounds when transcribed
4. Review the transcript for clarity and relevance
5. Refine the opening sentence as needed

If the transcript feels vague or unclear, the agent will likely be declined.

***

### Call Analytics Considerations

When iOS Call Screening answers a call, it may appear as an “answered” call in raw call logs even if no human engagement occurred.

To evaluate real performance:

* Review call recordings
* Separate screened calls from human conversations
* Adjust prompts based on screening outcomes

If many calls end at screening, improve the opening message rather than increasing call volume.

***

### Additional Best Practices to Reduce Friction

#### Maintain a professional caller identity

Use consistent naming, tone, and purpose across calls, voicemails, and follow-ups.

#### Avoid aggressive calling patterns

Repeated calls in a short time window increase the likelihood of being ignored or silenced.

#### Keep messaging consistent across channels

If you follow a call with SMS or email, clearly state who you are and why you called. Consistency builds trust.

***

### Key Takeaway

iOS Call Screening does not block Dapta voice agents.\
It **exposes weak prompt design**.

Agents that:

* Speak clearly
* State intent immediately
* Reference real context

are more likely to reach real people.

Dapta gives you the flexibility to design your agent’s voice and behavior. Use that control intentionally.


# Create your first Text Agent in Dapta

In this section, we explain the step-by-step process to create your first text agent within Dapta.

{% embed url="<https://youtu.be/4yQExhOXNfE?si=GMIaBvC-FTlkqC4e>" %}

You can create your first agent from the Dapta Home page,\
click on the "Create Text Agent" option.

<figure><img src="/files/sRT6bgG9GNVPfjBXl7pb" alt="" width="279"><figcaption></figcaption></figure>

Or also in the left menu,\
Text Agents > Agents, click on the "+ New Agent" button in the upper right corner

<figure><img src="/files/4srl0bybqt0Tt8I4uQnq" alt="" width="563"><figcaption></figcaption></figure>

### Step 1: Agent Context

<figure><img src="/files/XqRQSQoTKs5Z4r6m4PJT" alt="" width="563"><figcaption></figcaption></figure>

* **Agent Name:** Give your text agent a name—choose a good one, as this is how the agent will refer to itself when your customer asks.
* **Purpose:** Choose the purpose of your agent; we have predefined use cases:
  * Ecommerces Sales Agent
  * Qualify Inbound Leads
  * Support Sales Inquiries In My Ecommerce
  * Customer Services And Support
  * Website Q\&A Assistant
  * Schedule Meetings
  * Confirmations
  * Reminders
  * Set Up my Own Assistant
* **Important Instructions:** These are the instructions your agent will execute. Here, you should explain the details of your text agent, its tasks, and how it should behave. Also you could set the tone and style of your agent.This helps establish the context for your agent's prompt.
* **Language:** Select the language your text agent will use to communicate.
* Click the "Save and Continue" button.

### Step 2: Company Context

<figure><img src="/files/ySBxXsweCYibI1yrsdFw" alt="" width="563"><figcaption></figcaption></figure>

* **Company Name:** Required field. Enter your company's name here.\
  Note that if you have already created a company context, you can select the created context, but if this is the first time, you must click on "Create a New Company Context".
* **Company Description:** Required field. Describe your company, products/services, target market, and unique value proposition. Be as detailed as possible for better AI-generated instructions. You have two options to complete this:
  * **Generate Context with AI**: If you previously entered the URL, click "Generate Context" and our AI will automatically generate the description content from that website.
  * **Write Manually:** Manually write a brief description of the business and the company's purpose.

Click the "Save and Test" button

### Step 3: Test your Text Agent

<figure><img src="/files/WzrN5alHdAVWJhlM6GJj" alt="" width="563"><figcaption></figcaption></figure>

* Here, you can test the conversation with your agent.
* If you want to restart the conversation, click the "Reset" button in the top left corner.
* To complete the creation of your agent, click the "Finish" button.

That's it, now your new agent is on the list of agents on the Text agents Section,\
You could edit the agent clicking on it or on the configure icon.

<figure><img src="/files/rKxdbwKRKVAe0IgCEzHc" alt="" width="563"><figcaption></figcaption></figure>


# Setting Up your Text Agent


# Text Agent Settings Overview

{% embed url="<https://www.youtube.com/watch?v=U_g9vH9gVyI>" %}

Text agents in Dapta can be customized using several settings. Each setting controls a specific part of how your agent looks, behaves, or responds to users.

This guide explains **each setting in simple terms**, what it controls, and how it affects your agent after it has been created.

> **Important concept to understand first**\
> Once an agent is created, the **prompt becomes the source of truth**.\
> Some settings only help generate the initial prompt and do not automatically change agent behavior afterward.

***

### Language

<figure><img src="/files/hfR3E6nseL3MRzdlKxOs" alt=""><figcaption></figcaption></figure>

#### What this setting controls

The Language setting controls the **language of the chat widget interface**, such as:

* Button labels
* Placeholder text
* System UI text shown to users

It does **not** control the language your agent speaks.

***

#### How agent language actually works

When a text agent is created, the language it uses to communicate is defined **inside the agent prompt**.

After the prompt exists:

* Changing the Language setting **will not** change how the agent responds
* The agent will continue using whatever language rules are written in the prompt

This works the same way as the **Agent Purpose** setting.

***

#### How to change the agent’s language

To make an agent:

* Speak a different language, or
* Support multiple languages

You must update the **agent prompt**.

You can do this by:

* Editing the prompt manually, or
* Using **Improve with AI** to rewrite the prompt with the new language instructions

***

#### Multilingual agents

Agents can be multilingual if this behavior is defined in the prompt.

For example:

* Respond in English when the user writes in English
* Respond in Spanish when the user writes in Spanish

This cannot be enabled using the Language setting alone.

***

#### Common mistake

Changing the Language setting and expecting the agent to automatically start responding in that language.

If the prompt is not updated, the agent’s behavior will not change.

***

### Identity Name (Agent Name)

<figure><img src="/files/AKaRY2ml1EmTiyLUIlPQ" alt=""><figcaption></figcaption></figure>

#### What this setting controls

The Identity Name is the **name of your agent**, which defines how it identifies itself during conversations.

***

#### How it works

* When you create an agent, you are prompted to enter its name
* This name is stored **inside the agent prompt**, not as a separate system field

***

#### Editing the agent name after creation

Changing the Identity Name setting alone does not update the agent.

To rename an agent after it has been created, you must:

* Edit the name directly inside the prompt, or
* Use **Improve with AI** to update the name across the entire prompt

***

#### Best practices

* Use human-friendly names
* Match the name to the agent’s role (for example, support, sales, scheduling)
* Keep naming consistent across agents

***

### Agent Purpose

<figure><img src="/files/3QldJqhv9lMWeNco0s14" alt=""><figcaption></figcaption></figure>

#### What this setting controls

Agent Purpose helps you **generate an initial prompt** based on a common use case.

Available purposes include:

* Ecommerce Sales Agent
* Set Up My Own Assistant
* Qualify Inbound Leads
* Support Sales Inquiries in Ecommerce
* Customer Service and Support
* Website Q\&A Assistant
* Schedule Meetings
* Confirmations
* Reminders

***

#### Important behavior to understand

Once the agent prompt is created:

* Changing the Agent Purpose **does not automatically update the prompt**
* The agent will continue behaving according to the original prompt

***

#### How to change an agent’s role

If you want your agent to perform a different task:

* Use **Improve with AI** to rewrite the prompt for the new purpose, or
* Manually edit the prompt to reflect the new behavior

***

#### Common mistake

Changing the Agent Purpose dropdown and expecting the agent’s behavior to change without updating the prompt.

***

### Model

<figure><img src="/files/D0irvFVtHRjtHML74DkP" alt=""><figcaption></figcaption></figure>

#### What this setting controls

The Model setting determines **which AI model powers your agent**.

Different models can vary in:

* Speed
* Cost
* Reasoning quality
* Response accuracy

***

#### How to choose a model

There is no single best model for all use cases.

The best approach is to:

* Test different models using real conversations
* Evaluate performance based on your specific needs
* Upgrade only if you notice limitations

***

#### Best practice

Start with a default model, test real interactions, and switch models only if needed.

***

### Temperature (Creativity Level)

<figure><img src="/files/KDLmHBGaq3BC3xjdA13M" alt=""><figcaption></figcaption></figure>

#### What this setting controls

Temperature controls **how creative or strict** your agent is when generating responses.

You can think of it as a creativity dial.

***

#### Low temperature

* More predictable responses
* Follows instructions very closely
* Best for structured tasks such as:
  * Customer support
  * Lead qualification
  * Data collection

***

#### High temperature

* More flexible and creative responses
* More conversational tone
* Best for:
  * Brainstorming
  * Open-ended conversations
  * More natural dialogue

***

#### Best practice

* Use **lower temperature** when accuracy and consistency matter
* Use **higher temperature** when creativity and tone are more important

***

### Key Takeaways

* The **prompt controls behavior**, not the settings alone
* Language and purpose changes must be made inside the prompt
* Identity Name lives inside the prompt
* Temperature controls creativity, not intelligence
* Model choice should be based on real testing


# Text Agent Actions

In this section, we explain the Actions you can create within a Text Agent. These Actions help us integrate our agent with other tools and transfer conversations to other agents within Dapta.

### Add Actions

<figure><img src="/files/c7xSBqZjEzqjI6ilSXvK" alt="" width="563"><figcaption></figcaption></figure>

To add a new Action, go to "Settings, scroll down to the “Agent Actions” section, and click on **“+ Add New Action”.**

<figure><img src="/files/0eQIcl8BIEgLZyOSkw4D" alt="" width="375"><figcaption></figcaption></figure>

Here, you could select two types of tools:

* **API: I**ntegrate with another webhook/endpoint.
* **Agent Transfer:** Transfer the conversation to another agent.

<figure><img src="/files/WpefkZuKBIreFwV57wxt" alt="" width="563"><figcaption></figcaption></figure>

Let’s break them down one by one:

#### **1. API**

This type of action allows you to connect with other tools via API.

* **Name**: Give your “Action” a Name.
* **HTTP Method:** Choose the method; you can review HTTP methods [HERE.](https://blog.postman.com/what-are-http-methods/)
* **API URL:** Paste the URL here. This URL helps connect the API with the resource being requested.
* **Important Instructions:** Describe the instructions this action should perform. Be very clear and specific, including scenarios and examples of the actions the agent will carry out.
* **Parameters (Opctional):** Dapta gives you the option to add parameters to your Action.

<figure><img src="/files/axesQbkj0Pm5cn249ziM" alt="" width="375"><figcaption></figcaption></figure>

* To add a parameter, simply click on “+ Add Parameter”, enter the parameter name, and provide the respective instructions for that parameter.

<figure><img src="/files/O4YrPXGYlCnXixim0Ia9" alt="" width="375"><figcaption></figcaption></figure>

* To delete a parameter, press the trash icon “🗑️” to the right of each added parameter.
* To Finish adding the Action, click the button: “Create Action".

<figure><img src="/files/nxrSN5DbsmvUjXKTocNL" alt="" width="127"><figcaption></figcaption></figure>

#### **2. Agent Transfer**

<figure><img src="/files/r0ZmnEivHQKwBJv7NN4s" alt="" width="563"><figcaption></figcaption></figure>

This action allows the conversation to be transferred to one or more human agents based on the instructions provided to the agent.

* **Action Name:** Give your “Action” a name. By default, the name is `request_human_agent`.
* **Important Instruccions:** Describe the instructions this action should perform. Be very clear and specific, including scenarios and examples of the actions the agent will carry out.
* **Transferir Teams:** You can create teams of human agents to take over the conversation based on the instructions you previously set.

<figure><img src="/files/BcvZUxQvtHaRBpPXL3kq" alt="" width="563"><figcaption></figcaption></figure>

To create a team:

1. Click on "+ Create New".\ <br>

   <figure><img src="/files/fWuOFPPI5WBRfJNslBxr" alt="" width="116"><figcaption></figcaption></figure>
2. Give the team a name and click "Create".

<figure><img src="/files/ORE0UhwyeSjgvmpLsDEq" alt="" width="563"><figcaption></figcaption></figure>

3. Search for members of your workspace and add them using the "+ Add member" button.\ <br>

   <figure><img src="/files/W5n7L0xfpxjlsh8pxwHt" alt="" width="375"><figcaption></figcaption></figure>
4. You will see the members appear as you add them.<br>

   <figure><img src="/files/421dU3OkzbG65FUjZzSR" alt="" width="563"><figcaption></figcaption></figure>
5. Select the ones you want to add and click Save.

<figure><img src="/files/nsrLL9assEIzPVxsgfBS" alt="" width="563"><figcaption></figcaption></figure>

6. The Action you just created now appears in the Agent Actions section


# Brains for Text Agents

Here is the step-by-step guide to create and configure knowledge bases—called Brains—for text agents.

In Dapta agents, knowledge bases are referred to as "Brains", essentially acting as the brain of your AI agent.

In the Settings tab, go to the Brains section.

<figure><img src="/files/8Wy62mh5Cdk8qeqerZMU" alt="" width="375"><figcaption></figcaption></figure>

* If you already have Brains created, you can select them here.

<figure><img src="/files/dzRZTm2j7abUlEtR9Yuy" alt="" width="375"><figcaption></figcaption></figure>

* If you don't, you can create a New Brain to serve as a knowledge base.

#### **Create a New Brain**

* Click the Create Brain button.
* Give your Brain a name.
* Add one or more sources by clicking + Add Source.

<figure><img src="/files/jLkbjbZGBQVOCVQpXAzv" alt="" width="375"><figcaption></figcaption></figure>

You can add up to 25 sources per Brain, choosing from:

* **Web Pages:**\
  Enter the URL you'd like to add as a knowledge base.\
  You can click discover if a sitemap is found.

You can add web pages in two ways:<br>

* **Discover Sitemap:**

<figure><img src="/files/Cr1PhseZYuFUctLjWl6d" alt="" width="375"><figcaption></figcaption></figure>

* Click Add Source and select Add Web Pages.

  * Enter the website domain (e.g., example.com).
  * Click Discover Pages.
  * If a sitemap is found, a tree of URLs organized by subdomain will appear.
  * Select the pages you want to include using the checkboxes.
  * Use Select All / Deselect All for quick selection.
  * Expand subdomains to select individual pages.
  * Click Add x URLs to confirm your selection.<br>

  <figure><img src="/files/iQRpwYRlacNBmGwNt0ph" alt="" width="375"><figcaption></figcaption></figure>
* **Manual URL Entry:**<br>

  <figure><img src="/files/MUDEiiBZXgHWWfzaBH7A" alt="" width="375"><figcaption></figcaption></figure>

  * If no sitemap is found or you prefer to add URLs individually:
  * Click the Add URL manually link.
  * Enter the full URL (e.g., <https://example.com/page>).
  * Click Save.
* **Files:**
  * Great for selecting documents from your computer.
  * You can process Documents, spreadsheets, emails, presentations, images, etc.
  * Supported extensions include: `.pdf`, `.doc`, `.csv`, `.xls`, `.ppt`, `.msg`, `.html`, `.xml`, `.epub`, `.jpeg`, `.jpg`, `.png`.\ <br>

    <figure><img src="/files/Xjn4ffDeJhgA7tont1RA" alt="" width="375"><figcaption></figcaption></figure>
  * Check the [full list of supported file extensions](https://docs.dapta.ai/brains) in Brains here.
* **Text:**<br>
  * Type or paste text directly.
  * Click Save.

<figure><img src="/files/JVwdeh9qDjVYDNAchKeX" alt="" width="375"><figcaption></figcaption></figure>

* Once created, the Brain goes through three states:

<figure><img src="/files/3RKZ4cI5gO1zojFBCPnB" alt="" width="375"><figcaption></figcaption></figure>

1. **Pending**: The knowledge base is waiting to be processed.
2. **In Process**: The knowledge base is being indexed.
3. **Completed:** The knowledge base is available for queries.
4. **Error:** Processing failed.

<figure><img src="/files/4NRbnUe1lRbQLes4ZniB" alt="" width="375"><figcaption></figcaption></figure>

After uploading the source you need for your knowledge base,

select the ones you want to add and click Save.


# Playground: Testing your Text AI Agents

#### What the Playground is

The Playground is a built-in testing environment inside each text agent.

It allows you to **chat with your most recently saved version of the agent** so you can test how it responds before using it live.

<figure><img src="/files/fQt4EsLpwoT1zGId6k8z" alt=""><figcaption></figcaption></figure>

***

#### What you can do in the Playground

Inside the Playground, you can:

* Send messages to your agent
* Test responses based on the current prompt and settings
* Validate changes after editing the prompt
* Experiment safely without affecting live users

***

#### How to send a message

To send a message to your agent:

1. Type your message into the text input box
2. Press the send button, or
3. Press **Enter** on your keyboard

Each message is sent to the agent exactly as a real user would send it.

***

#### Important behavior to understand

The Playground:

* Uses the **latest saved version** of your agent
* Does **not** update in real time while you are editing the prompt
* Requires you to save changes before testing them

If you don’t see a behavior change, make sure the agent has been saved.

***

#### Resetting the conversation

The Playground keeps conversation history so the agent can respond with context.

To start a fresh test:

* Click the **Reset** button in the top-right corner of the Playground

This clears the conversation history and lets you test the agent from scratch.

***

#### Common use cases

The Playground is commonly used to:

* Verify prompt changes
* Test language behavior
* Validate tone and response structure
* Debug unexpected answers before publishing

***

#### Common mistake

Forgetting to reset the conversation when testing new behavior.

If prior messages remain in the conversation, they can influence the agent’s responses.


# Post-Conversation Analysis

Automatically extract structured data from every conversation and send results to external systems via webhook when a conversation ends.

{% embed url="<https://youtu.be/P0V6_mLofNU?si=_fo-a0UpdfiM3sbn>" %}

The **Conversation analysis** tab lets you define what information to extract from conversations after they close, and optionally forward those results to an external webhook.

<figure><img src="/files/SPS4JprKHiG1sWAZMMcr" alt="Conversation analysis tab showing Post-Conversation Analysis and Conversation Analysis Flow cards"><figcaption></figcaption></figure>

The page has two sections:

* **Post-Conversation Analysis** — define the variables the AI will extract from each conversation
* **Conversation Analysis Flow** — configure a webhook URL to receive results automatically

***

## How it works

The analysis runs automatically in two situations:

* When the agent calls the **Close Conversation** action to end the interaction
* When a conversation times out after 24 hours of inactivity

Once triggered, the AI reviews the conversation and extracts the values of any variables you have defined, then saves the results. If a webhook URL is configured, it sends the full payload to your endpoint immediately after.

No manual action is required.

***

## Post-Conversation Analysis

### Adding a variable

Click **+ Add Variable** to open the variable configuration modal.

<figure><img src="/files/TuuIS0PqalvSTJQSh21R" alt="Add Variable modal showing Type, Name, Instruction, Scope and Required fields"><figcaption></figcaption></figure>

Fill in the following fields:

| Field           | Description                                                                                        |
| --------------- | -------------------------------------------------------------------------------------------------- |
| **Type**        | The data type for this variable (see types below)                                                  |
| **Name**        | A unique identifier used in the analysis output (e.g. `customer_email`)                            |
| **Instruction** | A prompt telling the AI how to extract this value from the conversation                            |
| **Scope**       | **Persistent** — carries across multiple sessions. **Session** — extracted fresh each conversation |
| **Required**    | Whether this variable must be present in the analysis                                              |

Click **Confirm** to save the variable.

***

### Variable types

<figure><img src="/files/eT34Ic6quNNHIZ6F5qKv" alt="Type dropdown showing all available variable types"><figcaption></figcaption></figure>

| Type         | Use for                                    |
| ------------ | ------------------------------------------ |
| **Text**     | Names, descriptions, open-ended answers    |
| **Selector** | A value chosen from a fixed set of options |
| **Boolean**  | Yes/No or true/false values                |
| **Number**   | Quantities, scores, or numeric values      |
| **Date**     | Calendar dates                             |
| **DateTime** | Date and time combined                     |
| **Email**    | Email addresses                            |
| **Phone**    | Phone numbers                              |
| **URL**      | Web addresses                              |
| **JSON**     | Structured data objects                    |

***

### Writing good instructions

The **Instruction** field is a prompt that tells the AI exactly what to look for. Be specific:

> *"Extract the email address the user provided during the conversation. If none was given, return null."*

> *"Identify the product or service the user expressed interest in. Return only the product name."*

> *"Determine if the user confirmed an appointment. Return true if confirmed, false otherwise."*

***

### Editing and deleting variables

Click any variable in the list to open the editor modal and modify its settings. To remove it, open the variable and click **Delete**.

***

## Conversation Analysis Flow

Enter an HTTPS webhook URL in the **Webhook URL** field to have analysis results sent automatically when each conversation closes.

The URL must begin with `https://`. If left empty, results are saved but not forwarded anywhere.

The webhook sends a `POST` request with a 10-second timeout. If the request fails, the analysis is still saved — the failure does not affect conversation data.

***

### Webhook payload

```json
{
  "id": "analysis-uuid",
  "conversation_id": "conversation-uuid",
  "session_index": 1,
  "success": true,
  "success_score": 87.5,
  "success_reason": "The user confirmed the appointment and provided contact details.",
  "variable_snapshots": {
    "customer_email": "user@example.com",
    "product_interested": "Premium Plan",
    "appointment_confirmed": true
  },
  "created_at": "2026-02-25T10:30:00Z"
}
```

| Field                | Description                                                     |
| -------------------- | --------------------------------------------------------------- |
| `id`                 | Unique identifier for this analysis record                      |
| `conversation_id`    | The conversation this analysis belongs to                       |
| `session_index`      | Session number, incremented automatically per conversation      |
| `success`            | Whether the conversation met its goal (evaluated automatically) |
| `success_score`      | Confidence score from 0 to 100                                  |
| `success_reason`     | Explanation of the evaluation                                   |
| `variable_snapshots` | Key-value map of variable names to their extracted values       |
| `created_at`         | Timestamp of when the analysis was created                      |

***

## Saving your configuration

Click **Save Agent** (top right) after making any changes to variables or webhook URL. Changes take effect on the next conversation that closes after saving.


# Follow-ups

Automatically re-engage users who go silent mid-conversation by sending scheduled follow-up messages after periods of inactivity.

Follow-ups let your text agent proactively reach out when a user stops responding. Instead of letting conversations go cold, the agent sends a reminder message after a configured period of silence — keeping leads warm and conversations active without any manual intervention.

You can configure up to **3 follow-ups per agent**, each with its own delay and message type.

***

## Where to find it

Follow-ups are configured inside the **Settings** tab of your text agent, under the **Follow-ups** accordion in the left panel.

***

## Supported channels

Follow-ups are currently supported on **WhatsApp** channels.

> **⚠️ Note:** WhatsApp enforces a **24-hour messaging window** — follow-ups will not be sent more than 24 hours after the user's last message.

***

## Enabling follow-ups

Open the **Follow-ups** accordion and toggle **Enable follow-ups** on.

<figure><img src="/files/OPpD9dUr5M5tf0zI0PkO" alt="Follow-ups section showing Enable toggle, Follow-up 1 card with Delay and Type fields, and Add follow-up button"><figcaption></figcaption></figure>

Once enabled, click **+ Add follow-up** to create your first reminder.

***

## Configuring a follow-up

Each follow-up card has three fields:

### Delay

Set how long the agent waits after the user's **last message** before sending the follow-up.

* Enter a number and choose the unit: **min** (minutes) or **hrs** (hours)
* Minimum: 5 minutes — Maximum: 1440 minutes (24 hours)
* Delays are measured from the **last inbound user message**, not from the previous follow-up

> **💡 Example:** If you set Follow-up 1 to 30 min and Follow-up 2 to 2 hrs, both timers start from the moment the user last replied — not sequentially.

***

### Type

Choose how the message content is generated:

| Type                 | Description                                                 |
| -------------------- | ----------------------------------------------------------- |
| **Static message**   | A fixed text you write in advance                           |
| **AI-generated**     | A message generated by the agent's AI using a custom prompt |
| **External webhook** | Your own endpoint generates and returns the message         |

***

#### Static message

Write the exact text the agent will send.

<figure><img src="/files/OPpD9dUr5M5tf0zI0PkO" alt="Follow-up configured with Static message type showing the Message textarea"><figcaption></figcaption></figure>

Enter the message in the **Message** field. Keep it friendly and conversational — a short, natural check-in works best.

**Examples:**

> *"Hey! Just checking in — did you have any questions I can help with?"*

> *"Hi there! Still thinking things over? I'm here if you need anything."*

***

#### AI-generated

The agent generates a fresh follow-up message each time, using the conversation context and a custom guidance prompt you provide.

<figure><img src="/files/iSiuk5dIHEskxvHsteCF" alt="Follow-up configured with AI-generated type showing the AI prompt textarea"><figcaption></figcaption></figure>

Enter guidance in the **AI prompt** field. The agent will use this alongside the conversation history to craft a contextual, natural-sounding message.

**Examples:**

> *"Send a warm, friendly reminder referencing what the user was asking about. End with an open question."*

> *"Write a brief follow-up in a helpful tone. Keep it under 2 sentences."*

***

#### External webhook

Your own service generates the message and returns it to the agent.

<figure><img src="/files/gDcAQLbsOaqMP9IE568T" alt="Follow-up configured with External webhook type showing the Webhook URL input"><figcaption></figcaption></figure>

Enter the **Webhook URL** (must begin with `https://`). The agent sends a `POST` request to your endpoint containing:

```json
{
  "conversation_id": "...",
  "agent_id": "...",
  "channel_type": "twilio_whatsapp",
  "follow_up_count": 1,
  "variables": { ... }
}
```

The response body is used as the follow-up message text. If the request fails or times out, the follow-up is skipped silently.

***

## Adding multiple follow-ups

Click **+ Add follow-up** to add a second or third reminder. You can configure up to **3 follow-ups** per agent.

Each follow-up should have a longer delay than the previous one to form a natural cadence. For example:

| Follow-up   | Delay  | Type           |
| ----------- | ------ | -------------- |
| Follow-up 1 | 30 min | Static message |
| Follow-up 2 | 2 hrs  | AI-generated   |
| Follow-up 3 | 12 hrs | Static message |

To remove a follow-up, click the **trash icon** on its card.

***

## How the timer resets

Any inbound message from the user **resets all follow-up timers to zero**. If the user replies to a follow-up, the sequence starts over — no duplicate messages are sent for interactions that are already active.

***

## Saving your configuration

Click **Save Agent** (top right) after making changes. New follow-up settings take effect on the next conversation that becomes inactive after saving.


# Channels

Connect your Text Agent to messaging platforms like WhatsApp and embed it on your website with the Dapta Widget.

Channels let you deploy your Text Agent to the platforms where your customers communicate. Once connected, your agent will handle conversations automatically using the instructions and knowledge you've configured.

You can access channels in two ways:

* **From the sidebar** — Expand **Text Agents** in the left sidebar and click **Channels**. This opens a centralized view where you can manage all your WhatsApp lines and widget connections across agents.
* **From inside an agent** — Open any Text Agent and navigate to the **Channels** tab at the top of the page.

<figure><img src="/files/5QRjoyh5Ojs73vGEByE3" alt="Text Agent Channels panel showing WhatsApp Business and Dapta Widget cards"><figcaption></figcaption></figure>

## Available Channels

{% content-ref url="/pages/anfdTczN1uZyNz5LkS0L" %}
[Connect your Agent with WhatsApp](/ai-text-agents/channels/connect-your-agent-with-whatsapp)
{% endcontent-ref %}

{% content-ref url="/pages/NiShBdKnxaN2f4JCSTnQ" %}
[Widget: Embed your Text Agent on a Website](/ai-text-agents/channels/widget-embed-your-text-agent-on-a-website)
{% endcontent-ref %}


# Connect your Agent with WhatsApp

Learn how to connect your Dapta Text Agent to WhatsApp Business so it can send and receive messages with your customers 24/7.

Connecting your Text Agent to WhatsApp lets it respond to customers directly through WhatsApp Business. Once connected, your agent will handle conversations automatically using the instructions and knowledge you've configured.

## Prerequisites

**If connecting a Dapta phone number:**

* **A Dapta Text Agent** already created and configured.
* **A phone number** already purchased in the **Phone Numbers** section of Dapta.

**If connecting your own phone number:**

* **A Dapta Text Agent** already created and configured.
* **A phone number** that is **not** already registered with another WhatsApp account.
* **Access to the phone number** to receive a verification code via SMS.
* **Pop-ups allowed** in your browser for the Dapta site.
* **A valid business website or Instagram Business profile URL** — Meta requires this to avoid blocks on your WhatsApp Business Account.

{% hint style="warning" %}
If you want to use a number that is currently linked to a regular WhatsApp account, you must deregister it first. For WhatsApp API numbers, remove it from your Meta Business portfolio. For personal WhatsApp, go to **Settings → Account → Delete account**. Note that deregistering will permanently delete all conversation history on that number.
{% endhint %}

***

## Step-by-Step Guide

**Step 1:** You can access WhatsApp setup in two ways:

* **From the sidebar:** Expand **Text Agents** in the left sidebar and click **Channels**, then click on the **WhatsApp Business** card.
* **From inside an agent:** Go to **Text Agents**, click on the agent you want to connect, and open the **Channels** tab at the top.

<figure><img src="/files/pdzvmXQvEjjU68tM4kLq" alt="Text Agents list showing your available agents"><figcaption></figcaption></figure>

***

**Step 2:** You will see two channel options: **WhatsApp Business** and **Dapta Widget**. Click the **Connect** button on the **WhatsApp Business** card.

<figure><img src="/files/KK1QTbBh2hPyfizytpSL" alt="Channels tab showing WhatsApp Business and Dapta Widget cards"><figcaption></figcaption></figure>

***

**Step 3:** A modal will appear asking **"Choose how to connect your number."** Select one of the two options:

* **Use a Dapta number** — Connect one of your purchased Dapta phone numbers.
* **Use my own number** — Connect a phone number you already own.

<figure><img src="/files/fVIf9oMEeGIRnYtqXvcc" alt="Modal asking whether to use a Dapta number or your own number"><figcaption></figcaption></figure>

Click **Next** to continue.

***

## Path A: Use a Dapta Number

**Step 4:** Fill in the following fields:

* **Display Name** — The name your customers will see on WhatsApp when your agent messages them (e.g., "Acme Support").
* **Select a Dapta number** — Choose from the dropdown of phone numbers you have already purchased in Dapta.

<figure><img src="/files/HzW8uweaLTxZJ7mwXcHz" alt="Form showing Display Name field and Select a Dapta number dropdown"><figcaption></figcaption></figure>

Click **Continue**.

***

**Step 5:** What happens next depends on whether your account already has a WhatsApp Business Account (WABA) linked:

* **If you already have a WABA linked:** Dapta connects the number automatically. You will see a success screen — no Meta popup required.
* **If this is your first time:** A Meta popup will open. You only need to select your **Business Portfolio** and your **WhatsApp Account** — no phone number entry, display name, or verification code is required in the Meta flow.

{% hint style="info" %}
If the Meta popup does not appear, make sure pop-ups are allowed for `app.dapta.ai` in your browser settings.
{% endhint %}

***

**Step 6:** Once the connection is complete you will see a success screen. Click **Done** to finish.

***

## Path B: Use Your Own Number

**Step 4:** The following fields are required before Dapta opens the Meta connection:

* **Display Name** — The name your customers will see on WhatsApp.
* **Website** — A valid business website or Instagram Business profile URL (required by Meta).
* **Phone Number** — Select your country code and enter the phone number you want to connect.

<figure><img src="/files/STSTFhNvBUIRWoRKqUbE" alt="Form showing Display Name, Website, and Phone Number fields"><figcaption></figcaption></figure>

{% hint style="warning" %}
The phone number must not be registered with another WhatsApp account. See the Prerequisites section above if you need to deregister it first.
{% endhint %}

Click **Continue**.

***

**Step 5:** A **Meta Embedded Signup** popup will open in a new browser window. Follow the steps to:

1. Log in to your Facebook/Meta account.
2. Create or select a **Meta Business Account**.
3. Create or select a **WhatsApp Business Account (WABA)**.

{% hint style="info" %}
If the popup doesn't appear, make sure pop-ups are allowed for this site in your browser settings.
{% endhint %}

***

**Step 6:** Once the Meta signup is complete, the popup will close automatically and Dapta will register your WhatsApp sender. You will see a **success screen** confirming your connection.

Click **Done** to finish.

***

## After Connecting

Once connected, the WhatsApp Business card on the **Channels** tab will show:

* A **status badge** (e.g., `ONLINE`, `CREATING`, `OFFLINE`) in the top-right corner of the card.
* A **View Connection** button instead of the Connect button.

Clicking **View Connection** opens a details panel where you can see:

| Field               | Description                                               |
| ------------------- | --------------------------------------------------------- |
| **Phone Number**    | The connected WhatsApp number                             |
| **Status**          | Current connection status (Online, Offline, etc.)         |
| **WABA ID**         | Your WhatsApp Business Account ID                         |
| **Quality Rating**  | Meta's quality rating for your number (High, Medium, Low) |
| **Messaging Limit** | Your current messaging tier                               |
| **Sender ID**       | The Twilio sender identifier                              |

{% hint style="info" %}
Your agent will start responding to WhatsApp messages automatically once the status shows **ONLINE**. It may take a few moments after connecting for the status to update.
{% endhint %}

***

## Connecting via the Phone Numbers Section

You can also connect or view a WhatsApp line directly from the **Phone Numbers** section, without going through the agent's Channels tab:

1. In the left sidebar, expand **Voice Agents** and click **Phone Numbers**.
2. Click on any phone number in the list to open its detail panel.
3. Scroll to the **Text Agents** section at the bottom of the panel.
4. If no WhatsApp is connected, click **Connect WhatsApp** and follow the same steps above.
5. If a WhatsApp line is already connected, the panel shows the **Display Name** (read-only) and the text agent assigned to that number.

***

## Troubleshooting

| Issue                                   | Solution                                                                                                            |
| --------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| Meta popup is blocked                   | Allow pop-ups for `app.dapta.ai` in your browser settings and try again                                             |
| Phone number already registered         | Deregister the number from your existing WhatsApp account first                                                     |
| Verification code not received          | Click **Resend Code** and check that you have signal on the phone number                                            |
| Connection stuck on "Creating"          | Wait a few minutes — the registration can take up to 60 seconds. If it persists, try disconnecting and reconnecting |
| Meta requires business verification     | Make sure your Meta Business Account has a valid website or Instagram Business profile URL configured               |
| No Dapta numbers appear in the dropdown | Purchase a phone number first in **Voice Agents → Phone Numbers**                                                   |

If you have any doubts or questions about how official Meta business accounts work, you can review [Meta documentation](https://developers.facebook.com/documentation/business-messaging/whatsapp/official-business-accounts/)


# Widget: Embed your Text Agent on a Website

In this section, we explain the step-by-step process to deploy your text agent on a website with the Widget feature.

Currently, you can deploy your text agent on WhatsApp Business and on a web page through a widget.

### Your Text Agent on a Website

<figure><img src="/files/OK4pNwaKTXcCGpJV9xpD" alt="" width="563"><figcaption></figcaption></figure>

Within your agent, click on Channels and choose Dapta Widget.

<figure><img src="/files/BfjTx3hvCqdfKUtO5RNU" alt="" width="375"><figcaption></figcaption></figure>

Now, we’ll go step-by-step to configure the widget that you can embed on any website.

<figure><img src="/files/Kop6XDwdT2s0QugIPZmr" alt="" width="563"><figcaption></figcaption></figure>

* **Agent ID:**\
  This code is provided by default. It is the unique identifier for your text agent.
* **Embedded:**\
  The line of code you must copy and paste into the HTML code of the website where you want to embed your text agent.
* **Additional Instructions:**

<figure><img src="/files/1upGczuhtane6Mc0hJuf" alt="" width="375"><figcaption></figcaption></figure>

\
These instructions are optional and allow your agent to read parameters to better understand additional conversation context. These instructions will be added to every message a customer sends so your agent can use them for extra context.\
\
If you configure conversation parameters using the `setConversationParams(object)` function on the client side, you can use them here.

<figure><img src="/files/J4OiNZBd6HitmyQwkK5q" alt="" width="563"><figcaption></figcaption></figure>

Add this script to your code so you can use conversation parameters as variables here. By default, you have these parameters:

* user\_id: User ID
* user\_name: User Name
* user\_email: User Email

#### Voice Agent

Dapta provides this great alternative: within your text agent, you have a tab so that if your customer prefers, you can initiate a call:

<figure><img src="/files/L8X9nDL57P642ano5RpX" alt="" width="375"><figcaption></figcaption></figure>

* In this Voice Agent section, you can select the AI agent's voice that will perform the call.

<figure><img src="/files/L3jcas63usP1arXaVYgb" alt="" width="563"><figcaption></figcaption></figure>

The agent you select will be the one who calls the users who register their contact information in this section (Phone Number, Contact Name and Contact Email)

#### Welcome Message

Here, you can edit a brief description of how the text agent should start the conversation with your users.

<figure><img src="/files/PyY9MdWlbrT9lcGEk334" alt="" width="563"><figcaption></figcaption></figure>

#### Default Questions:

In this section, you can add actionable questions that appear as clickable options for the user. These are very helpful for starting a conversation with your agent.

<figure><img src="/files/Zg3lon06Ydl8mh2Q9X2D" alt="" width="563"><figcaption></figcaption></figure>

You can do this in two ways:<br>

* **Add an Example Question Manually**

<figure><img src="/files/8hwE6gopsbwYbzJ5scCH" alt="" width="563"><figcaption></figcaption></figure>

* Click "+ Add Example" and type the question you'd like your agent to appear. You can add as many questions as you want, but always keep the user experience in mind.
* Click "Save Changes," and when you return to the Widget, you'll see the questions now appear in your agent.

<figure><img src="/files/KWsiL4EEzSwfe0y7clCN" alt="" width="375"><figcaption></figcaption></figure>

* **Generate Questions with AI**

<figure><img src="/files/TwU3dRWE7km9q0g2uB7b" alt="" width="563"><figcaption></figcaption></figure>

* Click the "Generate with AI" option, and our AI will generate suggested questions based on the context and instructions to help your users start interacting with your agent.
* Click "Save Changes," and when you return to the Widget, you'll see the questions now appear in your agent.

<figure><img src="/files/uobz2UqtcbplrbZvK3sw" alt="" width="375"><figcaption></figcaption></figure>

#### Widget Style

In this section, you can edit the widget's style. The basic method involves choosing a custom primary color and light or dark background colors.

<figure><img src="/files/LNkyp6Bz72Bh35zoKIO3" alt="" width="375"><figcaption></figcaption></figure>

**Advanced Style**

The advanced method uses the stylesheet by writing the CSS script.

<figure><img src="/files/RqIiur2np5BYgEh65PD4" alt="" width="375"><figcaption></figcaption></figure>

**Auto Open**

The "Auto Open" option lets you choose whether it opens automatically on specific pages by default. Separate the pages where you want your widget to appear with the "/" symbol.

If left blank, it will open automatically on all pages upon refresh.

<figure><img src="/files/FxKYaip8GEimD48E5Exl" alt="" width="563"><figcaption></figcaption></figure>




---

[Next Page](/llms-full.txt/1)

