EntegrasyonlarNetGSM / Twilio (SMS)

NetGSM & Twilio SMS Entegrasyonu

Asistanın telefonu açmayan bir kişiye tek satırlık bir SMS attığında görüşme bitmez — takip başlar. “Aramanıza yetişemedim, uygun olduğunuzda dönerim: [link]” mesajı, cevapsız bir çağrıyı ikinci bir şansa çevirir. Bu sayfa, o SMS’in nereden çıkacağını kurar: NetGSM birincil sağlayıcı (Türkiye’ye yerel, uygun maliyetli), Twilio ise yurt dışı numaralar ve yedek için. İkisini de kendi panellerinden aldığın API anahtarlarıyla elle bağlarsın — birkaç dakikalık iş.

Bu sayfa sağlayıcı bağlantısını anlatır. SMS’in ne zaman ve hangi metinle gönderileceğini bir SMS aksiyonunda tanımlarsın: SMS Gönderme.

Nasıl çalışır?

Görüşme biter / koşul sağlanır (örn. arama cevaplanmadı)

SMS aksiyonu tetiklenir (koşul + metin + gönderici numara/başlık)

Sağlayıcı seçilir  →  smsProvider: "auto" | "netgsm" | "twilio"

NetGSM veya Twilio API'sine istek gider (senin API anahtarınla)

Kişiye SMS ulaşır → teslim durumu asistan geçmişine düşer

Neden OAuth “Bağla” butonu değil de elle API anahtarı? Çünkü NetGSM ve Twilio kimlik bilgileri kendi panellerinden üretilir; Purvisor bunları saklar ve panelde maskeli gösterir (örn. şifre 85••••••••). Böylece bir alanı düzenlerken gerçek anahtarını yanlışlıkla ezmezsin.

Ön koşullar

  • Aktif bir NetGSM aboneliği ve/veya bir Twilio hesabı.
  • NetGSM için: bir alt kullanıcı hesabı + o alt kullanıcıya özel API şifresi + onaylı gönderici başlığı (Sender ID).
  • Purvisor’da bir SMS aksiyonu kuracağın hazır bir asistan (İlk Asistanını Oluştur).

NetGSM kurulumu (birincil)

NetGSM’de alt kullanıcı ve API şifresi oluştur

Purvisor, NetGSM API’sine ana abone numaranızla değil, alt kullanıcı koduyla bağlanır. Bunu, ofisteki herkese ayrı bir giriş kartı vermeye benzet: ana hesap kasadır, API isteği ise sınırlı yetkili bir kartla yapılır.

NetGSM panelinde:

  • Abonelik İşlemleri → Alt Kullanıcı Hesapları bölümüne git.
  • Bir alt kullanıcı kodu belirle (genellikle abone numaranızla aynı olabilir) ve o alt kullanıcıya özel bir API şifresi üret (panel giriş şifreniz değil).
  • API İşlemleri sayfasında API erişiminin “Açık” olduğundan emin ol.
  • Alt kullanıcının SMS Hizmeti yetkisinin açık olduğunu doğrula — kapalıysa bakiye sorgusu geçse bile SMS’te Hata 30 alırsın.
  • Gönderici başlığı (msgheader) başvurusu yap ve onaylanmasını bekle. Bu başlık, alıcının telefonunda “gönderen” olarak görünen isimdir (SMS’in arayan kimliği gibi düşün, örn. PURVISOR).

📸 [Ekran görüntüsü: NetGSM panel — Alt Kullanıcı Hesapları ve API şifresi üretme ekranı]

Purvisor’a NetGSM bilgilerini gir

Panelde Entegrasyonlar → NetGSM alanına şu üç değeri gir:

AlanZorunluAçıklama
usercodeEvetAlt kullanıcı kodu (ana abone numarası değil).
passwordEvetAlt kullanıcıya özel API şifresi (panel giriş şifreniz değil).
msgheaderÖnerilirNetGSM’de onaylı gönderici başlığı. Boş bırakılırsa sistem başlık olarak usercode’u dener; onaylı başlığın yoksa gönderimde Hata 40 alırsın.

Kaydettiğinde arka planda şu istek çalışır:

POST /api/integrations/service-config
Content-Type: application/json
 
{
  "provider": "netgsm",
  "config": {
    "usercode": "8503021234",
    "password": "alt-kullanici-api-sifresi",
    "msgheader": "PURVISOR"
  },
  "isActive": true
}

usercode veya password eksikse istek 400 ile “NetGSM kullanıcı kodu ve şifre gerekli” döner. Kaydedildikten sonra password panelde maskeli (85••••••••) görünür — bu normaldir.

Bağlantıyı test et

