Features

A real service desk, built for the way IT teams work

Structured workflows, keyboard-first speed, AI triage, a public status page with uptime monitors and on-call, and an immutable audit chain. Every feature below is shipped, and every plan includes all of it. Plans differ only by seat count.

Tickets & workflow

6 areas

Tickets the way you actually work

Structure where it matters, speed everywhere else.

  • Ticket types: Incident, Service Request, Change, Problem, Bug, Feature, Task, Epic, or roll your own
  • Per-workspace ticket keys (INC-42, REQ-101) allocated atomically
  • Custom fields per ticket type, defined inline (text / number / date / select)
  • Configurable workflows with arbitrary states and explicit transitions
  • Parent / child / epic hierarchy with breadcrumbs on every ticket
  • Linked tickets: blocks, duplicates, relates-to, clones, causes, child-of
  • Ticket merge: combine duplicate tickets into one conversation, with messages moved and the duplicate auto-closed and linked
  • Watchers + @mention autocomplete in messages (adds the mentioned person as a watcher)
  • Ticket collaborators: CC external people (a manager, vendor, or second customer contact) by email onto a ticket; they receive every public agent reply and inbound CCs are captured automatically
  • Inline editable subject, story points, components, fix versions, sprints

Multiple views, one inbox

See the same tickets the way your role needs to see them.

  • Queues: built-in (Mine / Unassigned / Urgent / Breached / Awaiting Customer / by Type) and unlimited saved custom ones
  • Kanban board with drag-and-drop status changes and inline column quick-add
  • Backlog with per-sprint sections, moving tickets between sprints, and a live burndown bar
  • Bulk actions: resolve, close, escalate, assign, tag, up to 200 tickets per batch
  • Density toggle (comfortable / compact), sort by deadline / priority / key
  • URL-synced filters: every queue is a shareable link

Workflow & automation

