FreeScout

Run your own help desk and shared inbox — a fully self-hosted, open-source alternative to Zendesk and Help Scout with no per-agent fees.

4.4Kstars
685forks
GNU AGPLv3
PHP

FreeScout is a self-hosted, open-source help desk and shared inbox built with PHP and the Laravel framework. It gives businesses and teams a complete customer support platform they fully own — no vendor lock-in, no per-seat pricing, and no data handed to third-party services. It was built from scratch and is not derived from Help Scout or Zendesk code.

At its core, FreeScout handles multi-mailbox email support with automatic email fetching, conversation threading, collision detection (so two agents never reply simultaneously), internal notes, auto-replies, and open tracking. Every conversation — whether it originated from email, phone, chat, or a messaging app — is unified into a single timeline.

Beyond the core, FreeScout’s modular architecture supports an extensive ecosystem of official and community modules. These add live chat, WhatsApp and Telegram integration, Slack notifications, CRM fields, Kanban boards, SAML SSO, LDAP authentication, knowledge base, time tracking, custom reports, and mobile apps for iOS and Android. The REST API and webhook system connect FreeScout to thousands of external tools via Zapier and Make.

FreeScout is deployable on any standard LAMP or LEMP server — including shared hosting — and ships with a web-based installer and self-updater that make maintenance accessible without DevOps expertise. Docker, Cloudron, and one-click panel installers (Softaculous, Fantastico) are also available.

What You Get

  • Multi-Mailbox Shared Inbox - Connect multiple email addresses to separate mailboxes, with team members collaborating on the same queue without stepping on each other thanks to built-in collision detection.
  • Unified Conversation Timeline - Every customer interaction — email reply, internal note, phone log, or chat message — is threaded into a single chronological conversation regardless of channel origin.
  • Web Installer and Self-Updater - A browser-based installer walks through the setup, and the built-in updater lets you apply new releases from the UI without touching the server command line.
  • REST API and Webhooks - A fully documented REST API and outbound webhooks let you integrate FreeScout with CRMs, billing tools, and automation platforms like Zapier and Make.
  • Mobile Apps (iOS and Android) - Native mobile apps mirror all web functionality including module features, push notifications, and clipboard screenshot pasting for quick replies on the go.
  • Microsoft Exchange OAuth Support - Authenticates with modern Microsoft 365 mailboxes using OAuth, removing dependency on legacy SMTP/IMAP app passwords.
  • Modular Ecosystem - Official and community modules extend the platform with live chat, WhatsApp, Telegram, CRM fields, SAML SSO, LDAP, Kanban boards, knowledge base, and time tracking.
  • Multi-Language Interface - Ships with over 30 supported languages including English, German, French, Japanese, Chinese, Russian, and Arabic, configurable per agent.
  • Push Notifications - Real-time browser and mobile push notifications alert agents to new conversations and replies without requiring a page refresh.
  • Forwarding, Merging, and Moving Conversations - Agents can forward threads to external parties, merge duplicate conversations from the same customer, or move tickets between mailboxes.

Common Use Cases

  • SaaS company replacing Zendesk - A software team migrates from Zendesk to FreeScout using the built-in migration tool, preserving ticket history while eliminating per-agent subscription costs and retaining full control of customer conversation data.
  • E-commerce stores managing order support - An online retailer connects FreeScout to their WooCommerce store to automatically create support tickets from order emails and route them to the right team member based on mailbox rules.
  • Agencies running client-facing support - A digital agency sets up separate mailboxes for each client, assigns agents to specific queues, and uses the REST API to sync ticket status into their project management tool.
  • Nonprofits handling donor and volunteer inquiries - A nonprofit deploys FreeScout on a low-cost VPS to manage email inquiries from donors and volunteers, using custom fields and tags to track engagement history without paying per-seat fees.
  • Teams centralizing multi-channel messaging - A support team installs the WhatsApp and Telegram modules alongside the core email inbox, giving agents a single interface to handle messages from all channels without switching between apps.
  • Privacy-focused organizations - A healthcare or legal services firm self-hosts FreeScout to keep all customer communications on infrastructure they control, using S/MIME encryption and IP restrictions to meet compliance requirements.

Under The Hood

Architecture FreeScout is built as a monolithic Laravel application structured around a shared-mailbox domain model. The core entities — Conversation, Thread, Customer, Mailbox, and Folder — are Eloquent models that carry significant business logic alongside their data mapping responsibilities. Conversations aggregate threads from multiple sources (email, phone, chat, custom), and the event system uses dedicated event classes for state transitions such as status changes, customer changes, and user replies. A Laravel Modules package partitions optional functionality into isolated module directories that hook into the core via service providers, route registration, and Eventy action/filter hooks — a WordPress-style plugin contract that allows modules to modify email rendering, add sidebar panels, and intercept system behavior without patching core files. The ConversationsController carries a substantial amount of orchestration logic that would benefit from service-layer extraction, and the console command layer handles the critical email-fetch workflow synchronously. Overall the architecture is purposefully approachable for PHP developers with Laravel familiarity, trading strict layering for deployment simplicity.

