Skip to content

Introducing opendesk

An open-source helpdesk with shared inboxes, live chat, a knowledge base and a public API, all updating live. Run it on our cloud or on your own servers.

By
The opendesk team
Published
Reading
3 min

Support software holds some of the most sensitive conversations a company has: complaints, refunds, bugs, account problems. It is also where small teams feel tool sprawl most, with email in one place, chat in another and answers in a third.

opendesk is our answer to both. It is a helpdesk you can read, run and own.

What it does

opendesk turns every way customers reach you into one queue of tickets.

  • Shared inboxes. Forward support@ to opendesk, or connect Google, Microsoft 365 or any IMAP account. Replies go out through your own mailbox, so customers see your address and your signature.
  • Live chat. A small widget for your site. Chats land in the same inbox as email, with typing indicators in both directions.
  • Knowledge base. Write articles, group them into collections and publish them to a public help center that customers can search.
  • Automations and SLAs. Route, tag and prioritise tickets as they arrive. Put first-reply and resolution targets on each priority and see breaches before they happen.
  • Reports and CSAT. Volume, median response times, SLA breaches and satisfaction, by day, channel and agent.
  • AI. Reply drafts in your voice, summaries, a copilot, auto-triage, translation, semantic search and an answer bot in the widget that only answers from your published articles. Customer content is never used to train models.

Support for customers everywhere

Customers write in their own language. opendesk detects it, translates messages for your team, and drafts replies back in the customer’s language. The chat widget speaks 13 languages. A small team in one timezone can support customers worldwide.

Live by default

The thing we cared most about is that a helpdesk is shared. Two people answering the same customer is the most common way support goes wrong, and it usually happens because one screen is out of date.

In opendesk every change is written as an event in the same database transaction as the change itself. Those events are numbered per workspace and pushed to every open browser through a realtime gateway. If a browser misses some, it notices the gap in the numbers and fetches what it missed. Presence shows who is viewing a ticket and who is replying, so collisions are visible before they happen.

The same events go to webhooks, signed with HMAC-SHA256, so your own systems see what your team sees.

API-first, for real

The opendesk web app is a client of the public REST API. There is no private API behind it. If the app can do something, so can your code, with an API key scoped to exactly what it needs.

curl https://api.opendesk.sh/v1/tickets?status=open \
  -H "Authorization: Bearer od_live_..."

The server generates an OpenAPI 3.1 spec, and the API docs cover authentication, pagination, idempotency, webhooks and realtime.

One codebase, two ways to run it

opendesk Cloud and self-hosted opendesk are the same code. There is no community edition with the good parts taken out.

Self-hosting is one command on a Linux server with Docker:

curl -fsSL https://opendesk.sh/install.sh | sh

It sets up opendesk, the realtime gateway and Postgres behind Caddy on your domain, with HTTPS. Postgres is the only stateful dependency: background jobs and the event log live there, and the message bus runs inside the opendesk binary. Upgrades are a pull and a restart, because migrations run at boot.

If you would rather not run servers, opendesk Cloud runs it for you. It is free forever for one mailbox and one person, and $18 per user per month for everything unlimited.

Built to be trusted

opendesk connects to people’s mailboxes, so we hold it to a written set of security rules: Argon2id passwords, two-factor, short-lived purpose-bound tokens, strict workspace isolation, encrypted credentials, sanitized HTML and an audit log. Because the code is public, you do not have to take our word for any of it. The security page lists the controls.

What is next

This is the first release. We will keep shipping in the open: every change lands in the releases on GitHub and in the repository first.

Start for free on the cloud, run it yourself, or star it on GitHub. Tell us what is missing.

Keep reading

Give every customer a calm, good answer.

Start on the cloud in a minute, or self-host it tonight. It is the same code either way.

Start free
$curl -fsSL https://opendesk.sh/install.sh | sh