Ticketing Based Customer Support Helpdesk and Shared Inbox

Ticketing System, Helpdesk, Email Management and Analytics at one place. Provide cutting edge customer support and take customer satisfaction to next level.

FreeScout is ticketing based customer support helpdesk and shared inbox

FreeScout Free Helpdesk Software

 

FreeScount is free and open source ticketing system that is a perfect alternative of Zendesk and Help Scout. It is the ideal helpdesk software for the companies who need to give an expert customer support. It provides simple and smooth email integration that transforms your inbox into entirely operational helpdesk system.

FreeScout is PHP (Laravel 5.5 framework) and MySQL based application featured with Slack integration, push notifications, telegram notifications, white-labeling, real-time reports, workflows & SLA. You can easily deploy on every hosting environment even on a shared hosting.

System Requirements

FreeScout is PHP and MySQL / MariaDB. Strongly recommended requirements are following:

  • PHP 7.0 – 7.4
  • MySQL 5.0+ / MariaDB 5.0+ / PostgreSQL
  • Nginx / Apache / IIS

Features

FreeScout is powerful and lightweight helpdesk system to provide excellent customer care. It is definitive choice for entertainment, production, services, manufacturing, construction, gaming related industries. Important features include

Smooth email integration

Email integration permits your email clients to update FreeScout discussions. These commands must be utilized when answering to an email notification. Any content entered will be visible to the client when answering to an email notification. To notify your team members only use the @note command.

Workflows & SLA

Workflows plugin permits to manufacture work processes to order messages, send predefined messages, allocate them to the correct individual and even make SLA-like work processes. Work processes are like Gmail filters or rules in other email clients.

Satisfaction Ratings

Satisfaction ratings plugin let your clients to rate your support and let you view feedback in the reports. Satisfaction Ratings permit you to assess viability of your support team and measure client’s satisfaction.

Slack and Telegram Integration

FreeScout has smooth Slack and Telegram integration that let you immediately post events such as new discussions, client replies and discussion assigned. It also let you assign different mailboxes to different channels / bots.

Other Features

  • Push notifications
  • Web installer & updater
  • Starred conversations
  • Support multiple languages
  • Following a conversation
  • Auto reply
  • Saved replies
  • Notes
  • Email commands
  • Forwarding conversations
  • Moving conversations between mailboxes
  • Phone conversations
  • Sending new conversations to multiple recipients at once
  • Pasting screenshots from the clipboard into the reply area
  • Configuring notifications on a per user basis
  • Open tracking.
  • Tags
  • Editing / hiding threads
  • LDAP integration
  • Search
  • Spam filter
  • Translating tickets
  • Time tracking
  • Custom fields
  • White-labeling
  • Custom folders
  • Real-time reports

Installation Instructions

Installation using Github

Let’s first install nigix with following commands:

sudo apt-get update
sudo apt install nginx

Next, install PHP and required modules:

sudo apt install php7.0 php7.0-mysqli php7.0-fpm php7.0-mbstring php7.0-xml php7.0-imap php7.0-json php7.0-zip php7.0-gd

Next, install MySQL with following command:

sudo apt install mysql-server libmysqlclient-dev

Now, run following command to install git:

sudo apt install git

Login to MySQL and create FreeScout database and user:

CREATE DATABASE `freescout` CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON `freescout`.* TO `freescout`@`localhost` IDENTIFIED BY “XXX”;
EXIT;

Create FreeScout directory and download application from github.

mkdir -p /var/www/html
sudo chown www-data:www-data /var/www/html
cd /var/www/html
git clone https://github.com/freescout-helpdesk/freescout

Change owner and assign permissions to user:

chown -R www-data:www-data /var/www/html
sudo usermod -a -G www-data freescout
find /var/www/html -type f -exec chmod 664 {} \;
find /var/www/html -type d -exec chmod 775 {} \;

Create nigix configuration file:

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/example.com
rm /etc/nginx/sites-enabled/default
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com
sudo nano /etc/nginx/sites-enabled/example.com

Nigix config file should be like following:

