As for us, we had a huge experience with chats.
Kayako was used and it really is decent, but it is regularly updated and "improved", resulting in shortcuts replacements and canned replies being regroupped. You have to get used to it from the start after each upgrade, not to mention permanent frustrating hangups.
Zopim was also used for a while, but its cost is really too high and all these additional features are rarely needed and are rather confusing, not useful.
We also tried using SnapEngage chat for a while, as it has all the features a good chat should have - typing indicator, multiple chats can be answered at once, canned replies are groupped easily and found quickly, it supports in-chat shortcuts and is highly adjustable. However, it also hanged up a lot, which was very inconvenient (it was about a year ago, maybe now the situation is better).
After all we ended up using Livezilla chat system. It has all the benefits mentioned above and we were not able to detect a single flaw in it for several months we use it. One of the most convenient features for customers is that chat is started if agent is online and ticket is created if agent is offline, so customers do not have to ask twice.
<MOD NOTE: Signatures must be setup in your profile.>