# Introduction

## Thank you

For purchasing the FAST plugin!

## Requirements

We highly recommend running the latest version of WordPress. The minimum requirement is version 4.7. Make sure that your server meets the minimum requirements to run WordPress as well.

For Email Piping to work your server will need to have the PHP IMAP extension enabled

## License

All licenses on the Envato Market sites are for a single use. If you are going to use FAST on one domain, or multiple subdomains, you will only require one License. If you are going to use FAST on multiple domains, then you will need to purchase a separate License for each domain.

# Getting Started

## Downloading

The first thing you will need to do to get started will be to download the plugin zip file from CodeCanyon.

- Log in to the CodeCanyon site using the username and password that you used to purchase the FAST plugin.
- After that click your username in the top right and click the link to your downloads page

- From your dowloads page scroll down to locate the FAST template and click the download button

- Now select All files & documentation
- Congratulations. You now have a shiny new copy of FAST plugin.

## Unzipping

You should now have a file that looks something like this.

`codecanyon-4819161-fast-support-ticket.zip`

In order to get at the goodness inside you will need to unzip this file.

## Zip contents

Once you have unzipped the FAST zip file you will find the following folders have been created.

Folder / File | Description
--- | ---
docs/ | The docs your are looking at now
fast-plugin.zip | Copy of the FAST plugin
fast-secure-fields-example.zip | Example PHP API & Plugin to store ticket fields securely on an external server

The docs folder includes an offline copy of these documents for you to reference. We are mainly interested in the fast-plugin.zip file. This is the WordPress plugin that we will be installing in the next section.

# Installation

## Installing the plugin

After you have downloaded and unzipped your purchase from CodeCanyon you will now need to install it on your WordPress system.

- Log in to your WordPress admin panel
- Click on the Plugins menu item on the left side menu
- Click Add New

- At the top of the page you will see an Upload Plugin button, click that
- Next click Choose file button in the box that appears below

- Select the fast-plugin.zip file you downloaded from CodeCanyon

- When the zip file has finished uploading click the Activate Plugin button
- That's all. You will now see two new menus in your admin panel

## Updating the plugin

We recommend that you use the Envato Market plugin to keep the plugin up-to-date.

- Download the Envato Market plugin from here.
- Install the plugin from Plugins->Add New.
- Once installed, you should see an Envato Market menu on the admin sidebar. Click on it.
- Enter your Envato API Personal Token in the Token field. If you don't have an API token you can create one here or click on the generate a personal token link on that page.

- Once you have pasted your token in the Token field, click on Save Changes.
- Should your token be correct, two extra tabs are now available on your Envato Market page. Click on the Plugins tab.

- If an update is available for the FAST Plugin, click on the Update Available link, which should start installing your update.

# Basic Support Setup

## Create your support page

The most important setting you need to set in the FAST plugin is your support page.

This is a regular WordPress page that you will set to be the base for your support system.

Once you have set this page in the settings, the plugin will override this page whenever you load it in your browser and display the FAST support page.

Here is how to get started:

- Log into WordPress admin panel
- Click Pages -> Add New
- Enter a title for your support page (we will use Support for this example)

Note The title of your page will also determine the url e.g. Support will create a page at mysite.com/support

- Click the publish button to create your page
- Click the FAST Support menu
- Select your support page name from the Support Page dropdown option
- Click Save Changes

- Now if you go and view your new Support Page (Pages -> Click View under your support page)

- The FAST ticket app will load instead of a regular WordPress page

The FAST support plugin will load itself on the page that you have selected as your support page.

It will also create a set of urls for you to use based on the support page url.

For example if your site sits on the domain

    mydomain.com

If you create a support page called My Support it should be visible at the url

    mydomain.com/my-support

Now if you set the Support Page in the FAST plugin options to use this new page the app will create some new urls for you to use.

URL | Description
--- | ---
mydomain.com/my-support | Main landing page for the app (view your tickets)
mydomain.com/my-support/ticket/:id | View an individual ticket (:id replaced with ticket id)
mydomain.com/my-support/ticket/new | Create a new ticket
mydomain.com/my-support/register | Register a new user
mydomain.com/my-support/login | Login to ticket system

## Create your ticket agents

Your ticket agents will be the users that will be responding to tickets created by your customers.

To create a WordPress user that your ticket agent can use you will need to create a new user and assign it the Ticket Agent role.

- Log into WordPress admin panel
- Click Users -> Add New
- Fill in a username and email for your new agent
- Fill in a First and Last name for your new agent
- Select Ticket Agent from the Role select box
- Click Add New User

The email that you used for your ticket agent will now recieve an email with their login details and they will now be able to log in to your WordPress system.

Now we need to create an Agent in the FAST plugin and assign it to this new WordPress user.

- Goto Tickets -> Agents in the WordPress admin side menu
- Locate the Add New Agent form
- Enter a name for your agent
- Leave the Slug and Description fields blank
- Select the new user you created in the steps above in the WordPress User field.
- Click Add New Agent button

- You should now see your new agent in the list on the right

## Choose your ticket types

To make FAST as flexible as possible we have created different ticket types that can be used on their own or combined together. The ticket types allow your customers to make different kinds of enquiries in your support system.

The available ticket types are:

- General Tickets - Create categories and allow your customers to choose a category that best suits their enquiry when creating a ticket.
- Product Tickets - Create products and your customers will be able to select one when creating a ticket.
- Envato Tickets - Used for themeforest/codecanyon/etc Envato authors customers must have a valid themeforest purchase in order to make a ticket.
- WooCommerce Order Tickets - If your site runs WooCommerce FAST links to your WooCommerce plugin to allow customers to select an WooCommerce order and product that they need support with.
- None of the above - FAST can work without any ticket type selected if you want a really basic support ticket system that only handles simple tickets. Just set your default ticket agents on the FAST option page and FAST will assign all tickets to those agents.

Note You can use any of the above ticket types in combination, for example WooCommerce Order Tickets & General Tickets would allow your site to handle both WooCommerce order enquiries and more general enquiries that don't require an order.

To change your app to use one of the above modes goto the FAST Support plugin option page and select the types you would like your ticket system to handle from the Available Ticket Types dropdown.

Depending on which ticket types you select, you can find out how to set up the different types in the next sections.

- How to setup General Tickets
- How to setup Product Tickets
- How to setup Envato Tickets
- How to setup WooCommerce Tickets

