PushizoDocs
Kanallar

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
twilioaccount_sid, auth_token, from_number (E.164 ya da alfanümerik) ya da messaging_service_sidGET /Accounts/{sid}.json
netgsmusercode, 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 ve 00 öneki normalize edilir, geçersiz değer 400.
  • SDK: Pushizo.User.addSms('+90 532 …') → POST /sdk/v1/apps/{app_id}/subscriptions (channel: "sms"); login'li kullanıcıda external_id (+ identity_hash), anonimde cihazın subscription_id sahiplik kanıtıdır.
  • Sunucu: POST /v1/apps/{app_id}/users/by/{label}/{value}/subscriptions { "channel": "sms", "token": "+90…" } ya da target.include_phone_numbers ile doğrudan gönderim.

İçerik alanları

AlanAçıklama
contentsGövde (dil haritası, Liquid)
sms_fromGönderici numara/başlık ezmesi
sms_media_urlsMMS medya (en fazla 10, https://); yalnızca Twilio — Netgsm'de 422, gönderimde MMS_NOT_SUPPORTED
disable_sms_link_shorteningBağ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 + abonelik unsubscribed + subscription.unsubscribed webhook'u; START → stop kaydı kaldırılır, abonelik yeniden active.
  • HELP / INFO / YARDIM / BİLGİ → help; apps.settings.sms.autoReply açıkken helpReply / stopReply metni tek aboneliğe işlemsel SMS olarak gönderilir (tercihler).
  • Kaynaklar: Twilio gelen mesaj webhook'u (Advanced Opt-Out OptOutType ya 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ıKurulumDoğrulamaOlaylar
TwilioGönderimde StatusCallback otomatik eklenir; numaranın A message comes in adresine aynı URLX-Twilio-Signaturedelivered, undelivered/failed (+ErrorCode), gelen STOP/START/HELP
NetgsmPush 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 POSTURL 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"}'.

Bu sayfada