Complete Manual

Support

The human side: live chat inbox, tickets, contacts, call takeover, CRM analytics, and the Users section's team management.

19 min readSidebar: SupportSwitch to Quick Start
Who can see this: Support is visible to every role, with the analytics and settings entries owner or admin only. The Users pages it documents sit in their own owner-and-admin section, and Permissions within it is owner-only.

Complete reference for the Support section — the live chat inbox, outsourced staffing, live-call takeover, the CRM (tickets and contacts), support analytics, and per-channel ticket rules. It also covers team management and member permissions, which sit in their own Users section of the sidebar.

Every role sees this section, but which pages and which controls differ substantially by role. See Roles and permissions.

For the fast path, use the Quick Start.

Section map#

Sidebar pagePathWhat it is
Support Chat/support-chatsLive inbox for conversations handed over by the AI
Managed Support/managed-supportOutsourced human agents and supervisors, staffed by FloGPT
Live Calls/support/live-callsMonitor and take over in-progress AI calls
Tickets/crm/ticketsThe ticket queue
Contacts/crm/contactsCustomer records and their identifiers
My Analytics/crm/analytics/selfYour own ticket analytics
Agent Analytics/crm/analytics/agentPer-agent CRM analytics
Supervisor Analytics/crm/analytics/supervisorOrg-wide analytics with a leaderboard
Settings/crm/settingsWhich channels create tickets

/support-tickets redirects to /crm/tickets.

The people pages are no longer here. Admins (/admins), Agents (/agents), and Supervisors (/supervisors) live in the Users section of the sidebar, alongside Permissions (/users/permissions), and are documented under Team management and Member permissions below.

Roles and permissions#

The roles are owner, admin, supervisor, and agent. Editor and viewer exist in the underlying data model and in the 2FA policy's role list, but no invite or create flow can assign either one, so no member holds them.

PageWho sees it
Support Chat, Live Calls, Tickets, Contacts, My AnalyticsEveryone
Managed SupportOwner or admin
Agent AnalyticsSupervisor or owner
Supervisor Analytics, SettingsOwner

The Users section is visible to owners and admins only. Within it, Admins is open to both, while Agents and Supervisors are owner-only — so an admin sees a Users section containing just Admins.

These are the defaults. An owner can narrow them per role on the Users → Permissions page, documented under Member permissions below, which can only take capabilities away, never add them. Two entries there bear on this section: revoking View team members removes the Users section entirely for that role, and revoking Invite and deactivate team members leaves the lists readable without the invite, create, and deactivate controls. A third, See the whole lead book, scopes a role to leads assigned to them plus the open pool — the same restriction agents have by default.

Within the CRM, owner, admin, and supervisor are treated as privileged and unlock:

  • The agent filter on Tickets and the bulk-actions bar
  • Reassigning a ticket to someone else
  • Editing tags
  • Creating a contact

Agents are scoped to their own work. An agent can only edit a ticket assigned to them — an unassigned ticket is read-only until claimed, and a colleague's ticket shows Only the assigned agent can edit this ticket.

One inconsistency worth knowing: Settings is only listed for owners, though the page is readable more widely and editable by owners and admins.

Support Chat#

The Support Chat inbox.

The live inbox. Left panel is titled Messages.

How a conversation gets here

A widget conversation is handed over when the visitor asks for a person — the AI watches for phrasing like human agent and escalate — or when a workflow reaches a Human Handoff node (see Chat). A support request is created with status pending and appears in this list.

If no agent is available, the bot tells the visitor so: Our support agents are currently unavailable. Your request is pending. The nearest available time to connect is {time}. The request is not dropped — it waits. Availability comes from Support Agent Business Hours in Setup, so an over-restrictive schedule is the usual cause of requests sitting untouched.

Conversations can also be flagged Escalated automatically by the idle-time rules in Setup → Escalation.

Filters

ControlOptions
SearchSearch conversations...
Date range7d, 30d, All, Custom (with From / To)
StatusEscalated, Pending, Assigned, Transferred, Resolved, Archived, each with a live count

The conversation list