# General Tickets

## How general tickets work

General tickets allow you to create categories for your customers to choose from when creating a ticket. A typical ticket creation will look like this.

Introduction
Choose a category
Detail your problem

## Creating ticket categories

Creating categories for your customers enquiries is easy.

- Login to WordPress admin panel
- Goto Tickets -> Categories
- Locate the Add New Category form

- Fill in the Name field
- Fill in the Description field (optional)
- Select your category agents (these are the agents that will be assigned tickets for this category)
- Click the Add New Category button

Your category will now appear in the Category section of the new ticket wizard.

# Product Tickets

## How product tickets work

Product tickets work in much the same way as general tickets, but are designed to represent specific products that you sell or produce. A typical ticket creation will look like this.

Introduction
Choose a product
Detail your problem

## Creating ticket products

To create products for your support system do the following:

- Login to WordPress admin panel
- Goto Tickets -> Product
- Locate the Add New Product form

- Fill in the Name field
- Fill in the Description field (optional)
- Upload a product image (optional)
- Select your product agents (these are the agents that will be assigned tickets for this product)
- Click the Add New Product button

# Envato Tickets

## How Envato tickets work

Envato tickets work in much the same way as product tickets. However products in FAST are linked to your products on the Envato marketplace and customers will require a valid Envato purchase code in order for a ticket to be created.

Customer Creates Account or Logs in with their Envato account
Introduction
Select a purchase (or enter purchase code)
Detail your problem

## Creating ticket products

Create products for each of your ThemeForest items, you can then link these products to your Envato items.

- Login to WordPress admin panel
- Goto Tickets -> Product
- Locate the Add New Product form

- Fill in the Name field
- Fill in the Description field (optional)
- Upload a product image (optional)
- Select your product agents (these are the agents that will be assigned tickets for this product)
- Click the Add New Product button

## Link Envato products

FAST also allows you to link your ticket products to your Envato Marketplace products. You can then verify that your customers who are creating tickets have purchased the item from Envato and their support period has not expired.

Follow the steps below to set this up:

### Create an Envato token

- Goto the Envato API New Token Page
- Enter a name for your token
- Check the View and search Envato sites checkbox
- Check the Verify purchases of your items checkbox
- Check the I have read and understood terms checkbox

- Click the Create Token button
- Copy the generated api key and check the I confirm checkbox
- Click the Woohoo! Got it button

### Use Envato token

- Goto FAST Support -> Envato Intergration from the WordPress admin menu
- Set Link Envato Products to ticket products to On
- Enter your Envato Username
- Paste your new API token into the Envato Token field
- optional you can also turn on Verify Purchase On Create Ticket this will stop users that dont have support from creating new tickets
- Click the Save Changes button

### Load your Envato products

- Goto FAST Support -> Envato Intergration from the WordPress admin menu
- Click the Load Envato Products button
- Goto Tickets -> Products
- You will now see a new field called Envato Marketplace Item in your Add New Product field

- You will also see the same field when you edit a product

You can now link your products in the FAST plugin to your Envato Marketplace items & verify purchases and support dates.

# WooCommerce Tickets

## How WooCommerce tickets work

WooCommerce tickets are linked to an order & product that a customer purchased using the WooCommerce plugin. Customers can create these tickets when they are logged in with their regular WooCommerce login. There are a few ways that the customer can get suppport, using a link on the My Account page or by clicking the Get Support button in their Orders page.

#### Via customers My Account Page

Customers My Account page
Customer creates ticket
Customer selects their order
Customer selects troublesome product
Customer details their issue
(Optional) Fill in any extra fields

#### Via customers Orders Page

Customers Order page
Customer selects troublesome product
Customer details their issue
(Optional) Fill in any extra fields

## Assigning your WooCommerce agents

There are 3 places that you can set up your ticket agents for WooCommerce.

- At the product level - Each product can have agents assigned to them.
- At the category level - Each product category can have agents assigned to them.
- Default agents - You can set default agents that will handle all other tickets that aren't covered by product and category level agents

When a new ticket is created, your customer will select a product that they need support for.

After that FAST will check if the product has any agents assigned to it, if so one of them will be assigned the ticket. Tickets are assigned to agents in a circular (Round-robin) fashion in order to make sure that the workload is evenly distributed and no ticket is left unassigned.

In example, if we assign 3 agents (Agent1, Agent2 and Agent3) to a product, the first ticket will be assigned to Agent1, the second to Agent2 and the third to Agent3. The fourth ticket will be assigned to Agent1 again and so on.

If the product has no assigned agents FAST will then move on to the product's category. If the product's category has agents assigned then one of those will be chosen for this ticket.

If both the product and product category have no agents assigned to them FAST will fall back to the default agents set in the FAST Plugin -> WooCommmerce options page.

## Assigning agents to a product

- Make sure you have created your support agents see Creating Your Support Agents
- Edit a WooCommerce product in your WordPress admin
- Scroll down to the bottom of the page.
- Choose the agents you would like to handle your customer support tickets in the Product Agents box
- Click the update button to save your product.

## Assigning agents to a product category

- Make sure you have created your support agents see Creating Your Support Agents
- Goto Products -> Categories in your WordPress admin menu
- Edit the category you want to add agents to.
- Choose the agents you would like to handle your customer support tickets in the Product Agents box
- Click the update button to save your category.

## Setting default WooCommerce Agents

- Make sure you have created your support agents see Creating Your Support Agents
- Goto FAST Plugin -> WooCommerce Option page
- Choose the agents you would like to handle your customer support tickets
- Click Save Changes

## Add Support to My Account page

- Goto FAST Plugin -> WooCommerce Option page
- Turn on the My Account menu and Orders Page Menu

- Click Save Changes

# Ticket Emails

## Setup ticket emails

The FAST plugin will use the the WordPress wp_mail function to send emails to Agents and Customers.

If your server is set up to allow the PHP mail function to work then no extra configuration will be needed.

However some hosting companies will block the PHP mail function in order to prevent spammers from abusing the mail system.

If this is the case you can follow the SMTP setup guide below to configure your WordPress to use SMTP instead.

## Using SMTP

We would recommend installing and activating the WP Mail SMTP Plugin to enable your WordPress to use SMTP to send emails.

