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.
Veri ambarına dışa aktarım
Pushizo; teslimat, olay, dönüşüm, kullanıcı ve abonelik verilerini düzenli olarak kendi veri ambarınıza aktarır: BigQuery, Snowflake veya S3 (Parquet). İlk çalıştırma geçmiş verinin tamamını, sonrakiler yalnızca yeni ve…
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ı…