Entegrasyonlar

REST API

KogniFeed'i CRM veya olay akışınıza bağlayın: anketleri listeleyin, kişiselleştirilmiş davet linkleri oluşturun ve tamamlanma durumunu sorgulayın — hepsi workspace API anahtarı ile.

Base URL

Tüm endpoint'ler /v1 altındadır. Üretimde genelde uygulama origin'i + backend proxy yolu kullanılır.

Kimlik doğrulama

Her istekte workspace API anahtarınızı Bearer token olarak gönderin:

Authorization: Bearer kfn_…

Anahtarları panelden oluşturun: Hesap menüsü → API Anahtarları (yalnızca sahip ve admin).

Endpoint'ler

GET /v1/surveys

Workspace'inizdeki anketleri yayın durumu ve public link slug ile listeler.

POST /v1/invite-links

user_data gömülü imzalı ?t= URL oluşturur. CRM kaydı oluşturulmaz.

  • Anket yayınlanmış olmalı ve aktif public linki olmalı (invite-link endpoint'leri).
  • İmzalı link: tek adım — POST /v1/invite-links ile tam user_data.
  • CRM: iki adım — kişi ekle/güncelle, ardından davet linki al.
  • Varsayılan olarak API yalnızca personal_url döner — send_email_via_kognifeed true değilse iletimi siz yaparsınız.
  • user_data.metadata serbest JSON kabul eder — yapılandırılmış alanlar (event, order_id) ve agent için serbest metin hikâye (ör. ödeme onaylanmadı, yarım kalan checkout).
  • user_data serileştirilmiş boyutu sınırlıdır (varsayılan 8192 karakter; INTEGRATION_INVITE_USER_DATA_MAX_CHARS).
  • send_email_via_kognifeed: true ile personal_url KogniFeed üzerinden e-posta ile gönderilir. Her gönderim paketinizdeki CRM davet e-postası kotasından düşer.

İmzalı link — CRM yok

{
  "survey_id": "uuid",
  "user_data": {
    "email": "user@example.com",
    "name": "Ada Lovelace",
    "metadata": {
      "event": "payment_not_confirmed",
      "order_id": "ORD-8842",
      "product": "Pro Plan (annual)",
      "amount": "249 EUR",
      "story": "Ada completed checkout for Pro Plan but payment was not confirmed — card authorization failed twice. Order has been on hold for 24h. Understand checkout friction and whether she still wants to upgrade."
    }
  },
  "token_expires_days": 30,
  "send_email_via_kognifeed": false
}

POST /v1/crm/contacts

users dizisi ile KogniFeed CRM kişilerini upsert edin (istek başına 1–500). metadata info alanına kaydedilir. İsteğe bağlı group_name (veya group_id) istekteki tüm kişilere uygulanır.

Adım 1 — CRM kişisi

{
  "group_name": "Enterprise Customers",
  "users": [
    {
      "email": "user@example.com",
      "name": "Ada Lovelace",
      "role": "Customer",
      "phone": "+1…",
      "external_id": "your-crm-id",
      "metadata": {
        "event": "purchase_completed",
        "order_id": "ORD-99"
      }
    },
    {
      "email": "grace@example.com",
      "name": "Grace Hopper",
      "external_id": "crm-2"
    }
  ]
}

POST /v1/crm/invite-links

Mevcut CRM kişisi için ?c= linki döner (email veya external_id). Kişi önce POST /v1/crm/contacts ile oluşturulmalıdır.

Adım 2 — CRM davet linki

{
  "survey_id": "uuid",
  "email": "user@example.com",
  "send_email_via_kognifeed": false
}

GET /v1/invite-links

Mevcut davet linkini ve oturum durumunu bulur (not_started, active, completed, …).

survey_id ile birlikte email veya external_id ile sorgulayın.

Tipik akış

  1. GET /v1/surveys ile yayınlanmış bir survey_id seçin.
  2. İmzalı link: POST /v1/invite-links + user_data. CRM: POST /v1/crm/contacts, sonra POST /v1/crm/invite-links (email veya external_id).
  3. personal_url'yi kendiniz iletin veya send_email_via_kognifeed: true kullanın (paket e-posta kotasından düşer).
  4. Tamamlanmayı GET /v1/invite-links ile izleyin veya create yanıtındaki session alanını kullanın.
  5. CRM kişi upsert ve imzalı link POST aynı e-posta için idempotent'tir — webhook tekrarında güvenle yeniden deneyebilirsiniz.

Gereksinimler

  • Aktif public linki olan yayınlanmış anket.
  • Workspace API anahtarı (panelde sahip veya admin oluşturur).