Başlarken
Temel Kavramlar

Temel Kavramlar

Bu sayfa HeptaCert'in veri modelini ve API boyunca tekrar eden kavramları açıklar. Endpoint'lere geçmeden önce bu modeli anlamak, hangi kaynağın hangisine bağlı olduğunu kavramanızı kolaylaştırır.

Veri Modeli

HeptaCert'in çekirdeği etkinlik (event) etrafında döner. Diğer tüm kaynaklar doğrudan veya dolaylı olarak bir etkinliğe bağlıdır.

Organizasyon
└── Etkinlik (Event)
    ├── Katılımcı (Attendee)
    │   ├── Kayıt (Registration)
    │   ├── Check-in (Attendance)
    │   └── Sertifika (Certificate)
    ├── Oturum (Session)            ← agenda / program
    ├── Sertifika Şablonu + Kademeler (Tiers)
    ├── Anket (Survey)
    ├── Rozet (Badge)
    ├── Otomasyon Kuralı (Automation Rule)
    └── Sponsor / Çekiliş (Raffle)

Organizasyon (etkinlikten bağımsız)
├── CRM (Hesap → Kişi → Fırsat/Deal)
├── Lead Formları
├── API Anahtarları
└── Webhook Endpoint'leri

Çekirdek Kaynaklar

Etkinlik (Event)

Bir konferans, atölye, eğitim veya web seminerini temsil eder. Sistemdeki en üst düzey kapsayıcıdır. Her etkinliğin bağımsız olarak açıp kapatabileceğiniz yetenek bayrakları (feature flags) vardır:

BayrakAçıklama
certificate_enabledSertifika yayımlama açık mı
registration_enabledHalka açık kayıt formu aktif mi
registration_closedKayıt geçici olarak durduruldu mu
checkin_enabledOturum bazlı check-in açık mı

event_type alanı conference, workshop, webinar, training gibi değerler alır ve yalnızca raporlama/filtreleme amaçlıdır — davranışı değiştirmez.

visibility alanı (public / private) etkinliğin halka açık etkinlik dizininde görünüp görünmeyeceğini belirler.

Etkinlik nesnesinin tipik alanları
{
  "id": 42,
  "name": "Python Summit 2026",
  "event_type": "conference",
  "event_date": "2026-09-15T09:00:00",
  "event_location": "İstanbul",
  "event_description": "...",
  "visibility": "public",
  "certificate_enabled": true,
  "registration_enabled": true,
  "registration_closed": false,
  "checkin_enabled": true,
  "attendee_count": 150,
  "created_at": "2026-06-01T12:00:00"
}

Katılımcı (Attendee)

Bir etkinliğe bağlı bir kişidir. Katılımcılar üç yoldan oluşabilir ve source alanı kökeni belirtir:

KaynakAçıklama
manualAdmin panelinden veya API ile elle eklendi
registrationHalka açık kayıt formundan kaydoldu
importCSV / Excel toplu içe aktarmayla geldi

Aynı e-posta bir etkinlikte yalnızca bir kez bulunabilir. Tekrar eklemeye çalışmak 409 Conflict döner.

Katılımcı bir etkinliğe özeldir. Aynı kişi iki farklı etkinliğe katıldıysa iki ayrı katılımcı kaydı vardır. Kişiyi etkinlikler arası izlemek için CRM katmanını ve search_attendees_across_events aracını kullanın.

Sertifika (Certificate)

Bir katılımcıya verilen, doğrulanabilir bir belgedir. Her sertifikanın iki kimliği vardır:

  • public_id — kısa, paylaşılabilir genel kimlik (örn. abc123xyz). Halka açık doğrulama linkinde kullanılır.
  • uuid — dahili benzersiz kimlik. Doğrulama URL'sinin yolunda kullanılır.

Bir sertifika şu durumlarda olabilir:

DurumAçıklama
activeGeçerli, doğrulanabilir
revokedİptal edildi — doğrulama sayfası "geçersiz" gösterir
expiredSon kullanma tarihi geçti

