Mini App
The Proxima Mini App is a Telegram WebView application that gives Service Desk users a fast, mobile-first way to view, create, and manage support tickets. It is built with React 18, Vite, and TypeScript, styled with Tailwind, and themed automatically to match the user's Telegram light/dark theme.
Opening the Mini App
There are two ways in:
- From the bot — send
/startto the bot and tap the Open Service Desk button, or use/ticketsand/newfor quick actions. See Bot. - From a notification — every ticket notification the bot sends includes a View Ticket button. Tapping it opens the Mini App via a deep link (
https://t.me/{botUsername}/servicedesk?startapp={issueKey}) and jumps straight to that ticket's detail page.
When the Mini App opens, Telegram injects a signed initData payload. The app exchanges it for a Console JWT in the background — no username or password to type. The JWT is cached in localStorage, so the session survives reloads; an expired token is refreshed automatically (see Account Linking & Security).
Everything you see in the Mini App is scoped to the clients your linked Console account is permitted to access. If your account is not linked, you'll see a "not linked" screen instead of any tickets.
The app supports Telegram's fullscreen mode: it reads Telegram's safe-area and content-safe-area insets and pads its sticky headers and bottom navigation so content stays clear of Telegram's overlaid back/close controls and the device notch.
Navigation
A fixed bottom navigation bar provides three destinations:
- Home — metrics and items that need your attention
- Tickets — the full, filterable ticket list
- New — create a ticket
Home
The home page is a quick status board:
- Key metrics — Open Issues, Cycle Time, and On-Time %, sourced from the Service Desk metrics endpoints.
- Quick actions — shortcuts to Report Incident and New Task.
- Action Required — tickets that are waiting on you. Tickets in CLIENT REVIEW appear with an auto-resolve countdown badge (they auto-resolve after 3 business days of inactivity), and tickets in WAITING FOR INFO appear with purple tinting.
Ticket list
The ticket list is the main working surface:
- Status filter chips — quickly switch between My Tasks, All, Open, Done, and Pinned.
- Search — a debounced text search across tickets.
- Filter dropdowns — refine by Sort (updated / created / priority), Priority (all / high / medium / low), and Date range (7d / 30d / 90d / 6 months).
- Ticket cards — each card shows a colored priority dot, the SUP issue key, a status badge, the summary, and the assignee.
- Load more — the list is paginated; tap Load more to fetch the next page rather than loading everything at once.
- Pinning — pin or unpin a ticket to keep it handy. Pins are persisted in
localStorageand surface under the Pinned filter.
Ticket detail
Opening a ticket shows the full record:
- Sticky header with the issue key and current status badge.
- Info grid — Priority, Type, Assignee, Reporter, Created, Updated, Due Date, SLA, and Auto-resolve.
- Client Review banner — for tickets in CLIENT REVIEW, an amber banner with an Approve button that triggers the "Completed" transition.
- Description — collapsible, with Jira wiki markup rendered as HTML (bold, italic, headings, links, lists, code blocks, quotes).
- Tabbed content:
- Comments — a chat-style thread with avatars.
- Files — downloadable attachments.
- History — a status-change timeline.
- Comment composer — a sticky bottom bar to type and send a comment without leaving the page.
Overdue tickets are visually highlighted so they don't slip through.
Creating a ticket
The create page walks through a short form:
- Request type — choose Incident or Task via type cards with icons and descriptions.
- Summary — a single-line input with a character counter.
- Description — an auto-growing textarea.
- Priority — colored priority pills (Highest / High / Medium / Low / Lowest).
- Dynamic fields — additional fields (text, number, select, date) pulled live from JSM for the selected request type.
- Attachments — upload files with the request.
On success, a brief confirmation animation plays before the app redirects you to the new ticket.
Client switching
Tickets are scoped by organization (client):
- Single-client users are auto-scoped — no switcher is shown.
- Multi-client users get a client switcher dropdown in the header; the selected client is remembered in
localStorageand applied to all list, count, and metrics requests. - Super admins can additionally choose All to see across clients.
My Tasks
The My Tasks filter on the ticket list narrows the view to tickets assigned to (or relevant to) you, so you can focus on your own queue without manually filtering by assignee.