AI Calls
Stand up an AI voice agent that answers your phone, then route, log, and dial out with it.
Complete reference for the AI Calls section: the AI voice agent that answers your phone and places calls out.
The section is hidden from agents and supervisors. If you cannot see it in your sidebar, your role is one of those two.
For the fast path to a working agent, use the Quick Start. This page documents every page, field, and behaviour, including the parts that will bite you.
Section map#
| Sidebar page | Path | What it is |
|---|---|---|
| Call Widgets | /call/widget | The voice agents themselves |
| Call Pipeline | /call/pipelines | Branching conversation flows that route by intent |
| Phone Numbers | /call/phone-numbers | Numbers on this workspace and what answers them |
| Call Logs | /call/call-logs | Inbound and outbound call history, transcripts, recordings |
| Campaigns | /call/campaigns | Outbound calling campaigns from a contact list |
/call redirects to /call/widget. Note the singular widget in the URL against the plural Call Widgets label.
Guided Setup#
AI Calls → Call Widgets → Guided Setup (/call/setup). Described as: Launch a working call widget in a few minutes — pick a use case, customise the wording, and we'll wire up the pipeline + next steps for you.
The stepper is dynamic. It always begins with Pick a use case and always ends with Review; which of the middle steps appear depends on the blueprint you chose. Finish setup is appended after the widget is created. The footer shows Step n of m with a percentage.
Pick a use case
Blueprint cards, each pre-filling the prompt, voice settings, and recommended next steps. Cards carry pills for Inbound or Outbound, the widget type, and the vertical pack where one applies. The blueprint families are customer support, appointment booking, ads-to-call, lead generation, outbound sales, survey and feedback, and blank.
The blueprint catalogue is served from the backend, so the exact wording on each card can change without a release. Everything it sets is editable before you save.
Next stays disabled until a blueprint is selected.
Identity
| Field | Notes |
|---|---|
| Widget name | Required. Validation message: Give your widget a name. |
| Primary language | 16 voice locales: English (US, Canada, UK, Australia, Ireland, New Zealand, India), Hindi, Tamil, Telugu, Bengali, Marathi, Gujarati, Kannada, Malayalam, Punjabi. |
| Operating country | Required. Drives provider routing and what the phone step can offer. |
Countries divide into two groups, and this is the most consequential choice in the wizard:
- Self-serve · instant — United States, Canada, United Kingdom, Australia, Ireland, New Zealand. You can buy a number yourself, immediately.
- Manual provisioning · admin reviews within 1 business day — India, United Arab Emirates, Singapore, Philippines, Indonesia, Malaysia, Mexico, Brazil. Carrier paperwork such as DLT and KYC requires a human step, so these are marked (manual provisioning) in the dropdown.
Voice behavior
| Field | Guidance given in the product |
|---|---|
| Welcome message | Spoken at the start of the call. Keep it short (under 15 seconds). |
| System prompt | The full instruction the LLM follows for every call. 100–500 words is the sweet spot. |
Both are pre-filled from the blueprint. The highest-value edits are negative constraints: what the agent must never promise, quote, diagnose, or commit to, and the conditions under which it should hand over to a person.
Phone number
Four options:
| Option | When to use it |
|---|---|
| Link an existing number | You already own a number on this workspace that is free for this direction. Disabled with an explanation when none is free. |
| Buy a phone number | Self-serve countries only. Instant purchase; adds a recurring item to your subscription. |
| Request a number | Manual-provisioning countries. Files a request with the ops team. Optional Preferred area code and Notes. |
| Skip for now | Create the agent and attach a number later from the Phone Numbers page. |
Validation blocks Next if you choose to link but pick no number: Pick a number to link, or choose another option.
Lead source
Only appears for blueprints that expect one. Framed as Where do the leads come from? — when a lead form is submitted, FloGPT queues a call automatically, usually within a minute.
| Source | How it works |
|---|---|
| Meta lead ads | Facebook and Instagram lead forms. Meta posts each submission to FloGPT. Native integration with a signed webhook, per-form filtering, and deduplication — not a Zapier workaround. Configure the Integration, Lead form (or Every form on this page), and Phone field name (Meta's default is phone_number). |
| LinkedIn lead gen | LinkedIn Lead Gen Forms, polled every 5 minutes rather than pushed, so these calls go out a few minutes behind the submission. |
| Website or landing-page form | Any form that can POST. You get a webhook URL and a sample payload after the widget is created. |
| Skip for now | Add a source later from the widget's Triggers tab. |
A Qualification preset decides what the agent asks and what gets captured. Presets are server-defined and everything is editable afterwards.
If nothing is connected yet, the step offers a Connect a… link and a Re-check button so you can wire the integration and come back without restarting.
Review and create
Summary cards for Blueprint, Identity, Behavior, and Phone number. Press Create widget. On success you get Widget created — finish the setup steps below.
Finish setup
A generated checklist of what still stands between you and a working call, driven by what you skipped. Possible items include linking or buying a phone number, creating the lead trigger, creating a campaign, configuring the schedule, and getting the embed snippet. Each has Mark as done / Re-open, and the footer reads Finish & view widget once everything is done, or Finish anyway if not.
Call Widgets#
Toolbar: a search box (Search by ID, language, or linked widget...), a status filter (All Status / Active / Inactive), and Refresh. Top-right: Guided Setup and New Call Widget.
Creating a widget manually
New Call Widget opens Create Call Widget.
Type — pick one:
| Type | Description |
|---|---|
| Customer Support | Handle inbound support queries via voice |
| Appointment Booking | Schedule appointments and reservations over call |
| Lead Generation & Sales | Qualify leads and drive conversions through voice |
| Survey / Feedback | Run feedback surveys over voice — inbound or outbound |
Types not yet available carry a Coming Soon pill.
Direction — Inbound (Answers calls placed to the linked phone number) or Outbound (Powers calls dialed out from the linked phone number). A phone number can host one inbound widget and one outbound widget at the same time.
Then Name (required), Language, Country, Link to Chat Widget (optional) — which enables voice calling inside your web chatbot — Welcome Message, and System Prompt. The prompt field has an Auto-generate button that drafts a starter prompt from the selected call type, and a word counter against the maximum.
The Country field predefines voice and SMS providers. India routes through DLT-compliant Jio and MSG91; the self-serve countries route through your purchased Telnyx number.
The widget card
Each card shows the name, the linked chat widget or the call widget ID, an Active / Inactive toggle, the linked phone number or No phone number linked, the type and direction, the maximum call length, and whether barge-in is on.
The Active toggle is disabled until a phone number is linked — the tooltip reads Link a phone number to activate. This is the first thing to check when an agent appears not to work.
Card actions: Configure, Delete, and a post-call survey button.
Configuration tabs
Configure opens a dialog with tabs: Phone Number, Pipeline, Voice & Language, LLM, Behavior, Schedule (where the widget type uses one), and Triggers.
Triggers is where post-call actions live, and it is the most under-used part of the product. Actions can be conditioned on what the call captured — intent, sentiment, which fields were filled, keywords, or call duration — and can send SMS, WhatsApp, Messenger, or Instagram messages, send email, fire an HMAC-signed webhook, book an appointment, schedule a follow-up, write a Data Collection row, open a support ticket, or send a survey.
Phone Numbers#
The two-slot model
Every number has two independent slots: one inbound widget that answers calls, and one outbound widget that drives campaigns. You fill, swap, or clear them independently. This is why one number can both answer your front desk and dial your campaign list.
Linked Phone Numbers lists Phone Number, Provider, Inbound widget, Outbound widget.
Available Phone Numbers lists Phone Number, Provider, Country, and a Link to Widget control: choose a widget from the dropdown and press Link. Telnyx numbers also offer Release, which returns the number to the carrier and stops charges. Releasing cannot be undone.
This page covers the widget slots only. Call Centre → Numbers is the wider view: every number alongside whatever answers it, agent or human floor, and how a caller reaches a person.
Buying a number
Buy Number opens Buy a Phone Number — Search and instantly provision a global number with built-in conversational AI.
Available countries: United States (+1), Canada (+1), United Kingdom (+44), Australia (+61), Ireland (+353), New Zealand (+64). Types: Local, Toll-free, National, Mobile. Filters for Area code and Starts with.
Results show Number, Location, Features, Monthly, with an Instant pill on quickship numbers. Confirm Purchase bills monthly to the card on file.
If your workspace is not eligible you will see either Choose a Shopify plan first or Not eligible to purchase with an Add Payment Method action.
Call Pipeline#
A pipeline turns a single prompt into a branching conversation. Where a prompt says "help the caller", a pipeline routes on detected intent and captures specific, typed fields.
Field capture is stricter than it looks, and worth understanding:
- Each field is typed — string, phone, email, date, datetime, number, enum, or boolean — with optional regex, minimum, and maximum validation, optional confirm-back to the caller, and a skip-if-already-known rule.
- Fields are collected live during the call and re-asked until valid.
- After the call an LLM re-reads the text transcript as a backfill pass. It never overwrites a value captured mid-call.
- The backfill is attribution-checked: a value is kept only if the model can cite the transcript line where the agent asked and the later line where the caller answered. Values that fail the check are discarded rather than guessed.
Post-call extraction reads the transcript text only — capped to the last 80 lines — and never the audio recording.
Captured fields land on the call log and can be written to a spreadsheet-style Data Collection, one row per call, with Call ID, Caller Name, Caller Number, and Call Time columns provisioned automatically, and optional Google or Microsoft Sheet sync.
They do not flow onto CRM contact custom fields. The only CRM write from a call creates a ticket and upserts the contact's name, email, and phone identifiers.
Call Logs#
Filters: Call Widget (default All Widgets), Status (All, Completed, Failed, Active), Direction (All, Incoming, Outgoing), a Search box for phone numbers, Start Date and End Date, and Per Page.
Columns: From, To, Widget, Direction, Status, Duration, Start, End, Sentiment, Actions. Duration, Start, and End are sortable.
Rows can carry automated-answer badges: Voicemail, Call screened, No audio. The Actions column has a call-back button and Transcript, which opens the transcript and the recording where one exists.
Every call records a sentiment (positive, negative, or neutral), a two-to-four sentence summary, and an intent with a confidence score.
What status does and does not mean
Status on a call log is only ringing, active, completed, or failed. There is no per-call disposition on inbound calls. Disposition-style columns — call status, attempts, summary — are written only for outbound campaign calls, into that campaign's source Data Collection.
If you need dispositions on inbound human-answered calls, that is the Call Centre wrap-up flow, not this page.
Campaigns#
New Campaign opens Create Campaign.
| Field | Notes |
|---|---|
| Name | Internal. |
| Call Widget | Only outbound widgets appear here. If the list is empty you need an outbound widget first. |
| Starts At | Optional. Empty means start as soon as the campaign is activated. |
| Ends At | Optional. Calls stop after this moment. |
| Calling Window Start / End | Default 09:00 to 23:59, interpreted in the campaign timezone. |
| Timezone | Per campaign. |
| Concurrent Calls | 1 to 50. |
| Retries | 0 to 5, with backoff. |
| Retry Interval (min) | Gap between attempts. |
| Contacts | Optional at creation; can be attached later from campaign settings. |
Card and detail actions: Activate / Resume, Pause, Cancel, Manage campaign, Delete. Statuses are Draft, Active, Running, Paused, Finished, Cancelled, Errored. Stats show Total, Completed, Unanswered, Failed.
The detail page (/call/campaigns/:id) has tabs Contacts, Activity, Call Logs, and Details, with Manage campaign opening Contact source and Settings. Deleting a campaign removes it and its contact list; call logs are kept.
Outbound calling responsibilities#
Read this before you dial anyone. FloGPT gives you controls, not automatic compliance, and the gap between the two is where the legal risk lives.
- Quiet hours and the do-not-call block list are off by default. They are per-organization settings you have to switch on.
- Uploaded-list campaigns do not apply them at all. Only the campaign's own calling window applies. Quiet hours, the DNC list, and the TCPA gate are enforced on the trigger-ingest path, not on
dispatchCampaignCalls. If you are calling an uploaded list, the calling window is your only automatic guard. - The do-not-call list is a manually maintained per-organization list. There is no national DNC registry integration.
- The TCPA control is an acknowledgement checkbox that gates
+1numbers. It does not capture or verify per-contact prior express consent. - The agent does not identify itself as an AI unless your prompt tells it to. Several jurisdictions require this for outbound bots. If you operate in one, put it in the welcome message.
- Calls are recorded, and there is no automatic announcement or opt-in. Two-party-consent jurisdictions require disclosure. Add it to your welcome message.
- There is no automatic handling of SMS STOP replies. If a template invites one, someone has to action it.
Speed, honestly stated: ingest of a lead is immediate, but the dial is queued and picked up by a job that runs every minute, then has to wait for a free concurrency slot. Time-to-dial is normally under a minute, and bursts queue behind each other.
Troubleshooting#
| Symptom | Usual cause |
|---|---|
| Widget will not activate | No phone number linked. The toggle is disabled with that tooltip. |
| Calls ring but nothing answers | Number has no inbound widget in its inbound slot — check Linked Phone Numbers. |
| Campaign created but never dials | Campaign is still Draft; press Activate. Or the current time is outside the calling window in the campaign's timezone. |
| No outbound widget in the campaign dropdown | Campaigns only accept outbound-direction widgets. Create one. |
| Agent answers but ignores your business facts | No knowledge base attached, or the knowledge base is empty. See Knowledge. |
| Lead forms submitted, no calls | For LinkedIn, polling is every 5 minutes. For Meta, check the page is still connected and the phone field name matches your form. |
| Captured fields missing from the call log | Attribution check discarded them — the transcript did not clearly contain both the question and the answer. |
| Cannot see the AI Calls section | Your role is agent or supervisor. |
Related#
- AI Calls quick start
- Call Centre — human reps, dispositions, routing
- Knowledge — grounding the agent
- Insights — Calls Overview and Call Widget Analytics
- FloGPT for Shopify — in-call Shopify tools