У меня всегда были контактные формы на моем веб-сайте, я думаю, что люди ожидают их, но управление ими всегда было проблемой. Вы получаете отформатированное электронное письмо, которое также выглядит некрасиво, когда на него отвечают, адрес для ответа неверен и обычно выходит за рамки вашего обычного процесса обслуживания клиентов.
На этот раз я решил вставить информацию из контактной формы прямо в наш виджет чата Crisp.
Сначала мне нужно было создать простую форму.
Пример без стилей…
<form id="contactForm"> <input name="firstname" type="text" id="firstname"> <input name="lastname" type="text" id="lastname"> <input name="email" type="email" id="email"> <input name="phone" type="text" id="phone"> <textarea required="required" name="message" id="message"> </textarea> <button type="submit">Submit</button> </form>
Затем нам просто нужно перехватить отправку и отправить всю информацию в виджет чата Crisp.
<script> const contactForm = function (form) { form.preventDefault(); $crisp.push(["do", "chat:open"]) $crisp.push(["do", "message:send", ["text", 'Name: ' + this.firstname.value + ' ' + this.lastname.value]]); $crisp.push(["do", "message:send", ["text", 'Email: ' + this.email.value]]); $crisp.push(["do", "message:send", ["text", 'Phone: ' + this.phone.value]]); $crisp.push(["do", "message:send", ["text", 'Message: ' + this.message.value]]); this.reset(); }; document.getElementById('contactForm').addEventListener('submit', contactForm) </script>
Это откроет чат и отправит всю эту информацию, чтобы ваша служба поддержки могла ответить.
Однако гораздо лучше, если вы можете указать поле email непосредственно в интеграции. Таким образом, если пользователь больше не находится на странице, он получит электронное письмо, если не сможет получить уведомление от виджета онлайн-чата.
Добавление электронной почты пользователя (и имени).
И проверка того, что он еще не установлен в вашем приложении.
if(!$crisp.get('user:email')){ $crisp.push(["set", "user:email", this.email.value]); } if(!$crisp.get('user:nickname')){ $crisp.push(["set", "user:nickname", this.firstname.value + ' ' + this.lastname.value]); }
Вот так, простые вещи. Окончательный сценарий будет выглядеть так, как показано ниже.
<script> const contactForm = function (form) { form.preventDefault(); if(!$crisp.get('user:email')){ $crisp.push(["set", "user:email", this.email.value]); } if(!$crisp.get('user:nickname')){ $crisp.push(["set", "user:nickname", this.firstname.value + ' ' + this.lastname.value]); } $crisp.push(["do", "chat:open"]) $crisp.push(["do", "message:send", ["text", 'Name: ' + this.firstname.value + ' ' + this.lastname.value]]); $crisp.push(["do", "message:send", ["text", 'Email: ' + this.email.value]]); $crisp.push(["do", "message:send", ["text", 'Phone: ' + this.phone.value]]); $crisp.push(["do", "message:send", ["text", 'Message: ' + this.message.value]]); this.reset(); }; document.getElementById('contactForm').addEventListener('submit', contactForm) </script>
Прежде чем приступить к работе, важно, чтобы у вас уже был скрипт, включающий виджет живого чата на вашу страницу, и чтобы он был над скриптом, который мы только что добавили.
Надеюсь, это поможет одному из вас с этими надоедливыми контактными формами.