- Goto Plugins -> Add New
- Type WP Mail SMTP into the Search Plugins... box
- Click the Install Now button on the WP Mail SMTP box to install the plugin.
- Once installed click the Activate button on the WP Mail SMTP box.
- Goto Settings -> Email
- Enter the details of the SMTP server that you would like to use
- Click Save Changes

For more information on how to configure this plugin please look at the WP Mail SMTP Plugin Page there is also a nice guide here on wpbeginner.com

- Once configured you can send a test email by entering a valid email address and clicking the Send Test button.

## Customizing email sender

If you already have one email set for your website and want FAST to use a different email address you can set an email address and name that will be used only by FAST.

For example your WordPress site may be set to send all emails from contact forms, etc from info@mysite.com but you may want ticket emails to come from support@mysite.com. Use the Ticket Email Header Options in the Email options page to do this.

You can specify the email address and sender name for all emails that are sent from FAST. The options can be found under Fast Support -> Email Options -> Ticket Email Header Options. Default name and email will be used if the options are left blank.

Values set in the above options will override respective values set by the SMTP plugin. This allows you to set email headers exclusive to your support emails sent by FAST.

## Customizing email sender (GMail)

If you are trying to send emails from different email addresses using the same SMTP login and you are using GMail or Google Apps. You will need to tell GMail about this.

Follow these instructions to allow one account to send from multiple addresses.

## Customizing email content

FAST can send emails to users when the following events occur

- New Ticket is created
- Customer / Agent replies to a ticket
- Agent is assigned a ticket

You can select the events that will trigger an Email notification in FAST Support -> Email Options. You can also customize the Subject and Content of these emails in the Email Options page of the plugin.

- Log into WordPress admin panel
- Goto FAST Support -> Email Options from the WordPress admin menu

Both the Subject and Content options can include shortcodes that will be replaced by information from the ticket.

Shortcode | Description
--- | ---
[sender_name] | Name of the user that triggered the action
[ticket_title] | Title of the ticket
[ticket_author] | Ticket author name
[comment_content] | Ticket comment content
[product] | Ticket Product
[order_number] | WooCommerce Order Number (if running in WooCommerce Mode)

## Customizing email appearance

You can customize the look and feel of the emails FAST sends do the following:

- Log into WordPress admin panel
- Goto FAST Support -> Email Options from the WordPress admin menu

- The email options above all correspond to the email diagram below

# Extra Fields

FAST tickets can be configured to handle extra fields when a customer creates a ticket.

These extra fields can be completely customized in the plugin options.

## Configuring extra fields

To change the extra fields that a customer fills in when they create a ticket do the following.

- Goto the WordPress admin panel
- Goto Fast Support -> Extra Fields
- Click the Edit Fields button at the bottom of the extra fields table.

- Inside the form builder you can add/edit/remove/reorder the fields on the left side

- You will get a preview of your changes to the fields in the form preview on the right and you can even test it and check it works ok for you. A status label in the bottom will tell you if the form is valid.

- Once you are happy with your extra fields click the save icon in the top bar to save your fields.

## Viewing extra fields

All extra fields entered by a customer will be visible in the ticket details sidebar when you are viewing a ticket.

# Secure Fields

Storing all your ticket information on one server can sometimes be a bad idea, especially when you are saving sensitive user information such as usernames & passwords. That is why we have added secure fields to FAST.

Secure fields are the same as extra fields, but they will not be stored in the WordPress database. Instead a filter will be called when a ticket is created that will allow you to send the data elsewhere, like a secure API or S3 bucket.

## Creating secure fields

To create or modify your secure fields do the following.

- Goto the WordPress admin panel
- Goto Fast Support -> Extra Fields
- Click the Edit Fields button at the bottom of the secure fields table.

- Click the Secure Fields tab in the form builder.
- Inside the form builder you can add/edit/remove/reorder the fields on the left side

- You will get a preview of your changes to the fields in the form preview on the right and you can even test it and check it works ok for you. A status label in the bottom will tell you if the form is valid.

- Once you are happy with your secure fields click the save icon in the top bar to save.

## Saving secure fields.

Whenever a customer creates a ticket and you have secure fields a filter will be called that will allow you to save this information externally.

The filter is named `fast_filter_save_secure_fields` and recieves 2 arguments, the secure fields data (array) and the ticket (WP_Post object).

We have included an example API and plugin that will store secure fields, you can find them both in the fast-secure-fields-example.zip in your CodeCanyon download zip file.

## Agents access to secure data

In order to allow your agents to access this secure external data we have added an option to set a link that your agents can click on.

This can be set in the extra fields options page.

- Goto the WordPress admin panel
- Goto Fast Support -> Extra Fields
- Enter your link in the Secure Field Access URL Option
- Click save changes button.

Now when your agents view a ticket with secure data stored they will see a link in the ticket details sidebar.

Note The link shown in the sidebar will add a url param of the ticket id e.g. https://mysecurestore.com/access/?ticket=334

## Customers access to secure data

Customers are not allowed to view secure field data after they have created them, but they are allowed to update them in case they entered them incorrectly.

This is the view a customer will see, they will be able to click on an update link.

If they click the update link a popup will allow them to update their secure information.

## Setting initial values of extra & secure fields

In some cases you may want to auto fill extra or secure fields with some values. For example your customers may have already entered some information on registration and you don't want your customers to have to enter this information again.

To allow for this situation you can add a filter to your theme or plugin code to set the initial values of your fields when a user creates a ticket.

Here is an example that will add an initial value "test value 1" to all your extra fields.

    function fast_add_values_to_fields($extra_fields)
    {
        foreach ($extra_fields as $field) {
            $field->value = 'test value 1';
        }
        return $extra_fields;
    }
    add_filter('fast_filter_get_extra_fields', 'fast_add_values_to_fields', 10, 1);

# Colors and Fonts

## Ready made color skins

In order to use one of the ready made color schemes that are provided with FAST do the following:

- Login ot WordPress admin panel
- Goto the FAST support options page
- Select a color scheme from the App Skin option

- Click Save Changes and reload your support page to see the new color scheme

## Creating your own color skin

FAST allows you to create your own custom color scheme & fonts by creating your own custom skin.

- Login ot WordPress admin panel
- Goto the FAST support / Custom Skins page
- Click the Create New Skin button

- Give your skin a name and select the font and colors you want it to use.
- Click the Publish button when you are finished.

- Goto the FAST support options page
- Select your new color scheme from the App Skin option

- Click Save Changes and reload your support page to see the new color scheme

# Saved Replies

