Giriş
WhatsApp için chatbot, taleplere otomatik olarak yanıt vermek, bildirimler göndermek, bilgi istemek, iletişimi 24/7 etkili ve erişilebilir kılar.
Bu programcılar için kılavuz, kendi chatbotunuzu Whapi.Cloud API'si üzerinde Node.JS temelinde kurma ve başlatma adımlarını, ayrıca gateway ve botun ana özellikleri ve yeteneklerinin bir gösterimini içerir.
Kendi projenizde kaynak kodumuzu kullanabilir, scriptin fonksiyonlarını kolayca değiştirip ekleyebilirsiniz. Kod temelinde kendi chatbotunuzu veya herhangi bir entegrasyonu yaratabilir, onu mevcut iş süreçlerinize kolayca entegre ederek WhatsApp'ı her zamanki gibi kullanmaya devam edebilirsiniz!
Kaynak Kod
Bu chatbotun scripti, küçük ve orta ölçekli işletmeler tarafından sıkça kullanılan temel fonksiyonları içerir ve çoğu görevi kapsar:
- Normal mesaj gönderme;
- Medya gönderme: resim / dosya / video;
- Kontak gönderme (vCard ziyaret kartı);
- Ürün gönderme;
- WhatsApp grubu oluşturma;
- Gruba davet gönderme;
- WhatsApp grubuna mesaj gönderme;
- Gelen mesajları alıp işleme;
- Bilinmeyen bir komut için yanıt verme (menüler, talimatlar veya karşılama mesajları için).
Ortam Kurulumu
Çalışma ortamınızı hazırlayalım. Node.js ile çalışmaya hazır olduğunuzdan emin olun. Sonra GitHub'daki repoya geçelim.
Süreç, GitHub reposundan kaynak kodu klonlamayı ve npm (Node Package Manager) aracılığıyla gerekli bağımlılıkları kurmayı içerir. Bunu zaten kendi başınıza yaptıysanız, doğrudan sonraki bölüme geçebilirsiniz.
Hızlı bir başlangıç için temel adımlar:
1. Depoyu klonlama.
Terminali veya komut satırını açın ve projeyi yerleştirmek istediğiniz dizine gidin. Depoyu klonlamak için aşağıdaki komutu kullanın:
git clone https://github.com/Whapi-Cloud/nodejs-whatsapp-chatbot
2. npm paketlerini yükleme.
Depoyu klonladıktan sonra projenin klasörüne gidin:
cd your_project_name
Sonra, package.json dosyasında belirtilen tüm gerekli npm paketlerini yüklemek için aşağıdaki komutu çalıştırın:
npm install
Bu komut, chat-bot'un çalışması için gerekli olan tüm bağımlılıkları otomatik olarak indirip yükleyecektir.
Proje Yapısı
- /files - Bu klasör, dosyaların gönderilmesi için kullanılacak kaynak dosyaları içerir. Bu dosyalarla test yapabilir, sonra kendi dosyalarınızla değiştirebilirsiniz. Ayrıca, makalenin sonunda detaylandırıldığı üzere, dosyaları bir link üzerinden gönderme imkanınız da olacak;
- config.js - botun başlatılması için ayarlar;
- index.js - chat-bot'un ana scripti;
WhatsApp API Sağlayıcısı
Whapi.Cloud, herhangi bir programlama dilinde uyumlu, kullanımı kolay bir API ağ geçidi sunar. Bu, web sitenizi, mağazanızı, uygulamanızı veya CRM'inizi WhatsApp ile sinirsiz bir şekilde entegre etmenizi sağlar.
Cloud API'miz bağımsız bir geliştirmedir ve mesaj gönderme, gruplar, kanallar, durumlar, aramalar ve diğer tüm mesajlaşma işlevselliği ile çalışmak için herhangi bir kısıtlamaya sahip değildir.
API erişimi sabit bir fiyata sahiptir, gönderilen mesajlar için herhangi bir ücret alınmaz. Bu, basit ve güçlü API'mizin ana avantajlarından biridir.
Whapi.Cloud'a Nasıl Bağlanılır
Şirket doğrulaması yapmanıza veya numaranızı değiştirmenize gerek kalmadan hızlı bir şekilde başlamanızı sağlayan başka bir avantajımız da hızlı onboarding ve çalışmaya başlama sürecidir. Kendi numaranızı bağlayın ve WhatsApp'ı her zamanki gibi kullanmaya devam edin!
Peki, Whapi.Cloud'a kaydolun. Email doğrulaması geçmek için geçerli bir e-posta adresine veya bir google hesabına ihtiyacınız olacak.
Dashboard'da size özel ayrılmış bir deneme kanalı bulacaksınız. İlk 5 gün boyunca API'nin tüm işlevselliğini tamamen ücretsiz olarak test etme şansına sahip olacaksınız.
5 gün boyunca API'ye ücretsiz erişim
Bu kanalın sayfasına gidin, sadece üzerine tıklayın.
Diğer sağlayıcılardan farklı olarak, mevcut WhatsApp veya WhatsApp Business hesabınızı API'ye bağlama olanağı sunuyoruz.
Sadece WhatsApp Web'de yapıldığı gibi QR kodunu tarayın ve birkaç saniye içinde çalışmaya hazır olacaksınız.
Meta'ya göre, bu normal bir WhatsApp Web bağlantısıdır ve Whapi.Cloud'u spam göndermek için kullanmıyorsanız, numaranız normal şekilde çalışmaya devam edecektir.
Şimdilik 'Kanal Ayarları' üçüncü adımını atlayın, buna ihtiyacımız yok.
Harika, artık test etmek ve endpointlerle daha fazla çalışmak için ihtiyacınız olan API Token'e erişiminiz var. Bu tokeni kaydedin, size daha fazlası için gerekecek.
config.js'e geçin ve token değişkenini güncel anahtarınızla değiştirin:
token: "YOUR_CHANNEL_TOKEN"
token: "YOUR_CHANNEL_TOKEN"
Webhook Ayarlama
Webhook Nedir ve Ne İçin Gereklidir
Messenger'ınızdan gelen gelen verileri, örneğin bir gelen mesaj, gelen bir arama veya birinin grubunuza katıldığına dair bir bildirim almak için Webhook kullanmanız gerekecek.
Bu teknoloji, WhatsApp'taki herhangi bir olay hakkında anında bildirim almanızı ve buna tepki vermenizi sağlayacak.
Basit bir örnekle: Kontak A size yazdı -> Sohbet botu senaryosu Kontak A'dan gelen mesajı aldı -> Bu mesajın tanıdık bir komut olup olmadığını kontrol etti -> Senaryo komutunu gerçekleştirdi (örneğin, bir karşılama mesajı gönderdi veya bir ürün gönderdi vb.)
Bu şekilde, sistemimiz olan API ağ geçidimiz ve sohbet botunuz (WhatsApp'a bağlı) herhangi bir dış müdahaleye gerek kalmadan bilgi alışverişi yapar.
Teknik olarak, gelen bir mesaj olduğunda, sistem belirlenen script linkinize JSON gövdeli bir POST isteği yapacak. JSON gövdesi, metin, gönderenin numarası, gönderme zamanı vb. gelen mesaj hakkındaki tüm bilgileri içerecek ki, bu bilgileri anında okuyabileceksiniz.
Bu linkin ayarlarına geçelim!
Bu linkin ayarlarına geçelim!
Yerel mi yoksa Sunucu mu
WhatsApp botunu geliştirirken, sunucuya dağıtmadan önce yerel olarak test etmek isteyebilirsiniz. Bunu yapmanın en kolay yolu, Ngrok gibi araçları kullanmaktır, bu araç yerel sunucunuza internet üzerinden güvenli bir tünel oluşturur ve böylece yerel sunucunuza internetten erişim sağlar.
Şimdi, sohbet botunu test etmek için Ngrok'tan bir link alalım. Resmi web sitesinden Ngrok'u indirin ve açın. Terminali açın ve Ngrok'un bulunduğu klasöre gidin.
Yerel olarak çalışan Express sunucunuzun portunu belirterek ./ngrok http PORT_NUMARASI komutunu çalıştırın.
Şimdi, web kancası için kullanabileceğiniz bir halka açık URL'niz olmalı.
Bu linki config.js dosyasına kopyalayın:
botUrl: "https://84c7-151-33-282-113.ngrok-free.app/hook"
Yerel olarak çalışan Express sunucunuzun portunu belirterek ./ngrok http PORT_NUMARASI komutunu çalıştırın.
Şimdi, web kancası için kullanabileceğiniz bir halka açık URL'niz olmalı.
Bu linki config.js dosyasına kopyalayın:
botUrl: "https://84c7-151-33-282-113.ngrok-free.app/hook"
Linkin sonunda “/hook” bıraktığınızdan emin olun! Şu anda sohbet botu senaryosu bu adrese programlanmıştır!
Sunucuda Yerleştirme Özellikleri
Gelen web kancalarını alabilmek için, kamu IP adresinizin / hostunuzun internet üzerinden erişilebilir olması gerekmektedir. Böylece Whapi.Cloud sunucusu, belirttiğiniz adrese bir istek gönderip gelen kanca mesajını iletmiş olacaktır.
Sunucu konfigürasyonu:
- Whapi.Cloud yalnızca HTTPS kullanan web kancaları ile çalışır;
- Endpoint'iniz POST/PUT/PATCH/DELETE kabul etmelidir;
"Dağıtım" bölümünde, chatbot'unuzu yerleştirebileceğiniz birkaç halka açık servisi anlatacağız.
Ayarlama ve Farklı Olaylar
Whapi.Cloud kanal ve webhook ayarları, özellikle bireysel ihtiyaçlara sahip projelerde kullanışlı olabilecek geniş özelleştirme seçenekleri sunar.
Başlatma sürecini basitleştirmek için, gerekli ayarların doğrudan chat-bot kodumuza dahil edilmesini sağladık, böylece bu ayarları manuel olarak yapmanız gerekmez. Bu, geliştirme üzerine odaklanmanıza olanak tanırken ek konfigürasyon hakkında endişelenmenize gerek kalmaz.
Özelleştirme seçeneklerini daha ayrıntılı incelemek veya webhook'unuzu daha detaylı ayarlamak isterseniz, Whapi.Cloud Bilgi Bankası'nda yer alan Detaylı Webhook Ayarları makalesine göz atabilirsiniz.
GitHub'daki kaynak koddan webhook linki otomatik olarak API metodu aracılığıyla kanalınıza atanır, bu yüzden ek işlemler yapmanız gerekmez. Şimdi, webhook modlarına ve servisimizin sizi bilgilendirebileceği olaylara daha yakından bakalım.
Şu anda, webhook göndermek için seçilen mod Method'dur. Bu yöntem, olayların ayrıntılı işlenmesi için özellikle uygundur ve belirli eylemler için farklı HTTP metodlarını kullanmanıza izin verir. Bu şekilde, webhook gönderilen istekleri ayırır ve onları farklı adreslere gönderir, örneğin https://****/hook/messages (mesajlarla ilgili olaylar) veya https://****/hook/statuses (mesaj durumlarıyla ilgili olaylar) veya https://****/hook/groups (gruplarla ilgili olaylar).
Webhook'un iki başka modu daha var: Body (istek gövdesini doğrudan linke gönderir) ve Path (istek URL'sini tamamen belirtir).
Webhook'un iki başka modu daha var: Body (istek gövdesini doğrudan linke gönderir) ve Path (istek URL'sini tamamen belirtir).
Bizim orijinal chat-bot'u bilgilendirme yöntemimiz — POST Messages. Bu webhook, yeni mesajlarla ilgili herhangi bir değişikliği, gönderilen mesajları ve gelen mesajları içeren değişiklikleri takip eder.
Sistemimizin desteklediği tüm olası olaylar hakkında daha fazla bilgi edinmek isterseniz (gruplar, kanallar, aramalar, durumlar, mesaj değişiklikleri vb. hakkında bilgi almak), Webhook'larımız (Takip Edilen Olaylar) makalesine göz atabilirsiniz.
Botu Başlatma ve Ayarlama
Şimdi, chat-bot'unuzu test edebilirsiniz! config.js'de token ve webhook adresinin doğru girildiğinden emin olun.
Chat-bot'un başlatılması, projenin kök dizininde terminal üzerinden node index.js komutunun çalıştırılmasıyla yapılır.
Bot'unuz artık aktif ve çalışmaya hazır olmalı.
Bot'a bağlı numaraya başka bir telefondan mesaj gönderdiğinizde otomatik bir yanıt almanız gerekir. Eğer bot'tan bir tepki gelmezse, olası sorunları teşhis etmek ve çözmek için "Sorun Giderme" bölümüne başvurmanızı öneririz.
Önceden Belirlenmiş Parametreler (grup ve ürün)
config.js dosyasında, chat-bot'unuzun mesaj göndermek için kullandığı grup ve ürün kimliklerini içeren önceden ayarlanmış değerler bulunmaktadır. Bot'unuzun kendi verilerinizle doğru bir şekilde çalışması için bu parametreleri ihtiyaçlarınıza göre güncellemeniz gerekir.
- grup: '[email protected]'
- ürün: '6559353560856703'
İlk kimlik, chat-bot'un mesaj göndereceği grubu temsil eder.
Bu kimliği, WhatsApp'ta yeni bir grup oluşturarak veya mevcut bir grubu kullanarak alabilirsiniz.
Grup kimliği yalnızca API aracılığıyla alınabilir.
Bunun için "Grup Listesi Al" API çağrısını kullanın (metod: https://whapi.readme.io/reference/getgroups Dokümantasyon ). Grup kimliği şu şekilde görünür: [email protected]
Bunun için "Grup Listesi Al" API çağrısını kullanın (metod: https://whapi.readme.io/reference/getgroups Dokümantasyon ). Grup kimliği şu şekilde görünür: [email protected]
Chat kimlikleri (chat_id) hakkında daha fazlasını özel makalemizde yazdık: Chat ID'si Nedir ve Nasıl Alınır?
Gerekli grup kimliğini bulduğunuzda, şimdi bunu config.js'e kopyalayın.
Katalogunuzdaki ürünlerle (yalnızca Business sürümünde mevcuttur) benzer şekilde hareket edin.
Chat-bot'unuzun göndereceği ürün kimliğini belirleyin.
Ürünler listesini https://whapi.readme.io/reference/getproducts Dokümantasyon aracılığıyla alabilirsiniz.
config.js'deki önceden ayarlanmış değerleri kendi grup ve ürün kimliklerinizle değiştirin.
Değişiklikler yapıldıktan sonra dosyayı kaydedin ve bot'u yeniden başlatın. Şimdi, yeni parametrelerle çalışarak bot'unuzun işlevselliğini tam olarak test edebilirsiniz.
Sorun Giderme
WhatsApp chat-bot'unun test edilmesi ve kullanımı sırasında çeşitli sorunlar ortaya çıkabilir. İşte bazı tipik durumlar ve çözüm önerileri:
Bot Gelen Mesajlara Yanıt Vermiyor
- Botun çalıştırıldığı numaraya, başka bir telefondan mesaj gönderdiğinizden emin olun. Bot, aynı numaradan gönderilen mesajlara yanıt veremez.
- Eğer bot diğer numaralardan gelen mesajlara yanıt vermiyorsa, web kancalarının çalışıp çalışmadığını kontrol edin. Örneğin, Webhook.site gibi web kancası simülasyon servislerini kullanarak, geri çağırma isteklerinin hangi yoldan geldiğini doğrulayın. Daha sonra, yolun yapılandırmanızda belirttiğiniz yola uyup uymadığını kontrol edin. Ayrıca, sunucunuzun 200Ok yanıtı verdiğinden de emin olun.
Sorunlarla karşılaştığınızda teknik destek ekibimizden yardım istemekten çekinmeyin. Web sitemizdeki sohbet widget'ı üzerinden veya [email protected] adresine e-posta göndererek bize ulaşabilirsiniz. Webhook'la ilgili neyin yanlış gittiğini çözmenize yardımcı olacağız.
Bot Durmaksızın Mesaj Gönderiyor
Kodunuzun orijinal versiyonuna dönün. Scriptimiz, mesajın gelen veya giden olup olmadığını belirleyen bir kontrol içerir, böylece mesajların sonsuz bir döngüye girmesini önler.
Sonsuz mesaj gönderimi, kodunuzda giden bir mesaj kontrolünün eksik olması nedeniyle botun kendini tetiklemesi veya kodda döngüsel mesaj gönderimi olması durumunda meydana gelebilir.
Bot Bazı Sohbetlerde Çalışıyor, Diğerlerinde Çalışmıyor
Whapi.Cloud'daki tarifenizi kontrol edin. Eğer deneme sürümünü veya "Kum Havuzu" tarifesini kullanıyorsanız, etkileşim ayda belirli bir sayıda sohbetle sınırlıdır (şu an için 5 sohbet). Bu durumda, altıncı sohbetten sonraki mesajları işleyemeyebilir.
Unutmayın, çoğu sorun, chat-bot'unuzun yapılandırmasını ve mantığını başlatmadan önce dikkatlice kontrol ederek önlenebilir. Kodunuzu düzenli olarak güncel tutmak ve ayarların detaylarına dikkat etmek, tipik hataların çoğundan kaçınmanıza yardımcı olacaktır. Ve her zaman yanınızda olduğumuzu unutmayın, destek ekibimiz size yardımcı olmaya hazır!
Dağıtım ve Sunucuları Kullanma
WhatsApp chat-bot'unuzun 24/7 kullanılabilir olması için güvenilir bir hosting platformunda barındırılması gerekir. Kendi sunucunuzu kullanabilirsiniz, ancak bu bölümde, botunuzu her birinde nasıl dağıtacağınıza dair temel adımlarla birlikte en popüler üç platform olan Firebase, AWS ve Heroku'yu ele alacağız.
Platform seçimi, tercihlerinize, bütçenize ve projenizin gereksinimlerine bağlıdır. İncelenen her platform, Firebase ve AWS Lambda'nın sunucu yönetimi gerektirmeyen güçlü bir backend sağlaması, Heroku'nun ise Git tabanlı uygulama dağıtımlarının kolaylığını sunması gibi kendi benzersiz olanaklarını ve avantajlarını sunar.
Firebase
Firebase, sunucu altyapısıyla ilgilenmenize gerek kalmadan botunuzu çalıştırmanıza olanak tanıyan Cloud Functions özelliğini sunar. Bize göre, bu en iyi seçenektir.
- Firebase Console'da bir proje oluşturun;
- talimatları takip ederek Firebase CLI yükleyin;
- Proje dizininizde firebase init komutu ile Firebase'i başlatın;
- Botunuzu firebase deploy --only functions komutu kullanarak dağıtın.
AWS (Amazon Web Services)
AWS Lambda, AWS'nin diğer hizmetlerinden tetiklemelerle kod çalıştırma olanağı sağladığı için botlar için iyi bir seçenektir.
- AWS Yönetim Konsolu'na kaydolun veya giriş yapın;
- AWS konsolu üzerinden API Gateway tetikleyici olarak seçilerek yeni bir Lambda fonksiyonu oluşturun;
- Botunuzun kodunu Lambda fonksiyonuna yükleyin;
- Botunuzun dış dünya ile etkileşimde bulunması için API Gateway'i yapılandırın.
Heroku
Heroku, uygulamalarınızı barındırmak için kullanıcı dostu bir platform sunar ve Git reposundan kodunuzu otomatik olarak dağıtabilir.
- Heroku'da bir hesap oluşturun;
- Heroku CLI yükleyin ve sisteme giriş yapın;
- Konsol üzerinden veya heroku create komutunu kullanarak Heroku'da yeni bir uygulama oluşturun;
- Git reposunu Heroku ile ilişkilendirin ve git push heroku master komutları ile dağıtım yapın;
- Heroku tarafından sağlanan web kancası URL'sini ayarlayın.
Fonksiyonelliği Genişletme
WhatsApp sohbet botunuzu başarıyla başlattıktan ve test ettikten sonra, kullanıcılar için botu daha faydalı ve etkileşimli hale getirmek için fonksiyonelliğini daha da genişletmenin birçok yolu vardır. İşte bazı yaygın kullanım senaryoları:
- Bağlantı üzerinden dosya gönderimi.
Bağlantı üzerinden bir medya dosyası göndermek çok basittir. Ana koşul, dosyanın doğrudan bağlantı üzerinden erişilebilir olması gerektiğidir (bu nedenle, Google Drive veya Dropbox gibi doğrudan dosya erişimi sağlamayan Bulut hizmetleri uygun değildir). Medya dosyaları göndermeye izin veren herhangi bir yöntemde media parametresini kullanın. Daha fazla bilgi için makalemizi okuyun: Medya dosyası gönderme endpoint'i.
- Potansiyel müşterileri gruplara dağıtım.
Grup oluşturma fonksiyonuna ve bir grup üyesi ekleme işlemine ihtiyacınız olacak. Bir üyeyi gruba eklemek zor değildir, ancak bazı nüanslar vardır. Detaylar için makalemize göz atın: "Gruba yeni üye ekleme"
- CRM ile entegrasyon.
Teknik olarak, CRM ile entegrasyon, bir sohbet botundan çok farklı değildir, tek fark kendi API'si olan ek bir kaynağın eklenmesidir. Kullanıcıların hizmet rezervasyonu yapmalarına, ürün sipariş etmelerine veya gerçek zamanlı olarak dış kaynaklardan güncel bilgi almalarına olanak tanıyan işlevler ekleyin.
- Anketler, botlardaki butonların bir alternatifi olarak.
WhatsApp'taki interaktif butonlar, müşterilerle çalışmak için çok kullanışlı bir araçtır. Ancak, bu özellik WhatsApp kullanıcılarının çoğuna açık değildir. Kullanıcılarla iletişimi kolaylaştırmak için, anketleri butonlar olarak kullanmanızı öneriyoruz. NodeJS üzerindeki kaynak kodu ile detaylı makale ve nasıl kullanılacağı.
- Müşteri etkileşimini artırma.
Hikayeleri kullanın, numaranızın durumlarını değiştirin, müşterilerinizin mesajlarına beğeni ve diğer emojiler ekleyin, sesli mesajlar gönderin - müşterilerle çalışırken etkileşimi artırın.
- Numaranın WhatsApp'ta olup olmadığını kontrol etme.
Belirtilen telefon numarasının WhatsApp'ta olup olmadığını kontrol edin. Hangi telefon numaralarının aktif olduğunu ve hangilerinin WhatsApp mesajları alamayacağını belirleyin. Toplu mesaj göndermeden önce uygulamanıza entegre edin! GitHub'daki kaynak kodu ve buradaki kullanım kılavuzu.
Müşterilerimize kapsamlı destek sağlıyoruz! Botun çalışması, platformun ayarlanması ile ilgili sorularınız olursa veya teknik zorluklarla karşılaşırsanız, her zaman yardım alabilirsiniz.
Bu kılavuzun, WhatsApp sohbet botunuzu başarıyla başlatmanıza yardımcı olacağını umuyoruz. Girişimlerinizde başarılar dileriz!