İş Olayları

Kendi sisteminizden senaryo başlatma

İş olayı, mağazanın tarayıcıda gözleyemediği bir şeyin sizin sisteminiz tarafından Selwise'a bildirilmesidir: kargo depodan çıktı, iade onaylandı, fatura kesildi. Bildirim bir senaryoyu başlatır; senaryo da kişiye e-posta, SMS ya da sitede bir kampanya gösterir. Bu sayfa, Your system reports an event (Kendi sisteminiz bir olay bildirir) başlangıcını kuran senaryonun gönderen tarafını anlatır.

Önkoşullar

  • Selwise panelinde bir senaryo, Your system reports an event başlangıcıyla yayında olmalıdır (Başlangıç adımları). Başlangıçtaki Event name (Olay adı), isteğinizdeki key ile birebir aynı olmalıdır; büyük küçük harf ayırt edilir.
  • Kanalın bir public API anahtarı ve bu anahtarda mobile_write yetkisi gerekir (POST isteği yazma yetkisi ister). Anahtarı kanal ekranında oluşturursunuz: API Anahtarları.
  • Kanal doğrulanmış olmalıdır; sunucudan gelen istek tarayıcı başlığı taşımadığı için kimlik doğrulama yalnızca anahtarla yapılır (Kimlik Doğrulama ve Erişim).

İş olayı bir takip olayı değildir

İş olayı events/batch ile gönderilmez. Olaylar takip tablosuna yazılır, 90 gün sonra silinir ve her analitik ekran onları sayar; bir kargo bildirimi ne alışverişçi davranışıdır ne de huninizde görünmelidir. İş olayı yalnızca senaryo motoruna gider; huniye, dönüşüm sayılarına ve olay geçmişine girmez. Anahtar adı da ayrı bir ad alanındadır: purchase adını verseniz bile satın alma tetikleyicili senaryolarınızı ele geçirmez.

İstek

POST https://api.selwise.com/api/v1/public/sites/SITE_KEY/business-events
x-selwise-api-key: swpk_live_...
Content-Type: application/json
AlanZorunluAçıklama
keyEvetSizin seçtiğiniz olay adı. Harf, rakam, nokta, tire, alt çizgi; en çok 60 karakter
siteUserIdBiri zorunluKişinin identify ile gönderdiğiniz üye kimliği, en çok 64 karakter. E-posta gönderebilmek ve kişiyi tanımak için bunu kullanın
visitorIdBiri zorunluKişinin tarayıcı ziyaretçi kimliği (selwise_vid), en çok 64 karakter. Sitede kampanya göstermek ve A/B ayrımı için gerekir
payloadHayırOlayla ilgili sizin bildiğiniz her şey; bir nesne
testModeHayırtrue ise olay test olarak gider; yalnızca test modundaki senaryoları açar

siteUserId ya da visitorId verilmezse alınacak kimse yoktur: istek 200 döner ama accepted değeri false olur. Bilinmeyen bir alan göndermek isteği 400 ile reddeder.

curl -X POST "https://api.selwise.com/api/v1/public/sites/SITE_KEY/business-events" \
  -H "x-selwise-api-key: swpk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "key": "shipment_dispatched",
    "siteUserId": "member-42",
    "payload": { "orderNumber": "A-10293", "carrier": "Yurtici", "trackingUrl": "https://kargo.example/A-10293" }
  }'
await fetch(`https://api.selwise.com/api/v1/public/sites/${SITE_KEY}/business-events`, {
  method: 'POST',
  headers: {
    'x-selwise-api-key': process.env.SELWISE_API_KEY!,
    'content-type': 'application/json',
  },
  body: JSON.stringify({
    key: 'shipment_dispatched',
    siteUserId: order.memberId,
    payload: { orderNumber: order.number, carrier: order.carrier },
  }),
});

Yanıt

