Installing osTicket 1.10.4: Troubleshooting MySQL8 and PHP older than 7.1.16

MySQL 8 was released recently (to this writing) and of course that means people are going to start using it.  Since I have seen a couple posts on the forums with people using MySQL 8 I decided to fire up a new VM and install the following:

  • OS: Windows 2012 R2
  • Webserver: IIS 8
  • MySQL 8.0.12
  • PHP 5.6.31

note: PHP 5.6 is still the recommended version of PHP for osTicket until 1.11 is released.  You should not have this problem if you are running PHP 7.1.16+ or PHP 7.2.4+ but since osTicket does not support those versions yet.

After checking to make sure that: IIS was serving pages and PHP was working in IIS it was time to download and install osTicket.  The new website downloader is neat and allows you to download a languages and plugins together which can be a time saver. As a reminder always install osTicket with out any language packs and then add your desired language packs.

Running the installer resulted in the following error:

Database Connection information `Unabled to connect to MySQL Server: Server sent charset unknown to the client.`  Please report to the devs

To fix this you will need to locate and edit your MySQL configuration file (my.cnf or my.ini). Since this is a new MySQL 8 installation under windows it is at: C:\ProgramData\MySQL\MySQL Server 8.0\my.ini.  Once you located the file locate # character-set-server=.  Directly after it add the line:character-set-server=utf8

Next you will need to restart MySQL.  You might be able to do this with MySQL WorkBench or services.msc.  My server had some patches that installed so I just restarted the server for the patches to finish.

Running the installer again of course resulted in another error message:

Database connection information `Unable to connect to MySQL Server: The server requested authentication method unknown to the client`

Starting with MySQL 8.0.4, the default authentication plugin for MySQL server was changed from mysql_native_password to caching_sha2_password. There are two things that you need to do in MySQL to fix this. First: if you are running an older version of PHP (pre 7.1.16) you will need to set default_authentication_plugin=mysql_native_password in my.cnf. Restart the server.

Next you will need to edit the user account. I could not do this in the most recent version of MySQL WorkBench using the ui. You can do this one of two ways:
1. delete and recreate the user. Make sure authentication is set to ‘Standard’. Make sure you give the same permissions back that the user had.
2. run the following SQL Query (edit this for your user)
alter user 'username'@'localhost' identified with mysql_native_password by 'password';

After doing this the installer ran fine.

Updating osTicket 1.10.x to 1.10.4

I have just upgraded a clone of one of my production sites and there is no database update beween 1.10.x when upgrading to 1.10.4.  You should be able to follow any of my previous upgrade guides and do not expect the database upgrader to run.  This means that upgrading is as easy as dropping the new files over the old ones.   Please keep in mind that you should really back up the site and your database first just in case.

osTicket 1.9.x reaches end of life

There were two very important pieces of information in yesterdays Blog post over on osticket.com above and beyond the normal "Hey these new versions have been released".  If you haven't read the Blog post yet it is here: http://www.osticket.com/blog/126

First and foremost is that the 1.9 tree has reached it's end of life and is no longer being supported or maintained.  The devs highly recomnend that you upgrade immediately.  Historically osTicket has only supported two versions at a time so this tells me they expect 1.11 to be made stable quite quickly.

Secondly the tired and old wiki has been retired and been replaced with a brand new re-written Documentation Site.  You can get to the new site by clicking Docs on the osTicket site, or go there directly at: https://docs.osticket.com/

The release schedule slowed down for a while there, but things seem to have finally gotten back on track.  I'm really looking forward to some of the things that I have heard about in the pipeline and will share them as soon as I can!

Resources for osTicket

Official Resources

Download/Install files

Translations/Language-Packs
Download into /include/il8n folder.

Plugins
Install into /include/plugins folder.

Core Plugins
Developed by osTicket core developers.

Beta Plugins by osTicket core developers

