Complete Manual

Support

The human side: live chat inbox, tickets, contacts, call takeover, team management, and CRM analytics.

15 min readSidebar: SupportSwitch to Quick Start
Who can see this: Visible to every role; most management and analytics entries are owner or admin only.

Complete reference for the Support section — the live chat inbox, outsourced staffing, live-call takeover, the CRM (tickets and contacts), support analytics, per-channel ticket rules, and team management.

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
Admins/adminsManage organization admins
Agents/agentsManage support agents
Supervisors/supervisorsManage supervisors
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.

Roles and permissions#

The roles are owner, admin, supervisor, and agent (with editor and viewer existing elsewhere in the product).

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

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: the Admins sidebar entry is offered to admins as well as owners, but the /admins page itself is owner-only. An admin who clicks it will not get the page. Likewise 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 [email protected], 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.

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 owner-only pages: Admins Management, Agents Management, Supervisors Management.

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!

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