Skip to content

v0.14.0

Choose a tag to compare

@mortondev mortondev released this 05 Oct 19:07
7fd912c

Quackback 0.14.0 turns the app into a full support platform alongside feedback. There is a shared support inbox with a live messenger, tickets, an AI agent (Quinn) and a teammate Copilot, visual workflows with SLAs, a help center with Ask AI, and public status pages. Admin navigation and styling have been rebuilt around one consistent look, permissions are now granular with custom roles, and the widget, integrations, API and MCP all grew to match. New workspaces start with Feedback and Changelog on. Turn on Support, Help Center and Status in Settings > General (existing workspaces keep what they had).

Upgrading from 0.13? Read Before you upgrade first. It covers the backup, the new database requirements and the configuration changes.

Before you upgrade

0.14 is a large release. Read this section first; the full guide is in the docs under Self-hosting > Upgrading from 0.13 to 0.14.

  • Back up first - Take a database backup (pg_dump) and a copy of your object storage. There is no downgrade path: 0.13 cannot run against the upgraded database, so rolling back means restoring the backup.
  • Stop the old version - Stop the 0.13 container before starting 0.14. Do not run the two side by side.
  • Let the first start finish - The first start runs about 140 database migrations and logs each one. On a large install this can take several minutes. Do not restart the container while it runs; nothing is applied until the whole set succeeds, and search indexes are built afterwards.
  • Database requirements - PostgreSQL 14 or newer with pgvector 0.5.0 or newer and pg_trgm. The bundled images already meet these. If yours doesn't, startup stops before changing anything and says what to fix.
  • Use a direct database connection - DATABASE_URL must be a direct or session-mode connection, not a transaction-mode pooler, because live updates use Postgres LISTEN/NOTIFY. Quackback logs an error if it detects this.
  • Redis is no longer used - Background jobs now run inside Quackback itself. Let pending jobs finish before upgrading, then remove REDIS_URL and the Redis or Dragonfly service and volume.
  • One email provider - Configure exactly one sending provider: SMTP, Amazon SES or Resend. If more than one is set, Quackback will not start and the log names the variables to remove. To keep a Resend key only for receiving email while SMTP or SES sends, set EMAIL_INBOUND_PROVIDER=resend.
  • Reverse proxies - Set TRUSTED_PROXY_HOPS=1 if Quackback runs behind nginx, Caddy, Traefik or a Cloudflare tunnel (2 behind a CDN plus a proxy). Without it, every visitor shares one rate limit, including sign-in attempts, so sign-in can be throttled for everyone on a busy install. Leave it at 0 if clients connect to Quackback directly. If your proxy sets one client-address header itself (for example nginx proxy_set_header X-Real-IP $remote_addr;), set TRUSTED_CLIENT_IP_HEADER=x-real-ip instead.
  • SECRET_KEY is required - The production compose file refuses to start without it. Keep your existing value.
  • Bundled object storage - The production compose file now uses Silo instead of MinIO, which no longer publishes images. Follow the Silo steps in deploy/self-hosted/README.md.

