Floating launcher
The floating launcher in a React Native app, Intercom style, driven by the settings under Customer Support → Floating Launcher.
The floating launcher is a pill in the corner of the screen. Tap it and a sheet slides up with the menu your workspace configured: find answers in the knowledge base, send a message that becomes a ticket, suggest an improvement, and any links you added. No live chat; for that, use the chat screen.
It is the same feature as the web launcher. The label, colour, position, menu items, and which of the knowledge base and tickets are on all come from Customer Support → Floating Launcher, and the ticket lands on the same support inbox.
Install
The launcher ships in the same package as the chat SDK:
socket.io-client is only needed for the chat side; the launcher makes plain
HTTP calls.
Minimal app
Put SupportLauncher last inside a full-screen parent so the pill floats over
everything. Find the workspace id under Customer Support → Floating
Launcher; a Support Hub widget id works too, as widgetId.
With an email in identity, the workspace creates or links a contact the
first time the launcher loads, and again at most once every six hours. That
is what the web launcher does on page load. Pass storage so the throttle
survives restarts.
What the sheet shows
Home opens with a brand-coloured header and a greeting, then:
| Card | Appears when | Does |
|---|---|---|
| Send us a message | Tickets are on and a support inbox exists | Opens the ticket form. The subtitle is the inbox's reply-time promise, from its SLA |
| Search for help | The knowledge base is on | Opens live search over public articles |
| Popular articles | The knowledge base is on and has public articles | The three most-read, then "Find answers" for the full browser |
| More | Any other menu items | Suggest an improvement, and links, which open in the system browser |
Menu items follow the web launcher's rules exactly: a link with no URL is hidden, knowledge base and ticket rows disappear when the feature is off, and a ticket row is added if tickets are on but the workspace never listed one.
The header colour is the launcher colour. The sheet follows the launcher's theme setting, or the phone's appearance when the setting is "auto".
Props
| Prop | Default | Meaning |
|---|---|---|
showPill | true | Render the floating pill. Set false to open the sheet from your own control with useLauncher().setOpen(true) |
position | configured position | bottom-right or bottom-left |
pillInset | 20 | Distance from the screen edges |
avatars | none | Team avatars on the message card: [{ initials, color? }]. The public config carries no team, so the app supplies them |
greeting | "Hi there 👋" | Line above "How can we help?" |
logoText | first letter of the label | The tile in the header |
onOpenLink | Linking.openURL | Where link items and "Open in the help centre" go |
renderArticle | plain text | Render an article body yourself, for example with an HTML renderer |
Articles
Articles come back as the HTML written in the workspace editor. By default the
launcher flattens it to readable text, with headings, paragraphs and bullet
lists preserved, so nothing untrusted is rendered as markup. To show full
formatting, pass renderArticle and hand the HTML to a sanitising renderer
such as react-native-render-html.
Reading an article in the app counts as a read on the help centre, the same as the web launcher.
Using the hooks and client directly
items is the menu after visibility rules. replyTime is the sentence the
message card shows. Every failure is a SupportApiError; see
Lifecycle and limits.
Limits
| Action | Limit |
|---|---|
| Messages (tickets) | 10 per hour, per workspace, per IP address |
| Identify | 60 per minute per IP; the SDK sends one per six hours per email |
| Search | Queries under two characters return nothing without a request |
Launcher or chat?
| Floating launcher | Chat | |
|---|---|---|
| Component | SupportLauncher in LauncherProvider | SupportChatScreen in SupportProvider |
| Keyed by | Workspace id, or a widget id | Widget id |
| Live conversation | No | Yes, with agents and the AI assistant |
| Knowledge base | Browse, search and read | Search |
| Tickets | Yes, "Send us a message" | Email tickets from the hub |
| Configured under | Customer Support → Floating Launcher | Customer Support → Support Hub |
Both can live in one app. They do not share state; identify the user in both if you use both.