Install FreeScout
Give the company a shared customer inbox where every question becomes a case with a status and an owner, instead of getting stuck with one person.
Last reviewed:
What FreeScout is
A shared inbox for the company. Instead of customer emails sitting with whoever happened to create the address, they land in FreeScout, where everyone can see them. Every email becomes a case with a status: unanswered, assigned to someone, closed.
It sounds like a small thing, and it is not. A company that has a trade fair on Thursday gets thirty questions in three days, and without order half of them end up in one person's inbox and are never answered. With a shared inbox you can see in black and white what is unanswered, and two people do not answer the same customer twice.
FreeScout also shows the full history with a customer in one place. Whoever answers does not need to ask what the matter was about last week.
This is a server program
FreeScout needs a web server and a database. Docker handles both. If you do not have Docker, start with Install Docker.
The basic program is free and open source. Extra features are sold as modules by the project itself, and their prices are listed at freescout.net. The image below is not maintained by FreeScout but by an outside party, and it is the one the project's users run in practice.
Windows and Linux Mint
The same file on both. Create a folder called freescout in the home folder, that is in C:\Users\ert-namn on Windows and in /home/ert-namn on Linux Mint. Put a text file in the folder called compose.yaml:
services:
db:
image: mariadb:11
environment:
MARIADB_ROOT_PASSWORD: BYT_UT_MIG_1
MARIADB_DATABASE: freescout
MARIADB_USER: freescout
MARIADB_PASSWORD: BYT_UT_MIG_2
volumes:
- dbdata:/var/lib/mysql
restart: unless-stopped
freescout:
image: tiredofit/freescout:latest
depends_on:
- db
ports:
- "8080:80"
environment:
DB_HOST: db
DB_NAME: freescout
DB_USER: freescout
DB_PASS: BYT_UT_MIG_2
SITE_URL: http://localhost:8080
ADMIN_EMAIL: foretagets-adress@example.com
ADMIN_PASS: BYT_UT_MIG_ADMIN
TIMEZONE: Europe/Stockholm
volumes:
- fsdata:/data
- fslog:/www/logs
restart: unless-stopped
volumes:
dbdata:
fsdata:
fslog:
The two lines called BYT_UT_MIG_2 are the database password and must be exactly the same. BYT_UT_MIG_1 is used only internally by the database, and BYT_UT_MIG_ADMIN is your own. Use a long password for the last one, because that is the account that can see everything.
Open the terminal and go into the folder. On Windows that is PowerShell:
cd $HOME\freescout
On Linux Mint the program is called Terminal:
cd ~/freescout
Then start:
docker compose up -d
If Docker cannot find a compose.yaml, you are in the wrong folder, and the cd line is what is missing. Otherwise the first start takes a couple of minutes while the database is filled. Then open http://localhost:8080 and log in with the address and password above. We just ran this file, and FreeScout started right away with the latest version available at the time.
Here the limitation is bigger than in most other guides. The whole point of FreeScout is that the company shares an inbox, and localhost always means the computer you are sitting at: if you forward the address, the recipient ends up on their own machine. An installation on your own computer is enough to try it out and see what the cases look like. If the company is to answer customers together, FreeScout must run on a machine that is switched on, be reached at that machine's address, and SITE_URL must point to the same address.
Three things to do first
- Connect the company's real email address under Manage and Mailboxes. For most providers, the settings are enough to fetch and send mail. If you use Gmail, Google Workspace or Microsoft 365, the password is no longer enough, and you need FreeScout's OAuth modules for Google and Microsoft respectively. Without the right details, FreeScout is an empty inbox that never receives anything.
- Invite the rest of the company as users and decide who is the administrator. Two administrators is about right. If everyone is an administrator, someone will change something nobody understands.
- Send an email to the address from the outside, from your personal email, and check that it shows up as a ticket. Reply to it and check that the reply arrives with the right sender. That is the whole chain tested in five minutes.
The most common trap
Leaving the emails with the original provider while FreeScout fetches them. Then every inquiry exists in two places, and someone answers on the phone while someone else answers in FreeScout. Decide on one path in and stick to it. Everyone in the company should stop reading customer emails directly as soon as FreeScout is running.
The second trap is SITE_URL. That line controls the links in the emails FreeScout sends, meaning invitations and notifications. If it says localhost but the company reaches the system at an IP address, every link leads to the wrong place, and it looks like the invitation is broken. Enter the address you actually use and run docker compose up -d again.