Community Plugins
Modifies how the software works, without changing it.

  • Activity Stream – Paid Activity Stream plugin
  • adSync – Paid Active Directory Synchronization, is a plugin for osTicket 1.10+ which allows the system to synchronize your Active Directory users into osTicket.
  • Archiver – Archives tickets before delete, and allows for auto-pruning of old tickets.
  • Attachment Preview – Allows files attached to tickets to be embedded in the thread.
  • Autocloser – Automatically closes open tickets.
  • Fetch Note – Automatically fetch additional note content on ticket creation.
  • Field Radio Buttons – Enables the use of HTML form element Radio Buttons.
  • Mentioner – Finds Staff mentions in a thread and add's them as collaborators to the ticket.
  • Multi LDAP Auth – Plugin for multiple LDAP servers authentication and LDAP Sync.
  • notifyReject – notifies un-registered users that their email has been rejected and they need to register
  • Prevent Autoscroll – Stops the agent view from scrolling down to the last message in the thread.
  • Reporting – Paid plugin for extensive reporting.
  • Rewriter – An osTicket plugin to rewrite incoming emails.

Third Party Integration Plugins

Themes
Require modifications to osTicket core.

Guides

Provisioning

Development Resources

Professional Services

@Mentions

This list was blatantly stolen and then updated from the fantastic curated list by clonemeagain over at: https://github.com/clonemeagain/awesome-osticket. Thank you clonemeagain! (@grizly) I also posted it here: http://osticket.com/forum/discussion/92286/resources-for-osticket

osTicket v1.10.x Frequently Asked Questions (FAQ)

This article was updated on 08 Mar 2017

Generally speaking many of the previous FAQ answers [for former versions of osTicket] some times still apply to the current version. The line numbers will be wrong, but the information is usually still good. If you do not see an answer to your question please check out the older versions of this FAQ and/or post on the osTicket forums.

osTicket version 1.9.x FAQ
osTicket version 1.8.x FAQ
osTicket version 1.7.x FAQ

Frequently many of the questions on the osTicket forums are duplicated. As much as I wish people would use the search feature it seems that most people would rather ask their question than actively look for the answer. So I've tried to compile a small list of things that people have either frequently asked, or I think they simply might want to do.

Table of Contents:
Q: How do I change the copyright at the bottom of the page?
Q: How do I turn on error displaying for osTicket?
Q: How do I change the Forgot My Password page?
Q: How do I add custom text fields to my tickets?
Q: How to add a link so that clients can log right into the ticket?
Q: How to add a link so that Agents can log right into the ticket?
Q: How do I prevent clients from reopening a ticket?
Q: I was using a great mod with 1.6ST, 1.7, 1.8, or 1.9 will it work with 1.10?
Q: Where can I get the old install files like 1.6ST or 1.7ST?
Q: How do I change the theme colors?
Q: How do I configure the LDAP Authentication and Lookup plugin?
Q: How do I rid of the XXXXXX from the thank you page?
Q: How do I get email language templates with out reinstalling?
Q: How do I use shared mailboxes in Office365 for tickets?
Q: How do I change the pdf print font size?
Q: How do I add a new Column to the open ticket Agent View?

 

Q: How do I change the copyright at the bottom of the page?

A: edit \include\clientfooter.inc.php and change line 4.

Q: How do I turn on error displaying for osTicket?

A: Generally speaking you shouldn't need to, because you should be able to consult your PHP error logs. However some web hosts do not give people access to their PHP error logs or to edit their PHP.ini. In cases like this you can utilize osTicket itself to display the error messages. edit \bootstrap.php find these lines on or about line 32-33:

    ini_set('display_errors', 0);
    ini_set('display_startup_errors', 0);

change them to:

    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);

Make sure that you change them back when you are done.

Q: How do I change the Forgot My Password page?

A: You would think that you could go to Admin panel -> Manage -> Pages -> and edit the page there, but right now you cannot. You have to actually manually edit include/client/pwreset.sent.php. This should be addressed in a future version.

