A sidebar app is a panel in the ticket sidebar whose contents come from your backend. Gleap calls your endpoint with the context of the conversation; you return what should be shown.
It's how an agent sees the customer's subscription, their last order or their account state from your own system, without leaving the ticket — and how they act on it without opening your admin tool.
In your project settings, Sidebar apps → Add new app. Each app needs:
App name — the panel heading your agents see.
API url — your endpoint.
Custom headers — usually an Authorization header, so you can tell it's really Gleap calling.
There's also Exclude messages from payload. Turn it on unless your endpoint genuinely needs the conversation text — it keeps message content out of a request to a third system, and makes the payload smaller.
You can add several apps; each renders as its own panel.
A list of content items. The types available:
text — a line of text.
key-value — label-and-value pairs, the workhorse for account data.
image — an image by URL.
button — an action (see below).
form — fields the agent fills in and submits back to you.
html — for anything the other types can't express.
Prefer key-value over html where you can. It inherits Gleap's styling, so it keeps looking right when the dashboard changes.
A button either opens a URL or makes an HTTP request back to you — with a method, headers and body you define, and success and error messages the agent sees. That's the difference between a sidebar that shows a subscription and one that can extend a trial.
A form takes it further: text, textarea, select, radio, checkbox, number and date fields, submitted to a URL you specify. Use it when the action needs input — a refund amount, a reason code.
Keep it fast. The panel renders when the ticket opens, so a slow endpoint is felt on every single conversation — cache on your side rather than querying three systems per request.
Handle “not found” gracefully. Plenty of contacts won't exist in your system, and returning a short “no account” line reads better than an empty panel or an error.
Show what changes the answer — plan, status, last invoice — not everything you have. A sidebar with thirty fields gets scrolled past.