Интеграция онлайн-чата (Zendesk Chat) на сайт
Zendesk Chat (теперь часть Zendesk Suite как Messaging) — чат-платформа для поддержки клиентов с интеграцией в helpdesk. Особенно удобен, если компания уже использует Zendesk для обработки тикетов — чат и тикеты объединяются в единый рабочий стол агента.
Установка Web Widget (Classic)
<script id="ze-snippet"
src="https://static.zdassets.com/ekr/snippet.js?key=YOUR_KEY">
</script>
Установка Zendesk Web Widget (новый Messaging)
<script id="ze-snippet"
src="https://static.zdassets.com/ekr/snippet.js?key=YOUR_KEY">
</script>
<script>
zE('messenger:set', 'locale', 'ru');
</script>
Идентификация пользователя
// Classic Widget
zE(function() {
zE.identify({
name: user.name,
email: user.email
});
});
// Новый Messenger с JWT
zE('messenger', 'loginUser', function(callback) {
// Запросить JWT с сервера
fetch('/zendesk-token').then(r => r.json()).then(data => {
callback(data.token);
});
});
JWT для аутентификации
// Генерация JWT для Zendesk
use Firebase\JWT\JWT;
$payload = [
'iss' => 'yourcompany',
'iat' => time(),
'jti' => uniqid(),
'name' => $user->name,
'email' => $user->email,
'external_id' => (string)$user->id
];
$token = JWT::encode($payload, env('ZENDESK_JWT_SECRET'), 'HS256');
Zendesk API: создание тикета из формы
Http::withBasicAuth($email . '/token', $apiKey)
->post("https://yourcompany.zendesk.com/api/v2/tickets", [
'ticket' => [
'subject' => $subject,
'comment' => ['body' => $message],
'requester' => ['name' => $name, 'email' => $userEmail],
'priority' => 'normal',
'tags' => ['website', 'contact-form']
]
]);
Срок установки: 1 рабочий день с JWT-аутентификацией и базовой настройкой.