State machines, approvals, and rules that fire on events.

  • Visual workflow editor: define states, colours, categories (todo / doing / done), and allowed transitions
  • Service-request approvals: request, decide, audit (one pending approval at a time per ticket)
  • Automation rules triggered by ticket.created / .updated / .replied with conditional actions
  • Auto-send a templated macro reply on new tickets for instant first-response acknowledgements, with personalized tokens ({{contact.first_name}}, {{ticket.subject}})
  • Macros (canned responses) applied to one ticket or bulk-applied to up to 50
  • Macro actions: a macro bundles ticket field changes (set status, set priority, reassign, add tags) with its reply, so an agent applies an entire workflow like "Escalate to Tier 2" in one click instead of four manual steps; the same field actions also drive on-ticket apply and bulk-apply
  • Automatic ticket assignment: flip one per-queue toggle and every new ticket routes itself to an available agent the moment it arrives, with no automation rule to build. Round-robin spreads work evenly; least-busy hands it to whoever has the fewest open tickets, so nothing sits unowned blowing its first-response SLA
  • Load-aware auto-assignment is also composable as an automation action (round-robin or least-busy) for conditional routing rules
  • Skill-based routing: tag agents with the skills they handle (billing, Tier-2, a language) and require them on a queue, so a specialized ticket only lands on a qualified agent and skips the reassignment shuffle. If nobody qualified is available it falls back to the full pool so a ticket is never stranded, and round-robin/least-busy still balances load across the skilled set
  • Per-agent availability flag: agents pause auto-assignment with one toggle (out sick, heads-down, end of shift) and new tickets route to whoever is accepting. If nobody is available the ticket stays unassigned until someone frees up, and round-robin remembers the last-assigned agent per queue so distribution stays even across restarts
  • Set priority, set status, send macro reply, add tag, notify user: all composable from the rule builder
  • Recurring snooze: defer a ticket until a date or keep it out of the inbox until a customer reply
  • Auto-close inactive resolved tickets after a configurable number of days, with an optional "reply to reopen" courtesy notice, so your backlog clears itself instead of rotting in the resolved column
  • Auto-acknowledgement on ticket creation: every request (portal or inbound email) gets an instant, on-brand "we've received it" confirmation with personalized merge fields. When it lands after hours or on a holiday, the reply says exactly when they'll hear back, computed from your business-hours calendar
  • Scheduled replies: write the reply now, send it when it lands best. Pick an exact date and time or "next business-hours open" (resolved from the ticket's SLA calendar), and a leased dispatcher delivers it later, posting the reply, emailing the customer, and setting first-response exactly as a live reply would. Cancel any pending send before it fires; closed or merged tickets are skipped automatically

Recurring tickets

For the things you have to do every Monday, every month, every quarter.

  • Schedule a ticket template to recreate every N days (1–365)
  • Optional cap on total runs ("create this 12 times then stop")
  • Auto-allocates a fresh key (INC-103, INC-104…) each time
  • Pre-fills type, priority, assignee, tags, affected assets
  • Lazy runner driven by dashboard loads, so there is no cron infrastructure to run
  • "Run on next dashboard load" override for manual triggers

Saved replies

Personal or team-shared canned responses, inserted from the composer in one click.

  • Personal replies (your own scratchpad) vs. team-shared (admin-created)
  • Optional keyboard shortcut tag (e.g. `/ack`, `/thanks`)
  • Available from a dropdown in every reply composer
  • Markdown supported: bold, lists, links, code
  • Merge fields in saved replies & macros auto-fill the customer name, ticket key, and your sign-off into canned text ({{contact.first_name}}, {{ticket.key}}, {{agent.name}}); unknown tokens are stripped so a raw placeholder never reaches a customer
  • Email signatures on outbound replies: every public reply goes out signed with the agent's name and your company's branded, merge-field-powered footer, carrying the contact and legal info regulated customers expect. Agents set their own; admins set a team default that fills in when an agent hasn't

Built for speed

Designed by people who hate their helpdesk.

  • Global "+ New" button in the topbar; `c` keyboard shortcut from anywhere
  • ⌘K omnibox search across tickets, contacts, messages, KB
  • ⌘↵ to submit any compose form
  • Inline quick-add on Board columns and Backlog sections: type-and-enter to create
  • Ticket cloning (with or without conversation history) as a single click
  • No-config defaults: every workspace ships with 8 ticket types and a default workflow

AI assist

1 area

AI assist

A useful AI, not a chatbot. Falls back gracefully if no key is configured.

  • AI Triage in the New Ticket dialog: suggests type + priority + tags from subject and body
  • AI Draft Reply: composes the next agent reply from the thread and any matching KB articles
  • AI Summarize: a 3-bullet summary of the thread covering the problem, current state, and next step
  • Every AI output is cached, attributable, and logged to the audit trail
  • Prompt caching keeps per-call cost low; pay nothing extra when no API key is configured

SLA & analytics

2 areas

SLA management

Promises you can keep.

  • SLA policies with per-priority first-response & resolution targets
  • Business-hours-aware SLA clock with configurable holidays
  • Stop-the-clock SLAs: the resolution timer pauses automatically while a ticket waits on the customer, so your team is measured on its own response time, not customer delay
  • Assign policies by contact, tag, channel, or workspace default
  • Live SLA countdown on every ticket card: green / amber / pulsing red as it gets close
  • Automatic breach flags on first response and resolution
  • Time-triggered SLA escalation rules that act before breach, not just after: auto-escalate at 75% of the SLA window (first-response or resolution), bump priority, reassign to the least-busy agent, or notify only the team lead. Each fires exactly once per ticket per stage, under a distributed cron lease so multiple instances never double-escalate
  • escalate_to_role action: notify all owners/admins (or a specific role) when a ticket is heading toward breach, replacing the old blanket notification that pinged every workspace member
  • Response Time Estimator: an interactive widget to pre-configure SLA targets before go-live

Analytics & accountability

See the trends, hold the line.

  • Dashboard: 7-day volume sparkline, SLA-at-risk feed, agent workload bars, recent activity stream
  • Reports: configurable window (7/30/90/180d), volume chart, first-reply time histogram
  • Backlog aging: open tickets bucketed by age (< 1 day / 1-3 / 3-7 / 7-30 / 30+) with priority breakdown and posture indicator
  • CSAT distribution + channel mix + ticket-type mix breakdown
  • Tag mix analytics: your top support tags ranked by ticket volume, with each topic's average CSAT score, so you can spot the highest-volume and worst-scoring subjects straight from the tags your team already curates
  • First Contact Resolution and reopen rate: every reopened ticket (status change, workflow transition out of done, or a customer reply to a resolved ticket) is counted, FCR is reported net of reopens so the number can't be gamed, and both surface as threshold-coloured Reports tiles plus per-agent columns on the leaderboard
  • SLA attainment report: historical first-response and resolution attainment (% of tickets that met their SLA deadline), broken down by priority (urgent / high / normal / low) with met/eligible counts, over any reporting window
  • Coverage heatmap: when tickets arrive versus when you're staffed, with median response time per hour, so you can fix the off-hours gaps that quietly breach your SLAs. A 7×24 weekday × hour-of-day grid in your workspace timezone with arrival volume and median first-reply toggles, off-hours and holiday cells shaded as unstaffed, and an auto-generated insight ("14% of tickets arrive outside business hours; their median first reply is 6.2h vs 41m in-hours")
  • Deflection metric: a Deflected tile counts KB self-service deflections in the window plus the top deflecting articles, putting a number on what the knowledge base saves you next to CSAT and volume
  • Scheduled ops digest: your weekly (or daily) SLA-attainment, backlog, CSAT and volume summary lands in owners' and admins' inboxes at the hour you pick, in your workspace timezone. Opt-in per workspace, with a "send test digest now" button and individual opt-out via notification preferences
  • Content-gap analytics: what customers searched for and couldn't find, turned into a prioritized KB writing backlog. Every committed help-center search is logged with its result count, and Reports surfaces a zero-result-rate tile plus the top zero-result queries grouped by phrase, so searches that returned nothing get measured instead of thrown away
  • Macro adoption analytics: a Most-used macros card ranks your canned responses by real usage with last-used dates, plus a per-macro "used 142×, last 3d ago" badge, so you can see which replies earn their keep and prune the dead weight
  • Agent leaderboard ranked by resolved + average first-reply minutes, with per-agent CSAT (average score + response count) alongside FCR and reopens, so you can spot coaching opportunities and recognise top performers
  • Per-ticket time tracking with billable + DCAA-friendly labor categories
  • Time-tracking report: total and billable hours, the unbilled backlog waiting to be invoiced to Books, and a breakdown by agent and labor category, all on the Reports window selector
  • Bill your support time to Books: select billable entries on a ticket, or clear a whole client's unbilled backlog in one pass from the Unbilled time view, and raise the Hitt Hosting Books invoice without leaving Desk. Set an hourly rate once (with per-labor-category overrides for direct vs indirect), see hours × rate previewed before you confirm, and get one invoice with a line per ticket rather than fifty unreadable lines. Invoiced time is stamped so it can never be billed twice, and the ticket shows the invoice number and status — with attach and detach for an invoice you raised in Books directly. Requires Hitt Hosting Books on the same account; admins only
  • Automatic CSAT surveys: every resolved ticket triggers a one-click 1-5 satisfaction request (with optional comment) that feeds the CSAT distribution and average in Reports
  • Negative-CSAT alerts: every 1- or 2-star rating instantly flags the ticket, pings the assigned agent, and fires a webhook so you can win back unhappy customers before they churn

Realtime collaboration

1 area

Realtime co-presence

Two agents on the same ticket without stepping on each other.

  • Live "Also viewing" avatars on the ticket detail page
  • Typing indicators: teammates mid-reply show as "Replying" instead of just watching, and the cue clears itself on send, on idle, or when they leave the page
  • Agent-collision warning above the composer — "Jane is also replying to this ticket, check before you send" — so two agents stop sending the customer conflicting answers
  • Realtime ticket updates via Supabase Realtime; replies appear without refresh
  • Realtime board: cards move between columns as your teammates work
  • In-app notifications page + bell with deep-link to the originating ticket
  • Per-user notification preferences (in-app / email) per notification kind

Customer experience

4 areas

Customer-facing surfaces

Deflect tickets, capture satisfaction, never re-explain.

  • Magic-link customer portal: no password, single-use token, brand-coloured
  • Service catalog: customers pick the request type that matches their need, you collect the right custom fields up front
  • The catalog type a customer picks carries through: its required fields are enforced on submit, and the ticket arrives with a real key, its workflow state, an SLA clock and an owner already assigned, the same treatment an agent-opened ticket gets
  • A portal signup is linked to its company account by email domain, so a new requester shows up under the right organization instead of as an orphan contact
  • Knowledge base with categories and draft / published / archived states
  • Knowledge capture: turn a solved ticket into a KB draft in one click. The subject becomes the title and your public replies become the body, with internal notes and customer messages left out. Closes the loop with the search-gap report that tells you which articles are missing
  • Per-article visibility: publish an article to the public help center, keep it internal for agents only, or private to its author. The portal and deflection search only ever surface public articles
  • Ticket deflection: as a customer types their ticket subject, matching published KB articles surface inline ("These might answer your question") before they ever hit submit. Opening one instead of filing is recorded as a measurable deflection event
  • Knowledge base feedback: customers rate every article helpful or not from a one-click "Was this helpful?" widget (deduped per visitor), and authors see per-article views plus the helpful / not-helpful split, so they know which docs deflect tickets and which need a rewrite
  • Markdown-rendered messages on both sides of the conversation, including inline ticket-key references
  • File attachments via signed URLs; drag-drop straight onto the reply composer

Live chat widget

Embed real-time chat on any site you control. Zero deps, ~6KB.

  • One-line `<script>` snippet you can drop on any HTML page
  • Customer JS persists session in localStorage; survives page navigation
  • Agent UI at /dashboard/chats with realtime updates via Supabase
  • Brand color, header title, greeting message all configurable
  • "Close + Make ticket" replays the transcript into a real ticket so the conversation persists in your inbox
  • Lives behind the same paywall as everything else, with no metered pricing

Public status page

A public health dashboard powered by your CMDB, with uptime monitors and on-call.

  • One-click enable per workspace; lives at /status/your-slug
  • Asset grid grouped by kind, current status (operational / degraded / offline / retired)
  • Overall posture banner (operational / minor / major / critical)
  • Uptime monitors: active HTTP(S) checks on your own interval with per-monitor timeout, expected-status-code and keyword assertions. Up/down transitions update the linked CMDB asset automatically, notify your team, and record a heartbeat history, with one-click "check now"
  • External uptime checks: monitor from outside your own infrastructure, so an outage that only your customers can see (a routing, DNS, or edge failure that stops your public IP answering) doesn't go unnoticed. Register an off-box runner (a small VM elsewhere or a scheduled CI job) and every check is tagged with the vantage that produced it. When the local check says up but the outside vantage says down, the monitor flags "unreachable from outside" instead of averaging it away
  • On-call rotations: route outage and SLA-breach alerts to whoever is on duty, with weekly or daily rotations and one-click overrides, instead of paging the whole team every time
  • Shifts are calculated from a start date, not generated in advance. Nothing to backfill, no schedule that runs out, and any past or future date answers "who was on call then?"
  • Handoffs hold their wall-clock time through daylight-saving changes; a 09:00 Monday handover never drifts to 08:00
  • Overrides for vacation swaps and "I'll take tonight": a named agent takes the pager for a window, and the rotation resumes the instant it ends
  • A 14-day forward preview generated by the same resolver that does the paging, so the preview matches who will really be paged
  • Per-monitor "page the on-call agent" toggle to keep noisy, low-stakes checks off the pager
  • Outage reminders: while a service stays down, the agent on duty keeps getting paged on your schedule, with the outage duration in the message, and a mid-outage handoff means the new on-call agent gets the next reminder. Strictly bounded: you set the interval and a hard cap on reminders per outage, so an outage sends a handful of pages and then goes quiet no matter how long it runs. Any agent can acknowledge to stop the reminders without resolving anything, and the monitors page shows "Down for 35d 4h" so a broken check stops looking like a month-long outage. Off by default
  • Escalate to on-call as an SLA escalation action, alongside escalate-to-role
  • Safe by construction: no rotation, a disabled one, or one whose members have all left falls back to notifying everyone, and anyone removed from the workspace is skipped rather than paged
  • Declare incidents linked to affected assets; the asset posts to degraded automatically
  • Auto-declare incidents from uptime monitors: flip on "Auto-declare public incident" for any monitor and a failed health check opens a public incident (with its own timeline entry) and emails your confirmed subscribers automatically. It resolves itself the moment the monitor recovers. One incident per outage, never a duplicate, and every auto-managed incident stays fully editable in the dashboard. Opt-in per monitor with a configurable impact and failure threshold
  • Public incident timeline with status updates (investigating / identified / monitoring / resolved)
  • Full public incident-history archive at /status/your-slug/history: every past incident, grouped by month with "Load older" pagination, and each row links straight to its own permalink
  • Per-incident permalinks (/status/your-slug/incidents/:id): a stable, shareable URL for any incident with its full update timeline. The same link is dropped into subscriber notification emails so recipients jump to the exact incident
  • Written postmortems: publish a root-cause retrospective on any incident from the dashboard. It renders below the timeline on the public permalink page, the written retrospective regulated-SaaS buyers expect after a major incident
  • Schedule maintenance windows in advance to give customers a heads-up before planned downtime. Shows as a calm notice (Upcoming / In progress / Completed) that never trips the failure posture or changes any asset status
  • Email subscription for customers who want incident updates, with double opt-in (subscribers confirm their own address before any mail is sent). Confirmed subscribers are emailed automatically when you declare or update an incident, with the incident title, current status, update body, and a one-click unsubscribe link
  • Machine-readable RSS 2.0 + Atom 1.0 incident feeds at /status/your-slug/feed.rss and /feed.atom: follow every incident in a reader, pipe into Slack/Teams, or trigger automation, no email required. The status page emits autodiscovery link tags so readers find them automatically
  • Custom title, subtitle, contact email, optional custom CSS

Organizations / company accounts

Every requester and ticket from one customer in a single view.

  • First-class company accounts that group requesters (contacts) under one organization
  • Automatic membership by email domain: a new contact or inbound-email requester on acme.com auto-joins Acme (subdomains too; free-mail providers excluded)
  • Shared account view: the member roster plus the union of everyone's tickets, with an open-ticket count and recent activity
  • Filter the inbox by organization: every ticket across the whole account in one queue
  • Company-wide portal visibility: give a customer's office manager or IT lead read access to every ticket their company has raised, not just their own. Per-contact and opt-in, so nobody sees a colleague's ticket until you say so; replies stay with the person who raised the ticket, and internal notes never leave the agent side
  • VIP flag and free-text notes per account
  • One-click backfill groups your existing contacts by their company name into draft organizations. Non-destructive, admin-gated, opt-in
  • Merge duplicate contacts: consolidate the same customer's tickets, recurring schedules and company link into one record when the portal, inbound email and your CRM import each create their own copy of the same person. The surviving record keeps its own details and only fills in what it was missing, and the merge is audit-logged
  • Makes the company data your CRM importer already pulls in usable for support work

Assets & CMDB

1 area

CMDB / Asset management

ITIL-style asset tracking, integrated.

  • Asset registry for servers, services, applications, databases, networks, licenses, hardware, endpoints, sites
  • Status badges (active / degraded / offline / retired) for at-a-glance impact triage
  • Free-form JSON metadata per asset: IP, OS, version, anything
  • Link assets to tickets as "affected" or "related" to see incident impact at the ticket level
  • Asset detail page: open any server, service or license and see every ticket it has ever caused, split into affected vs related, newest first
  • Blast-radius counters per asset: open, pending, resolved, SLA-breached, and how many tickets it caused in the last 30 days
  • Live uptime on the asset page when a monitor watches it: up/down, last response time, 24-hour and 30-day uptime percentages
  • One click from an asset to the filtered inbox: every ticket for that asset, composable with your usual status / priority / assignee filters
  • Warranty and renewal dates on any asset, as real date fields rather than a JSON blob, so a lapsing licence, TLS cert, domain or support contract is queryable
  • Colour-coded "expires in N days" / "expired" badge on every dated asset, plus an "expiring soon only" filter on the list
  • "Assets expiring soon" on the agent dashboard: the heads-up arrives before the outage, with your own lead time (0–365 days) per asset
  • Optional auto-renewal ticket: one deduped Task opens the moment an asset enters its lead window, pre-linked to the asset and due on the expiry date
  • Asset picker on every ticket with type-ahead search by name or identifier
  • Full-text search across name, identifier, description
  • Change management — schedule a change with its rollback plan, gate it behind CAB approval, see every upcoming change on one calendar with a warning when two touch the same system, and publish the maintenance window to your status page in a click
  • Three change classes, three paths: standard changes are pre-approved and start immediately, normal changes cannot start until the CAB approves, and an emergency change can start on a written justification that is recorded in the audit log
  • Change calendar with collision detection: two changes touching the same asset in overlapping windows are flagged on both, before the outage rather than after
  • One-click publication: an approved change becomes the maintenance window your customers see, built from the same planned window and the same linked assets, so the announcement and the change record never drift apart

Integrations & API

6 areas

Outbound webhooks

Push ticket events into any system that accepts an HMAC-signed POST — team chat, on-call, automation platforms, your own services.

  • Subscribe per event: created / updated / replied / assigned / resolved / closed / snoozed
  • HMAC-SHA256 signed POSTs (X-Desk-Signature) for verification on your side
  • Per-webhook signing secret, rotateable
  • Configurable retry policy (1-10 attempts) with exponential backoff
  • Custom headers per webhook (e.g. tenant id for the target)
  • Full delivery log: status code, latency, error, and attempt count for the last 50 deliveries per webhook
  • One-click "Test fire" to validate the wiring before going live

Inbound email-to-ticket

Forwarded email becomes a tracked ticket automatically.

  • Per-workspace inbound key embedded in the webhook URL, so no shared secret is needed
  • Auto-parses Postmark, Mailgun, SES and SendGrid inbound shapes plus generic
  • Auto-creates the contact from the From: address (or matches an existing one)
  • Routes to a configurable default ticket type and priority per endpoint
  • Allocates a real ticket key (REQ-103) and threads the email body as the first message
  • Emailed tickets get the same intake as one an agent opens: the SLA clock starts on arrival, your ticket.created automation rules run, and the ticket routes itself to an owner before anyone has to look at the queue
  • Receipt count + last-received timestamp visible on each endpoint

API tokens

Programmatic access without sharing your password.

  • Personal access tokens (`hdsk_…`) usable as Bearer auth on any /api/desk/* endpoint
  • Scopes: read-only, read-write, admin
  • Optional expiry, manual revocation
  • SHA-256 hashed at rest; plaintext shown only at creation time
  • Per-token last-used tracking

Sentry & GitLab integrations

Your error tracker and your repo, wired straight into the queue.

  • Sentry import: run a sync to open a desk ticket for every unresolved Sentry issue, with configurable minimum level (debug → fatal) and environment filter. Imported issues are tracked so re-runs never create duplicates
  • GitLab links: commits and merge requests that mention a ticket key (REQ-101, INC-42) are linked to the ticket via webhook, with a system note recording the ref, title, author and URL
  • Auto-resolve on merge: optionally resolve the referenced ticket automatically when a linked merge request merges, through the same audited resolve pipeline as a human resolve (webhooks + CSAT included)

Hosting suite integrations

CRM, Books and Field, wired in as first-class concepts.

  • Import + search contacts from Hosting CRM
  • Pull a linked invoice from Hosting Books onto any ticket
  • Invoice billable time entries straight to Books
  • Spawn a Field dispatch job from a ticket that needs a tech onsite
  • Soft links: your desk keeps working if a sibling product is disabled

CSV import

Bulk-onboard hundreds of contacts in one click.

  • Upload .csv from the Contacts page; handles quoted fields, commas in values, multi-line cells
  • Accepts headers: `name`, `email`, `phone`, `company`, `notes`
  • Dedupes on email, so you can re-import the same file safely
  • Bounded to 500 rows per batch with a per-row audit

Platform & governance

4 areas

Governance & compliance

Built for regulated SaaS from day one.

  • Tamper-evident, hash-chained audit log on every mutation
  • Filterable audit feed for admins and owners
  • Audit-chain verification endpoint to prove the log is intact
  • CSV audit-log export for external review
  • JSON workspace export: your data leaves with you
  • Optional agent anonymization for customer-facing portal views

Team, workspaces & branding

Multi-agent, role-based, recoverable.

  • Owner / admin / agent / viewer roles with strict role-gated mutations
  • Token-based member invites with expiry and single-use accept
  • Ownership transfer between members
  • Soft-delete a workspace with a restore window
  • Workspace branding: name, brand colour, logo
  • Configurable business hours and holiday calendar
  • Components, fix versions, and sprints: full agile planning primitives
  • 14-day free trial; honest per-seat billing thereafter

Dark mode

Light / dark / system. Your retinas will thank you.

  • Toggle from the topbar; cycles light → dark → system
  • System mode follows `prefers-color-scheme` and re-applies on system change
  • Persists per browser via localStorage
  • Comprehensive coverage including KB, customer portal, and admin pages

Installable web app — mobile and desktop

Install the desk as an app from the browser. No store, no review.

  • Web app manifest with theme color, app shortcuts (+ New, My work, Board)
  • Installable on iOS, Android, macOS, Windows, Chromebook
  • Standalone display mode, with no browser chrome
  • Tab title shows unread notification count when in the background

What you get

All shipped

A configurable workflow editor, AI triage and reply drafting, realtime co-presence, a public status page powered by your CMDB, an embeddable chat widget, inbound web, email, and chat, an immutable audit chain, and live suite-wide integrations to invoicing and field dispatch. All in one product, and every feature is available on every plan.

See it in action

Start a 14-day free trial: every feature, every plan. No card required.