A saved reply is a text snippet that an agent can add to the editor when replying to a customer. Using saved replies is a great way to save time when the issue at hand requires a standard and simple response.

## Creating saved replies

An agent can create a saved reply by clicking the 'Save Reply' button in his editor's toolbar while replying to a ticket.

Once the dialog appears the agent will be prompted to type the title and the content of his saved reply. If he had alredy inserted text in the reply editor it will appear in his saved reply's content editor as well.

An agent can choose to share his saved reply with other agents, or keep it private. If he shares it, all agents will have access to that saved reply.

## Using saved replies

An agent can insert a saved reply by clicking the 'Saved Replies' button in his editor's toolbar while replying to a ticket.

Once the 'Choose A Saved Reply' dialog appears he will be presented with a list of all his saved replies, as well as the replies other agents have shared. Clicking on a saved reply will insert the reply in his ticket's reply.

# Envato Extras

## Setup Envato login

FAST can also be configured to allow customers to log in using their Envato usernames and passwords.

Follow the steps below to set this up:

### Create an Envato app

- Goto the Envato API New App Page
- Enter a name for your app
- Check the View and search Envato sites checkbox
- Check the View your Envato Account username checkbox
- Check the View your email address checkbox
- Check the View your account profile details checkbox
- Check the View your purchases of the app creator's items checkbox
- Enter the url of your support page as your Confirmation URL

Note Make sure you add an end slash to your support page URL e.g. http://mydomain.com/support/

- Check the I have read and understood terms checkbox
- Click the Register App button

- Make a copy of your secret key and store it somewhere safe
- Also make a note of your OAuth client ID from your Envato My Apps page

- You will need both your secret key and OAuth client ID for the next step

### Configure Envato login

- Goto FAST Support -> Envato Intergration from the WordPress admin menu
- Set Enable Envato Login to On
- Enter your OAuth Client ID (from the steps above)
- Enter Client Secret Key (from the steps above)
- Click Save Changes

### Add Envato login button to forms

Finally you will need to enable the envato login button on the Login & Registration pages.

See the Envato Login Button sections of the Registration Page & Login Page

# WooCommmerce Extras

## Giving your existing customers access to FAST

FAST requres all customers to have the Ticket Customer role assigned to them in order for them to be able to login and create tickets using FAST.

Once you have installed FAST to a WooCommerce site all your new customers will be assigned this role automatically by the plugin when they register or checkout.

However you will also want all of your existing customers to be able to use FAST as well, but don't worry you just need to click one button!

- Login to WordPress admin
- Goto FAST Plugin -> WooCommerce Option page
- Click the Add FAST Customer Role to all customers button
- Thats it!

Now all your existing customers will be able to log into FAST and create support tickets about their orders.

## Supported order satuses

By default a customer will be able to create using any WooCommerce order, but this is configurable. To change the supported order statuses do the following:

- Login to WordPress admin
- Goto FAST Plugin -> WooCommerce Option page
- Change the Supported Order Statuses to one of the following any, pending, processing, on-hold, completed, cancelled, refunded and failed.
- Click Save Changes

The order selection in the create new ticket page & the get support button in My Orders page will now only show orders of this status.

# Registration Page

You can change the register user page content by going to FAST Plugin -> Registration Page in the admin menu,

There you will find options for changing the content of the registration page.

## Disable user registration

Some sites may want to handle registration out of the plugin, so we have added an option to turn off the user registration

- Login to WordPress admin
- Goto FAST Support -> Registration Page
- Turn on / off Enable User Registration
- Click Save Changes

## Registration types

You can change the title / content and background image of your registration page.

- Login to WordPress admin
- Goto FAST Support -> Registration Page
- Change the title / content and background image options
- Click Save Changes

## Changing the registration page text

You can change the methods that customers can use to register with.

- WordPress Register - customers can register by creating a regular WordPress user

- Envato Register - customers can register using their Envato account

- Login to WordPress admin

- Goto FAST Support -> Registration Page
- Select the types of registrations you want to allow from the Show Register Types select
- Click Save Changes

## Add user agreement to registration

FAST also allows you to make customers agree to terms and conditions before registering. This is usefull for GDPR or TOC for your customers.

To add a registration checkbox do the following.

- Login to WordPress admin
- Goto FAST Support -> Registration Page
- Turn the Add agreement checkbox to on
- Enter the text you want your checkbox to show in the Agreement chekbox label option
- (optional) Enter the text that explains your agreement into the Agreement text option, this will be shown below the checkbox
- Click Save Changes

## Setup Google reCaptcha

We recommend turning on a Google reCaptcha on your Register User page to prevent bots.

- Goto the Google reCaptcha page
- Click the Get reCaptcha button in the top right of the page

- Locate the Register a new site form
- Enter a label for your site
- Select reCAPTCHA V2
- Enter the domain of your site
- Accept the terms of service
- Click Register

- Make a copy and paste both your Site key and your Secret key from the reCaptcha site into your FAST Support plugin options

- Click the Save Changes button
- You should now see a reCaptcha on your support page register url

## Add Envato login button

- Goto FAST Support -> Registration Page
- Add Envato Register to the Show Register Types option
- Click Save Changes

## Turn on user language selection

If you want your users to be able to select a language when they create an account you can turn on this option.

- Login to WordPress admin
- Goto FAST Support -> Registration Page
- Turn on / off New User can choose language
- Click Save Changes

Note You will have to have languages installed in your WordPress for the select option to contain languages.

# Login Page

You can change the login page content by going to FAST Plugin -> Login Page in the admin menu,

There you will find options for changing the content of the login page.

## Add Envato login button

- Goto FAST Support -> Login Page
- Add Envato Register to the Show Login Types option
- Click Save Changes

## Changing the look

You can change the title / content and background image of your login page.

- Login to WordPress admin
- Goto FAST Support -> Login Page
- Change the title / content and background image options
- Click Save Changes

## Default login page

Some users may want to use another login page other than the FAST default one, for this reason we have added the option to modify the default login page.

To change the default login page do the following.

- Login to WordPress Admin panel
- Goto Fast Support Options page

- Enter the url you would like to use for your login into the Login url option

# New Ticket Page

You can change the new ticket page content by going to FAST Plugin -> New Ticket Page in the admin menu,

There you will find options for changing the content of the new ticket page.

## Changing the look

You can change the title / content and background image of your new ticket getting started tab.

