3 Adımda Telefon CRM Entegrasyonu

Bu yazımızda “Bulutfon’dan aldığınız VoIP telefon sistemi ile kullandığınız CRM sistemini nasıl entegre edebilirsiniz?” örneklerle cevap vereceğiz. Peki telefon CRM entegrasyonun ile neleri kast ediyoruz;

  1. Gelen giden çağrıları CRM üzerinden görebilmek
  2. Gelen giden çağrıları belirli kişiler veya firmalarla ilişkilendirebilmek
  3. Telefon numarası belirli olmayan çağrıları ayırmak
  4. Cevaplanmayan çağrıları raporlamak
  5. Görüşmeyi hangi kullanıcı yapmış raporlamak

Yukarıda belirtilen telefon CRM entegrasyon özelliğini aktif etmek için Bulutfon santral, webkancaları ve API hizmetlerini kullanacağız. Şimdi kısaca bu ürünlere bakalım.

Telefon CRM Entegrasyonu İçin Kullanacağımız Araçlar

Bulutfon Santral

Bulutfon santral dijital bir santral ürünüdür. Her hangi bir fiziksel kurulum gerektirmeden bulut tabanlı olarak telefon santralinizi yönetmenizi sağlamaktadır. Bulutfon santral ürünü ile firma içindeki çalışanlarınıza birer adet iç hat (=dahili) tanımlayabilirsiniz. Bu dahililerden dış arama yapılırken hangi telefon numarasından çıkış yapacağını belirleyebilirsiniz.

Bu iç hat (dahili) özelliği ile şirket hattına gelen ve giden çağrılarda hangi personelin o görüşmeyi yaptığını tespit edebiliyoruz. Böylece Bulutfon’dan telefon verilerini CRM sistemine aktarırken görüşmeyi hangi personel yapmış bilebiliyoruz.

Webkancaları

Webkancaları Bulutfon santralde bir olay olduğu zaman abonenin belirlediği 3. parti bir webservise bu olayla ilgili bilgilerin aktarılmasına yarayan geliştirme aracıdır. Bu konu biraz teknik bir konu olduğundan örneklerle açıklamak istiyorum;

  • Örnek 1 – Firmanıza bir faks geldiği zaman webkancaları sizlerin CRM yazılımınıza bunu anlık bildirir.
  • Örnek 2 – Bir arama başladığı zaman webkancaları hangi numara, hangi numarayı aradığı bilgisini anlık olarak bildirir.

Buradaki önemli olan konu webkancalarının anlık olarak çalışmasıdır. Aşağıdaki resimde Bulutfon webkancalarının hangi olaylarda bildirim yaptığını görebilirsiniz.

Webkancaları
Bulutfon Sisteminin Desteklediği Webkancaları

API

Bulutfon 3 parti yazılımlarla özelliklerini ve verilerini paylaşabilmek için API‘ye sahiptir. API ile ilgili dokümanları API sayfamızdan bulabilirsiniz. Ayrıca Bulutfon ile kendi yazılımlarını entegre eden geliştirici topluluğumuzun bulunduğu bir forum sitemiz mevcuttur. Bu forum sitesiyle diğer geliştiricilerle deneyimlerinizi paylaşabilir, onların deneyimlerinden faydalanabilirsiniz.

Peki Bulutfon API’si telefon CRM entegrasyonunda hangi amaçlarla kullanacağız?

  1. Webkancalarından gelen bir çağrının tüm detayını öğrenebiliriz
  2. Çağrının görüşme kaydını dinlemek için API’den stream yapılan URL’i alabiliriz
  3. Olurda webkancalarında Bulutfon’dan veya CRM sisteminden kaynaklı bir hata olursa sağlama yapma amaçlı API’yi kullanabiliriz.

Adım Adım Entegrasyon

Veritabanı Yapısının Kurgulanması

Telefon CRM entegrasyonu için ilk önce veritabanımızı buna göre ayarlamamız gerekmektedir. Bu konuyla ilgili sizlerle aşağıdaki taslak veritabanını şablonunu paylaşıyorum.

Telefon CRM entegrasyonu için taslak bir veritabanı önerisi
Telefon CRM Entegrasyonu Taslak Veritabanı

Yukarıdaki taslak veritabanında user ve contact tabloları hali hazırda CRM yazılımında olması gereken tablolardır. Bu tabloların yanına call ve contact_call_relation tabloları eklenecektir. Telefon CRM entegrasyonu için önerdiğimiz şablon veri tabanı için tabloları tek tek inceleyelim.