Q: How do I add custom fields to my tickets?

A: The directions for 1.6 through 1.7.3 are deprecated and should no longer be followed! Adding custom fields, drop downs, etc. just got a whole lot easier! You can add custom fields in the UI by going to Admin panel -> Manage -> Forms. You can either add your own form or edit any of the three built in forms. Generally if its not contact or company information you should put it in Ticket Details, or add your own. Currently additional forms can only be added via Help Topic so make sure that you enable the additional form to display by going to Admin panel -> Manage -> Help Topics. Click on the help topic that you want to display the additional form information and select your new form in "Custom Forms" drop down.

Q: How to add a link so that clients can log right into the ticket

A: Edit your email templates at Admin panel -> Emails -> Templates and include something like this:

Click <a href="%{recipient.ticket_link}"> here</a> to access this ticket online.

Q: How to add a link so that Agents can log right into the ticket

A: Edit your email templates at Admin panel -> Emails -> Templates and include something like this:

Click <a href="%{ticket.staff_link}"> here</a> to access this ticket online.

You will likely get a warning saying "Some variables may not be a valid for this context. Please check for spelling errors and correct usage for this template. %{ticket.staff_link}" but it appears to work fine.

Q: How do I prevent clients from reopening a ticket?

A: Check out this forum post, which also covers version 1,7, 1.8, and 1.9!
http://osticket.com/forum/discussion/75304/preventing-clients-from-reopening-a-ticket
Starting in 1.9.4 you can do this with editing the source by going to: Admin panel -> Manage -> Lists -> Ticket Statuses. Click on Closed. Click Item Property tab. Also as a side note: this will result in a new ticket being opened instead of the old ticket being re-opened.

Q: I was using a great mod with 1.6 or 1.7.x will it work with 1.8?

A: Not with out tweaking. As a general rule all available Mods are available in the Mods and Customizations section of the forum for each version. Trying to install a mod for the wrong version will likely result in a headache and a non-functional osTicket installation. The mods that are available for 1.10 are available at osTicket Forums. I recommend that you use plugins which can be updated independantly from the core source files.

Q: Where can I get the old install files like 1.6ST or 1.7ST?

A: Many people have asked where they can get older versions of osTicket.
1.6ST is available here: http://tmib.net/files/OST_1.6.zip

1.7ST is available here: http://tmib.net/files/osTicket-1.7.0.zip

Q: How do I change the theme colors?

A: You can edit the css in the /assets/default/css/themes.css file.

Q: How do I configure the LDAP Authentication and Lookup plugin?

A: I wrote an article about it!  Its available here: osTicket 1.8.1 – How to configure the LDAP Authentication and Lookup plugin.

Q: How do I rid of the XXXXXX from the thank you page?

A: There are two options that you can choose from that will get rid of the XXXXXX from the thank you page.

Option – 1
First and simplest is to go to Admin panel -> Manage -> Pages -> Thank you and remove the following from the page body:

#%{ticket.number}

This will suppress the display of the fake ticket number.

Option – 2
If you actually want the osTicket to display the ticket number you can edit the source. Option 2 is NOT as secure as it should be. This explicitly changed by the devs to not display the ticket number because it is insecure to display it in most current use cases. If your osTicket installation is behind some sort of authentication wall it may be okay for you to do this. Once osTicket finishes implementing First Class Users the ticket number will be safe to display again.

Edit /open.php circa line 76 change:

array_fill(0, 3, 'XXXXXX'),

to:

array_fill(0, 3, $ticket->getExtID()),

 

I fully plan on updating this list from time to time, but have not setup a specific time to do so. If you see something that you think should be added to the list please feel free to PM me on the osticket forums.

Q: How do I get email language templates with out reinstalling?