A row is titled User · Ticket #{number} when a ticket exists, otherwise by visitor name or User. Unread counts, platform icons, and pills for Escalated, Transferred, Assigned, Resolved, and priority appear inline.

ActionWhen it appears
Assign meUnclaimed conversations
ConnectA conversation transferred to you that you have not yet joined
ArchiveOn resolved rows, via the row menu

Working a conversation

Selecting nothing shows No conversation selectedChoose a conversation from the left to start messaging.

The transcript shows the whole history, with a Support Handoff · {date} separator marking where the AI stopped and the human part begins. Read the AI's last turns first — the customer has already explained the problem once, and repeating the questions is the fastest way to annoy them.

The composer reads Reply to customer... with the hint Press Enter to send, Shift+Enter for a new line. On a resolved chat it is disabled: Resolved chat cannot receive new messages.

The action bar offers:

ControlBehaviour
Create CRM Ticket / Open CRM TicketPicks up the visitor as contact (or creates one) and files a general ticket linked to this chat. Takes a Priority (Low, Medium, High, Urgent) and an optional subject
ResolveOpens Resolve Chat with optional remarks
Assignment menuResolve Conversation, Transfer Conversation, Assign to Me

The transfer list is searchable and grouped into Agents ({n}) and Supervisors ({n}).

Managed Support#

Owner or admin. This page is not an inbox — it is how you buy human staffing.

Managed Customer SupportAdd trained human agents and supervisors to your team — hired, managed, and staffed by us. Available worldwide.

Two seat types, priced per month:

SeatDoes
Support AgentHandles live chat, tickets, and email in your support inbox.
SupervisorOversees your agents, quality, and escalations.

Your managed support shows the status (Not requested, Awaiting payment, Active, Payment past due, Canceled) with Agent seats, Supervisor seats, and Assigned staff.

The flow is: Request managed support → choose seat counts → pay → schedule your kickoff meeting (a date and time, plus optional context — Support hours, tools, product areas, languages…) → FloGPT assigns staff. Until the kickoff, Staff will be assigned by our team after your kickoff meeting.

Cancellation is at period end, and a scheduled cancellation can be reversed with Keep subscription.

Shopify-billed organizations must choose a Shopify plan first — Choose a Shopify plan first.

Live Calls#

Live Calls.

Live CallsMonitor and take over voice calls served by the AI assistant. Visible to every role, real-time.

Two groups:

GroupMeaning
Ringing nowCaller waiting for a human agent. First click wins.
Active AI callsCurrently being handled by the AI. Click Monitor to listen in or Take over to bridge yourself in.

