Monstral / Geliştirici portalı

Geliştirici portalı

Bir mühendisin Monstral'ı siteye koyması ve sisteminizin geri kalanına bağlaması için gereken her şey.

Parçalar nasıl birleşiyor

Monstral sitenizde tek bir script etiketi olarak çalışır. Ekibinizin panelde onayladığı demo ayarlarını yükler, hover ipuçlarını, turları ve asistanı gösterir, anonim telemetriyi geri gönderir. Geri kalan her şey — tarama, analiz, çeviri, lead puanlama — Monstral sunucularında olur.

Üç entegrasyon noktası var: snippet (tarayıcıda), giden olaylar (webhook ve Slack) ve REST API (sunucudan sunucuya, servis anahtarlarıyla).

Snippet'i kurun

Etiketi her sayfanın <head> bölümüne ya da tag manager üzerinden ekleyin. Async yüklenir ve ayarlar gelene kadar hiçbir şey yapmaz.

  • checkdata-project — proje kimliğiniz (panelde Yayınla sayfasında).
  • checkdata-backend — Monstral API adresi. Script'i bir CDN'den servis ediyorsanız zorunlu.
  • checkdata-lang — opsiyonel. Widget dilini sabitler (en, tr, de, fr, es). Verilmezse widget ziyaretçinin tarayıcı dilini izler.
index.html
<script async
src="https://api.monstral.io/embed/agent-embed.js"
data-backend="https://api.monstral.io"
data-project="PROJE_ID"
data-lang="de" <!-- opsiyonel -->
></script>

Content-Security-Policy

Siteniz CSP başlığı gönderiyorsa Monstral API adresini hem script-src hem connect-src'ye ekleyin. Widget arayüzünü Shadow DOM içinde, oluşturulmuş bir stil sayfasıyla çizer; style-src 'self' yeterlidir. Yayınla sayfasındaki “Kurulumu doğrula” canlı CSP'nizi okur ve tam olarak neyin eksik olduğunu söyler.

Content-Security-Policy
script-src 'self' https://api.monstral.io;
connect-src 'self' https://api.monstral.io;

Tek sayfalık uygulamalar ve giriş gerektiren alanlar

Snippet istemci tarafı gezinmeyi (History API, Navigation API ve hash router'lar) izler; bir kez kurarsınız. Giriş arkasındaki sayfalar çalışır: tarayıcı sizin belirlediğiniz test kullanıcısıyla giriş yapar, widget ise ziyaretçinin kendi oturumunda çalışır.

İzinli alan adları ve yayın anahtarı

  • checkİzinli alan adları: liste boş değilse asistan yalnızca bu adreslerden gelen sohbet mesajlarına yanıt verir. Snippet'i herkes sayfa kaynağınızdan kopyalayabilir — liste, kotanızın başka yerde harcanmasını engeller.
  • checkYayın anahtarı: demo kapalıyken snippet kurulu kalır ama hiçbir şey çizmez, hiçbir şey kaydetmez. Sitede düzenleme çalışmaya devam eder; erkenden kurup sonra yayına alabilirsiniz.
  • checkAyarları çeken her sayfa yüklemesi adres bazında kaydedilir — “Kurulumu doğrula” widget'ın gerçekten bağlandığını böyle bilir.

Canlı sitede düzenleme

“Sitede düzenle” sayfanızı ?da-edit=<kod> ile açar. Kod tek kullanımlıktır, beş dakikada geçerliliğini yitirir ve adres çubuğundan hemen silinir. Widget onu, o sekmenin sessionStorage'ında tutulan iki saatlik bir düzenleme token'ına çevirir. Düzenleme uçları yalnızca bu token'ı kabul eder — panel çerezleri sitenize hiç ulaşmaz — ve yalnızca tek bir proje için.

Olaylar, webhook ve Slack

Alarm kuralları olayları bağlantılara gönderir. Webhook bağlantısı JSON gövdeli bir POST alır; Slack bağlantısı Incoming Webhook üzerinden biçimlendirilmiş bir mesaj alır. Başarısız gönderimler artan aralıklarla yeniden denenir, beş denemeden sonra bırakılır; her gönderim HTTP durumu ve gövdesiyle panelde görünür. “Test gönder” ile istediğiniz an bir test.ping olayı alırsınız.

visitor.hot_lead_qualified
{
"session_id": "3f1c…",
"sicaklik": 5,
"rule": "Sıcak lead (puan ≥ 4)",
"report": {
"ozet": "Pro ve Team planlarını karşılaştırdı, SSO sordu",
"ilgi_alanlari": ["SSO", "fiyatlandırma"],
"sonraki_adim": "Güvenlik görüşmesi önerin"
}
}

REST API

Makine istemcileri proje servis anahtarıyla kimlik doğrular: Authorization: Bearer dak_… . Anahtarlar tek bir projeye (ya da tek bir organizasyona) bağlıdır ve üye yetkisindedir: tarama başlatabilir, içgörüleri okuyabilir, ama kişi ya da anahtar yönetemez.

Widget neleri toplar

  • checkSayfa görüntülemeleri, sayfada geçen süre, ekibinizin açtığı hotspot'lardaki duraksama ve tıklamalar.
  • checkZiyaretçinin sohbete yazdığı mesajlar ve tur öncesi anketinize verdiği cevaplar.
  • checkİletişim bilgisi yalnızca ziyaretçi sohbette kendisi verirse.
  • checkAsla form alanı değerleri, sohbet dışındaki tuş vuruşları ya da sitenizin çerezleri.