- Login to WordPress admin
- Goto FAST Support -> New Ticket Page
- Change the title / content and background image options
- Click Save Changes

## Creating Tickets For Customers

One requested feature from our users was the ability to create tickets on behalf of another user.

This is now possible, just by switching on the Agents Can Create Tickets For Other Users option

- Login to WordPress admin
- Goto FAST Support -> Fast Support Options Page
- Change the Agents Can Create Tickets option to On
- Change the Agents Can Create Tickets For Other Users option to On
- Click Save Changes
- Login as an agent / manager / administrator
- Click Create Ticket
- You will now have the option to create a ticket for an existing user or create a ticket for a new user

# Ticket Options

## Default privacy of comments

There is an option in FAST that allows you to set the default level of privacy for your tickets.

- Log into WordPress admin
- Goto FAST Support -> FAST Support options page
- Select an option from Default Ticket Privacy option
- Click Save Changes

The options are as follows

- User can choose Public or Private

Option will be available to the user when creating a ticket

- Always use Public Tickets

All tickets will be public no option will be shown when creating a ticket

- Always use Private Tickets

All tickets will be private no option will be shown when creating a ticket

## Internal comments

There is an option in FAST that will allow your agents to commuinicate privately on tickets in comments that the customer will not see.

To enable internal comments

- Log into WordPress admin
- Goto FAST Support -> FAST Support options page
- Turn on the Allow agent private comments option
- Click Save Changes

## Allow customers to close tickets

Some support systems may require customers to be able to close tickets themselves. This is possible, all you need to do is add the Change Ticket Status capabillity to the customer role like this.

- Log into WordPress admin
- Goto FAST Support -> User Permissions
- Click inside the customer roles option
- Add the Change Ticket Status capabillity
- Click Save Changes

## Allow customers to search public tickets

Sometimes your customers may want to search your support tickets to see if a solution to their problem has already been discussed and answered.

Fast allows you to enable this option.

- Log into WordPress admin
- Goto FAST Support -> FAST Support option page
- Set the Customers can search public tickets option to on
- Click Save Changes

Now your customers will see a search icon in the top right corner of their screens.

This link will take them to a page where they can search and view all public tickets

## Allow agents to create tickets

By default the create ticket button is hidden for agents & managers. However sometimes for testing this can be useful.

- Log into WordPress admin
- Goto FAST Support -> FAST Support
- Turn Agents Can Create Tickets option to on
- Click Save Changes

## Change order of ticket replies

By default the replies on a ticket will be shown with the latest first (decending order), but this can be changed.

- Log into WordPress admin
- Goto FAST Support -> FAST Support
- Select a direction from the Comments Order option
- Click Save Changes

# Slack Intergration

FAST plugin can also send messages to Slack.

## Create a slack app

- Goto the slack API page and click the create a slack app button.

- Click the Create an App button

- Enter a name for your app
- Select a team to use to show your notifications

- Click the Incoming Webhooks button

- Activate incoming Webhooks
- Click Add New Webhook to Team

- Choose a channel to send your support notifications to and click Authorize

- Click the copy button to grab a copy of your Webhook URL

- Paste this Webhook URL into your FAST Plugin -> Slack Intergration -> Webhook URL field on the Slack Intergration option page
- Click Save Changes

## Slack Plugin Options

You can change the events that will trigger a slack message in the FAST Plugin -> Slat Intergration options page

You can also customize how the Slack notifications will look. We provide a different content option depending on the type of notification. Each option may include shortcodes that will be replaced by information from the ticket.

Shortcode | Description
--- | ---
[sender_name] | Name of the user that triggered the action
[ticket_title] | Title of the ticket
[ticket_author] | Ticket author name
[comment_content] | Ticket comment content
[product] | Ticket Product
[order_number] | WooCommerce Order Number (if running in WooCommerce Mode)
[slack_link] | Slack link containing the ticket url

Please note that Slack API messages are formatted using a simple markup language similar to Markdown. More info can be found here

# WordPress Users

## User roles

FAST creates three new user roles in your WordPress system each one will have a different level of control over your support tickets.

### Ticket Manager

A ticket manager has full access to all tickets, this role is to be limited to users that will be managing the support system. The role can do the following:

- Create / Edit / Delete All Tickets
- Create / Edit / Delete Agents
- Create / Edit / Delete Products
- Read private tickets

Note The ticket manager is optional, probably only needed for large teams.

### Ticket Agent

A ticket agent is a user that will be mainly answering Customers tickets. The role can do the following:

- Create / Edit All Tickes
- Read private tickets

### Ticket Customer

A ticket customer is a user that will be created by your customers. The role is very limited and can only do the following:

- Create tickets

You can assign these roles to new / existing users from the WordPress Users admin page.

## Modifying role permissions

FAST plugin has been created using the WordPress Roles & Capabilities.

This was done to make the plugin as flexible as possible and we have created an option page in which you can modify the ticket Roles & Capabilities.

- Goto FAST Plugin -> User Permissions from the WordPress admin sidebar
- Click the role you would like to modify and change it's capabilities
- Click Save Changes

## Adding customer role to existing users

Some customers may be adding FAST to an existing site with existing users. Those existing users will not be allowed to access FAST and make tickets because they do not have the Ticket Customer role needed.

For this reason we have added a user convert utility that will allow you to give your users access to the plugin.

- Goto FAST Plugin -> Advanced
- Scroll to the Convert existing users section

- Select a role from the select box
- All users with this role receive an extra Ticket Customer role
- Click Give all users with the above role customer access button

All users with the role you selected will now have an extra Ticket Customer role, this will allow them to log in to FAST support and create tickets.

## Registering users in another plugin

If you want to not use the FAST customer registration page and use another plugin you just need to make sure you enable one option in the Advanced options page. This will ensure that all new users that register will have the ticket customer role assigned to their user. This role will allow them to create tickets.

- Login to WordPress admin panel
- Goto FAST Plugin -> Advanced
- Turn on the Add ticket customer role to all new registered users option

- Click save changes

# Translating the plugin

## Translating into one language

### Translating the PO file

To translate the FAST plugin into your own language you can use the pot file provided.

File | Description
--- | ---
wp-content/plugins/fast-plugin/languages/fast-plugin.pot | This is the translation file for the FAST Plugin

You will need to edit the pot file with a po editor, we would recommend POEdit

- Download POEdit and install
- Open POEdit
- Click the menu File -> New From POT/PO File

