Rezervasyon salonun ajandasına yazılır, onun bir kopyasına değil — ve asistan gerçekten istenen hizmeti yapan uzmanın boş saatini önerir.
Asistanı, konuşma sırasında çağırdığı altı araç üzerinden rezervasyon sisteminize bağlıyoruz: gerçek fiyatlarla hizmetler, her birinin prosedürleriyle uzmanlar, uygunluk, bir rezervasyonun oluşturulması, iptali ve taşınması. Doğruluk kaynağı ajandanız olarak kalır; biz ikinci bir tane tutmuyoruz.
Zaten kurduklarımızConectorul e scris și rulat: 946 de linii în modulul de integrare cu sistemul de programări Altegio, cu șase unelte expuse agentului, fiecare cu termen propriu de execuție — 15 secunde pentru lista de servicii, 30 pentru disponibilitate, 20 pentru creare, anulare și mutare. Uneltele sunt legate în punctul unic de execuție al agentului, alături de celelalte 15 tipuri de unelte interne ale platformei. A doua implementare pe care ne sprijinim e platforma de asistenți în sine, în producție: canale cu cod propriu, bază de cunoștințe indexată și predare către om cu evidență în baza de date. Rezerva: conectorul e scris pentru un singur sistem de programări. Dacă salonul tău folosește altceva, prima etapă e o verificare de compatibilitate, nu o promisiune.
Bir salonda alınan hemen her mesaj, dört repliklik aynı konuşmadır: hangi hizmetleriniz var, ne kadar tutuyor, kim yapıyor, ne zaman boş. Bu, günde onlarca kez, neredeyse her zaman çalışma saatleri dışında ya da yöneticinin eli doluyken tekrar eder. İlk üç soruya cevap verip dördüncüsünde duran bir asistan hiçbir şeyi çözmez — insan yine arayacak ve siz yine birine cevap vermesi için ödeme yapacaksınız.
Bu yüzden entegrasyonu sonuna kadar kurduk: ajan sadece hangi saatlerin boş olduğunu söylemez, salon sisteminde rezervasyonu oluşturur, iptal eder ve taşır. Rezervasyon, zaten kullandığınız sistemin arayüzü üzerinden doğrudan ajandanıza yazılır. Yanımızda sonra ilk ajansa uydurulması gereken ikinci bir ajanda tutmuyoruz — doğruluk kaynağı tek kalır, çünkü iki ajanda, er ya da geç, aynı saatte iki müşteri demektir.
Çalışan bir entegrasyon ile sürekli ‘boş değil’ döndüren bir entegrasyon arasındaki farkı yaratan saha ayrıntısı, rezervasyon sisteminin bir kuralıdır ve kodumuzda aynen şöyle yazılıdır: hizmet ve uzman birlikte yolculuk eder. Bir uzmanın yapmadığı bir hizmet için onun saatlerini isterseniz, sıfır sonuç alırsınız — bir hata değil, tam olarak ‘yer yok’ gibi görünen boş bir yanıt. Bu yüzden uygunluk aracı ‘boş/meşgul’ döndürmez: istenen hizmeti yapan uzmanları ve her biri için en erken olan sıralamayla ilk boş saatleri döndürür; böylece ajan konuşmayı kapatmak yerine somut bir alternatif önerir.
Ve bir prosedürün gerçek süresi de aynı ailenin ikinci tuzağıdır: genel hizmet listesi boş süre döndürür, gerçek süre ise yalnızca uzmana göre filtrelenmiş olarak sorulduğunda görünür. Bu düzeltme olmadan ajan, ajandaya sığmayan saatler önerir. Bunlar, dokümantasyondan değil, entegrasyon gerçek veriler üzerinde çalıştıktan sonra öğrenilen şeylerdir.
Neleri kapsıyor
Beauty & wellness’ta somut olarak ne değişiyor
Hizmetler ve fiyatlar kopyalanmış bir listeden değil, sizin sisteminizden gelir
İlk araç, ajandanızdaki gerçek fiyatlarla birlikte aktif hizmetleri döndürür; Romence veya Rusça serbest bir müşteri ifadesine göre filtrelenebilir, en uygunlar önce gelir. Yürütme süresi 15 saniye. Sistemde bir fiyatı değiştirdiğinizde, ajan bunu değiştirilmiş olarak söyler — bizde geride kalan bir dosya yoktur.
Uygunluk, yalnızca boş olup olmadığını değil, hizmeti kimin yaptığını ve ne zaman yaptığını döndürür
Uygunluk aracı, hizmeti — kimlik numarasına veya aranan ada göre — ve isteğe bağlı olarak tercih edilen uzmanı alır; bu uzman önce gösterilir, ancak alternatifler de sunulur. Sonuç, o hizmeti yapan uzmanların ve her biri için ilk boş saatlerin, en erkene göre sıralanmış listesidir. Süre: 30 saniye, çünkü sorgu birden fazla noktaya dokunur.
Rezervasyon fiilen oluşturulur, vaat edilmez
Oluşturma aracı uzmanı, hizmeti veya hizmetleri, tarih ve saati, telefonu ve müşterinin adını, isteğe bağlı olarak e-postayı, bir yorumu ve süreyi alır. Sonuç, salonun ajandasında tanımlayıcısı olan bir randevudur. Ondan sonra kendi sisteminizde yaşar, bizde değil — yönetici onu genelde baktığı yerde görür.
İptal ve yeniden planlama da araçtır, yöneticiye bir mesaj değil
İptal, rezervasyon tanımlayıcısını ve isteğe bağlı olarak nedeni ister; yeniden planlama ise rezervasyonu koruyarak saati değiştirir. Bu ikisi olmadan her rezervasyon entegrasyonu yarımdır: müşteriler rezervasyon yapmaktan daha sık iptal eder ve yeniden planlar; ajan bunu yapamazsa iş, tam da en sinir bozucu anda insana geri döner.
Uzmanlar, her birinin prosedürleri ve süreleriyle
Altıncı araç, her uzmanın yaptığı prosedürleri ve her prosedürün dakika cinsinden süresini içeren uzmanlar listesini döndürür — uzman adına veya hizmete göre filtrelenebilir. Bu, „kim laminasyon yapıyor” sorusuna yanıt veren araçtır ve daha önemlisi, ajanın bir saat önermeden önce süreyi aldığı araçtır. Uygulamada ancak ortaya çıkan bir ayrıntı: gerçek süre yalnızca uzman bazında filtreleyerek sorduğunuzda gelir; genel liste onu boş döndürür.
Entegratör anahtarı sunucuda durur, siz yalnızca salon tanımlayıcısını girersiniz
Ortak jetonu tek bir anahtardır, sunucu ortamında tutulur, asla araç başına veritabanında tutulmaz. Siz salonu şirket tanımlayıcısıyla bağlarsınız; bu tanımlayıcı kaydedilmeden önce doğrulanır: o tanımlayıcı için herkese açık hizmet listesi istenir ve kaç tane olduğu sayılır. Yanıt gelmezse entegrasyon kaydedilmez — müşteri karşısında başarısız olmaktansa bağlantı sırasında başarısız olması daha iyidir.
Yanlış bir başlık 403 demektir, „entegrasyon çalışmıyor” değil
Sağlayıcının güvenlik filtresi, varsayılan bir istemci tanımlayıcısına 403 döndürür; bu yüzden entegrasyon kendi tanımlayıcısını gönderir. Bu, fark edilmezse yanlış yerde günlerce neden aramaya yol açan türden bir ayrıntıdır — ve kod yorumuna tam da sonraki kişi bunu bir daha kaybetmesin diye yazılmıştır.
Rolü aştığında, konuşmayı bir insana, kayıtla birlikte devreder
Akışın açık bir `bot` veya `human` durumu vardır, devralma günlüğü bir insanın devralmasını, bota dönüşü ve otomatik yeniden etkinleştirmeyi bilir; ayrıca akışın yanıt süresi uyumuna dair ayrı bir durumu vardır. Bir salonda insan gerektiren anlar öngörülebilirdir: bir prosedür sonrası şikâyet, indirim talebi, bir cilt sorunu hakkında soru.
Bir salon asistanı ne yapmaz
Tedavileri önermez ve bir cilt, saç veya tırnak sorununu değerlendirmez — müşteri ısrar etse bile, çünkü cevap birinin sağlığı hakkında bir iddia olurdu. Fiyat pazarlığı yapmaz ve kural yazılı ve doğrulanabilir değilse indirim vermez. Ve salonun arayüzlü bir rezervasyon sistemi yoksa bu düzeyde çalışmaz — o zaman talebi alır ve bir insana devreder; bu farklı bir iştir ve önceden söylenmelidir.
Traseul
Bir talep sistemden nasıl geçer.
01
Rezervasyon sisteminizin uyumluluğunu kontrol ediyoruz
İlk aşama bir kontroldür, bir vaat değil: hangi sistemi kullanıyorsunuz, ne tür bir herkese açık arayüzü var, bir konuşma için yeterince hızlı yanıt verip vermediği. Yazdığımız bağlayıcı, belirli bir sistem içindir. Başkası için, kontrol sonucunu ve iş tahminini teslim ederiz; buna otomatik rezervasyon düzeyinde çalışmasının mümkün olmadığı yanıtı da dahildir.
02
Salonu bağlıyor ve tanımlayıcıyı doğruluyoruz
Bağlantı, şirket tanımlayıcınızla yapılır; bu tanımlayıcı, herkese açık rezervasyon arayüzüne karşı anında doğrulanır: hizmetler istenir ve sayılır. Bağlı entegrasyonu, okunan hizmet sayısıyla teslim ederiz — sayı salonun gerçeğiyle uyuşmuyorsa, bir ay sonra değil, hemen görülür.
03
Ajente araçlarını bağlıyoruz ve reddetme kurallarını yazıyoruz
Altı araç yalnızca sizin ajentinize bağlanır, herkese değil. Rolünde açıkça ne yapamayacağını yazarız: tedavi önermemek, tıbbi bir sorunu değerlendirmemek, bir sonuç vaat etmemek, doğrulanmamış bir indirim vermemek. Ajent yapılandırmasını ve bağlı araçların listesini teslim ediyoruz.
04
Gerçek konuşmalar üzerinde çalışıyoruz, aktif insan devriyle
İnsana devri geniş şekilde yapılandırarak ve sorgu günlüğünü açarak başlıyoruz. İlk günlerin konuşmalarını okuyoruz — ajentin hiçbir hizmetle eşleştiremediği yerel ifadeler orada görülür. Kaçırılan eşleşmeler ve yapılan düzeltmelerle birlikte raporu teslim ediyoruz.
Traseul, în 5 pași
Veriler
Neye dokunuyoruz, nerede duruyorlar ve ne kadar kalıyorlar
Kurallar sektörden sektöre değişir. Bunlar beauty & wellness için geçerli olanlardır.
Konuşmadan gerçekten geçen kişisel veriler neler
Ad, telefon, bazen e-posta, seçilen hizmet ve saat. Randevu oluşturma aracı tam olarak bunu ister. Bunlar için bir neden bulunan minimum verilerdir — telefonsuz bir randevu doğrulanamaz — ve „olsun diye” başka bir şey istemiyoruz.
Siz istemeden ortaya çıkan sağlık verileri
Beauty ve wellness’ta müşteri kendiliğinden „hassas cildim var”, „hamileyim”, „alerjim var” gibi şeyler yazar. Bunlar, bir addan daha sıkı bir rejime tabi özel kategoride verilerdir. Teknik olarak engellenemezler, ancak işlenebilirler: ajent bunları istemez, yanıtında tekrarlamaz ve tavsiye vermek için kullanmaz; ekip de kanalda bunları talep etmemesi için eğitilir. Müşteri tarafından yazılanlar, uygulamada belirlenen saklama süresiyle birlikte konuşmada kalır.
Randevular bizde iki kez kaydedilmez
Gerçek kaynağı salonun sistemi olarak kalır. Biz yalnızca yürütme izini tutarız — hangi aracın hangi parametrelerle, hangi sonuçla çağrıldığı — ajandanın bir kopyasını değil. Bu fark, bir denetimde önemlidir: müşterilerinizin ve saatlerinin bulunduğu ikinci bir veritabanımız yok.
Konuşmalar nerede duruyor ve onları kim görüyor
MySQL, Microsoft Azure’daki kendi sunucumuzda, kanallar, iç notlar ve denetim günlüğü için ayrı tablolarla. Ekibinizin erişimi roller üzerinden yapılandırılır. Müşteriler üzerinde ortak bir depo yoktur.
Saklama süresi ve yayımlanan politika
Her uygulama için belirlenir ve yayımlanan politikanıza yazılır — bizimkine değil. Bizim de uyguladığımız kural şu: bir kod değişikliği neyin toplandığını, kime gittiğini veya ne kadar süre saklandığını değiştirirse, yayımlanan politika aynı commit içinde değiştirilir.
Bir vaka
Randevu entegrasyonunun çalışıp çalışmadığını belirleyen saha kuralı
Durum
Bir salonun randevu sistemiyle bağlantılı bir asistan, hizmetler ve fiyatlar konusunda doğru yanıt veriyordu, ancak „ne zaman boş” sorusuna belirli kombinasyonlarda boş bir yanıt döndürüyordu. Bir hata değil — konuşmada tam olarak „yerimiz yok” gibi görünen boş bir yanıt.
Ne kurduk
Nedeni, planlama sisteminin bir kuralıdır: hizmet ve uzman birlikte seyahat eder. Bir uzmanın yapmadığı bir hizmet için saatleri sıfır sonuç döndürür. Kullanılabilirlik aracını kişiden değil, hizmetten başlayacak şekilde yeniden yazdım: o hizmeti yapan uzmanları ve her biri için ilk boş saatleri döndürür, en erken olana göre sıralar, tercih edilen uzmanı ilk sıraya koyar ama alternatifleri de korur. Aynı aşamada prosedürlerin süresini de düzelttim; bu süre genel listeden boş gelir ve gerçek değer yalnızca uzman filtresinden geçince görünür. Ayrıca kendi müşteri kimliğimi de ekledim, çünkü sağlayıcının güvenlik filtresi varsayılan olana 403 döndürüyor.
Ne çıktı
Konuşma artık “uygun değil” ile bitmiyor. Ajan somut bir alternatif öneriyor — başka uzman, başka saat — ve salonun takviminde randevuyu oluşturabilir, iptal edebilir veya taşıyabilir; bu takvim tek doğruluk kaynağı olarak kalıyor.
Vakanın söylemedikleri
Düzeltmeler, bağlayıcının yazıldığı planlama sistemine özeldir. Başka bir sistem için onun saha kuralları farklıdır ve aynı şekilde keşfedilir: dokümantasyonu okuyarak değil, gerçek veriler üzerinde çalıştırarak.
Sorular
Güzellik ve wellness alanından biri ne soruyor
Gerçekten randevu mu alıyor, yoksa birinin arayacağını mı söylüyor?
Randevu alıyor. Salon sistemine uzman, hizmet, tarih, saat, telefon ve ad ile randevuyu yazan bir oluşturma aracı var ve randevu kimliğini döndürüyor. İptal ve taşıma da araçtır. Bir sağlayıcı “randevu al” diyorsa ama iptal edip taşıyamıyorsa, entegrasyon yarımdır.
Takvimde boş saatler gördüğüm halde neden uygun değil diye söyler?
Çalıştığımız sistemde en yaygın neden, hizmet ve uzmanın birlikte seyahat etmesidir: Bir uzmanın yapmadığı bir hizmet için saatler istenirse, sonuç hata değil, sıfır sonuç olur. Bu yüzden kullanılabilirlik aracımız hizmetten başlar ve onu yapan uzmanları, her biri için ilk boş saatlerle birlikte döndürür. Bu, ayar değil, kodda yazılı bir düzeltmedir.
Salonum bir planlama sistemi kullanmıyor. Ne değişir?
Ajanın yapabildiği şey değişir: hizmet, tercih edilen uzman, zaman aralığı, iletişim bilgisi dahil tam isteği alır ve rezervasyon yapmak yerine bir insana iletir. Yararlıdır, ama başka bir iştir ve biz onu başka adla çağırırız. Size kâğıt ajanda üzerinde “otomatik randevu” satmıyoruz.
Tercih edilen uzman meşgulse başka bir saat önerebilir mi?
Evet, bu aracın varsayılan davranışıdır: tercih edilen uzman ilk sıraya alınır, ama alternatifler de gösterilir; her biri için ilk boş saatler en erken olana göre sıralanır. “Uygun değil” deyip susan bir ajan, gelmeye hazır olan müşteriyi tam da böyle kaybeder.
Bir prosedür ne kadar sürer — uygunsuz saatler önermemek için bunu nereden biliyor?
Her birinin prosedürleri dakika cinsinden süresiyle birlikte döndüren uzmanlar aracından. Önemli ayrıntı şu: genel hizmet listesi süreyi boş döndürür, gerçek süre yalnızca uzman filtresinden geçince görünür. Bu düzeltme olmadan ajan sığmayan saatler önerirdi. Bunu gerçek veriler üzerinde keşfettiğimiz için kodda yazılı.
Müşteri cildinin hassas olduğunu yazıyor. Ajan ne yapar?
Eğer bunu istemişseniz, bunu randevuya not eder ve hiçbir tavsiye vermez. Değerlendirme yapmaz, ürün önermez, prosedürün uygun olup olmadığını söylemez — bu, bir insanın sağlığı hakkında otomatik bir sistemin yaptığı bir beyan olurdu. Konuşmayı bir uzmana iletir. Müşteri tarafından yazılan bilgi özel bir kategori verisidir ve saklama süresi dahil olmak üzere buna göre işlenir.
Ajan yanlış bir randevu alırsa kim cevap verir?
Hata, oluştuğu aynı yerde görünür ve düzeltilebilir: randevu sizin ajandanızdadır ve aynı araçlar onu iptal edebilir veya taşıyabilir. Platform, yürütme izini tutar — hangi aracın, hangi parametrelerle ve hangi sonuçla çağrıldığını — bu yüzden ne olduğunu yeniden kurmak mümkündür. Kurulumda, tek başına ne yapabileceğini ve ne zaman bir insan onayı gerektirdiğini belirliyoruz ve bu yazılır, ima edilmez.
Müşterinin geçmişini gör — en son ne yaptı?
Yalnızca ona açıkça erişim verirseniz. Bugün bağlı araçlar hizmetler, uzmanlar, uygunluk, oluşturma, iptal ve taşıma kapsamındadır. Ziyaret geçmişi başka bir veri kategorisidir, başka sonuçları vardır ve sadece „yararlıdır” diye otomatik olarak etkinleştirilmez.
Hangi kanallarda yanıt verir?
Müşterilerinizin zaten yazdığı ve platformda kendi kodu olan kanallarda: bir salondaki mesajların en büyük kısmının geldiği Instagram Direct ve Messenger — Telegram, Cloud API üzerinden WhatsApp ve sayfadaki widget. Planlama araçları hepsinde aynıdır; bir kanalda daha zayıf bir sürüm yoktur.