Koleksiyonlar ve Veriler

Koleksiyonlar, botunuzun kendi veri tablolarıdır. Botun kullanıcılardan topladığı veya entegrasyonlardan aldığı başvuruları, siparişleri, diyalog yanıtlarını, oyun puanlarını, ders kayıtlarını ve daha fazlasını burada rahatlıkla saklayabilirsiniz. Bölüm sol menüde yer alır: Veriler → Koleksiyonlar.

Koleksiyon Nedir

Bir koleksiyon, alanlardan (sütunları tanımlayan şema) ve kayıtlardan (veri satırları) oluşur. Her kayıt, koleksiyonun alanlarına göre bir değerler kümesidir; içeride esnek bir JSON belgesi olarak saklandığından koleksiyon, yeni alan eklemelerine sorunsuz uyum sağlar.

Koleksiyon adı, tek bir bot içinde benzersizdir ve tepki eylemlerinde tanımlayıcı olarak kullanılır (örneğin leads, orders, scores).

Alan Türleri

Koleksiyon oluştururken alan listesini ve her birinin türünü belirlersiniz:

  • text — metin (ad, e-posta, yorum).
  • number — sayı (tutar, miktar, puan).
  • bool — evet/hayır (true / false).
  • datetime — tarih ve saat.
  • json — karmaşık değerler için iç içe nesne veya dizi.

Tür, alanın arayüzde nasıl düzenlendiğini ve değerin kaydedilirken nasıl dönüştürüleceğini etkiler. Şema katı değildir: bir kayıtta şema dışı bir alan varsa kaydedilir ve ayrı bir sütun olarak görüntülenir.

Koleksiyon Oluşturma

  1. Veriler → Koleksiyonlar'ı açın ve Ekle'ye tıklayın.
  2. Ad belirleyin (Latin harfleriyle, boşluksuz — tepkilerde referans vermek daha kolay olur).
  3. Alan düğmesiyle gerekli sütunları ekleyin ve her birinin türünü seçin.
  4. Gerekirse depolama kurallarını belirleyin (aşağıya bakın) ve kaydedin.

Kayıtlar: Görüntüleme ve Düzenleme

Koleksiyon kartında bir tablo simgesi düğmesi bulunur — bu düğme, söz konusu koleksiyonun kayıtlarını içeren Veriler penceresini açar:

  • Görüntüleme — tüm satırlar liste biçiminde, her hücrede bir alan, en yenilerden başlayarak gösterilir.
  • Kayıt ekle — koleksiyon şemasına göre bir form açar; her alan kendi türüne göre düzenlenir (bool için açma/kapama, json için JSON giriş alanı vb.).
  • Düzenle (kalem) — mevcut satırı düzenler.
  • Sil (çöp kutusu) — satırı siler.

Kayıtlar aynı zamanda bot tepki eylemleriyle otomatik olarak da doldurulur (aşağıya bakın). Manuel düzenleme ve otomatik kayıt aynı koleksiyonla çalışır.

Depolama (Retention)

Koleksiyonun sürekli büyümesini önlemek için otomatik temizleme kuralları belirleyin:

  • Maksimum kayıt sayısı — limit aşıldığında en eski kayıtlar silinir.
  • Saklama süresi (gün) — belirtilen süreden eski kayıtlar silinir.

Temizleme, arka plan işlemi tarafından periyodik olarak gerçekleştirilir; kurallar birleştirilebilir.

Tepkilerden Veri ile Çalışma

Koleksiyonlar, tepki yapılandırıcısıyla doğrudan bağlantılıdır. Tepki eylemlerinde şunlar kullanılabilir:

  • Kayıt oluştur — satır ekler; değerler şablonlardan alınır (örneğin {{user.id}}, {{message.text}}). Tekrarlanan çağrının yinelenen satır oluşturmak yerine aynı satırı güncellemesi için yinelenenleri kaldırma anahtarı belirlenebilir.
  • Kayıtları güncelle — koşula uyan satırları değiştirir.
  • Kayıtları sorgula — satırları bir dizi olarak yürütme bağlamına okur, böylece üzerinde döngü kurulabilir.
  • Kayıtları sil — koşula göre satırları siler.
  • Döngü (for-each) — bağlamdaki bir dizi üzerinde dolaşır ve her öğe için iç içe eylemleri uygular (örneğin koleksiyondaki bir listeye mesaj göndermek).

Bu sayede bot, harici bir veritabanına gerek kalmadan CRM yönetebilir, başvuru toplayabilir, puan biriktirebilir ve raporlar oluşturabilir.

Mini App'ten Erişim

Koleksiyon kayıtları, botunuzun Telegram Mini App'inden okunabilir: ön uç, koleksiyon verilerini ada, filtrelere ve limite göre ister. Bu sayede kullanıcının siparişleri, geçmişi veya liderlik tablosu doğrudan Telegram içinde gösterilebilir.

İpuçları

  • Alanlara kısa makine adları verin (email, total, paid) — tepki şablonlarında kullanmak daha kolay olur.
  • İdempotent kayıt için (örneğin «kullanıcı başına tek başvuru») yinelenenleri kaldırma anahtarı kullanın.
  • Koleksiyonun şişmemesi için günlükler ve geçici veriler için retention'ı etkinleştirin.
  • Değerin yapısı önceden sabit değilse json türünü kullanın.