- Select the pot file fast-plugin/languages/fast-plugin.pot
- Add your translations
- Save the PO and MO files using the language locale code as the file name.

Note Make sure your language code matches the official WordPress codes

- FTP the .po and .mo files to your `wp-content/plugins/fast-plugin/languages` folder

## Translating product names

Some customers have asked us for the ability to translate products that are created in the plugin.

We have added this capability to the po file method detailed above. Just add the product translation to your PO file and it will be picked up by the plugin.

- Create a product in the Tickets -> Products page

- Open your language translation file in a text editor for example fr_FR.po
- Scroll to the bottom

- Add you product translation to the file

  msgid "My nice product" msgstr "Mon beau produit"

- Save your .po file

- Open your .po file in POEdit and click compile it to MO from the file menu
- Upload both your .po and .mo files to the fast-plugin/languages folder
- Your product names will now be translated

## Translation legacy mode

As of FAST version 1.10.0 all translations have been merged into one file to make translations easier to create.

Previously FAST used 2 files for translations, if you want to continue using this system you can do so by editing this file `wp-content/plugins/fast-plugin/fast-plugin.php`

Remove the following line

        define('FAST_SINGLE_TRANSLATION_FILE', true);

## Translating into multiple languages

### Using WPML plugin

FAST supports translating into multiple languages through the use of the popular WPML plugin. If you need a multilingual Wordpress website, and you desire a translated support page for each supported language, follow the steps described below:

1. Set up the plugin as described in the documentation and create your support page.
2. Download WPML and install it. Also install WPML String Translation.
3. Setup your permalinks
4. Create a support page for each supported language
5. Translate plugin options

### Setting up your Permalinks

You have to use Pretty Permalinks. In your admin panel go to Settings -> Permalinks and select the permalink structure of your choice.

The most common ones are Day and name and Month and name.

We also need to configure the way WPML displays the urls for different languages. Under WPML -> Languages set the 'Language URL format' to 'Different languages in directories'.

### Creating per language support pages

After you create and set the support page for your website's main language, you will have to create a translation of this page for each language you are planning to support. Each translated page has it's own ID. Write down the ID of each translated support page you create. You can see the ID of each page in your browser's address bar while editing the page. It is the number on the right of the 'post='

### Translating plugin options

Having done the above, we now need to translate the 'Support Page' option that you previously set in step 1 in all the other languages. In your admin navigate to WPML -> String Translation, and In the 'Select strings within domain' option set 'admin_texts_fast_plugin_options'.

The fields that will appear below will allow you to translate the respective options into other languages. Options available for translation are:

- Support Page
- Intro Tab Title
- Intro Tab Content
- New Ticket Subject
- New Ticket Content
- Ticket Reply Subject
- Ticket Reply Content
- Ticket Assign Content

Gotcha In order for the above fields to appear here and be translatable, you have to first modify them to your liking and save them in their respective option pages. The default values are not translatable.

Out of all the fields that appear here, the one we want to edit first is the one that sets the support page ID in different languages. Edit the option '[fast-plugin-options]support_page' and for each language insert the ID of the support page that you wrote down in the previous step.

Now you can add each translated support page to the respective language's menu through Appearance -> Menus.

In case you want the app to be translated depending on the current user's language, set Fast Support -> Advanced -> App Translation Options -> Translate using current user's locale to 'on'.

# Email Piping

## What is email piping

Email piping allows you to use email to create and reply to tickets.

This is possible by setting up FAST to connect to an email account via IMAP. FAST will then periodically check this email account for any unread emails. If it finds any new emails that have not been read it will convert the contents of this email into either a new ticket or a reply to an existing ticket.

## Setting up email piping

### Make sure your server has PHP IMAP enabled

The first requirement will be to make sure you have PHP IMAP installed on your server.

You can check this by installing the PHP Info Plugin and check your PHP config in the Settings menu. You should see a IMAP section like this.

If you don't see this section you will need to install and enable PHP IMAP. Contact your hosting to find out how to do this, or if you have access to your server you can install it using command line.

For example in Ubuntu you would run

    sudo apt-get install php-imap

If you aren't sure how to do this contact your hosting company.

### Set up your email

In order to use email piping you will need an email account that supports IMAP. Using the details for your IMAP email do the following:

- Click the FAST Plugin -> Email Piping menu in the WordPress admin sidemenu.
- Goto the Email Piping options at the top of the page
- Make sure Enable Email Piping is set to on
- Choose the timespan you would like FAST to check for new emails.

- Now scroll to the Email IMAP Details section
- Enter your email username and password.
- Enter your IMAP Server URL (e.g. Gmail - imap.gmail.com)
- Enter your IMAP Server Port (e.g. Gmail - 993)
- Enter your IMAP Mailbox (This is usualy left as INBOX)
- Select your IMAP Encryption
- Set if a certificate from TLS/SSL server is needed

- Click Save Changes

## Microsoft Office 365 Setup

For some reason Office 365 emails use US-ASCII instead of UTF-8 so to get email piping to work with an office 365 email address you will need to do the following.

- Click the FAST Plugin -> Email Piping menu in the WordPress admin sidemenu.
- Goto the Email Piping options at the top of the page
- Select your IMAP charset encoding to US-ASCII
- Click Save Changes

## Allow ticket replies via email

### Set email replies on

- Click the FAST Plugin -> Email Piping menu in the WordPress admin sidemenu.
- Goto the Reply to tickets options
- Make sure Enable email replies to tickets is set to on

- Click Save Changes

Gotcha You will also need to make sure that all your emails include the `[ticket_id]` for this to work. See Add ticket ids section
Also Make sure you check your email footer which may say "Do not reply to this email" this is no longer true!

### Add ticket ids to all email subjects

- Click the FAST Plugin -> Email Options menu in the WordPress admin sidemenu.
- Make sure that New Ticket Subject, Ticket Reply Subject, Ticket Assign Subject include [ticket_id]
- For example `New ticket [ticket_id] from [sender_name] for [product]`

- Click Save Changes

## Enable create ticket via email

- Click the FAST Plugin -> Email Piping menu in the WordPress admin sidemenu.
- Goto the Create tickets with email options
- Make sure Enable create ticket with email is set to on
- Select a product to set all new tickets created via email to in the Default New Ticket Product option.

- Click Save Changes

## Testing Email Piping