What changes when you upgrade

  • Existing files keep working - Files uploaded before upgrading (avatars, logos, post images, attachments) are copied into the new storage layout automatically in the background on first start, and files uploaded during a rolling upgrade are picked up for a day. Originals are kept, so an earlier backup can still be restored. Links to older chat and widget images keep working, including links in emails that were already sent.
  • Single sign-on keeps working - SSO and custom OIDC providers that existed before 0.14 keep sending their original redirect URI (/api/auth/oauth2/callback/<id>), so no change is needed at your identity provider. New providers use /api/auth/callback/<id>. To move an older provider, add the new URI at your identity provider, then open the provider, choose Edit, select Switch to new URI and test the connection again.
  • Roadmaps follow status - Roadmaps now show posts by status instead of hand-placed lists. Existing placements are kept in a post_roadmaps_archived table for reference and will be removed in a later release.
  • Roles - Admins become Owners and members become Managers. Managers can now also manage portal users, segments, board access and the help center, and export posts. Review your team's roles in Settings.
  • Sign-ups - The "open sign-up" setting now applies to every sign-in method, including Google, GitHub, OIDC and magic links.
  • Help center and messenger - A help center or messenger you had switched off stays hidden after upgrading. Turn them on in Settings when you are ready.
  • AI spam filter - The new AI spam filter is off on upgraded installs. Turn it on in Settings > Channels > Email.
  • Widget identify - identify now requires a signed ssoToken; unsigned { id, email } calls leave the visitor anonymous. Inline email capture in the widget was removed.
  • API - IDs from earlier releases are still accepted, but responses use the new prefixes (for example post_status_, post_comment_, conversation_msg_). isPublic on roadmaps is accepted as a deprecated alias for visibility. Conversation status pending is now snoozed.
  • Slack - The Slack app's request URLs changed to /api/integrations/slack/hooks/... and installs need to be re-authorised.
  • Importers - The command-line import scripts for other feedback tools were removed. Import with CSV from Settings > Imports.
  • AI feedback extraction - The experimental AI feedback extraction feature and its Slack channel monitors were removed, along with their data.
  • Custom SQL - Some tables were renamed (for example votes to post_votes and comments to post_comments). Update any reports or scripts that query the database directly.
  • Theme - Portals use the new single theme. Check any custom CSS.
  • Email footer - Outgoing emails include a small "Powered by Quackback" footer.
  • Telemetry - The anonymous daily usage ping now includes more banded counts and is sent to PostHog. Every field is listed in docs/telemetry.md. Opt out with DISABLE_TELEMETRY=true.
  • AI providers - Summaries, duplicate detection, sentiment and auto-tagging work with OpenAI-compatible servers that don't support JSON schema output.
  • Sign-in rate limits - Sign-in limits now use the same client address as the rest of Quackback, so one client can no longer lock everyone out and a forged X-Forwarded-For header no longer bypasses the limit.
  • Sessions - Some users will need to sign in again.

What's new

Support inbox and messenger

  • Unified support inbox - Conversations and tickets live in one list and thread with shared views, filters, a details panel and keyboard shortcuts. Turn it on in Settings > General.
  • Messenger in the widget - Visitors chat with your team from the widget, with unread badges, a proactive greeting bubble, and a note when the team is back.
  • Group threads - Add a second customer to a conversation so everyone receives every reply, and remove them again later.
  • Macros everywhere - Open the macro picker with M, or apply a macro from the bulk bar to reply to every selected conversation.
  • Bulk actions and snooze - Tag, change status or reply to many conversations at once, and snooze with natural-language times like "tomorrow morning".
  • Better inbox search - Results rank by relevance and show the matching keyword in context.
  • Spam filtering - Obvious spam is filed to a restorable Spam view, with trusted senders you manage in settings and bulk restore or delete.
  • Conversation data - Custom attributes, managed tags, AI attribute detection and "Created by me" views.
  • People and companies - Company directory and profiles, richer user profiles, duplicate detection with lead merge, admin tags and a Country column.
  • Email channel - Receive and send support email from your own address with verified sending domains, threaded replies, attachments and inline images. Set it up under Settings > Channels.

Tickets

  • Tickets alongside conversations - Durable, trackable requests with custom ticket types, per-type fields, statuses and customer-visible stages. Turn it on in Settings > General.
  • Customer ticket view - Requesters follow their tickets from the widget and portal with stage updates and replies.
  • Watchers and activity - Watch or mute a ticket and see a full activity log of every change.
  • Tracker links - Create or link issues in your tracker from a ticket, and stage changes flow back to every linked customer.
  • Ticket emails - Lifecycle and SLA emails thread properly and accept replies by email.
  • Intake forms in chat - Post a ticket form inside a conversation and collect the request as a card.

Automation and AI

  • Quinn AI agent - Quinn answers customers in the messenger from your knowledge, takes approved actions, and hands off to a person when needed. It needs an AI provider, and you can pause its replies under Settings > Agent.
  • Knowledge sources - Ground Quinn on articles, snippets, uploaded PDFs and Word documents, public URLs and past conversations.
  • Custom actions and connectors - Build step-by-step actions and connect external systems, with approval for sensitive steps.
  • Improve-answer loop - Corrections you make become snippets Quinn can reuse.
  • Copilot for teammates - A sidebar in the inbox drafts answers with cited sources, and Modify lets you shorten, translate or redraft before inserting. You can also save an answer as a macro or summarize a thread.
  • Two-way translation - Read and reply to customers in their own language.
  • Visual workflows - Build automations on a canvas with triggers, conditions (country, locale, plan, keywords, ticket type), customer-facing messages, timers and webhooks, with version history and dry runs.
  • SLAs and office hours - Set response and resolution targets with business hours and holidays, see countdowns in the inbox, and report on attainment.
  • AI tagging - Describe a tag and new posts are tagged automatically, with a one-click backfill for existing posts.
  • Support reports - Conversation volume by channel, first-response and time-to-close trends, per-teammate performance and satisfaction for AI-handled chats.

