Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

JS-Callback помогите со скриптом

Есть такой JS скрипт для лидбэка

Надо JS события дописать и вставить в тильде
События: 2 цели передавать из лидбэка:
когда лид оставил телефон в чате - LEADBACK_CHAT_OFFLINE_LEAD
и когда звонок - LEADBACK_CALL

<script>
var _emv = _emv || [];
_emv['successCallCallback'] = function (result) {
// этот код вызывается когда клиент заказал звонок в виджете или чате
if (result.result == 'success' || result.result == 'delayed') {
// звонок принят сервисом
// номер телефона можно получить из result.data.callback_phone
// ID звонка result.id
// если delayed, то звонок заказан в нерабочее время и будет выполнен позже
// время на которое отложен звонок можно получить из result.time
} else {
// произошла ошибка или ваш тариф имеет ограничения
// описание ошибки в result.message
}
}
</script>

По дате
По рейтингу
Аватар пользователя
Новичок
7мес

<script>
var _emv = _emv || [];
_emv['successCallCallback'] = function (result) {
if (result.result === 'success' || result.result === 'delayed') {
// Call accepted by the service
console.log('Call accepted:', result); // Log for debugging
let phone = result.data?.callback_phone;
let callId = result.id ;
if (phone) {
console.log("Callback Phone:", phone);
// Send event to your Tilque script here
_emv.push(['LEADBACK_CALL', { phone: phone, callId: callId }]);

} else {
console.error("Callback phone number not found in result.data.");
}

if (result.result === 'delayed') {
console.log("Call delayed until:", result.time);
// Send event for delayed call (optional)
_emv.push(['LEADBACK_CALL_DELAYED', { phone: phone, callId: callId, delayTime: result.time }]);
}
} else {
console.error('Call failed:', result);
console.error("Error:", result.message);
// Send event indicating an error (optional)
_emv.push(['LEADBACK_CALL_ERROR', {errorMessage: result.message}]);
}
};


_emv['offlineCallback'] = function(result) {
if (result.result === 'success') {
console.log('Lead left phone number in chat:', result);
let leadId = result.leadId; // Assuming result.leadId exists
_emv.push(['LEADBACK_CHAT_OFFLINE_LEAD', { leadId: leadId }]); // Send event here
} else {
console.error('Lead leaving phone number in chat failed:', result);
}
};


</script>


Объяснение:

1.Структурированные данные: события теперь передают структурированные данные в _emv. Это упрощает доступ вашего скрипта Tilque к необходимой информации (например, номеру телефона и идентификатору вызова).

2.Обработка ошибок: операторы console.error предоставляют более подробную информацию для отладки, а также обработку ошибок в случае отсутствия информации о телефоне.

3.Обработка отложенных вызовов: для обработки отложенных вызовов добавлено необязательное событие LEADBACK_CALL_DELAYED, позволяющее использовать информацию result.time в вашем скрипте Tilque.

4._emv.push: Важная часть: этот метод отправляет новый массив, содержащий имя события и объект, содержащий данные, которые вы хотите передать в скрипт Tilque. Эту структуру необходимо правильно обработать на стороне Tilque. Так вы передаёте информацию между внешним JavaScript-скриптом и скриптом Tilque.

5.offlineCallback: Добавлена новая функция обратного вызова _emv['offlineCallback'] для обработки события, когда потенциальный клиент оставляет номер телефона. Предполагается, что result объект, переданный в эту функцию, будет содержать leadId поле. Если это не так, вам может потребоваться изменить структуру result объекта.