In order to test your email piping to see if it is working there is a section at the bottom of the Email Piping options page.

- Click the FAST Plugin -> Email Piping menu in the WordPress admin sidemenu.
- Goto the Emil Piping Status section
- The Last Email Check Results will detail the results of the last email check
- The Next Email Check will tell you when the next email check is scheduled to run
- You can force an email check now by clicking the Run Email Check Now button, this will schedule a new check

## Creating a contact form for email piping

Now that you have configured email piping, you can create a contact form that will take advantage of it, and allow your users to submit tickets through a form. For this tutorial we will use the free and popular Contact Form 7 and we will create a form that will allow users to submit tickets.

### Create a contact form

Once the plugin is installed and activated, create a contact form. The contact form will need to look like the one pictured below:

### Insert the contact form in a page

Once your form is created, a blue bar similar to the one shown below will appear under the form's title. Copy the text that resides inside this bar and paste it in a page that you want your form to appear

Now your page should have your newly created contact form, which will look like this if you are using the default wordpress theme:

### Configure fast to use your form for email piping

Now that the form is in our page, we just need to configure FAST to properly handle emails generated by this form:

- Set 'Use Reply-To header' to 'on' under Fast Support -> Email Piping
- Set the 'Additional Headers' field under your contact form email settings as shown below:

And we are done! Now you have form that creates tickets handled by FAST.

## Using GMail IMAP

There are a few gotchas I encountered when setting up IMAP for Google here are a few.

If you see the following errors

    Can not authenticate to IMAP server: [AUTHENTICATIONFAILED] Invalid credentials (Failure)

- Make sure you allow access for less secure apps on your google account

- Make sure you account is using a strong password, if you see the above error try changing your password to 50 random chars using secure password generator

- Login to your gmail account

- Click my account in the user menu in the top right
- Click the Signing in to Google link
- Click the password menu
- Enter a new strong password from the secure password generator
- Change the password in the FAST Plugin -> Email Piping option page

## Setting up WordPress cron

In order for WordPress to periodically check your email for new email FAST will use the WordPress cron job functionality.

Out of the box WordPress will be set up to check for any cron jobs that need to run every time the website is used.

But this could cause problems on low traffic sites, because someone has to visit the site before the job is triggered.

For example lets say you set FAST to check for emails every 10 minutes, but nobody visits your site for 1 hour. This means that FAST wont check your email for new tickets or replys for a whole hour.

But don't worry Follow this WordPress guide to setting up a cron schedule or this WooCommerce Guide if your server runs CPanel and this will make sure that emails are checked when you set them to be checked.

# Scheduled Maintenance

## Auto close tickets

This feature allows Fast to periodically check for inactive tickets and close them automatically. In order to enable the auto-closing checker do the following:

- Log into WordPress admin
- Click the FAST Plugin -> Scheduled Mantenance menu in the WordPress admin sidemenu.
- Goto the Auto Close Tickets section
- Set the option 'Enable Auto Close Ticket' to 'On'.
- Choose a period of inactivity you want to set for closing your tickets using the slider.
- Click Save Changes button

Your FAST installation will now check for inactive tickets at midnight every day and close them. The periodic checks are handled using WordPress cron events.

Every time the scheduled checker runs, all tickets that

- Are currently open
- Did not have any kind of activity in as many days as the option "Close Tickets After" determines.

will be set to 'Closed' automatically.

## Viewing auto close schedule and reports

Every time a check for ticket auto-closing is run, a report is generated. You can view this report in the Scheduled Maintenance --> Last Auto Close Results. The report contains information regarding the date the latest check took place, as well as the number of tickets that were closed.

'Next Scheduled Auto Close Check' describes when the next auto-close check will take place, and which tickets will be affected.

## Running a manual auto-closing check

The plugin provides the option for one-off auto-closing checks. A one-off check can take place at any time and does not interfere with any scheduled checks. Schedule checks do not need to be enabled in order for the one-off check to take place. The same rules that govern scheduled checks apply here as well. To run a one-off check simply press the 'Close Old Tickets Now' labeled button in the Close old tickets now section of the Scheduled Mantenance options page.

# WordPress

## Using FAST as your front page

As of FAST version 1.3.0 we have added the ability for FAST to work as your WordPress homepage. To set this up do the following:

- Login to your WordPress admin
- Goto Settings -> Reading options page
- Click the A static page radio button
- Select your support page to be the Front page from the select box

- Click Save Changes
- Goto Settings -> Permalinks
- Click Save Change

- Your frontpage will now be using the FAST Support Plugin page

## Embedding FAST in any page

As of FAST version 1.13.0 we have added the ability for FAST to be embeddable in any wordpress page through a shortcode. To embed FAST in your page do the following:

1. Set up the plugin as described in the documentation and create your support page.
2. Create a page that you want to embed FAST into, and edit it.

3. Using the page editor, insert the fast_embed shortcode in any part of your page's content as seen below

          [fast_embed]

4. Save your page. The app will now be displayed in your page, embedded through an iframe.

# FavIcon counter

Fast will show a counter for the number of tickets that need your attention in the favicon.

## Setting your favicon logo

- Login to your WordPress admin
- Goto Appearance -> Customize
- Open the site identity option panel

- Click Select image button
- Upload or select your favicon
- Click Save Changes

## Setting the favicon colors

- Login to your WordPress admin
- Goto FAST Support -> FAST Support options page
- Set a color in the Favicon Alert Text Color option
- Set a color in the Favicon Alert Background Color option
- Click Publish button at the top of the page

# Analytics

## Turning on analytics

To turn on analytics and start logging information about your support ticket activity do the following.

- Login to your WordPress admin
- Goto FAST Support -> FAST Support options page
- Scroll to the App Options section
- Set the Enable Analytics option to on
- Click Save Changes

## Setting which users can access analytics

By default only users with a FAST Manager role will be able to see the analytics page. But this is configurable, to change the level of access do the following.

- Login to your WordPress admin
- Goto FAST Support -> FAST Support options page
- Scroll to the App Options section
- Choose the roles you would like to be allowed access to the analytics pages in the Analytics Access option.
- Click Save Changes

# Avatars

## Setting the default avatar

Fast will use the default avatar that you have set in the Settings -> Discussion page.

## Uploading a custom default avatar

If you want something different than the default avatars provided by WordPress then we have made FAST work with the WP User Avatar Plugin.

