Skip to content

libredesk

Communication & Email

Modern open‑source, self‑hosted omnichannel customer support desk combining live chat, email, and more in a single binary

Go Latest v2.3.1 · 2d ago Security brief →

Features

  • Unified omnichannel inbox for live chat, email, and other channels
  • Embeddable real‑time live chat widget on websites
  • Granular role‑based permissions and custom automation rules

Recent releases

View all 12 releases →
No immediate action
v2.3.1 Mixed

Duplicate request fix + deps

Review required
v2.3.0 Mixed
Auth RBAC

Bulk actions + inline images + contact notes + WS

v2.2.1 New feature
Notable features
  • Conversation status categories (open, waiting, resolved) with correct behavior for custom statuses
  • Admin table search and virtualization for responsive performance with large datasets
  • Reply-To header configuration for email inboxes to route replies to different mailboxes
Full changelog

What's new

  • Conversation status categories - every status (built-in or custom) now belongs to one of three categories: open, waiting, or resolved. Categories tell the system how a status should behave: open statuses count toward an agent's active conversation total and respect team max-assignment limits. Previously this behavior was hard-coded to the built-in Resolved / Closed names, so custom statuses you created did not participate. Now any custom status you add behaves correctly based on the category you pick.
  • Search on admin tables - admin datatables now have a search box.
  • Virtualized admin tables - admin datatables only render visible rows, so they stay responsive on large lists.
  • New conversation created_at filter for views - with range support.
  • Reply-To on email inboxes - set a Reply-To address to route customer replies to a different mailbox than the SMTP From address.
  • Prompt to tag on reply - new inbox setting that nudges agents to add tags when replying, so categorization happens at the moment of context.
  • Configurable session lifetime - agent session duration can now be configured from config.toml instead of being fixed.

What's fixed

  • Resolved or closed conversations no longer reopen due to a stale snoozed_until.
  • SMTP pool wait timeout set on the inbox form was not persisting and silently fell back to the default; it now saves correctly.
  • Fixed a rare race where idle detection could overwrite an agent's away_manual or away_and_reassigning state.
  • Auto-assigner no longer stalls when the first picked agent is capped, and now handles teams with no agents.
  • Fixed incorrect avatar URL being saved for agents when using the S3 store.

Upgrade notes

  • Always take a database backup before upgrading.
  • Follow the steps here.

Changelog

  • feb23fae fix new inbox create dropping enabled/csat_enabled/secret/linked_email_inbox_id
  • bf69b56e fix prompt_tags_on_reply not persisting on email inbox creation
v2.2.0 Mixed

Skip this version and upgrade directly to v2.2.1.

Full changelog

Skip this version and upgrade to v2.2.1 directly

Changelog

  • be7369d6 Update widget unread count style
  • ea4f8d75 cap unread message count badge at 9+ since backend caps at 10
  • c3d1dbe5 Merge pull request #300 from abhinavxd/reply-to-addr
  • b06a5151 disable plus addressing toggle for microsoft inboxes instead of hiding, preventing accidental disable on re-save
  • 971ec49c enable datatable search on all admin tables, restrict global filter to text columns
  • ffa5a22f fix s3 avatar_url storing bucket path instead of /uploads/ Trim spaces around reply to config
  • dce33238 exclude inbox reply_to from reply recipients to prevent self-loop
  • 3d2da2a1 add reply_to on email inboxes for routing replies off the SMTP From domain
  • 38c14808 fix view greater/less than date filter including boundary-day rows
  • 85795708 fix inbox form binding wait_timeout to wrong key, never persisting SMTP pool wait timeout
  • 467a62b0 fix snoozed_until leak causing resolved/closed conversations to reopen
  • bfe7cef6 add global search to datatable with per-table opt-out
  • dd6c8f93 add conversation.subject_ref_format config for customizing outgoing email subject marker
  • 8ebd7d7e cap macro command palette list at 200 and scope highlight observer
  • 3ba8ab0a prevent idle detection from overwriting away_manual/away_and_reassigning
  • 627c4a7c Merge pull request #293 from abhinavxd/category-statuses
  • ed4bac61 return error on default status update instead of silent no-op
  • 10129495 Merge remote-tracking branch 'origin/main' into category-statuses
  • 2d3958fe Merge pull request #294 from abhinavxd/more-view-filters
  • 38a7fd69 update mig ver
  • b658df8d Extract LoadingOverlay component for admin spinner/dim pattern
  • bf63a873 use constants from filterConfig for operators.
  • db8d099e Prevent Enter key from submitting automation rule form
  • 15021bf2 Make session lifetime configurable
  • 06b36b74 Add prompt-to-tag-on-reply inbox setting
  • bcd93514 Fix caret overflow in ComboBox trigger for long labels
  • 66db129b Refetch conversations when the open view is edited
  • 68a587bc Remove filter value when operator changes from / to between
  • c16ad26d Add Range Calendar shadcn component for filters
  • 7aa48641 Fix spinner position in admin panels
  • 5bbd0f7c Increase default rate limits
  • 8090309e Fix autoassigner delaying conversation assignment when first picked agent is capped Handle cases where teams do not have any agents
  • 79dc693c Fix large tag names expanding outside tag badge
  • aa9e4cda feat: add conversation status categories and update related logic.
  • 1562f772 Update README.md
  • 8f5d80f6 Update README.md
  • 21cb6a25 Update README.md
  • 00785c60 WIP: More filters to views Virtualize agent list and tag list.
  • 30b596e1 Update ROADMAP.md
  • 088a5469 Update ROADMAP.md
  • 108d7a7c Merge pull request #285 from abhinavxd/dependabot/npm_and_yarn/frontend/qs-6.15.1
  • 0b7cfe2a Merge pull request #284 from abhinavxd/dependabot/npm_and_yarn/frontend/vite-6.4.2
  • 50ebcec3 build(deps): bump qs from 6.13.1 to 6.15.1 in /frontend
  • b4de085f build(deps-dev): bump vite from 5.4.21 to 6.4.2 in /frontend
  • 26bb17a5 Merge pull request #281 from abhinavxd/dependabot/npm_and_yarn/frontend/axios-1.15.0
  • f6b2162d build(deps): bump axios from 1.13.5 to 1.15.0 in /frontend
v2.1.1 Bug fix

Minor fixes and improvements.

Full changelog

What's fixed

  • Chat widget occasionally not appearing on page load when served from browser cache.

Upgrade

  • Always take a database backup before upgrading.
  • Follow the steps here.

Changelog

  • c645df82 Fix widget auto-init race when script is served from memory cache
  • e3b82f03 Update README.md
  • c0833550 Update ROADMAP.md
  • 212f0dd4 Update readme

Full Changelog: https://github.com/abhinavxd/libredesk/compare/v2.1.0...v2.1.1

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

About

Stars
2,539
Forks
187
Languages
Go Vue JavaScript

Install & Platforms

Install via
docker binary

Beta — feedback welcome: [email protected]