İ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 |
|---|---|
| Twilio | Kanal 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. |
| Netgsm | Webhook gerekmez; worker gelen kutusunu periyodik yoklar ve aynı mesajı ikinci kez işlemez. |
| Mock | POST /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
}
}
```text
- **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](/docs/channels/whatsapp)). 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.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.
WhatsApp (Meta Cloud API): kurulum, şablonlar, oturum penceresi ve gelen kutusu
Pushizo, WhatsApp mesajlarını Meta'nın Cloud API'si üzerinden doğrudan gönderir; BSP veya ek barındırma gerekmez (ADR-0029). Kanal, plan özelliği olarak SMS gerektirir. Dış hesap olmadan geliştirme ve test için mock…