A: To get the templates without re-installing do the following:

  1. Download the translation files from this page: http://i18n.osticket.com/ Or use the direct download link here: http://i18n.osticket.com/download/project/osticket-official.zip
  2. Extract the zip file and look at this folder: "de \ templates \ email"
  3. There are 13 files inside the folder. Every file contains one of the 13 german email templates. To open the german email template files and get the templates itself, just use a text editor (e.g. notepad++)
  4. In osTicket you should now create your own template
  5. Open every file, copy the message (body & subject) from the file to the corresponding osTicket email template into the html editor view <> inside osTicket and save the template.
  6. Voila you have now the officially translated german email templates in your osTicket installation.

This response was supplied by Forum Moderator Chefkeks.
source:
http://osticket.com/forum/discussion/80331/german-mail-template

Q: How do I use shared mailboxes in Office365 for tickets?

A: Instead of using smtp.office365.com as Microsoft suggests for email settings use outlook.office365.com instead. So your settings would look something like this: user@contoso.com <– user account
sharedmb@contoso.com <–shared mailbox
IMAP settings: address: sharedmb@contoso.com username: user@contoso.com/sharedmb password: <user's password> IMAP server: outlook.office365.com security type: SSL port: 993 SMTP settings: SMTP server: outlook.office365.com security type: TLS port: 587 smtp UN: user@contoso.com smtp PW: <user's password>

source:
http://osticket.com/forum/discussion/89832/using-shared-mailboxes-in-office365-for-tickets

Q: How do I change the pdf print font size?

A: edit \include\staff\ticket-print.tmpl.php and add a font size to the CSS at the top.

Q: How do I add a new Column to the open ticket Agent View?

A: This is probably the most asked question in the last year. Luckily this should become trivial once 1.11 is released as it is supposed to introduce the Custom Queues feature. Until then you have to do it manually by editing the code. Here is a thread that handles most versions of osTicket from 1.7+: A better ticket list!. Warning since this thread covers multiple versions you will have to read through it to find the section of the thread that correlates to your version.

If you are looking for just adding a ticket status to 1.10 then I would refer you to this forum thread:
http://osticket.com/forum/discussion/89382/status-column-in-agent-view

 

osTicket 1.9.x – Email Template Variables

This will be the email template variables (tokens) page for 1.9.1+ (until 2.0). Below is the old list from osTicket 1.8.0+ Email Template Variables, I'll be adding and removing from it over time.

osTicket Template Vars

Client Names VARS
first: %{ticket.name.first}
last: %{ticket.name.last}
lastfirst: %{ticket.name.lastfirst}
short: %{ticket.name.short}
shortformal: %{ticket.name.shortformal}
full: %{ticket.name.full}
original: %{ticket.name.original}
formal: %{ticket.name.formal}
initials: %{ticket.name.initials}
legal: %{ticket.name.legal}

Recipient Vars
name: %{recipient.name}
first name: %{recipient.name.first}
last name: %{recipient.name.last}
lastfirst: %{recipient.name.lastfirst}
short: %{recipient.name.short}
shortformal: %{recipient.name.shortformal}
full: %{recipient.name.full}
original: %{recipient.name.original}
formal: %{recipient.name.formal}
initials: %{recipient.name.initials}
legal: %{recipient.name.legal}
recipients: %{ticket.recipients}
User Access link: %{recipient.ticket_link}
Email: %{recipient.email}

Staff Name VARS
first: %{staff.name.first}
last: %{staff.name.last}
lastfirst: %{staff.name.lastfirst}
short: %{stafff.name.short}
shortformal: %{staff.name.shortformal}
full: %{staff.name.full}
original: %{staff.name.original}
formal: %{staff.name.formal}
initials: %{staff.name.initials}
legal: %{staff.name.legal}

staff name: %{staff.name}
staff first: %{staff.name.first}
staff last: %{staff.name.last}

staff or department signature: %{signature}
Company Name: %{company.name}