Sertifikalar tek tek veya toplu üretim (bulk generate) ile bir Excel listesinden oluşturulabilir. Toplu üretim asenkron bir iş (job) olarak çalışır — bkz. Toplu Üretim.

Sertifika Kademeleri (Tiers)

Bir etkinlik, katılım düzeyine göre farklı sertifika kademeleri tanımlayabilir (örn. "Katılım", "Başarı", "Mükemmeliyet"). Kademeler genellikle check-in oranı veya anket tamamlama gibi koşullara bağlanır. get_certificate_tier_summary her kademede kaç sertifika olduğunu döner.

Oturum (Session)

Bir etkinliğin program/agenda öğesidir — bir konuşma, panel veya atölye. Oturumların başlangıç/bitiş zamanı, konuşmacısı, konumu ve kapasitesi olur. Check-in oturum düzeyinde yapılır: bir katılımcı etkinliğe değil, belirli oturumlara check-in yapar. Bu, oturum bazlı katılım analitiğini mümkün kılar.

Anket (Survey) & Rozet (Badge)

  • Anket — etkinlik sonrası geri bildirim toplar. Yanıtlar otomasyon tetikleyicilerini besleyebilir (örn. anketi tamamlamayan katılımcıya hatırlatma).
  • Rozet — başarı göstergeleri. Katılımcılar koşulları sağladığında rozet kazanır; rozetler otomasyonları tetikleyebilir.

Otomasyon (Automation)

Otomasyon kuralları olay tabanlıdır: bir tetikleyici (trigger) gerçekleştiğinde bir veya daha fazla eylem (action) çalışır.

{
  "name": "Sertifika Sonrası Teşekkür E-postası",
  "trigger": "certificate_issued",
  "actions": [
    { "type": "send_email", "template_id": 5, "delay_hours": 0 }
  ],
  "enabled": true
}

Tetikleyiciler: attended_event, registered_no_show, certificate_issued, survey_not_completed, badge_earned, lms_course_completed, compliance_overdue

Otomasyonlar (dahili, zamanlanmış işlerle tetiklenir) ile webhook'lar (dış sistemlere anlık HTTP bildirimi) farklı şeylerdir — birini diğeri yerine kullanmayın:

OtomasyonWebhook
HedefHeptaCert içi eylem (e-posta gönder vb.)Sizin sunucunuz
TetiklenmeOlay + zamanlama kuralıOlay anında
Kullanım"Şunu olunca şunu yap""Sistemimi haberdar et"

CRM Katmanı

CRM, etkinliklerden bağımsız bir katmandır ve kişileri zaman içinde, etkinlikler arası izler:

  • Hesap (Account) — bir şirket/kuruluş
  • Kişi (Contact) — bir birey (birden çok etkinliğe katılmış olabilir)
  • Fırsat (Deal) — bir satış/ilişki fırsatı, aktivite geçmişiyle

Katılımcı verisi CRM'e snapshot hook'ları aracılığıyla akar: bir katılımcı kaydolduğunda veya sertifika aldığında CRM profili güncellenir. Lead skoru (lead score) kişinin etkileşim düzeyini sayısallaştırır ve değiştiğinde crm.lead_score_changed webhook'unu tetikleyebilir.

Kimlikler ve Erişim Yolları

Aynı veriye birden çok yoldan erişebilirsiniz; hepsi aynı kaynaklara dokunur:

YolKullanım
REST APISunucu-sunucu entegrasyon, scriptler
CLI (hc)Terminal, otomasyon, CI/CD
MCPAI asistanları (Claude, Cursor vb.)
WebhooksOlay anında dışa bildirim (tek yön: HeptaCert → siz)

Hepsi aynı API anahtarı ve aynı scope modelini paylaşır. Bir scope'u kısıtladığınızda, kısıtlama dört yolda da geçerli olur.

Sonraki Adımlar