Pushizo Docs
Rehberler

İ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,…

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, abonelik) karşılık verir (docs/adr/0029-whatsapp-rcs-iki-yonlu-sms-eposta-isindirma.md §4–5).

1. Gelen mesajları almak

SağlayıcıKurulum
TwilioKanal kartındaki webhook adresini (/hooks/sms/twilio/{token}) Twilio numarasının veya Messaging Service'in "A message comes in" alanına girin; istekler X-Twilio-Signature ile doğrulanır.
NetgsmWebhook gerekmez; worker gelen kutusunu periyodik yoklar ve aynı mesajı ikinci kez işlemez.
MockPOST /hooks/sms/mock/{token} gövdesi { "type": "inbound", "address": "+90…", "body": "…" } (yalnızca üretim dışı).

Gelen numara normalize edilir (E.164). Abonelik yoksa rızasız pending abonelik oluşturulur: kişi gelen kutusunda görünür ve ona yanıt verilebilir, ancak kampanyalar ona gitmez.

2. Yasal anahtar sözcükler

STOP/STOPALL/UNSUBSCRIBE/CANCEL/END/QUIT/İPTAL/RET/DUR aboneliği sonlandırır; START/YES/UNSTOP/BAŞLA yeniden abone eder (ve WhatsApp'ta rıza kaydeder); HELP/INFO/YARDIM/BİLGİ yardım yanıtı içindir. Bu sözcükler özel olarak tanımlanamaz ve her zaman özel sözcüklerden önce değerlendirilir.

3. Özel anahtar sözcük tanımlama

Dashboard'da Anahtar sözcükler ekranından veya API ile:

POST /v1/apps/{appId}/sms-keywords
{
  "keyword": "indirim",
  "channels": ["sms", "whatsapp"],
  "actions": {
    "add_tags": { "kampanya": "yaz" },
    "remove_tags": ["eski"],
    "event": { "name": "keyword_indirim", "properties": { "kaynak": "sms" } },
    "reply": { "text": "Kodunuz: YAZ20" },
    "opt_in": true
  }
}
  • Kapsam: scope: "org" org'un tüm app'lerinde geçerlidir; app'e özel tanım org genelindekinden önceliklidir. Aynı kapsamda aynı sözcük 409.
  • Eşleşme: Gelen metnin ilk sözcüğü (sondaki noktalama atılır). Türkçe büyük/küçük harf, noktalı/noktasız i ve aksan duyarsızdır: indirim, İNDİRİM, Indirim! aynı sözcüktür. Sözcük tek parça, harf/rakam, en fazla 30 karakter.
  • Eylemler: add_tags/remove_tags (kullanıcısı olmayan aboneliğe anonim kullanıcı bağlanır), event (olay kaydı → journey olay tetiği ile akış başlatılabilir), reply.text (otomatik yanıt; aynı kişi + sözcük için dakikada en fazla bir kez), opt_in (aboneliği rızayla subscribed yapar, kaynak keyword).
  • Devre dışı (enabled: false) sözcük eylem çalıştırmaz.

4. Otomatik yanıt ve WhatsApp rızası

Otomatik yanıt, gelen kutusu yanıtı gibi tek aboneliğe işlemsel bir mesajdır (sessiz saat ve frekans sınırından muaf) ve kanalın kurallarına uyar:

  • WhatsApp'ta rıza kaydı olmayan (pending) kişiye otomatik yanıt gönderilmez; teslimat no_opt_in nedeniyle bastırılır ve konuşmada bastırıldı olarak görünür. Sözcükte opt_in: true eylemi varsa rıza önce kaydedilir ve yanıt gider — rıza toplama akışlarında (ör. "KATIL") bu eylemi kullanın.
  • WhatsApp yanıtı oturum penceresi içinde olduğundan (kişi az önce yazdı) serbest metin olarak gider.
  • SMS'te STOP ile çıkmış numaraya yanıt gönderilmez.

5. Gelen kutusundan yanıt

Konuşmayı açıp metin yazın (WhatsApp'ta şablon veya etkileşimli mesaj da seçilebilir, bkz. WhatsApp rehberi). API: POST /v1/apps/{appId}/conversations/{id}/messages { "text": "…" }. Abonelikten çıkmış veya geçersiz numaraya yanıt 422. Konuşmalar okundu işaretlenebilir, kapatılıp yeniden açılabilir.

6. Saklama süresi

Konuşma mesajları kişisel veridir ve teslimat saklama süresine tabidir (varsayılan 90 gün; organizasyon ayarı veya plan sınırı daha kısaysa o uygulanır). Süreyi aşan mesajlar ve son mesajı süreyi aşan konuşmalar günlük bakım işinde silinir.

Bu sayfada