Call Tablosu

AlanTipiAçıklama
user_idintAramalar kullanıcılarla ilişkilidir. Aramalar kullanıcılar tarafından başlatılabilir veya cevaplanabilir. (Boş olabilir)
id*intHer çağrının sizin veritabanınızdaki tekil IDsi.
uuid*uuidHer çağrının Bulutfon tarafından verilen tekil UUIDsi
direction*enumGelen çağrı, giden çağrı, santral içinde
caller*stringArayan numara. E164 standartındadır. Örneğin 905431231234 gibi
callee*stringAranan numara. E164 standartındadır.
extensionint(4)İç hat dahili numarası (Boş olabilir.)
call_time*timestampAranma zamanı
answer_timetimestampCevaplanma zamanı (Boş olabilir.)
hangup_time*timestampGörüşmenin bitme zamanı
call_recordstringGörüşmenin kaydının URL’si (Boş olabilir.)
hangup_causestringGörüşme kapanma nedeni (Boş olabilir.)
durationintSaniye cinsinden görüşme süresi (Boş olabilir.)
created_attimestamp
updated_attimestamp
Call Tablosu

Contact_Call_Relation Tablosu

AlanTipiAçıklama
contact_idintKişi (veya firma) ID’si
call_idintAramanın ID’si
Kişi Arama İlişki Tablosu

Veritabanı yapısı kendi CRM kurallarınıza göre değişiklik gösterebilir. Örneğin rehberinizde kişi ve firmaların telefon bilgileri tekil ise Contact_Call_Relation tablosu yerine bir çağrı sadece bir kişi ile ilişkili olabileceğinden CALL tablosuna contact_id’yi eklemeniz yeterli olacaktır ancak bir çok CRM’de bir telefon numarası birden fazla kişi, firma ile ilişkili olabilir.

Webkancaların Ayarlanması

Veritabanı ayarlandıktan sonra ikinci olarak webkancalarını ayarlamamız gerekiyor.

3 Adımda Telefon CRM Entegrasyonu 1
Telefon CRM Entegrasyonu Webkancaları

Yukarıdaki ayar yapılınca, seçilen santral numarası için URL kısmında bulunan webservise gelen ve giden arama başlangıcında aşağıdaki aşağıdaki JSON POST edilmektedir.

{
  "event_type": "call_init",
  "caller": 90532000000,
  "callee": 908508850000,
  "uuid": "f615986c-2001-11e5-bdee-6599352d46ce",
  "direction": "IN",
  "timestamp": 1435762851086820
}

Gelişticinin yapması gereken yukarıdaki JSON’ı alıp call ve contact_call_relation tablosuna ilgili verileri yazmaktır. Unutmayalım ki telefon CRM entegrasyonu sadece çağrıları kayıt etmek değil bunlar mevcut rehber ve kullanılarla ilişkilendirmekle ilgilidir. Bu bağlamda burada bulunan verileri ayrıca inceleyelim;

  • event_type Webkancasının hangi olayı size bildiriğini görürsünüz. call_init çağrı başlama olayıdır.
  • caller Arama yapan telefon numarasıdır. Gelen bu gelen bir çağrı ise bu numara rehberinizdeki kişi, firmanın iken, giden bir aramada sizin firmanıza aittir.
  • callee Aranan telefon numarasıdır. Giden çağrıda bu rehberinizdeki kişi veya firma iken, gelen çağrıda firmanıza ait numaradır.
  • uuid Çağrının tekil ID’sidir. Bu UUID ileride çağrının daha detaylı bilgilerini API’den almanıza yarayacaktır.
  • direction Çağrı gelen bir çağrı mı, giden bir çağrı mı, santral içinde yapılan bir çağrı mı bunları gösterir.
  • timestamp Çağrının başladığı zamanı gösterir. Veritabanındaki call_time olarakta düşünebilirsiniz.

İlgili webservisiniz adım adım aşağıdaki işlemleri yapmalıdır.

  1. caller, callee, uuid, direction timestamp (call_time) bilgilerini call tablosuna yazmalıdır.
  2. Eğer çağrı gelen bir çağrı ise (yani direction IN ise) caller’ı (yani arayan numarayı), çağrı giden bir çağrı ise (yani direction OUT ise) callee numarası rehberdeki numaradır. Bu numarayı rehber tablosundan aratıp ilişkili kişileri çağrı ile birlikte contact_call_relation tablosuna yazacağız.