Help center

  • Ask AI - Visitors get a streamed answer with inline citations, and a graceful reply when nothing matches.
  • Custom domain and indexing - Serve the help center on your own domain with redirect rules and indexing control.
  • Per-article languages - Add article translations, with AI-drafted translations to start from.
  • Audience control - Limit categories or single articles to chosen segments.
  • Article insights - See article performance, search terms with zero-result tracking, and the reasons readers give for unhelpful votes.

Status pages

  • Public status page - Components, incidents, scheduled maintenance, uptime history and subscriber notifications, visible to everyone or limited to segments. Turn it on in Settings > General.
  • Incident tools - A lifecycle stepper for incidents, separate report and schedule dialogs, templates and drag-to-organize services.

Feedback and roadmap

  • Saved views - Save an inbox filter set as a named view, with counts on filter options.
  • Moderation and bulk status - A moderation queue in Feedback, bulk status changes, and priority sorting.
  • Pin posts - Pin a post to the top of its public board.
  • Board custom fields - Collect extra answers on the public submission form.
  • Video uploads - Attach native videos to feedback.
  • Roadmap views - Configurable roadmap views, comment counts on cards, and smoother drag and drop.

Changelog

  • Categories and subscribers - Organize entries into categories and send publish emails to subscribers, with a segment picker for targeted announcements.
  • Richer entries - Featured hero images, full formatted email bodies, and a top-viewed table.

Admin and permissions

  • Custom roles - Create roles from granular permissions and assign them to members, invites and API keys.
  • One consistent admin - A new two-tone theme, Home in the rail, one toolbar across work areas and flat Settings navigation.
  • Notifications - Per-type, per-channel preferences, archive and filter, and links that jump to the right place.
  • Onboarding - A goal-based start with a launch checklist.
  • Visitor analytics - Pageview and visitor reports with no cookies, from portal and widget traffic.

Sign-in and SSO

  • Simpler OIDC setup - Connect, test and enable, with scopes you can edit and a clear view of the claims your provider returns.
  • Providers without email - Sign in works when an identity provider withholds an address, and people are asked for a contact address.
  • Account linking - Guided email confirmation recovers sign-ins that could not be linked.

Integrations

  • Two-way status sync - Linked issues and statuses stay in step, with search across linked items.
  • GitLab self-hosted - Point issue sync at your own GitLab instance.
  • GitHub issues as conversations - Inbound GitHub issues sync and can be linked from the admin.
  • Slack and webhooks - More events, including votes, ticket replies and notes, and retries that continue for about seven hours.

API and MCP

  • Writable REST for support - Create and update tickets, conversations and moderation through the v1 API.
  • More endpoints - Companies (with filters and member counts) and post voters.
  • Ticket tools in MCP - Create, reply, note and link tickets from your AI client.
  • Scoped OAuth - MCP clients get least-privilege scopes, and write access implies read.

Widget

  • Home tab - Cards for recent tickets and changelog, per-audience cards and a hero backdrop with patterns and colors.
  • Launcher controls - Choose its position and label, and badge it for unread messages and updates.
  • Easier install - A two-step install that keeps your signing secret out of chat.

Localization

  • New languages - Dutch and Polish join the interface languages.
  • Local dates - Dates and relative times follow the app's language.
  • Translate customer-facing text - Edit widget copy per language in admin.

Self-hosting

  • Simpler stack - Background jobs run inside Quackback on Postgres, so Redis is no longer needed, and the bundled object storage is Silo.
  • Scale out with roles - Run separate web and worker containers with QUACKBACK_ROLE.
  • Safer upgrades - Startup checks database requirements before migrating, logs each migration, and rebuilds interrupted search indexes.
  • Data export and import - Workspace ZIP export and a mapping wizard with dry runs for imports from other tools.
  • Faster pages - Fewer requests and queries across the app.