Errors caused by UTF8 emoji characters

If LiveAgent is causing errors when you receive a Facebook message or email containing UTF8 emoji (emoticon, smiley) characters, it is caused by the database "collation" or "character set".

MySQL "utf8" only supported characters 3-bytes long. Emoji characters belong to the group of characters that occupy 4 bytes. To overcome this limitation MySQL introduced a fixed character set called "utf8mb4" in version MySQL 5.5.

If you install LiveAgent on database MySQL 5.5 or higher, the columns are already created with the correct "utf8mb4" character set. However, if you installed LiveAgent on database version MySQL 5.4 or older, the tables and columns were created with the character set "utf8". The tables and columns are not automatically converted even when you later update to MySQL 5.5 or higher. This conversion must be done manually.

Fortunately, LiveAgent source files contain SQL commands to perform this conversion. You will find them in /install/db/gpf/unicode.sql and /install/db/la/unicode.sql. After you execute those SQL scripts on your LiveAgent database all the necessary columns which may contain UTF8 4-byte characters will be converted to "utf8mb4" character set.