{ "accepted": true, "scenarios": 1 }
AlanAnlamı
acceptedtrue: istek alındı. false: kimlik verilmemiş, kimse alınmadı
scenariosBu key ile başlayan yayındaki senaryo sayısı. Kişinin senaryoya girdiği anlamına gelmez: giriş sınırı, yeniden giriş, ek segment ve olay filtreleri kuyrukta ayrıca uygulanır

Yanıt hemen döner; giriş kararı kuyrukta verilir, yani kişi birkaç saniye içinde senaryoya girer. Yeni yayınlanan bir senaryo, sunucu önbelleği yüzünden bir dakikaya kadar görünmeyebilir. scenarios değeri 0 ise key hiçbir yayındaki senaryoyla eşleşmiyor: yazımı ve büyük küçük harfi kontrol edin.

Payload nerede kullanılır

payload senaryonun o koşusunun tetikleyici verisi olur:

  • Olay filtreleri: başlangıçtaki Event filters alanındaki yollar payload alanlarına bakar (carrier eşittir Yurtici). Filtreyi sağlamayan olay kişiyi içeri almaz; raporda Did not match the starter's audience (Başlangıcın kitlesine uymadı) olarak sayılır.
  • Mesajlar: e-posta, SMS ve bildirimde ${custom.orderNumber} gibi yer tutucular payload alanlarını basar. Nesne ve dizi değerleri basılmaz (boş kalır); düz değerler gönderin (Mesajlar ve ürün bloğu).
  • Sağlayıcınıza devret: adım isteği, trigger alanında bu veriyi taşır (Aksiyon adımları).

Hata durumları

KodSebep
400Bilinmeyen alan, key kalıba uymuyor ya da 60 karakteri aşıyor, siteUserId ya da visitorId 64 karakteri aşıyor
403Kanal doğrulanmamış, API anahtarı geçersiz, iptal edilmiş ya da mobile_write yetkisi yok
404siteKey bilinmiyor
429Dakikada 300 istek sınırı aşıldı; Retry-After kadar bekleyin

Toplu işlerde (gece çalışan bir kargo aktarımı gibi) istekleri sınırın altında tutun; her satır için ayrı bir istek atılır, toplu gönderim yoktur.

Doğrulama

  1. Senaryoyu test modunda yayına alın ve isteğe "testMode": true ekleyin. Test modundaki senaryo yalnızca test olayını alır ve sağlayıcıya hiçbir şey göndermez (Kimler girebilir).
  2. Automation → Scenarios → senaryo → Shoppers sayfasında kişinin satırı birkaç saniye içinde görünür; Test mode yazar.
  3. Kişi görünmüyorsa Report sayfasında Who did not get in bölümüne bakın: sebep orada sayılır (Kimler girebilir).
  4. Hazır olunca test modunu kapatıp yayına alın ve testMode alanını göndermeyi bırakın.

Sık yapılan hatalar

  • key yanlış yazıldı. Başlangıçtaki ad ile istekteki ad birebir aynı olmalıdır; Shipment_Dispatched ile shipment_dispatched farklı olaylardır.
  • Kimlik yok. siteUserId ve visitorId ikisi de yoksa accepted: false döner ve hata fırlatılmaz; yanıtın gövdesini okuyun.
  • Üye kimliği identify ile aynı değil. siteUserId, mağazada identify ile gönderdiğiniz üye kimliğidir; dahili bir sipariş numarası değildir. Eşleşmeyen kimlik, profil ve izin kaydı bulunamadığı için e-posta adımında Not reachable (Ulaşılamadı) olarak atlanır (Kimlik tanıma).
  • Sitede kampanya göstermek için visitorId yok. Sitede göster adımı bir tarayıcıya hak bırakır; yalnızca üye kimliğiyle gelen kişide atlanır.
  • Yayında olmayan senaryo. Taslak ya da duraklatılmış senaryoyu scenarios sayısı saymaz.

Son güncelleme: 10 Ekim 2026