- Install the plugin.
- Activate the WP User Avatar Plugin on the WordPress plugins page
- Goto Avatars -> Settings in your WordPress admin menu
- Click the Choose Image button in the Default Avatar options section

- Upload your custom avatar
- Click Save Changes

## Allowing customers to change avatars

If you want to allow customers to change their avatar from the profile page, then we have made FAST work with the WP User Avatar Plugin.

- Install the plugin.
- Activate the WP User Avatar Plugin on the WordPress plugins page
- Goto Avatars -> Settings in your WordPress admin menu
- Check the Allow Contributors & Subscribers to upload avatars checkbox

- Set the max upload size
- Click Save Changes
- Customers will now be able to change their avatars in their profile page.

# Keyboard Shortcuts

## Viewing a ticket

- Pressing `r` opens the reply dialog
- Pressing `a` opens and focuses on the agents dropdown, if the current user has the capability to assign ticket agents.
- Pressing `s` opens and focuses on the status dropdown, if the current user has the capability to assign ticket status.
- Pressing `p` opens and focuses on the product dropdown, if the current user has the capability to assign ticket product.

## Replying to a ticket

- Pressing `esc` closes the reply dialog, canceling the ticket reply.
- Pressing ``cmd` + `enter`` on mac or ``ctrl` + `enter`` on windows submits the reply.

# GDPR

FAST is compatible with the GDPR filters that were added in WordPress 4.9.6. These allow you to handle customers requests for data and users requests for data deletion.

## Export Personal Data

As of WordPress 4.9.6 there is a new option under the tools admin menu that allows you to handle any users requests for data export.

FAST will add all relevent customer ticket information to this export automatically.

## Erase Personal Data

As of WordPress 4.9.6 there is a new option under the tools admin menu that allows you to handle any users requests for data removal.

FAST will delete all relevent customer ticket information automatically.

# Advanced

## Custom CSS

You can add your own CSS rules to the frontend app in the advanced options.

- Login to WordPress admin
- Goto FAST Support -> Advanced options page
- Enter your custom CSS into the Extra CSS
- Click Save Changes

Your rules will now show in your support pages.

## Rename Products

Some users have asked if it is possible to use Categories instead of products, so we have added an option that allows you to rename products to whatever you like.

- Login to WordPress admin
- Goto FAST Support -> Advanced options page
- Change the names in the Taxonomy names section
- Click Save Changes

## Javascript jQuery events

To allow developers to customize the frontend using javascript we have added some JS events that get triggered whilst your customers use the app.

Hooking into these events will allow you to make some changes to the page.

Event | Description
--- | ---
fastRouteChange | This event triggers on every url change in the app
fastCreateTicket | This event triggers when a customer clicks the create ticket button

Here is an example of how you can hook into these events using jQuery

    jQuery(document).on('fastRouteChange', function(event, data) {
        console.log('FAST changed route', event.detail);
    });

## Filters

Name | Arguments | Description
--- | --- | ---
fast_filter_allowed_dashboard_pages | 1 | Takes an array of admin pages that fast customers are allowed to visit. Defaults to `array('profile.php')`
fast_filter_dashboard_redirect_page | 1 | Sets the page that a fast customer is redirected to if they try to access an admin page. Defaults to `'profile.php'`

# 3rd Party Plugins

## WordFence config

There is a known issue with WordFence when using FAST, to solve it do the following

- Goto WordFence -> Options
- Uncheck Prevent discovery of usernames through '/?author=N' scans, the oEmbed API, and the WordPress REST API

- Click Save Options at the bottom of the page

  Thanks to CodinBit for this fix :)

# Troubleshooting

## Can't log in

FAST plugin uses the WordPress API to grab it's data from your WordPress site.

In order for this to function correctly you may need to make sure that you have your PHP error reporting set to not show notices & warnings.

Notices & warnings are a kind of message from PHP saying I don't think your code should be like that. It will work but it's not the best way.

The reason for this is that many plugins (including some of the top ones, WooCommerce I'm looking at you) sometimes ship with bad code that causes PHP to create a notice or warnings.

Here is what a notice / warning could look like

    Notice: Undefined index
    Warning: Invalid argument supplied for foreach()

Now the problem with these random warnings popping up is that it breaks the WordPress API and will stop you being able to log in, answer tickets, pretty much everything.

However the fix for this is very easy.

Solution 1 - Turn off notices in your php.ini file

If you have access to your php.ini file, open it up locate the error_reporting line and change it to

    error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING

This will turn off all warnings & notices

Or you could just turn off errors altogether (good for production sites)

    display_errors = Off

Solution 2 - Turn off error_reporting in your wp-config.php file

If you don't have access to your php.ini file you can just add the following line to your wp-config.php file

    error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);

Or turn off errors completely

    error_reporting(0);

## Ticket emails aren't being sent

- Make sure your server is capable of sending emails
- Contact your hosting to make sure the PHP mail function has not been disabled
- Try using the SMTP plugin (see email instructions)
- Check the troubleshooting in the SMTP Plugin page

## Can't login with Envato

- Goto the Envato API My Apps Page
- Edit the App you created for your Envato Login
- Make sure the Confirmation URL matches your Support Page Exactly

Note - Make sure you add an end slash to your support page URL e.g. http://mydomain.com/support/

# Migration

## Migrating to 1.2.0

When you update to 1.2.0 follow these steps.

- Login into WordPress Admin Panel
- Goto FAST Support -> User Permissions options page and click Restore Defaults
- Also click the Save Changes button

## Migrating to 1.3.0

- Login into WordPress Admin Panel
- Goto FAST Support -> FAST Support options page and select a ticket mode depending on what ticket support you are running (Regular / Envato)
- Goto FAST Support -> User Permissions options page and click Restore Defaults

## Migrating to 1.5.0

For all customers using FAST for Envato Support due to a new option you will need to add Envato button to your Login & Register Pages

- Login into WordPress Admin Panel
- Goto FAST Support -> Login Page
- Click the Show Login Types and add in the Envato Login option
- Click Save Changes

- Goto FAST Support -> Registration Page
- Click the Show Register Types and add in the Envato Login option
- Click Save Changes

This will add the login and register with envato buttons back to your login and register pages.

## Migrating to 1.10.0

Version 1.10.0 simplifies translations by concentrating all translations into one file located in the languages folder.

If you want to continue using the old 2 file system there is a one line change you can make to do this see LegacyTranslation Mode