API ile Çağrı Detayına Ulaşılması

Görüşme detayına ulaşmak için API dokümanının ilgili bölümüne göz atabilirsiniz. Burada sizlerin ihtiyaç duyacağı toplam 4 adet parametre vardır.

ParametreAçıklamaVeri tipiÖrnek
yearGörüşmenin yapıldığı yılstring2019
monthGörüşmenin yapıldığı aystring05
dayGörüşmenin yapıldığı günsting01
uuidÇağrıya ait uuidstring3bfed4b1-1602-4c39-b445-uuid

Bu dört parametreyi API Token ile birlikte https://api.bulutfon.com/v2/cdr/:year/:month/:day/:uuid?apikey=api-token adresine GET yöntemiyle istekte bulunursanız, aşağıdaki şekilde bir JSON’a erişirsiniz. Aşağıdaki JSON verisiyle telefon CRM entegrasyonu için gerekli olan diğer bilgileri bulabilirsiniz.

{
   "uuid":"3bfed4b1-1602-4c39-b445-uuid",
   "call_type":"voice",
   "direction":"OUT",
   "caller":"902165990599",
   "callee":"905320000000",
   "duration":21,
   "caller_extension":"1011",
   "callee_extension":null,
   "call_time":"2020-10-12T18:08:17.000Z",
   "answer_time":null,
   "hangup_time":"2020-10-12T18:08:38.000Z",
   "call_record":"https://docker1.bulutfon.com/bulutfon-production/recordings/2/2020/10/12/3bfed4b1-1602-4c39-b445-uuid&token-etc",
   "hangup_cause":"ORIGINATOR_CANCEL"
}

Yukarıdaki JSON’da dikkat etmeniz gereken bir kaç konuya değinmek istiyorum.

  • UUID her çağrı için tekildir. Call tablonuzdaki UUID’den bu çağrının call tablosundaki hangi çağrı olduğunu bulabilirsiniz. Eğer yoksa yeni bir çağrı olarak ekleyebilirsiniz.
  • call_type çağrının tipini gösterir. Bu alan fax ise görüşme değil faks ile ilgili bir veridir. Kayıt edip etmemek size kalmıştır.
  • caller_extension aramayı başlatan dahili (iç hat) numarasıdır. Gelen çağrılarda boş olur.
  • callee_extension aramayı en son cevaplayan dahili (iç hat) numarasıdır. Giden numaralarda ve hiç bir dahili telefonu cevaplamadıysa boş olur.
  • call_record çağrıyla ilgili ses kaydının URL’dir. Buradaki URL güvenlik gerekçesiyle belli bir süre geçerlidir. Her istek yapıldığında yeni bir URL oluşturulmaktadır. O yüzden URL’yi kayıt etmek yerine sadece çağrı kayıdı var yoktu kaydetmek mantıklıdır.

API’ye istek yapıldıktan sonra aşağıdaki işlemler yapılmalıdır.

  1. Çağrıyı başlatan veya sonlandıran dahili bilgisinden hangi kullanıcı olduğu tespit edilmelidir. Bulutfon’da dahililer 1000-1001 gibi dört haneli bir sayıyla temsil edilirler. İsterseniz user tablosuna dahili numarası eklenebilir, isterseniz API üzerinden dahiliyi listeleyerek kullanıcıyı bulabilirsiniz. Call tablosundaki kullanıcı bölümünü güncellemelisiniz.
  2. Call tablosundaki call_time, answer_time, hangup_time güncellenmelidir.

Telefon CRM Entegrasyonu Makalesinin Sonucu

Bu makalede aşağıdaki konulara değindik ve önerilerde bulunduk.

  • Telefon görüşmesi, CRM’deki rehberimiz (kişi, firma veya cari kartı) ve CRM kullanıcılarımız arasındaki veritabanı ilişkisi nasıl olmalı
  • Webkancalarıyla anlık olarak bir çağrı başlatıldığında Bulutfon’un bu bilgiyi JSON formatında sizin servisinize bildirmesi
  • API ile bir görüşmeye ait detaylı bilgilerin ve çağrının bir görüşme kaydı var ise bu kayıt ait ses dosyasının .MP3 uzantılı URL’sinin alınması

Bundan sonraki blog yazımızda elimizi kirletip bir kaç örnek kod yazacağız.

Leave a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Scroll to Top