Ticket Vars
Ticket ID (internal): %{ticket.id}
Ticket Number (external): %{ticket.number}
Email: %{ticket.email}
From: %{ticket.name}
Phone | Ext: %{ticket.phone}
Priotity: %{ticket.priority}
Subject: %{ticket.subject}
Original ticket body: %{ticket.thread.original}
Submitted: %{ticket.create_date}
Topic: %{ticket.topic.name}
posters name %{poster.name}

Assigned staff and/or team: %{ticket.assigned}
Due Date: %{ticket.due_date}
Date Closed: %{ticket.close_date}

Auth. token used for auto-login: %{ticket.auth_token}
RETIRED Client's ticket view link: %{ticket.client_link} users should upgrade to the token %{recipient.ticket_link}
Staff's ticket view link: %{ticket.staff_link}

OLD Help Topic: %{ticket.topic}
Help Topic: %{ticket.topic.name}

Department: %{ticket.dept}
Department Name: %{ticket.dept.name}
Department Manager Name: ${ticket.dept.manager.name}
Assigned/closing staff: %{ticket.staff}
Assigned/closing team: %{ticket.team}

Other Variables

Incoming message: ${message} [instead of this user comments for assigned note]
To get the last message use: %{ticket.thread.lastmessage}
Outgoing Response: ${response}
name of responder: %{response.poster}
Assign/transfer comments: %{comments}
Assigned staff/team: %{assignee}
Staff assigning ticket: %{assigner}
osTicket base URL (FQDN): %{url}
Password Reset URL: %{reset_link}

Internal Note VARS
OLD Internal Note: %{note}
Note Poster: %{note.poster}
Note Title: %{note.title}
Note Message" %{note.message}

Custom variables, such as those you add via Manage -> Forms can be accessed using the name that you gave them and the prefix the the built in form that you added them to. So if you added a field called Agency that was added to the built in "Ticket Details" you would access it as ticket.agency, aka:

%{ticket.VARIABLE}

Data associated with "Contact Information" is available via %{ticket.user.VARIABLE}. Where VARIABLE is the variable name that you assigned the field in the form. Data associated with other forms (such as extra forms added to help topics) is currently not available this way. It's been this way since 1.8.0.1 iirc.

 

It is important to note that while I have tested many of these, I have not tested all of them. Any labeled as OLD might not work anymore as they appear to have been replaced with new versions. Enjoy!

If you find something wrong with this list please email me at ntozier at osticket dot com and I will update this list when I get a chance. Thanks!

Update 05/22/2015 Forum user Belwi gave me the following to add %{ticket.source} %{response.create_date} %{message.create_date} %{poster.name} %{poster.email}

Update 6/24/2015 Forth coming version 1.10 has a variable type ahead feature which should trivialize this list.

Update 11/16/2015 Forthcoming version 1.10 has a variable that allows emailing attachments to the Agent.  The variable for this is %{message.files}

 

osTicket v1.9.x Frequently Asked Questions (FAQ)

Generally speaking many of the previous FAQ answers [for former versions of osTicket] some times still apply to the current version. The line numbers will be wrong, but the information is usually still good. If you do not see an answer to your question please check out the older versions of this FAQ and/or post on the osTicket forums.

Read more “osTicket v1.9.x Frequently Asked Questions (FAQ)”

Upcoming osTicket Feature: User Accounts — includes commit notes and Dev Q&A

There has been a lot of talk recently about some of the new features and the direction that osTicket is heading in. In the past I've mentioned that osTicket will have individual user accounts for clients. Today I get to share a little more about this coming feature! Jared (aka greezybacon) posted the following commit notes over on github a short time ago:

This feature adds the framework for client authentication. Now, clients can register for accounts and login with a username and password to the client portal. The feature include several sub-features

