SMS
SMS kanalı — Twilio ve Netgsm sağlayıcıları, E.164 numaralar, segment sayımı ve Türkçe karakterler, kısa link, STOP/START/HELP otomasyonu, MMS ve gelen webhook'lar.
SMS kanalı POST /v1/notifications (target.channels: ["sms"]), kampanya ve journey ile gönderilir; gövde contents alanıdır (dil seçimi + Liquid). İki yönlü konuşmalar ve anahtar sözcük otomasyonları için iki yönlü SMS.
Sağlayıcılar
| Sağlayıcı | Alanlar (gizli italik) | Doğrulama |
|---|---|---|
twilio | account_sid, auth_token, from_number (E.164 ya da alfanümerik) ya da messaging_service_sid | GET /Accounts/{sid}.json |
netgsm | usercode, password, msgheader, iys_filter (0/11/12) | GET /sms/rest/v2/msgheader + başlık kontrolü |
mock | — | simülasyon |
API: PUT /v1/apps/{app_id}/channels/sms + POST …/validate (admin).
Numaralar ve abonelik
- Numaralar E.164 (
+905321234567) saklanır; SDK/API kaydında boşluk, tire, parantez ve00öneki normalize edilir, geçersiz değer400. - SDK:
Pushizo.User.addSms('+90 532 …')→POST /sdk/v1/apps/{app_id}/subscriptions(channel: "sms"); login'li kullanıcıdaexternal_id(+identity_hash), anonimde cihazınsubscription_idsahiplik kanıtıdır. - Sunucu:
POST /v1/apps/{app_id}/users/by/{label}/{value}/subscriptions{ "channel": "sms", "token": "+90…" }ya datarget.include_phone_numbersile doğrudan gönderim.
İçerik alanları
| Alan | Açıklama |
|---|---|
contents | Gövde (dil haritası, Liquid) |
sms_from | Gönderici numara/başlık ezmesi |
sms_media_urls | MMS medya (en fazla 10, https://); yalnızca Twilio — Netgsm'de 422, gönderimde MMS_NOT_SUPPORTED |
disable_sms_link_shortening | Bağlantılar /t/s/{code} kısa linkine çevrilmez |
Segment sayımı: GSM-7 tek parça 160 / çok parça 153 karakter; UCS-2 70 / 67. ş ğ ı İ ç GSM-7 dışındadır ve mesajı UCS-2'ye düşürür; dashboard uyarır. Netgsm encoding: TR (Türkçe tek kaydırma tablosu) ile bu harfler 2 septet sayılır. Önizleme POST …/templates/{id}/render (channel: "sms") body, encoding, segments, non_gsm_characters, turkish_characters döner; counts.sms_segments mesaj sayaçlarında birikir.
Kısa link: GET /t/s/{code} (8 karakter base62, 90 gün) tıklamayı sayar ve 302 yönlendirir.
STOP / START / HELP
- STOP → suppression
stop+ abonelikunsubscribed+subscription.unsubscribedwebhook'u; START →stopkaydı kaldırılır, abonelik yenidenactive. - HELP / INFO / YARDIM / BİLGİ →
help;apps.settings.sms.autoReplyaçıkkenhelpReply/stopReplymetni tek aboneliğe işlemsel SMS olarak gönderilir (tercihler). - Kaynaklar: Twilio gelen mesaj webhook'u (Advanced Opt-Out
OptOutTypeya da anahtar sözcük), Netgsm gelen kutusu sorgusu (dakikada bir), genel webhook{ "type": "stop" | "start" | "help", "address": "+90…" }.
Gelen webhook'lar ve raporlar
Adres: Kanallar → SMS → Webhook adresi ({API_URL}/hooks/sms/{twilio|mock}/{token}).
| Sağlayıcı | Kurulum | Doğrulama | Olaylar |
|---|---|---|---|
| Twilio | Gönderimde StatusCallback otomatik eklenir; numaranın A message comes in adresine aynı URL | X-Twilio-Signature | delivered, undelivered/failed (+ErrorCode), gelen STOP/START/HELP |
| Netgsm | Push webhook yok: worker dakikada bir teslim raporunu (/sms/rest/v2/report, son 72 saat) ve gelen kutusunu sorgular | — | Rapor 1 → delivered, 3 → geçersiz numara (abonelik invalid) |
Genel (mock) | JSON POST | URL token'ı | delivered, failed, stop, start, help |
Yerel geliştirme
Mock SMS: numaranın son dört hanesi 0001 geçersiz, 0002 kalıcı hata, 0003 geçici, 0004 hız sınırı, 0005 kimlik hatası; diğerleri başarılı. STOP denemesi: curl -X POST "<webhook adresi>" -H 'content-type: application/json' -d '{"type":"stop","address":"+905320000111"}'.
Sürükle-bırak e-posta editörü
Dashboard → Mesajlar → E-posta Editörü (/{org}/email-designs). Karar kaydı: ADR-0027.
İki yönlü SMS ve anahtar sözcükler
SMS, WhatsApp ve RCS'den gelen mesajlar Gelen kutusunda kişi bazlı konuşmalara yazılır; org veya app düzeyinde tanımlanan anahtar sözcükler gelen mesaja otomatik eylemlerle (tag, journey tetiği, otomatik yanıt,…