Entegrasyonlar: Segment, Amplitude, Mixpanel, Zapier, Slack, WordPress, GTM
Pushizo'yu veri ve otomasyon yığınınıza kod yazmadan bağlamak için hazır entegrasyonlar (ADR-0031). Dashboard'da Geliştirici → Entegrasyonlar bölümünden yönetilir (webhooks.manage izni: geliştirici ve yönetici rolleri).…
Pushizo'yu veri ve otomasyon yığınınıza kod yazmadan bağlamak için hazır entegrasyonlar
(docs/adr/0031-entegrasyonlar-ve-mcp-sunucusu.md). Dashboard'da Geliştirici → Entegrasyonlar bölümünden
yönetilir (webhooks.manage izni: geliştirici ve yönetici rolleri). Her entegrasyon app başına bir kez bağlanır.
Ortak davranış
- Kimlik bilgileri zarf şifreli saklanır; yanıtlarda ve ekranda yalnızca maskeli görünür (
••••+ son 4 karakter). Güncellemede boş bıraktığınız kimlik alanı korunur; alanı silmek için boş değer gönderin. - Bağlantı testi düğmesi kimlik bilgisini sağlayıcıda doğrular. Sağlayıcı
401/403dönerse entegrasyon Hata durumuna alınır ve istek atılmaz; kimlik bilgisini güncelleyince yeniden etkin olur. - Son çalışmalar: olay gönderimi, cohort senkronu, gelen istekler ve testler (30 gün saklanır).
- Giden olaylar (Segment/Amplitude/Mixpanel hedefi, Zapier, Slack) bir outbox'a yazılır ve worker tarafından 5 sn'de
bir toplu gönderilir. Geçici hatalarda (429, 5xx, ağ) 30 sn → 2 dk → 10 dk → 30 dk → 2 sa → 6 sa beklenir
(
Retry-Afterdaha uzunsa o); yedinci başarısızlıkta veya kalıcı hatada (400/413/422) olay bırakılır. - Bağlantıyı kesmek kimlik bilgilerini, Zapier aboneliklerini ve bekleyen olayları siler.
Analitik hedefleri: gönderilen olaylar
Segment, Amplitude ve Mixpanel'e şu Pushizo olayları gönderilebilir: event.received, subscription.created,
subscription.unsubscribed, delivery.sent|delivered|failed|opened|clicked|bounced|unsubscribed,
in_app.impression|clicked|dismissed, conversion.created, journey.entered|completed. event.received için isteğe
bağlı olay adı filtresi (en fazla 50 ad) verilebilir.
- Sistem olayları Segment Spec "Nesne Eylem" adlarıyla gider (
Notification Opened,Subscription Created…); özel olaylar kendi adlarıyla. - Kullanıcı
external_idile tanınır; yoksa Pushizo kullanıcı kimliği anonim kimlik olur (SegmentanonymousId, Amplitudedevice_id, Mixpaneldistinct_id). Abonelik belirteci (push token) gönderilmez. - Tekilleştirme anahtarı olay kimliğidir (Segment
messageId, Amplitudeinsert_id, Mixpanel$insert_id); yeniden denemeler hedefte çift kayıt oluşturmaz.
Segment
Pushizo hem Segment hedefi (Pushizo → Segment) hem kaynağı (Segment → Pushizo) olabilir.
Hedef (olay gönderimi)
- Segment'te bir HTTP API kaynağı oluşturun ve Write Key'i kopyalayın.
- Pushizo'da Segment kartında Write Key'i girin, bölgeyi (
US/EU) seçin ve gönderilecek olayları işaretleyin. - Olaylar Segment HTTP Tracking API
/v1/batchucuna gider (istek ≤ 450 KB; 32 KB'ı aşan tek mesaj gönderilmez).
Kaynak (Segment'ten gelen veri)
- Pushizo'da Gelen uçu açın ve bir shared secret belirleyin. Kartta gelen uç adresi gösterilir:
{API_URL}/hooks/integrations/segment/{integrationId}. - Segment'te kaynağınıza Webhooks (Actions) / Webhooks hedefini ekleyin; URL olarak bu adresi, imza için aynı shared secret'ı girin.
- Her istek
X-Signaturebaşlığıyla imzalanmalıdır: gövdenin shared secret ile HMAC-SHA1 özeti (hex). İmzasız veya hatalı imzalı istek reddedilir; gelen uç kapalıysa veya entegrasyon etkin değilse404döner.
Gövde tek mesaj, mesaj dizisi veya { "batch": [...] } olabilir; toplu istekte en fazla 1000 mesaj. Bu uçta gövde
sınırı 500 KB'tır (Segment'in belgelenmiş en büyük toplu gönderim boyutu); diğer /hooks/* uçlarında 256 KB.
Sınırı aşan istek 400 HS_BAD_REQUEST ile reddedilir (genel gövde sınırıyla aynı yanıt).
| Segment çağrısı | Pushizo'daki karşılığı |
|---|---|
identify | Kullanıcı oluşturma/güncelleme (userId → external_id). traits varsayılan olarak özelliklere yazılır; ayarda tag olarak seçilirse yalnızca metin/sayı/bool değerler tag olur |
track | Olay (source=import). Ad [a-zA-Z0-9_.:-] karakterlerine uyarlanır, özgün ad segment_event özelliğinde saklanır. Bilinmeyen userId için kullanıcı oluşturulur, böylece olay segment koşullarına hemen yansır |
group | properties.group + segment_group_id tag'i |
page, screen, alias | Yok sayılır |
Segment'ten gelen olaylar Segment hedefine geri gönderilmez (döngü önleme). Bir identify/group reddedilirse aynı
toplu istekteki diğer mesajlar işlenmeye devam eder.
Amplitude
- Amplitude Settings → Projects bölümünden API Key ve Secret Key'i alın (cohort senkronu için Secret Key zorunlu).
- Pushizo'da Amplitude kartında anahtarları girin, bölgeyi (
US/EU) seçin. - Olay gönderimi: gönderilecek olayları seçin (HTTP V2 API, istek başına 500 olay).
- Cohort senkronu: cohort kimliklerini ekleyin (en fazla 20) ve senkron aralığını seçin (15 dk – 7 gün, varsayılan 60 dk). Cohort Behavioral Cohorts API ile indirilir.
Mixpanel
- Mixpanel Organization Settings → Service Accounts bölümünden bir servis hesabı oluşturun (projeye erişimli) ve Project ID'yi not edin.
- Pushizo'da Mixpanel kartında servis hesabı kullanıcı adı/gizli anahtarı, Project ID ve bölgeyi (
US/EU/IN) girin. - Olay gönderimi: Import API (
strict=1, istek başına 1000 olay; Mixpanel'in reddettiği kayıtlar tek tek bırakılır). - Cohort senkronu: cohort kimliklerini ekleyin (en fazla 20); üyeler Engage Query API ile sayfalı okunur.
Cohort senkronu (Amplitude ve Mixpanel)
- Cohort üyeliği tag ile taşınır: cohort'taki
external_id'lerecohort_amp_<id>(Amplitude) veyacohort_mxp_<id>(Mixpanel) tag'i"1"değeriyle eklenir; cohort'tan çıkanlardan kaldırılır. Senkron tek transaction'dır, yarım sonuç görünmez. - İlk senkronda
tags.<tag_key> existskoşullu bir dinamik segment oluşturulur (silinirse sonraki senkronda yeniden oluşturulur). Bu segmenti kampanya, journey ve in-app hedeflemede doğrudan kullanabilirsiniz. - Pushizo'da karşılığı olmayan üyeler için kullanıcı oluşturulmaz; sayıları çalıştırma kaydında
unmatchedolarak görünür. - Bir cohort'un hatası diğerlerini durdurmaz (
partial). Şimdi senkronla düğmesi senkronu öne çeker; worker en geç 1 dakika içinde çalıştırır.
Önemli: Entegrasyonun bağlantısını kesmek cohort tag'lerini (
cohort_amp_<id>/cohort_mxp_<id>) ve senkronun oluşturduğu dinamik segmenti silmez; bunlar kullanıcılarda ve segment listesinde kalır. Artık kullanılmayacaksa segmenti Kitle → Segmentlerden, tag'leri API ile elle kaldırın (PATCH /v1/apps/{app_id}/users/by/external_id/{id}gövdesinde{"tags": {"cohort_amp_<id>": null}}). Bu segmenti kullanan kampanya veya journey varsa önce onları güncelleyin.
Zapier
Pushizo Zapier uygulaması (integrations/zapier) REST Hook tetikleri kullanır; olaylar Zap'e 1 dakikadan kısa
sürede ulaşır.
- Dashboard'da Geliştirici → API anahtarları bölümünden bir anahtar oluşturun. Tetikler için
users:read; kullanacağınız eylemlere göreusers:write,events:write,notifications:write. - Zapier'de Pushizo bağlantısı eklerken API anahtarını ve App ID'yi girin (kendi barındırdığınız kurulumda API URL alanına API kök adresinizi https ile girin).
- Zap açıldığında Zapier abone olur; kapatıldığında abonelik silinir. Abonelikler Entegrasyonlar → Zapier kartında listelenir.
| Tetik | Pushizo olayı |
|---|---|
| New Subscriber | subscription.created |
| New Event | event.received (isteğe bağlı olay adı filtresi) |
| Notification Delivered / Opened / Clicked | delivery.delivered / delivery.opened / delivery.clicked |
| New User / User Tags or Properties Changed | user.created / user.updated |
| Eylem | Uç | Kapsam |
|---|---|---|
| Upsert User | POST /v1/apps/{app_id}/users | users:write |
| Set Tags | PATCH /v1/apps/{app_id}/users/by/external_id/{id} | users:write |
| Send Event | POST /v1/apps/{app_id}/events | events:write |
| Send Notification | POST /v1/notifications | notifications:write |
Hook adresi herkese açık HTTPS olmalıdır; app başına en fazla 200 abonelik. Abonelik şu durumlarda kendiliğinden
kaldırılır: Zapier 410 Gone döner, art arda 50 kalıcı hata olur veya aboneliği açan API anahtarı iptal edilir, süresi
dolar ya da silinir. Public uçlar: GET /v1/apps/{app_id}/integrations/zapier/me, POST …/hooks,
DELETE …/hooks/{hookId}, GET …/samples (kapsam users:read).
Slack
Kampanya başladı/tamamlandı, mesaj hatası, kampanya onay isteği ve kota eşiği bildirimleri bir Slack kanalına gider. İletiler Block Kit biçiminde, Türkçe veya İngilizcedir.
| Mod | Kurulum | Ne zaman |
|---|---|---|
| Incoming Webhook | Slack app → Incoming Webhooks → kanala ekle; https://hooks.slack.com/… adresini girin | Yalnızca bildirim; en hızlı kurulum |
| Bot belirteci | Slack app → OAuth & Permissions → bot kapsamları → çalışma alanına kur; xoxb-… belirtecini ve kanalı (C0123ABC veya #pazarlama) girin | Slack'ten onay/ret ve kanal seçimi |
Bot modunda gerekli bot kapsamları: chat:write, users:read, users:read.email. Botu kanala davet edin
(/invite @Pushizo).
Slack'ten kampanya onayı
- Bot modunu seçin, Signing Secret'ı (Slack app → Basic Information) girin ve Slack'ten onayı açın.
- Slack app → Interactivity & Shortcuts'ı açın; Request URL olarak kartta gösterilen adresi girin:
{API_URL}/hooks/integrations/slack/{integrationId}/interactions. - Onay isteği iletisinde Onayla/Reddet düğmeleri görünür. Düğmeye basan Slack kullanıcısı e-posta adresiyle
Pushizo üyesine eşlenir; üyenin aktif,
campaigns.approveizinli ve app'e erişimli olması gerekir. Ret durumunda kampanya taslak olarak kalır.
İstekler Slack imzasıyla (v0= HMAC-SHA256, 5 dk zaman penceresi) doğrulanır.
WordPress eklentisi
integrations/wordpress/pushizo (WordPress ≥ 6.2, PHP ≥ 8.1).
pushizoklasörünü/wp-content/plugins/altına yükleyip eklentiyi etkinleştirin.- Ayarlar → Pushizo'de App ID'yi girin (Entegrasyonlar → WordPress kartında kopyalanabilir). Kendi barındırdığınız kurulumda API URL alanını değiştirin.
- Eklenti her sayfada Web SDK'yı yükler ve service worker'ı site kökünden (
/PushizoSDKWorker.js) sunar. İsteğe bağlı slidedown veya zil açılabilir. Worker404dönerse Ayarlar → Kalıcı bağlantılar'ı bir kez kaydedin. - Abonelik formu için
[pushizo_subscribe]kısa kodunu veya Pushizo subscribe form bloğunu kullanın (isteğe bağlı e-posta alanı). - Yayında bildirim: açtığınızda seçili yazı türlerinde yazı yayınlanınca bildirim gider (segment seçimi ve yazı başına
meta kutusu). Bunun için
notifications:writekapsamlı bir REST API anahtarı girin; anahtar sayfalara yazılmaz.
Google Tag Manager şablonu
integrations/gtm/template.tpl (web Custom Template).
- GTM'de Şablonlar → Etiket şablonları → Yeni → İçe aktar ile
template.tpl'yi yükleyip kaydedin. - Pushizo Web Push türünde bir etiket oluşturun; App ID'yi girin (gerekirse API URL).
- Eylemler: Initialize (Initialization – All Pages tetikleyicisiyle), Send event (ad, isteğe bağlı sayısal değer, özellikler), Add tags (anahtar/değer), Log in (external ID). Her eylem önce SDK'yı yükleyip idempotent olarak başlatır.
- Service worker dosyası (
PushizoSDKWorker.js) sitenizin kökünden sunulmalıdır; farklı bir yol kullanıyorsanız şablonun Service worker path alanına girin.
Şablonun izinleri inject_script, access_globals ve logging ile sınırlıdır.
Dışa ve içe aktarma (CSV)
CSV export işleri (users, subscriptions, events, deliveries), imzalı indirme bağlantısı, Pushizo ve OneSignal CSV içe aktarma, hata raporu ve saklama süreleri.
MCP sunucusu: yapay zekâ asistanlarıyla Pushizo
Pushizo, Model Context Protocol (MCP) sunucusuyla Claude Desktop, Claude.ai ve diğer MCP istemcilerinin segment, kampanya, mesaj, şablon ve analitik verinizi okumasını ve onayınızla taslak kampanya/segment hazırlamasını…