Tech Stack The backend is PHP 7.1+ running on Laravel 5.5 with Symfony components underpinning routing, console, and HTTP handling. Email is fetched via the webklex/php-imap library and sent through a SwiftMailer integration with custom overrides for FreeScout-specific message ID conventions and spam-filter avoidance. The database layer supports MySQL, MariaDB, and PostgreSQL via Doctrine DBAL with standard Laravel migrations. Frontend assets are compiled through Laravel Mix and Webpack, with a lightweight JavaScript layer handling real-time polling for conversation list refreshes and push notification display. The Eventy package provides a filter/action hook system, and nwidart/laravel-modules enables the plugin architecture. Watson Rememberable adds query-result caching. Deployment targets range from shared cPanel hosting to Docker containers and one-click Cloudron installs.

Code Quality The test suite covers both unit and feature scenarios using PHPUnit, with tests for email variable rendering, IMAP message parsing, configuration validation, spam-assassin pattern avoidance, and conversation customer changes — targeted coverage of the areas most likely to regress. The overall footprint is limited relative to the codebase size, leaving the majority of request-handling paths untested by automation. Inline PHPDoc comments are abundant in model and helper files, aiding navigation. Error handling is mixed: structured exception classes exist alongside direct error string propagation in some paths. There is no static analysis tooling configured (PHPStan, Psalm) and no code style enforcement beyond a phpcs.xml that is present but not integrated into CI. Active security maintenance is demonstrated by a formal security advisory program, regular CVE fixes across dependencies, and a dedicated SECURITY.md — an unusual level of security discipline for a community PHP project.

What Makes It Unique FreeScout’s most distinctive technical property is the combination of extreme deployment accessibility with a genuinely extensible plugin contract. Running on shared hosting with no minimum CPU or RAM requirement removes the infrastructure barrier that stops small teams from self-hosting comparable tools. The Eventy hook system gives third-party module authors stable extension points across email rendering, conversation actions, and UI panels without forking core — more than 100 official and community modules have been built on top of it. The built-in web installer and self-updater mean operators can maintain the system through the browser, matching the operational simplicity of SaaS while retaining data ownership. The unified conversation model that threads email, chat, phone, and messaging-app interactions into a single timeline is implemented at the schema level rather than as a bolt-on, making cross-channel context available throughout the codebase.

Self-Hosting

FreeScout is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). This means the software is free to use, modify, and self-host for any purpose including commercial use. The AGPL’s copyleft clause requires that if you distribute a modified version or run a modified version as a networked service accessible to others, you must make your modified source code available under the same license. For organizations running FreeScout privately for internal support operations, this clause has no practical effect — you are not distributing or offering the software as a service to third parties. Developers building commercial modules or integrations that they distribute separately should review the AGPL boundary carefully with their legal team.

Running FreeScout yourself requires a web server (Nginx or Apache), PHP 7.1 through 8.x, and a MySQL, MariaDB, or PostgreSQL database. The system has no minimum CPU or RAM requirements and is documented to run on shared cPanel hosting — a meaningful distinction from competitors that mandate VPS or container infrastructure. The browser-based installer handles initial database setup, and the built-in updater applies new releases from the admin UI. You are responsible for scheduling the email-fetch cron job, managing SSL certificates, configuring SMTP outbound settings, handling database backups, and monitoring server uptime. Email deliverability tuning (SPF, DKIM, DMARC) is your responsibility, as is keeping the server’s PHP version within the supported range as PHP releases end of life.

FreeScout offers an official cloud-hosted tier at freescout.net for teams that want the software without the infrastructure overhead. The cloud version eliminates server management, provides managed upgrades and backups, and includes support from the FreeScout team — things the self-hosted version does not offer by design. Premium modules (live chat, WhatsApp, SAML SSO, Kanban, and others) are sold separately on the FreeScout marketplace and work identically on both self-hosted and cloud deployments. Self-hosters who purchase modules own their licenses and can run them on their own servers; the trade-off compared to cloud hosting is that you handle all operational concerns yourself with community forums and GitHub issues as your primary support channel rather than a dedicated support team.

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack

No spam. Unsubscribe anytime.

Join 750+ subscribers
No spam. Unsubscribe anytime.

Search