Tercih Merkezi: herkese açık opt-in/opt-out sayfası
Tercih merkezi, bir kişinin kendi kanal opt-in’lerini, abonelik konularını, mesaj sıklığını ve (etkinleştirdiyseniz) veri silme isteğini yönettiği herkese açık bir sayfadır — hesap yok, giriş yok. Her kişi imzalı bir bağlantı ile ulaşır: URL, 30 gün sonra süresi dolan bir HMAC-SHA256 token’ı (v1.<payload>.<signature>) taşıdığından sayfa kişiye özel ve kendi kendine hizmet verir.
Özetlenmiş uç nokta yüzeyi ayrıca Gönderi Kapıları içinde yaşar; bu rehber tam kılavuzdur: her yapılandırma alanı, bağlantının nereye konulacağı, herkese açık sayfanın API’sinin ne döndürdüğü ve bir opt-out veya opt-in’in hangi uyum yüzeylerini yazdığı.
Aşağıdaki tüm uç noktalar https://api.orbit.devotel.io/api/v1/compliance köklüdür.
İngilizce asıl: Preference center: the public opt-in/opt-out page.
Tercih merkezi bir kiracıya ait kontroldür: kanalları, konuları ve markalamayı siz seçersiniz ve onay kanıtı organizasyonunuz içinde durur. Orbit platformu işletir; onay kararı kişiye aittir. Bu rehber hukuki tavsiye değildir — yükümlülüklerinizi avukatınızla teyit edin.
1. Bir kez yapılandırın: POST/GET /preference-center
POST /preference-center ile yapılandırmayı ayarlayın (sahip/yönetici API anahtarı). Uç nokta yapılandırmayı organizasyonunuzun ayarlarına upsert eder ve kaydedilmiş nesneyi döndürür — güncellemek için yeniden çalıştırın. GET /preference-center geçerli yapılandırmayı okur; yapılandırma öncesi enabled: false ile bir ipucu mesajı döndürür.
Yapılandırma alanları
Her alan sunucu tarafında doğrulanır — reddedilen POST, hangi alanın başarısız olduğunu söylemek için alan başına sorunlarla (field, message) 422 döndürür.
Abonelik konuları
Bir konu bir adlandırılmış gruptur — Bülten, Ürün Güncellemeleri, Faturalandırma Uyarıları — kişi tüm kanalı devre dışı bırakmadan açıp kapatır. Konuid’leri benzersiz olmalı ve slug kalıbıyla eşleşmelidir ([a-z0-9][a-z0-9_-]{0,63}); her giriş şunlara sahiptir:
name(1–120 karakter) — sayfada görüntülenen ad.description(isteğe bağlı, ≤500) — düğmenin yanında gösterilen bir satır bağlam.defaultOptIn(varsayılanfalse) — kaydedilmiş tercih olmayan bir kişinin nasıl değerlendirildiği.archived(isteğe bağlı) — arşivlenmiş konular denetim izinde kalır ama artık sayfada görüntülenmez.
http(s)-şeması iyileştirmesinde başarısız URL’ler önden reddedilir ve yinelenen konu id’leri “Konu id’leri benzersiz olmalıdır” diye başarısız olur, sessiz üzerine yazma yerine.
2. Kişi başına bağlantı oluşturun
Yapılandırıldıktan sonra,POST /preference-center/link ile tek seferde bir kişi için bağlantı oluşturun:
link döndürür — ${DEVOTEL_WEB_URL}/preferences?token=v1… formunda bir URL. Dikkat edilmesi gereken noktalar:
- Bağlantı barındırılmış sayfaya, JSON uç noktasına değil. Bunu alt bilgi/gönderici şablonlarınıza harfiyen kopyalayın; sayfa kendisi veri uç noktasını arka planda çağırır.
- 30 günlük TTL. Sonrasında token süresi dolmuş olarak doğrulanır ve kişi yeni bir bağlantı istemek zorunda kalır (yenisini oluşturmak bir API çağrısı alır).
- Sayfa oluşturma zamanında yerel ayar bilmez. Web uygulaması
?token=sorgusunu korurken bir yönlendirmeyi çözer, böylece kişinin yerel ayarını tahmin etmeniz gerekmez.
Nereye konulacağı
- E-posta altbilgisi (birincil). Oluşturulan bağlantıyı (veya postacınızın kullandığı kısa izlenen varyantı) pazarlama şablonlarının abonelikten çıkma alanına ekleyin.
- SMS / WhatsApp yedeği. Mesajda altbilgi bloğu yoksa, bağlantıyı satır içi ekleyin:
{optOutMessage}: {link}. Giden gövdeleri oluşturan yardımcı, önceden oluşturulmuş bir kısa bağlantıyı kabul eder, böylece abonelikten çıkma tıklamanız normal tıklama atıbarını almaya devam eder. - Bastırma-taraflı yeniden-opt-in. Bir kişi başka bir akıştan yeniden-opt-in olduğunda, ona yeni bir bağlantı verebilirsiniz, böylece aynı self-servis sayfayı alır.
3. Herkese açık token sayfası
Barındırılmış sayfa, imzalı token tarafından kapılanan kimliği açık olmayan iki uç nokta üzerinden okur ve yazar:GET /preferences/:token— sayfa yükünü döndürür.PUT /preferences/:token— güncellemeler uygular.
400 INVALID_TOKEN döndürür; süresi dolmuş veya bozuk tokenler “Lütfen yeni bir link isteyin.” ile 401 TOKEN_EXPIRED döndürür.
GET yanıtı
Yük, kişinin geçerli durumunu ve organizasyonun yapılandırmasını birleştirir:consentHistory kişinin en yeni-önce opt-in/opt-out denetim izindendir, 20 satıra kadar sınırlı, operatörlerinizin kontrol panelinde gördüğü aynı onay defterinden çekilir.
PUT isteği gövdesi
channelPreferences— kısmi haritaya izin verilir (Zod kısmi-kayıt); en az bir kanal gerekli.frequencyPreference— isteğe bağlı,all,important_only,weekly_digest,monthly_digestbiri.topicPreferences— yapılandırılan konularınıza karşı doğrulanan{ topicId: opted_in | opted_out }haritası; bilinmeyen id’ler yoksayılır.requestDataDeletion— opt-out yanında bir GDPR-silme isteği ayarlar (bölüm 6’yı görün).
4. Güncellemeler nasıl akar
Burada yazılan bir opt-in/opt-out yalnızca bir kullanıcı arayüzü bayrağı değildir — bir STOP anahtar kelimesinin yazdığı dört uyum yüzeyinin aynısı güncellenir:- Onay defteri. Kanal (veya konu) başına bir
consent_recordssatırısource: preference_centerile eklenir — GDPR Madde 7 ispat yükü denetim izininiz. - Bastırma listesi. Herhangi bir opt-out edilen kanalda, kişinin kanonikleştirilmiş telefon/e-postası
allkapsamıyla eklenir — her send kapısının okuduğu kanallar arası blok. - STOP koruması. Opt-out üzerinde bir Redis hızlı-yol koruması ayarlanır (ve tam yeniden-opt-in üzerinde temizlenir), böylece havada olan kampanya yığınları daha yavaş veritabanı bastırma yayılımından önce değişikliği görür.
- Denetim günlüğü. Yapılandırmayı değiştirdiğinizde
compliance.preference_center_updatedkaydedilir ve kişi düzeyi opt-in/out olayları onay defterine yakalanır.
opted_in) kişinin telefonu için etkin bastırma satırlarını iptal eder ve STOP korumasını temizler, onay defteri ters kaydı alır.
Konu vs. kanal. Kanal düzeyi bir opt-out her zaman kazanır — bir konu düğmesi, kişinin hâlâ kabul ettiği kanallar içinde onayı daraltır. PUT içinde bilinmeyen konu id’leri kalıcı olmak yerine yoksayılır, bu yüzden eski bir form rasgele öznitelik anahtarları yazamaz.
5. GDPR-silme düğmesi anlambilimi
showGdprDelete etkin olduğunda ve kişi PUT içinde requestDataDeletion: true seçtiğinde, API eski bir GDPR silme isteği kaydeder — veri silme süreciniz için işaretlenmiş pending bir satır — opt-out yanında. Bu işaret kasıtlıdır: tercih merkezi silme düğmesi kişiyi işaretler, takip edilen DSAR hattını başlatmaz.
6. Test etmek
Bir duman betiğinize yapıştırabileceğiniz işlenmiş iki curl örneği: Yapılandırmayı kaydet:201 ve kaydedilen yapılandımasın yansıması.
Bağlantı oluştur ve herkese açık uç noktaları çalıştır:
updated: true artı uygulanan tercihleri döndürür ve istendiğinde bir gdprRequest girişi.
Kontrol edilecek yaygın hatalar: 400 INVALID_TOKEN (bozuk token), 401 TOKEN_EXPIRED (TTL geçti veya imza uyumsuzluğu — yeni bir bağlantı oluşturun), 422 VALIDATION_ERROR (yapılandırma veya güncelleme gövdesinde alan düzeyi sorunlar) ve 404 NOT_FOUND tercih merkezi kapalı olduğunda veya kişi id’si mevcut olmadığında.
İlgili
- Gönderi kapıları ve gönderi öncesi koruyucular — tercih merkezi özetinin sessiz saatler, acil durum durakları ve sınırlarla birlikte yaşadığı yer.
- Opt-Out & Bastırma Listeleri —
allkapsamının ve toplu CSV içe aktarmalarının bu yüzeyle nasıl ilişkili olduğu. - Onay yönetimi — aynı onay defterini saklayan operatör tarafı API.
- DSAR referansı —
requestDataDeletionisteklerini yönlendirmek için takip edilen silme hattı.