server {
listen 80;
listen [::]:80;

server_name example.com http://www.example.com;

root /var/www/html/public;

index index.php index.html index.htm;

error_log /var/www/html/storage/logs/web-server.log;

location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# Uncomment this location if you want to improve attachments downloading speed.
# Also make sure to set APP_DOWNLOAD_ATTACHMENTS_VIA=nginx in the .env file.
#location ^~ /storage/app/attachment/ {
# internal;
# alias /var/www/html/storage/app/attachment/;
#}
location ~* ^/storage/attachment/ {
expires 1M;
access_log off;
try_files $uri $uri/ /index.php?$query_string;
}
location ~* ^/(?:css|js)/.*\.(?:css|js)$ {
expires 2d;
access_log off;
add_header Cache-Control “public, must-revalidate”;
}
location ~* ^/(?:css|fonts|img|installer|js|modules|[^\\\]+\..*)$ {
expires 1M;
access_log off;
add_header Cache-Control “public”;
}
location ~ /\. {
deny all;
}
}

Next, Reload Nigix:

nginx -t
service nginx reload

Install Certbot and enable HTTPS:

apt-get update
apt-get install software-properties-common
add-apt-repository universe
add-apt-repository ppa:certbot/certbot
apt-get update
apt-get install certbot python-certbot-nginx
certbot –nginx –register-unsafely-without-email
certbot renew –dry-run

When asked choose option 2: Redirect – Make all requests redirect to secure HTTPS access. Setup cronjob for auto renewal.

0 12 * * * /usr/bin/certbot renew –quiet

Finally, Open web installer https://example.com/install and follow instructions

Installation using Docker

Pull FreeScout Image from hub.docker.com:

docker pull tiredofit/freescout

Configure Docker-compose.yml:

version: ‘2’

services:

freescout-app:
image: tiredofit/freescout
container_name: freescout-app
links:
– freescout-db
volumes:
### If you want to perform customizations to the source and have access to it, then uncomment this line – This includes modules
#- ./data:/www/html
### Or, if you just want to use Stock Freescout and hold onto persistent files like cache and session use this, one or the other.
– ./data:/data
### If you want to just keep the original source and add additional modules uncomment this line
#- ./modules:/www/html/Modules
– ./logs/:/www/logs
environment:
– VIRTUAL_HOST=freescout.example.com
– VIRTUAL_NETWORK=nginx-proxy
– VIRTUAL_PORT=80
– LETSENCRYPT_HOST=freescout.example.com
– LETSENCRYPT_EMAIL=This email address is being protected from spambots. You need JavaScript enabled to view it.

– ZABBIX_HOSTNAME=freescout-app

– DB_HOST=freescout-db
– DB_NAME=freescout
– DB_USER=freescout
– DB_PASS=freescout

– SITE_URL=https://freescout.example.com
– ADMIN_EMAIL=This email address is being protected from spambots. You need JavaScript enabled to view it.
– ADMIN_PASS=freescout
– ENABLE_SSL_PROXY=FALSE
– DISPLAY_ERRORS=FALSE
– TIMEZONE=America/Vancouver
networks:
– proxy-tier
restart: always

freescout-db:
image: tiredofit/mariadb
container_name: freescout-db
volumes:
– ./db:/var/lib/mysql
environment:
– ROOT_PASS=password
– DB_NAME=freescout
– DB_USER=freescout
– DB_PASS=freescout

– ZABBIX_HOSTNAME=freescout-db
networks:
– proxy-tier
restart: always

freescout-db-backup:
container_name: freescout-db-backup
image: tiredofit/db-backup
links:
– freescout-db
volumes:
– ./dbbackup:/backup
environment:
– ZABBIX_HOSTNAME=freescout-db-backup
– DB_HOST=freescout-db
– DB_TYPE=mariadb
– DB_NAME=freescout
– DB_USER=freescout
– DB_PASS=freescout
– DB_DUMP_FREQ=1440
– DB_DUMP_BEGIN=0000
– DB_CLEANUP_TIME=8640
– COMPRESSION=BZ
– MD5=TRUE
networks:
– proxy-tier
restart: always
networks:
proxy-tier:
external:
name: nginx-proxy

Create an environment file. List of environment available at https://github.com/tiredofit/docker-freescout#environment-variables

Map persistent storage, review data-volumes configuration at https://github.com/tiredofit/docker-freescout#data-volumes

Make sure your desired ports are available and exposed. Finally run docker-compose.

Congrats! You have successfully installed FreeScout.