Features

  • Client login (via new sign-in page)
  • Client registration
    • Email address verification for self-service registration
    • When viewing a ticket, users are encouraged to register for an account or sign-in to view other tickets
    • Registration can be disabled, which will use the legacy ticket access link page
    • Registration can be closed so that only staff members can register client accounts
  • Login can be required for clients to create new tickets
  • New tickets via the web portal can be disabled (if registration is disabled and sign-in is required)
  • Ticket links in emails now give access to exactly one ticket (show related tickets is retired)
  • Clients have a time zone preference, and all times are shown in the client's preferred time zone
  • System time zone is pre-selected for both new clients and new staff
  • Client login supports password reset via email (with configurable template)
  • Client sign-in page supports a configurable header and title
  • Client registration page and email templates are translatable and configurable
  • Staff login page supports a configurable banner
  • New staff accounts can be accessed without a temporary password (reuses the password reset feature)
  • New "Access" settings page with consolidated settings for authentication and access settings

Review Requested for

  • Template and view file naming conventions
  • Content phrasing, especially with respect to the new content
  • Look and feel as well as workflow
  • Intuitiveness
  • Misleading links, pages, etc.
  • Missing prompts, labels, headers, etc.
  • Migration of existing data and settings after upgrade from <= 1.8.2
  • Lint and code quality

(source)

This of course immediately prompted an impromptu Q&A session.  Here are the questions and answers (They were re-formated to make more sense):

Q: Out of curiosity how will this new system handle existing accounts? (ie in case of upgraded installations)  Since these users will obv not have a password. Will they be forced to use the "forgot password link?"

