Twilio ile İletişim Altyapısı: API'ler, Maliyet ve Türkiye Kısıtları
Twilio, iletişim kanallarını bir HTTP API'sinin arkasına koyan platform. SMS, arama, WhatsApp, e-posta ve doğrulama akışlarını kendi operatör anlaşmanız olmadan kullanabiliyorsunuz. Buraya kadarı doğru ve gerçekten işe yarıyor. Ürün sayfalarında yazmayan kısım ise nerede tıkandığı: fatura nasıl büyüyor, entegrasyon sizden ne istiyor, Türkiye'den gönderirken hangi kurallar devreye giriyor.
Satın aldığınız şey altyapı değil, altyapıya erişim
Twilio'yu anlatan metinlerin çoğu ürün listesiyle başlıyor. Daha faydalı olan, ilişkinin şeklini görmek. Operatörlerle sözleşme yapmıyorsunuz, kısa numara başvurusu yürütmüyorsunuz, teslimat raporlarını operatör formatlarından çözmüyorsunuz. Bunların hepsi bir API çağrısının arkasına gizleniyor ve karşılığında her mesaj, her arama dakikası, her kiralanan numara için ödeme yapıyorsunuz.
Bu takas küçük ve orta hacimde açık ara mantıklı. Kendi SMPP bağlantınızı kurmak, operatör başına rota yönetmek ve teslimat oranı kovalamak, birkaç kişilik bir ekibin ayıracağı işten fazlasını istiyor. Hacim yükseldikçe hesap değişiyor, o kısma birazdan geleceğim.
Kanallar: abartısız bir liste
Programmable Messaging SMS, MMS ve WhatsApp gönderimini tek bir arayüze indiriyor. Conversations API bunun üstünde, aynı konuşmayı farklı kanallar arasında taşıyan bir katman: müşteri WhatsApp'tan yazıp SMS'ten devam ettiğinde konuşma bütünlüğü korunuyor. Voice API çağrı başlatma, karşılama ve yönlendirme işini TwiML denilen basit bir XML diliyle tarif etmenizi sağlıyor.
SendGrid e-posta tarafını karşılıyor, Verify iki faktörlü doğrulamayı hazır akış olarak veriyor, Lookup bir numaranın taşıyıcısını ve tipini sorguluyor. Segment ise farklı bir kategoride: müşteri verisi toplayıp birleştiren bir platform, mesajlaşma altyapısıyla aynı çantada satılıyor ama ayrı bir karar.
Flex için ayrı bir uyarı gerekiyor. Hazır çağrı merkezi gibi sunuluyor, gerçekte React tabanlı, ciddi anlamda geliştirme isteyen bir iskelet. Ekipte önyüz geliştirici yoksa kurulum süresi tahminlerin epey üstüne çıkıyor.
Kullandıkça öde: nerede ucuz, nerede değil
Şeffaf fiyatlandırma cümlesi teknik olarak doğru, birim fiyatlar açık. Ama birim fiyatın açık olması toplam maliyetin öngörülebilir olduğu anlamına gelmiyor.
Doğrulama akışı iyi bir örnek. Maliyeti kullanıcı sayısıyla değil, gönderilen mesaj sayısıyla ölçüyorsunuz. Kullanıcı kodu geç aldığında tekrar gönder butonuna basıyor, uygulamayı kapatıp yeniden açtığında akış baştan başlıyor. 100 bin kayıtlı kullanıcı için ayda 100 bin mesaj bütçelerseniz gerçek fatura bunun iki katına rahat çıkar. Yeniden gönderim aralığını 60 saniyeye çekmek ve aynı numaraya günlük üst sınır koymak, birim fiyat pazarlığından daha fazla tasarruf sağlıyor.
İkinci kalem SMS pumping. Saldırgan, gelirini gönderilen mesajdan alan bir operatörün numara aralığına kayıt formunuz üzerinden binlerce doğrulama isteği tetikliyor. Faturayı siz ödüyorsunuz, mesajı kimse okumuyor. Twilio bu trafiği tespit etmek için araç sunuyor ama savunmanın ilk katmanı sizde: kayıt formuna hız sınırı, ülke bazlı beyaz liste, aynı IP'den gelen istek eşiği. Bunları yazmadan canlıya çıkan bir formun ne kadar sürede bulunduğunu görmek şaşırtıcı.
Yüksek hacimde tablo tersine dönüyor. Aylık milyonlarca SMS gönderen bir yapıda yerel bir toplu SMS sağlayıcısının paket fiyatı, Twilio'nun mesaj başı ücretinin belirgin altında kalıyor. Twilio'nun asıl değeri o noktada fiyat değil, kanal çeşitliliği ve tek bir arayüzden yönetim oluyor. Sadece SMS gönderiyorsanız ve hacim yüksekse, karşılaştırmayı yapmadan devam etmeyin.
Entegrasyonun kod tarafı
Giden mesaj kolay. Resmi SDK'lar Python, PHP, Java, Node.js, C# ve Ruby için mevcut, ilk SMS'i göndermek gerçekten birkaç satır.
İş gelen tarafta değişiyor. Twilio size mesajı ve çağrı olaylarını webhook ile, yani sunucunuza HTTP isteği atarak bildiriyor. Bu da dışarıdan erişilebilir bir uç nokta demek. O uç noktayı korumanın yolu her isteğin başlığında gelen imzayı doğrulamak; SDK'ların hepsinde hazır bir doğrulayıcı var, üç satırla bitiyor, atlarsanız endpoint'inizi herkes tetikleyebiliyor.
İkinci nokta tekrar teslimat. Webhook'unuz zaman aşımına uğrarsa ya da 5xx dönerse aynı olay yeniden gelebiliyor. Sipariş durumu güncelleyen, bakiye düşen, kullanıcıya bildirim atan bir işleyicide bunun bedeli çift kayıt oluyor. Gelen olayın kimliğini saklayıp daha önce işlenmişse sessizce çıkmak, sonradan veri temizlemekten ucuz.
Üçüncüsü yanıt süresi. Webhook işleyicisi içinde rapor üretip e-posta gönderirseniz Twilio'nun bekleme süresini aşarsınız. Olayı kuyruğa bırakıp hemen 200 dönmek doğru davranış.
Türkiye'den gönderirken
Bu bölüm çoğu rehberde eksik ve entegrasyonu canlıya alırken en çok zaman kaybettiren yer burası.
Ticari elektronik ileti göndermek 6563 sayılı kanuna tabi. Kampanya, tanıtım, indirim duyurusu gönderiyorsanız alıcının onayı ve bu onayın İleti Yönetim Sistemi'ne kaydı zorunlu. Twilio bu kaydı sizin yerinize yapmıyor, bu sizin yükümlülüğünüz. Doğrulama kodu, sipariş bildirimi, randevu hatırlatması gibi işlem bildirimleri bu kapsamın dışında; ayrımı en baştan kodda yapın, iki mesaj tipini aynı gönderim fonksiyonundan geçirmeyin.
Gönderici adı tarafında da başvuru gerekiyor. Marka adının mesajda görünmesi için alfanumerik gönderici başlığının kayıtlı olması lazım, kayıtsız başlıklar teslim edilmiyor ya da numara olarak düşüyor. Test ortamında sorunsuz görünen akışın canlıda sessizce başarısız olması genelde bu yüzden.
Ne zaman Twilio, ne zaman değil
Birden fazla kanalı tek yerden yönetiyorsanız, uluslararası gönderim yapıyorsanız veya sesli akışlarınız varsa Twilio karşılığını veriyor. Kurulum hızı ve dokümantasyon kalitesi rakiplerinin çoğundan iyi, bu abartı değil.
Buna karşılık ihtiyacınız yalnızca yurt içine yüksek hacimli SMS ise, yerel bir sağlayıcı hem daha ucuz hem de İYS entegrasyonunu hazır getiriyor. Vaka çalışmalarında geçen büyüme oranlarını da karar girdisi saymayın: o sayılar platformun değil, o şirketin ürün ve pazarlama kararlarının sonucu. Kendi hacminizle bir ay boyunca gerçek fatura üretip bakmak, altı ay sonra taşınmaktan hem hızlı hem ucuz.