Each card shows who controls the call (AI or an agent's name), the caller, the last turn, and for ringing calls a Reason:. The button reads Pick up, Open, or Take over depending on state.

Empty: No live calls right nowWhen a caller dials in, you'll see them appear here in real time.

Inside a call

Opening a call starts you listening, with a live transcript alongside Sentiment:, Summary:, and Known caller:. Turns are tagged Caller or AI, and marked interrupted where the caller cut in. Before the first turn: Waiting for the conversation to start…

Your microphone status shows Mic live, Listening, or .

ControlEffect
Pick upAnswer a ringing caller
Take overBridge your microphone into an AI call
ReleaseHand control back to the AI
Hang up / End callFinish the call
DeclineRefuse a ringing call

Take over rather than calling back — the caller stays connected and you inherit the full context.

Control errors

These messages are precise and tell you exactly what happened:

MessageMeaning
Only the agent handling this call, or a supervisor, can end it.You do not hold the call
Another agent already picked up this call.Lost the race
This call has already ended.Too late
Too many agents are already listening to this call.Listener cap reached
Live audio for this call is unavailable right now. The transcript is still live.Audio bridge unreachable — you can still read along

Ending an AI-held call is restricted to owners, admins, and supervisors.

Tickets#

The ticket queue.

Ticket numbers

Every ticket gets {ORG_PREFIX}-{six digits} — for example ACME-000042 — from a per-organization counter. The prefix is derived from your organization. Search accepts the ticket number directly: Search by ticket number...

Statuses, priorities, and channels

SetValues
Statusunassigned, assigned, open, pending, resolved, closed
PriorityLow, Medium, High, Urgent
Source channelChat, Call, Email, WhatsApp, Instagram, Facebook, SMS, Manual
SubjectOrder, Product, Subscription, Service, General

Archived is a separate flag rather than a status, which is why the pills read All, Unassigned, Assigned, Open, Pending, Resolved, Archived.

The list

Columns: Ticket, Contact, Status, Priority, Assigned To, Updated, Actions.

Two counts sit by the heading — tickets matching the current filters, and All tickets in the org (incl. archived).

Filters: search, priority, channel, subject, a sort selector (Last updated, Oldest update, Newly created, Oldest first, Last message), and a time range (All time, Today, 7d, 30d, 90d, Custom). Privileged roles also get a Mine toggle, an agent selector, and tag filtering.

A Compact / Comfortable density toggle and a Reset control sit in the header. Empty: No tickets foundTry adjusting your filters or search query.

Saved views let you pin the current filter set by name, optionally Share with the entire organization — though Only you can edit or delete this view, even when shared. This is the fastest way to give a team a shared definition of "my urgent queue".

Bulk actions

Privileged roles only — others see Bulk actions are available to owner/admin/supervisor only.

Assign…, Set priority…, Add tag…, Archive. Results report Updated {n} of {total} tickets. Selecting tickets not assigned to you when you lack permission warns {n} ticket(s) not assigned to you — deselect to enable.

The Manage drawer

Tabs: Overview, Conversation, Notes & Activity, Contact, Internal.

Overview holds Assigned to, Priority, Status, Resolution summary, and Tags. Assignment offers Self assign and Assign agent / Reassign with a searchable member list.

Status moves are explicit rather than a free dropdown:

FromAction
assignedOpen ticket
openResolve or Put on hold
pendingResume
resolvedClose ticket

Resolve opens a dialog — Add an optional summary — stored on the ticket and copied into the action history. Write it. It is what the next person reads.

Contact shows the contact, their identifiers, linked external CRMs, and deep links (Open chat, Open WhatsApp chat, Open call log).

Internal is the raw record — every id and timestamp, including Ticket ID, Conversation ID, Call Log ID, Email Thread ID, and Last Message Direction. This is the tab to open when something needs escalating to support or debugging against the API.

Notes, replies, and file requests

The composer on Notes & Activity has three modes:

ModeBehaviour
Internal noteTeammates only. Supports @ Mention
Reply to customerSends over Email, SMS, WhatsApp, Instagram, or Facebook
Request filesSends a secure upload link

Reply channels are enabled per contact and per ticket. Where a channel is unavailable the tooltip says why — Contact has no email on file, Contact has no phone on file, Contact has no WhatsApp/phone on file and ticket is not from WhatsApp. Email replies default their subject to Re: Ticket {n}.

Request files sends a one-time secure link — The customer receives a one-time secure link (valid 14 days) to upload files back to ticket {n} — and uploads appear under Attachments pilled from customer or by agent. This is materially more reliable than asking for an email attachment, and the files land on the ticket rather than in someone's mailbox.

The activity feed filters to All, Notes, or Activity, and records every change: Ticket created, Assigned, Reassigned, Status changed, Priority changed, Tags changed, Archived, Unarchived, Note added, Reply sent to customer, Reply to customer failed, Customer replied, Attachment request sent, Attachment uploaded.

Reply to customer failed is the one to watch for — a reply that did not send leaves a trace here rather than failing silently.

Contacts#

Contacts.

Columns: Name, Identifiers, Updated. Search by name or identifier, or filter By identifier... across Email, Phone, WhatsApp, Instagram, Facebook, Visitor ID. Nameless records show Unnamed.

Create contact is privileged. A contact must have at least one identifier. Existing identifiers will merge into the matching contact.

GroupTypes
IdentifiersEmail, Phone, WhatsApp, Visitor ID
Social profilesInstagram URL/ID, Facebook URL/ID

Social profiles are saved for reference — they don't affect messaging or contact matching.

Validation is strict, and deliberately so: Email must look like name@example.com, and phone numbers must be E.164 (e.g. +14155552671) — include country code, digits only. A number without a country code cannot be messaged.

The merge behaviour is the important part. Adding an identifier that already exists elsewhere folds the record into the existing contact — which is how a customer who first chatted anonymously and later gave an email becomes one person rather than two. If an identifier set spans more than one existing contact, it refuses: These identifiers overlap with more than one existing contact — an admin merge is required.

Conversation memory

Each contact accumulates memory across every channel they use. A caller who rings on Monday and follows up by SMS on Tuesday does not have to explain themselves twice — the agent already has the context.

Held on the contactWhat it is
FactsStable key-value details: name, preferred channel, account tier, whatever the call script captured
SummaryA rolling plain-text overview of past conversations, rewritten rather than appended
Tracked itemsOrders, bookings, tickets — with their current status, so the agent knows a delayed order is now delivered
Open commitmentsThings promised and not yet done, which is what makes a follow-up call sensible
Recent messagesA sliding window of the last exchanges, across voice, chat and SMS together

Memory lives on the contact, not on an individual agent, which is what makes channel hand-offs work. It is also why contact identifiers matter: a call from a number that is not on any contact has nowhere to write memory, and nothing to read.

Everything is deliberately bounded — the summary is rewritten, the message window slides, and commitments get resolved rather than piling up. A memory record ends up in the agent's prompt, so one that grew without limit would stop being usable exactly when it had the most history to offer.

The agent is told to use memory naturally and specifically not to recite it back or to claim it remembers something that is not there. If a customer asks to be forgotten, resetting a contact's memory clears all of it permanently.

Support analytics#

My CRM analytics.

Three pages share one dashboard, scoped differently.

PageScopeWho
My AnalyticsYour own ticketsEveryone
Agent AnalyticsA chosen agentSupervisor, owner
Supervisor AnalyticsOrg-wide, plus leaderboardOwner

Blocked access is explicit: Agent Analytics is available to organization owners and supervisors. and Supervisor Analytics is restricted to organization owners.

Metrics:

CardNotes
Total ticketsWith {n} unassigned underneath
Open
Resolved
Closed
Avg resolutionWith p90 underneath
First responseavg time to first agent touch

Avg resolution carries a p90 for a reason — averages hide the tail. If the average looks fine and p90 is dreadful, you have a small number of tickets rotting, which is what customers actually complain about.

Panels: Tickets over time (Created vs resolved per day), By status, By priority, By channel, Top tags, and — on Supervisor Analytics only — Agent leaderboard with Agent, Open, Resolved, Closed, Avg resolution.

The range filter is a chip set — All time, Today, 7d, 30d, 90d, Custom — defaulting to 30d. Note this differs from the two-date picker used in Insights.

Empty: No analytics data yet. and, per chart, No data in this range.

Settings#

Support Settings.

Owners and admins can edit; others see You're viewing in read-only mode — only organization owners and admins can change these settings.

Support SettingsChannels are linked to the providers you've configured in Integrations. Each channel can be paused, given a default priority for new tickets, and (when multiple accounts are connected) pinned to a specific account.

ChannelWhat it creates
EmailThreaded inbox replies + new tickets from your support address.
SMSInbound texts to your assigned numbers create a ticket per thread.
WhatsAppWhatsApp Business DMs land in the unified CRM inbox.
InstagramInstagram DMs to your Business account open a CRM ticket.
FacebookPage Messenger conversations open a CRM ticket.
Live ChatBot → human handoffs mirror into CRM so agents have full context.
Voice CallsEvery completed/failed call mints its own ticket with the recording link.

Each channel has a toggle, a Default priority (Low, Medium, High, Urgent), and — with several accounts connected — an Account picker defaulting to All connected accounts.

Channels you have not wired up show Not connected with a link to Configure in Integrations. Paused channels show Ticket creation paused.

Voice Calls is worth a deliberate decision: it mints a ticket for every completed or failed call. On a busy calling floor that is a lot of tickets. Pause it, or accept the volume knowingly.

Team management#

Managing admins.

Three near-identical pages under the sidebar's Users section: Admins Management, Agents Management, Supervisors Management. Agents and Supervisors are owner-only; Admins is open to owners and admins, matching the API, which accepts either role for inviting, creating, and deactivating an admin.

Filter by All, Active, Inactive, or Pending for that role, and add people two ways:

RouteBehaviour
Invite {Role}Emails an invitation. Creates a Pending Invite row that can be resent or deleted
Create {Role}Set up a new {role} with a username and password. They can sign in immediately — no invitation email is sent.

Create {Role} requires Email, First name, Last name, Password, and Confirm password, with a live checklist: At least 8 characters, Uppercase letter (A-Z), Lowercase letter (a-z), Number (0-9), Special character (!@#$%...). There is a Generate strong password helper.

Use Invite normally; use Create for people who cannot receive the invitation email, or when you are onboarding someone in the room with you.

Rows show Active, Inactive Member, or Pending Invite, with actions to Resend Invitation, Delete Pending {Role}, or Deactivate / Activate. Deactivating preserves the record and their history; it is the right move when someone leaves.

Empty: No admins found. Invite one!

Member permissions#

Users → Permissions (/users/permissions). Owner-editable, and only owners see it in the sidebar; an admin who follows a link gets a read-only note — What each role in this workspace may do. Only the organization owner can change it.

A grid of capabilities down the side and the three member roles across the top — Admins, Supervisors, Agents. Untick a box to take that capability away from that role. Each column saves on its own, with Save and Reset appearing under a column once you change it and Saved the rest of the time.

This only ever takes access away. A capability a role has never had is shown greyed out and cannot be handed over — hovering explains {Role} never had this capability, so it cannot be granted here. A workspace that never opens this page behaves exactly as it always has.

Owners have no column: they always hold everything, which is what keeps the page itself reachable.

GroupCapabilities
BillingView the plan and payment methods; change plan and payment methods
OrganizationChange organization settings; view API keys; create and revoke API keys; view team members; invite and deactivate team members
DataView data collections; create and edit data collections; delete data collections
Call centreSee every rep's calls on the floor; view call centre minutes and charges; see the whole lead book; change ring groups, menus and numbers; change automated follow-up rules

Two behaviours are worth knowing before you use it:

Revoking a view also revokes the matching manage. Dropping View data collections clears Create and edit and Delete with it, since a capability you cannot see is not one you can use. The grid redraws to show what was actually stored.

Members already signed in pick the change up on their next page load, not instantly.

This is not the same as Sidebar sections

The sidebar's Customize menu control hides whole sections for tidiness and changes nobody's access — a hidden page is still reachable by URL. Permissions is enforced on the server, in the resolver behind each page. Use the sidebar control to declutter and this page to actually forbid.

One consequence worth calling out: every role can read the plan and payment methods by default, because the sidebar hides Subscription from agents and supervisors but the URL never did. Revoking View the plan and payment methods is what closes that.

Troubleshooting#

SymptomUsual cause
Nothing arrives in Support ChatNo Human Handoff node in the workflow, and no visitor asking for a person
Requests sit Pending for hoursOutside Business Hours in Setup — they wait for the next window
Visitor told nobody is available during working hoursThe business-hours schedule has no slot covering now
An agent cannot edit a ticketAgents can only edit tickets assigned to them — Self assign first
Reassign, tags, or bulk actions greyed outThose need owner, admin, or supervisor
An admin clicks Admins and gets nothingThat page is owner-only despite being listed for admins
A reply channel is disabledThe contact has no identifier for it — check the tooltip
A customer never got the replyLook for Reply to customer failed in the activity feed
A channel shows Not connectedConfigure the provider in Integrations first
Overwhelmed by call ticketsVoice Calls mints one per completed or failed call; pause it in Settings
The same customer exists twiceThey had no shared identifier; adding one merges them
Merge refusedThe identifiers span two contacts and need an admin merge
Take over failsAnother agent won the race, the call ended, or the listener cap was hit
Audio unavailable but transcript liveThe monitor bridge is unreachable; read along instead
Analytics look emptyCheck the range chip — it defaults to 30 days
Avg resolution fine but customers complainingRead p90; the tail is where the complaints are