Test butonu, gerçek SMS harcamadan önce kimlik bilgilerini doğrular. Arka planda Purvisor önce NetGSM’in bakiye ucunu (https://api.netgsm.com.tr/balance/list/get) çağırır; testNumber girersen ardından bir test SMS’i gönderir.

POST /api/integrations/service-config/test
Content-Type: application/json
 
{
  "provider": "netgsm",
  "config": {
    "usercode": "8503021234",
    "password": "alt-kullanici-api-sifresi",
    "msgheader": "PURVISOR",
    "testNumber": "+905551112233"
  }
}

Başarılı yanıt, hesabındaki onaylı başlıkları da listeler:

{
  "success": true,
  "message": "NetGSM bağlantısı başarılı! Mevcut başlıklar: PURVISOR",
  "availableHeaders": ["PURVISOR"]
}
⚠️

Girdiğin msgheader hesabındaki onaylı başlıklar arasında değilse test yine “başarılı” döner ama uyarı verir: ”… başlığı hesabınızda bulunamadı. Mevcut başlıklar: …”. Bu durumda gerçek gönderimlerde Hata 40 alırsın — listedeki başlıklardan birini kullan.

Test SMS’inde numara otomatik normalize edilir: +90, 90 ve baştaki 0 temizlenip 10 haneli yerel numaraya indirgenir. Yani +90 555 111 22 33, 0555 111 22 33 ve 5551112233 aynı şekilde çalışır.

Twilio kurulumu (yedek / yurt dışı)

NetGSM Türkiye içi gönderim için idealdir. Yurt dışı numaralara ulaşman ya da NetGSM’i yedeklemek istersen Twilio ekle.

Twilio bilgilerini al ve gir

Twilio Console → Account SID ve Auth Token’ı kopyala; SMS gönderebilen bir Twilio numarası edin. Panelde Entegrasyonlar → Twilio:

AlanZorunluAçıklama
accountSidEvetTwilio Account SID.
authTokenEvetTwilio Auth Token.
phoneNumberEvetGönderici Twilio numarası, E.164 formatında (örn. +1...).
testNumberHayırTest SMS’i için hedef numara (yalnızca test sırasında).

Kaydederken en az bir Twilio alanı dolu olmalı; hiçbiri yoksa istek 400 “En az bir Twilio alanı gerekli” döner. Gerçek gönderim içinse üç alanın (SID, token, numara) da dolu olması gerekir.

Test et

Test butonu, Twilio hesabını doğrular (GET .../Accounts/{accountSid}.json) ve testNumber girdiysen bir test SMS’i yollar. Kimlik hatasında “Twilio kimlik doğrulama başarısız” mesajıyla Account SID / Auth Token kontrolü istenir.

Hangi sağlayıcı gönderir? (smsProvider)

Her SMS aksiyonunda sağlayıcıyı seçersin:

DeğerDavranış
autoVarsayılan. Sistem uygun sağlayıcıyı seçer.
netgsmBu aksiyonu her zaman NetGSM üzerinden gönder.
twilioBu aksiyonu her zaman Twilio üzerinden gönder.

Türkiye içi kampanyalarda netgsm, yurt dışı numaralarda twilio seçmek en öngörülebilir sonucu verir. Aksiyon kurulumunun tamamı: SMS Gönderme.

KVKK ve İYS

⚠️

Türkiye’de ticari elektronik ileti (SMS dâhil) göndermek için alıcının açık rızası ve İYS (İleti Yönetim Sistemi) kaydı gerekir. Bilgilendirme/işlem SMS’leri (randevu hatırlatma, aramaya dönüş bildirimi) genelde ticari ileti sayılmasa da; kampanya/pazarlama SMS’lerinde İYS’de onaylı olmayan numaralara gönderim yapma. Gönderici başlığın (Sender ID) İYS’de tanımlı marka adınla tutarlı olsun ve her mesajda çıkış (ret) imkânı sağla.

Rızanın kapsamı önemlidir: telefonda “sizi arayabilir miyiz” onayı ile “SMS gönderebilir miyiz” onayı farklı şeylerdir. Aksiyon metnini yazarken kim olduğunu ve neden yazdığını net belirt — SMS Gönderme sayfasındaki şablon önerileri bu yüzden kısa ve şeffaf.

Sorun giderme

NetGSM API’si düz metin hata kodu döndürür. Aynı kodun anlamı, isteğin bağlamına göre değişebilir (özellikle 40):

KodBağlamOlası neden / çözüm
30Kimlik / SMSGeçersiz kullanıcı kodu veya şifre. Alt kullanıcı kodunu (ana abone değil) ve API şifresini doğrula; alt kullanıcının onay süreci tamamlanmış, API erişimi “Açık” olmalı. Bakiye geçip SMS’te 30 alıyorsan alt kullanıcının SMS Hizmeti yetkisi kapalıdır.
40Bakiye / kimlikHesabın aktif değil veya askıya alınmış.
40SMS gönderimiGönderici başlığı (Sender ID / msgheader) sistemde tanımlı değil → NetGSM’den onaylı başlık başvurusu yap ve tam olarak o başlığı gir.
50SMSAbone hesabınla ilgili bir sorun var.
51SMSTekrarlı gönderim tespit edildi.
70GenelParametre hatası (tarih, numara formatı veya kullanıcı kodu formatı).
80SMSGönderim sınırı aşıldı.
85SMSAynı içerikli birden fazla SMS tanımı.
5000BağlantıBeklenmeyen hata — NetGSM API erişim iznini kontrol et.
Twilio”Twilio kimlik doğrulama başarısız”: Account SID / Auth Token yanlış. SMS gidmiyorsa phoneNumber alanını (E.164) kontrol et.

Şifreyi mi kaybettin? NetGSM Panel → Alt Kullanıcı Hesapları → Düzenle → Yeni Şifre Üret ile yeni bir API şifresi oluşturup Purvisor’da güncelle.

İlgili