Jared: Upon upgrade, there will be no existing accounts. We’ve chosen to separate the idea of users and user accounts. For instance, anyone who sends an email into the system should not necessarily have an account created with user preference, organization information, account access email sent out, etc. User’s accessing the system via email links will have the option to register for an account in the system, once the setting is enabled in the admin panel (Settings -> Access -> Client Registration Mode (set to ‘public’). New installs will ship with the setting configured as ‘public’ and upgrades will set the setting to ‘private’ (only staff can register client accounts). Once a client registers, verifies the email address, and logs in, they will have access to all their tickets, can manage their profile, etc.

Client registration will use an email verification method similar to the forgot my password since email addresses are still required for client accounts.

 

Q: Will there be a staff ui for reseting the account password immediately?

Jared: Peter is working in parallel on a user directory feature which will allow staff members to create, delete and manage client accounts (including resetting passwords).

 

Q: Will there be the traditional "ask question:provided answer" to prove who the person is before sending password reset links? Like the ones that financial institutions use. (examples: Where was your favorite place to visit as a kid?  What is your mothers maiden name? etc.)

Jared: Currently, reset is done by email address verification. I’m not opposed to the Q and A option, but I personally don’t like them and generally forget the answers to the questions before I’m able to use them. I would vote for a SMS message reset instead, if we required another form of authentication.

Please join the conversation over on the osTicket.com forums here:
Upcoming osTicket Feature: User Accounts — includes commit notes and Dev Q&A

A peek at osTicket 1.8.1

The up coming osTicket 1.8.1 has a couple features that many in the community have been waiting for.. for a very long time.  One of those features is plugin support.  Similar to the way that  WordPress handles plugin you will be able to install plugins easily by simply unzipping the plugin and putting it in the plugin directory. There is a new menu in the Admin panel for installing and configuring plugins.  Of course what good would be a plugin system be if there were no plugins at launch?  So the devs have written three plugins that they are calling "Core Plugins".  These plugins are called: auth-ldap, auth-passthru, and storage-fs.

auth-ldap: provides STAFF authentication with an LDAP or Microsoft Active Directory server. [Note: there are plans to extend this to Client accounts also, but at launch this will only work for Staff.]

auth-passthru: Allows the HTTP server to perform user authentication.

storage-fs: Which allows attachment files to be stored in the file system (aka disk) instead of in the databse.

So tonight I installed the bleeding edge of the develop-next repository and installed the auth-ldap plugin.  Now before you go running out to do this please keep in mind that this software is not even official released yet so you shouldn't even think about using it for a production server.  Also I couldn't actually get the plugin to work… But here's your first peeks into the plugin system and the ldap plugin.

Go to admin panel -> Manage -> Plugins.
Where you will see a screen like this

click on "Add new plugin"

Click on Install to the left of LDAP Authentication and Lookup.

Click on LDAP Authentication and Lookup

configure it to match your settings.
click "Save Changes"

Click on Plugins again.
Click on the tick box, click on "Enable"

osTicket 1.8.0.2 – Email Template Variables

With new versions of osTicket coming out so fast recently, some times the documentation fails to keep pace with the features. So I did a little digging and have collected a slew of new undocumented Email Template Variables.  The list below was compiled on version 1.8.0.2 through version 1.8.1.

osTicket Template Vars

Client Names VARS
first: %{ticket.name.first}
last: %{ticket.name.last}
lastfirst: %{ticket.name.lastfirst}
short: %{ticket.name.short}
shortformal: %{ticket.name.shortformal}
full: %{ticket.name.full}
original: %{ticket.name.original}
formal: %{ticket.name.formal}
initials: %{ticket.name.initials}
legal: %{ticket.name.legal}

Recipient Vars
name: %{recipient.name}
first name: %{recipient.name.first}
last name: %{recipient.name.last}
lastfirst: %{recipient.name.lastfirst}
short: %{recipient.name.short}
shortformal: %{recipient.name.shortformal}
full: %{recipient.name.full}
original: %{recipient.name.original}
formal: %{recipient.name.formal}
initials: %{recipient.name.initials}
legal: %{recipient.name.legal}

User Access link: %{recipient.ticket_link}
Email: %{recipient.email}

Staff Name VARS
first: %{staff.name.first}
last: %{staff.name.last}
lastfirst: %{staff.name.lastfirst}
short: %{stafff.name.short}
shortformal: %{staff.name.shortformal}
full: %{staff.name.full}
original: %{staff.name.original}
formal: %{staff.name.formal}
initials: %{staff.name.initials}
legal: %{staff.name.legal}

staff name: %{staff.name}
staff first: %{staff.name.first}
staff last: %{staff.name.last}

staff or department signature: %{signature}
Company Name: %{company.name}

Ticket Vars
Ticket ID (internal): %{ticket.id}
Ticket Number (external): %{ticket.number}
Email: %{ticket.email}
From: %{ticket.name}
Phone | Ext: %{ticket.phone}
Priotity: %{ticket.priority}
Subject: %{ticket.subject}
Original ticket body: %{ticket.thread.original}
Submitted: %{ticket.create_date}
Topic: %{ticket.topic.name}
posters name %{poster.name}

Assigned staff and/or team: %{ticket.assigned}
Due Date: %{ticket.due_date}
Date Closed: %{ticket.close_date}

Auth. token used for auto-login: %{ticket.auth_token}
Client's ticket view link: %{ticket.client_link}
Staff's ticket view link: %{ticket.staff_link}

OLD Help Topic: %{ticket.topic}
Help Topic: %{ticket.topic.name}

Department: %{ticket.dept}
Department Name: %{ticket.dept.name}
Department Manager Name: ${ticket.dept.manager.name}
Assigned/closing staff: %{ticket.staff}
Assigned/closing team: %{ticket.team}

Other Variables

Incoming message: ${message}
Outgoing Response: ${response}
Assign/transfer comments: %{comments}
Assigned staff/team: %{assignee}
Staff assigning ticket: %{assigner}
osTicket base URL (FQDN): %{url}
Password Reset URL: %{reset_link}

Internal Note VARS
OLD Internal Note: %{note}
Note Poster: %{note.poster}
Note Title: %{note.title}
Note Message" %{note.message}

It is important to note that while I have tested many of these, I have not tested all of them. Any labeled as OLD might not work anymore as they appear to have been replaced with new versions. Enjoy!