Versiyon v1 · Kazan Kazan v2 · Fiş Okut genişletilmiş

Kazan Kazan v2 — Fiş Okut ile Genişletilmiş

v1 akışının tamamı + üzerine eklenen ortak Fatura / Fiş Okut altyapısı. Başarı, mevcut FreeByte → GB sistemine bağlanır. · Brief: 2:: WHATSAPP – FİŞ OKUT KAZAN

Akış Genel Görünümü

Her node'a tıkla, detay kartına git

Canlı
Planlanmış
Context (bot dışı)
Hata mesajı
v2 · Fiş Okut
→ Tıkla, detaya git
text yaz reject approve tekrar (LOOP) en sonunda approve API fail (otomatik) GB Yükle Kampanyalar FreeByte İşlemleri bakiye yetersiz bakiye OK API fail Detaylar Katıl tekrar yazı Menü eligible yok hepsi tamam hepsi görüldü CTA app açılır 24h + API check tamamlanmadı ✗ tamamlandı ✓ kalmadıysa GB YÜKLE AKIŞI KAMPANYA AKIŞI FREEBYTE İŞLEMLERİ AKIŞI (PLANNED) Bakiye Sorgula Kod ile Yükle Menü API hata geçerli kod geçersiz API hata ★ menu_body’ye eklenen v2 dalı — Fatura / Fiş Okut ↓ ödül samba context okunamadı
★ v2 UZANTISI — Fatura / Fiş Okut · menu_body’ye eklenir, başarı → gb_load_confirm
menu_body ↑ receipt_menu_entry receipt_intro_body receipt_request_body receipt_processing_body receipt_success_body gb_load_confirm ↑ samba_campaign_post 8 hata → welcome_body kvkk_resend_body kvkk_rejected_body freebyte_welcome_body freebyte_api_fail_body menu_body (split point) gb_load_confirm_body gb_load_insufficient_body gb_load_success_body gb_load_error_body campaign (DB) details_body join_default_body still_active_body no_eligible_body completed_all_body cycle_reset_body deeplink → app reminder_default reminder_congrats reminder_no_more phone_invalid error_api_unavailable error_deeplink error_no_info error_keyword optout (DURDUR) freebyte_menu_body freebyte_balance_body freebyte_code_prompt_body freebyte_balance_error_body freebyte_code_success_body freebyte_code_invalid_body freebyte_code_error_body

1. Karşılama & KVKK Akışı

welcome
welcome_body interactive_button
Trigger
Yeni kullanıcı bot'a ilk mesajı atar
Buton 1
welcome_button_approve → ✅ Onaylıyorum
Buton 2
welcome_button_reject → ❌ Daha sonra
🔀 Geçişler
✅ Onaylıyorumfreebyte_welcome_body
❌ Daha sonrakvkk_rejected_body
(text input)kvkk_resend_body
📝 İlk ETK + KVKK linkleri burada gösteriliyor. Hukuki zorunluluk — onaylanmadan kampanya akışı başlamaz.
kvkk resend
kvkk_resend_body interactive_button
Trigger
KVKK ekranındayken kullanıcı **butona basmadan yazı yazar** (örn "evet", "ne demek bu")
Mesaj
Devam etmek için lütfen aşağıdaki butonlardan birine tıkla 👇
Buton 1
✅ Onaylıyorum
Buton 2
❌ Onaylamıyorum
🔀 Geçişler
✅ Onaylıyorumfreebyte_welcome_body
❌ Onaylamıyorumkvkk_rejected_body
(yine yazı)kendisi (LOOP)
💡 Önerilen iyileştirme: "evet/onay/tamam" gibi anahtar kelimeleri NLP ile yakalayıp approve gibi davran.
kvkk rejected
kvkk_rejected_body interactive_button
Trigger
"❌ Daha sonra" butonu tıklandı
Buton 1
✅ Onaylıyorum
Buton 2
❌ Daha sonra
🔀 Geçişler
✅ Onaylıyorumfreebyte_welcome_body
❌ Daha sonrakendisi (LOOP)
⚠️ Sonsuz döngü riski — kullanıcı onaylamadıkça çıkış yok. Timeout/eskalasyon mekanizması yok. Yeniden tasarımda bu düşünülmeli.
KK
Kazan Kazan
çevrimiçi
Üzgünüz! 😔 Sadece Türkiye (Turkcell, Vodafone, Türk Telekom) numaraları desteklenmektedir. Neden: Geçersiz format
14:30
📐 Mockup
phone_invalid_body text
Trigger
Telefon numarası doğrulamayı geçemedi (Türkiye numarası değil veya format hatalı)
Değişken
{reason} — doğrulama hata sebebi
🔀 Geçişler
(akış bitti)END

2. FreeByte Hediye

freebyte welcome
📸 Bu SS'te FreeByte mesajından hemen sonra ilk kampanya da görünüyor (akış otomatik).
freebyte_welcome_body text
Trigger
KVKK onaylandı → FreeByte API success
Yan etki
Operatörden ayrıca SMS gönderilir
🔀 Geçişler
(otomatik)menu_body (PLANNED)
KK
Kazan Kazan
çevrimiçi
Anlayışın için teşekkürler! 🎁 1000 FreeByte'ın kısa süre içinde hesabına yüklenecek.
14:32
📐 Mockup
freebyte_api_fail_body PLANNED
Durum
⚠️ Şu an FreeByte API fail olduğunda hiç mesaj gitmiyor — UX boşluğu
Trigger
FreeByte API çağrısı başarısız (timeout, 5xx, vb.)
🔀 Geçişler
(otomatik)menu_body (PLANNED)
💡 Yeni yazımda eklenmeli — kullanıcı sessizlikte kalmamalı, "kısa süre içinde yüklenecek" şeklinde pozitif fallback ver.

3. Kampanya Gösterimi

campaign pepsi
📸 Pepsi kampanyası örneği — başka kampanya örneği için aşağıya bak.
campaign (image + body + buttons) hybrid (DB-driven)
Trigger
FreeByte sonrası ilk gösterim, veya "Sonraki", veya keyword routing
Sıralama
DB: campaigns.priorityen yüksek priority önce gösterilir, "Sonraki" deyince bir alt priority'ye geçer
Eligibility
Campaign API'den kontrol edilir — sadece eligible olanlar listede kalır, görülen kampanyalar atlanır
Görsel
DB: campaigns.image_url
Body
DB: campaigns.body_text
Buton 1
DB: button_1_text + button_1_id (örn "Kampanyaya Katıl")
Buton 2
DB: button_2_text + button_2_id (örn "Detayları Gör")
Buton 3
campaign_next → "Sonraki" (hardcoded)
Buton 4
campaign_menu → "Menü" (hardcoded, her kampanyada — menüye dönüş)
🔀 Geçişler
Sonrakipriority sırasıyla bir alttaki kampanya
Menümenu_body
⚠️ WhatsApp limiti: Interactive Button mesajları max 3 buton destekler. 4 buton (Katıl/Detaylar/Sonraki/Menü) için List Message kullanılması gerekir.
📌 Priority mantığı: İlk girişte en yüksek priority değerine sahip kampanya gösterilir (örn Pepsi=priority 10, Koçtaş=8). Kullanıcı "Sonraki" deyince bir alt priority'deki kampanyaya geçer. Eligible olmayan veya görülmüş olanlar atlanır. Tüm priority'ler bitince cycle_reset_body gönderilir, baştan başlanır (sadece katılınmamış olanlar arasından).
KK
Kazan Kazan
çevrimiçi
[Kampanya detayları — örn Pepsi için:]\n\n• Promosyonlu Pepsi ürünü satın al\n• Şişe kapağındaki kodu uygulamaya gir\n• Anında 100 MB hediye kazan!\n\nKatılım koşulları: ...
14:42
✅ Kampanyaya Katıl
⏭️ Sonraki
🏠 Menü
📐 Mockup
campaign_details_body hybrid (DB-driven)
Trigger
Kampanya kartında "Detayları Gör" butonuna tıklandı
İçerik
DB: campaigns.campaign_detailsher kampanyaya özel detay metni
Buton 1
Katıl (DB: button_1)
Buton 2
campaign_next → Sonraki
Buton 3
campaign_menu → Menü
📌 Detaylar mesajından sonra Detaylar butonu tekrar gösterilmez — kullanıcı zaten detayları görmüş durumda.
campaign join cta
campaign_join_default_body + CTA hybrid
Trigger
"Kampanyaya Katıl" butonuna tıklandı
Hangi kampanya?
O an gösterilen kampanya — yani priority sırasında bulunduğu yerdeki kampanya. İlk girişte en yüksek priority (örn Pepsi), "Sonraki" deyip ilerlemişse o priority'deki kampanya.
Body
DB'de campaigns.deeplink_message varsa o kullanılır.\nYoksa fallback metni: "Harika seçim! 🎉\n{campaign.name} kampanyasına katılmak için aşağıdaki butona tıkla 👇"
CTA Buton
campaign_join_cta_button → "Kampanyaya Git" (hardcoded, tüm kampanyalar için ortak)
URL
DB: campaigns.deeplink_url — o kampanyaya özel link
Yan etki
24 saat sonra reminder zamanlanır (eğer kullanıcı kampanyayı tamamlamazsa reminder_default_body tetiklenir)
🔀 Geçişler
Kampanyaya Gitapp/web deeplink
(24 saat bekle)reminder_default_body
📌 Önemli: Bu mesaj her kampanya için aynı yapıdadır ama içerik (kampanya adı, deeplink URL) o anki priority'deki kampanyadan dinamik gelir. Tek mesaj template'i, çoklu kampanya kullanımı.
cycle reset
campaign_cycle_reset_body text
Trigger
Tüm eligible kampanyaları gördükten sonra "Sonraki" deyince — katılmadıklarından başa dönüyor
Mesaj
🔄 Tüm kampanyaları gördün. Katılmadığın kampanyalardan tekrar başlıyoruz!
🔀 Geçişler
KK
Kazan Kazan
çevrimiçi
Üzgünüz! 😔 Şu an için katılabileceğin aktif bir kampanya bulunmuyor. Yeni kampanyalar yakında gelecek, takipte kal! 🎁
14:40
📐 Mockup
campaign_no_eligible_body text
Trigger
Kullanıcı için hiç eligible kampanya yok (API'den boş döndü)
KK
Kazan Kazan
çevrimiçi
Tebrikler! 🎉 Tüm kampanyalara katıldın veya şu an için katılabileceğin kampanya bulunmuyor. Yeni kampanyalar yakında gelecek, takipte kal! ❤️
14:45
📐 Mockup
campaign_completed_all_body text
Trigger
Kullanıcı tüm kampanyaları tamamladı
KK
Kazan Kazan
çevrimiçi
Merhaba! 👋 Henüz Pepsi kampanyasına katılmamış görünüyorsun. Ücretsiz GB kazanmak istemez misin? 🎁
15:00
📐 Mockup
campaign_still_active_body hybrid
Trigger
Kullanıcı katıldığı kampanyayı tamamlamadan tekrar bot'a yazar
Değişken
{campaign.name}

4. Hatırlatıcılar (24 saat sonra)

📌 Yeni mantık: Kullanıcı "Katıl" tıkladıktan 24 saat sonra Campaign API'ye check atılır — kampanyayı tamamladı mı?
KK
Kazan Kazan
çevrimiçi
Harika! 🎉 Pepsi kampanyasını tamamlamış görünüyorsun! Ödülün hesabına tanımlandı 🚀
15:30
📐 Mockup
reminder_congrats_body hybrid
Trigger
24 saat sonra Campaign API check → tamamlandı
Değişken
{campaign.name}
Sonraki adım
Otomatik sıradaki priority kampanya gönderilir (kullanıcı yine "Katıl/Detaylar/Sonraki" seçenekleriyle karşılaşır)
🔀 Geçişler
(kampanya kalmadıysa)reminder_no_more_body
KK
Kazan Kazan
çevrimiçi
Merhaba! 👋 Daha önce Pepsi kampanyasına katılmak istemiştin ama henüz ödülünü almamış görünüyorsun 🎁. Ücretsiz GB fırsatını kaçırmadan hemen devam et 🎁
15:30
📐 Mockup
reminder_default_body hybrid
Trigger
24 saat sonra Campaign API check → tamamlanmadı
Değişken
{campaign.name}
Sonraki adım
AYNI kampanya yeniden gönderilir (image + body + butonlar) — kullanıcıdan tekrar "Katıl/Detaylar/Sonraki" aksiyonu istenir
Timing
Production'da CAMPAIGN_REMINDER_DELAY_MINUTES=1380 (23 saat) — WhatsApp 24h penceresi içinde kalmak için
🔀 Geçişler
⚠️ Quiet hours yok — gece 03:00'da bile gönderilir. Yeniden tasarımda quiet hours eklenebilir.
KK
Kazan Kazan
çevrimiçi
Şu an için başka aktif kampanya bulunmuyor. Yeni kampanyalar geldiğinde seni haberdar edeceğiz! ❤️
15:32
📐 Mockup
reminder_no_more_body text (terminal)
Trigger
Congrats sonrası sıradaki priority kampanya aranır, eligible kampanya kalmadıysa
State
Terminal — bu mesajdan sonra reminder döngüsü biter, kullanıcı yeni kampanya gelene kadar bekler

5. Hata Mesajları

KK
Kazan Kazan
çevrimiçi
Şu anda kampanya bilgilerini kontrol ederken geçici bir sorun yaşıyoruz. 🙏 Lütfen birkaç dakika sonra tekrar yaz.
15:35
📐 Mockup
error_campaign_api_unavailable text
Trigger
Campaign API down — kampanya eligibility kontrolünde hata
KK
Kazan Kazan
çevrimiçi
Üzgünüz, kampanya bilgisi bulunamadı. 😔 Lütfen tekrar dene veya destek ekibiyle iletişime geç!
15:37
📐 Mockup
error_campaign_no_info text
Trigger
Kampanya bilgisi DB'de bulunamadı (silinmiş veya yanlış ID)
KK
Kazan Kazan
çevrimiçi
Kampanya yönlendirmesinde geçici bir sorun oluştu. 🙏 Lütfen biraz sonra tekrar yaz.
15:38
📐 Mockup
error_campaign_keyword text
Trigger
Kullanıcı kampanya keyword'ü yazdı ama Campaign API hata verdi (timeout, 5xx)

6. Opt-out

KK
Kazan Kazan
çevrimiçi
Anladık, artık size mesaj göndermeyeceğiz. Tekrar mesaj almak için bize yazabilirsiniz.
15:40
📐 Mockup
optout_confirmation_body text
Trigger
Kullanıcı "STOP", "DURDUR", "İPTAL", "UNSUBSCRIBE" gibi keyword yazar

★ Fatura / Fiş Okut v2 · yeni

Bu bölüm v1 akışının üzerine oturur

Fatura / fiş okutma tekil bir kampanya değil; kampanyaların bağlanabileceği ortak bir altyapı. Mevcut akışa şu noktalardan eklenir:

Not: Üstteki genel akış haritası v1’i gösterir; aşağıdaki mini-harita bu uzantının nereye oturduğunu özetler.

KK
Kazan Kazan
çevrimiçi
Ne yapmak istersin? 👇
14:30
📷 Fatura / Fiş Okut · yeni 🎁 Kampanyalar 💎 GB Yükle
📐 Mockup
menu_body → Fatura / Fiş Okutlist / interactive_buttonyeni aksiyon
Trigger
Mevcut menu_body menüsüne yeni satır eklenir. Keyword: fiş, fatura, okut.
🔀 Geçişler
📷 Fatura / Fiş Okutreceipt_intro_body
ℹ️ v1’de menü zaten var (menu_body); bu uzantı oraya bir aksiyon ekler, ayrı bir menü kurmaz.
KK
Kazan Kazan
çevrimiçi
Fişini okutarak kampanyalara katılabilirsin. 🧾 Hazır olduğunda aşağıdaki butona bas, fişinin fotoğrafını gönder.
14:31
📷 Fiş Gönder
📐 Mockup
receipt_intro_bodyinteractive_button
Trigger
Menüden “Fatura / Fiş Okut” seçildi ya da kampanyadan (Samba) yönlendirildi.
Mesaj
Fişini okutarak kampanyalara katılabilirsin. 🧾 Hazır olduğunda aşağıdaki butona bas, fişinin fotoğrafını gönder.
Context
{campaign_context} — boş (genel) veya samba
🔀 Geçişler
📷 Fiş Gönderreceipt_request_body
⚠️ Kamera otomatik açılmamalı. Kullanıcı akışı butonla başlatır (brief UX notu).
KK
Kazan Kazan
çevrimiçi
Lütfen fişinin tamamının net göründüğü bir fotoğraf gönder 📸
14:31
📷 fiş fotoğrafı
14:32 ✓✓
📐 Mockup
receipt_request_bodymedia_request
Trigger
“Fiş Gönder” butonuna basıldı.
Mesaj
Lütfen fişinin tamamının net göründüğü bir fotoğraf gönder 📸
Beklenen girdi
WhatsApp medya (image). Galeriden seç veya kamerayla çek.
🔀 Geçişler
(görsel gönderildi)receipt_processing_body
(metin, görsel değil)tekrar iste (LOOP)
ℹ️ Fatura gönderimi WhatsApp’ın medya gönderim yapısına uygun ilerlemeli (brief UX notu).
KK
Kazan Kazan
çevrimiçi
Fişini kontrol ediyoruz, birkaç saniye sürebilir… ⏳
14:32
📐 Mockup
receipt_processing_bodytext
Trigger
Kullanıcı görseli gönderdi → sistem görseli OCR / doğrulama servisine iletir.
Mesaj
Fişini kontrol ediyoruz, birkaç saniye sürebilir… ⏳
Servis adımları
OCR → fatura içeriği kontrolü → {campaign_context} uygunluğu → ödül tanımı.
🔀 Geçişler
geçerli + uygunreceipt_success_body
okunamadı / uygun değilhata mesajları
KK
Kazan Kazan
çevrimiçi
Büyük boy Samba alana 1.000 FreeByte hediye! 🍫 Kampanyaya katılmak için fişini gönder, hediyeni kap.
14:30
Samba ile Kazan
📐 Mockup
samba_campaign_postbroadcast / cta
Trigger
Samba kampanya duyurusu — diğer kampanyalar gibi ayrı gönderi olarak yayınlanır.
Mesaj
Büyük boy Samba alana 1.000 FreeByte hediye! Kampanyaya katılmak için fişini gönder, hediyeni kap.
Buton
samba_join → Samba ile Kazan
🔀 Geçişler
Samba ile Kazanreceipt_intro_bodycontext = samba
ℹ️ Buton ortak okutma akışını Samba context'i ile başlatır. Aynı akış, menüden gelirse genel okutma olur.
KK
Kazan Kazan
— context —
Menü → genel fatura okutma Samba postu → samba context’i ile fatura okutma
🔌 Context (bot mesajı değil)
campaign_contextroutingcontext
Amaç
Tek okutma akışı, girişe göre farklı kampanya context'i taşır — kampanya başına ayrı akış kopyalanmaz.
Değişken
{campaign_context}null (genel) · samba · <ileride başka kampanyalar>
Etki
OCR sonrası uygunluk kontrolü ve ödül tanımı bu context'e göre yapılır.
KK
Kazan Kazan
çevrimiçi
Tebrikler! 🎉 Samba kampanyasından 1.000 FreeByte kazandın. FreeByte bakiyeni GB’ye dönüştürmek için aşağıdaki butona tıkla.
14:32
GB’ye Dönüştür
📐 Mockup
receipt_success_bodycta
Trigger
Fiş doğrulandı → kampanya koşulları sağlandı → ödül tanımlandı.
Mesaj
Tebrikler! 🎉 {campaign_name} kampanyasından {reward_amount} FreeByte kazandın. FreeByte bakiyeni GB’ye dönüştürmek için aşağıdaki butona tıkla.
Değişken
{campaign_name}, {reward_amount} (Samba: 1.000)
🔀 Geçişler
GB’ye Dönüştürgb_load_confirm_body(mevcut v1 akışı)
ℹ️ Yeni ödül sistemi kurulmaz: kazanılan FreeByte mevcut GB Yükle akışına bağlanır. Başarı adımları (brief): doğrula → koşul ara → ödül tanımla → başarı mesajı → opsiyonel GB dönüştürme.

Hata / Uygun Değil Senaryoları

Brief yalnızca “görsel okunamadı” mesajını veriyor (error_image_unreadable). Diğer 7 mesaj taslak/önerilen — metin onayı bekliyor. Her durum için ayrı mesaj tanımlanmalı.

KK
Kazan Kazan
çevrimiçi
Fişini okuyamadık. Lütfen fişin tamamının net göründüğü yeni bir fotoğraf gönder.
14:33
📐 Mockup
error_image_unreadabletext
Durum
Görsel okunamadı (bulanık, kesik, OCR yetersiz).
Mesaj (brief)
Fişini okuyamadık. Lütfen fişin tamamının net göründüğü yeni bir fotoğraf gönder.
🔀 Geçişler
tekrar denereceipt_request_body
KK
Kazan Kazan
çevrimiçi
Gönderdiğin görselde geçerli bir fatura/fiş bulamadık. Lütfen fişinin fotoğrafını gönderdiğinden emin ol.
14:33
📐 Mockup
error_receipt_not_foundtexttaslak
Durum
Fatura/fiş bulunamadı (görsel fiş değil).
Mesaj
Gönderdiğin görselde geçerli bir fatura/fiş bulamadık. Lütfen fişinin fotoğrafını gönderdiğinden emin ol.
🔀 Geçişler
tekrar denereceipt_request_body
KK
Kazan Kazan
çevrimiçi
Fişinde kampanyaya uygun bir ürün göremedik. Kampanya koşullarını kontrol edip tekrar deneyebilirsin.
14:33
📐 Mockup
error_campaign_product_not_foundtexttaslak
Durum
Kampanya ürünü bulunamadı (fiş geçerli ama Samba/ürün yok).
Mesaj
Fişinde kampanyaya uygun bir ürün göremedik. Kampanya koşullarını kontrol edip tekrar deneyebilirsin.
🔀 Geçişler
tekrar denereceipt_request_body
KK
Kazan Kazan
çevrimiçi
Bu fiş daha önce kullanılmış. Her fiş yalnızca bir kez kullanılabilir.
14:33
📐 Mockup
error_receipt_already_usedtexttaslak
Durum
Fatura daha önce kullanılmış (tekrar gönderim).
Mesaj
Bu fiş daha önce kullanılmış. Her fiş yalnızca bir kez kullanılabilir.
🔀 Geçişler
(akış bitti)END
KK
Kazan Kazan
çevrimiçi
Bu kampanyanın ödül kotası doldu. İlgini için teşekkürler, yeni kampanyalarda görüşmek üzere!
14:33
📐 Mockup
error_quota_fulltexttaslak
Durum
Kampanya kotası dolmuş.
Mesaj
Bu kampanyanın ödül kotası doldu. İlgini için teşekkürler, yeni kampanyalarda görüşmek üzere!
🔀 Geçişler
menüye dönmenu_body
KK
Kazan Kazan
çevrimiçi
Bu kampanyanın süresi doldu. Güncel kampanyalar için menüye göz atabilirsin.
14:33
📐 Mockup
error_campaign_expiredtexttaslak
Durum
Kampanya süresi dolmuş.
Mesaj
Bu kampanyanın süresi doldu. Güncel kampanyalar için menüye göz atabilirsin.
🔀 Geçişler
kampanyalara gitcampaign
KK
Kazan Kazan
çevrimiçi
Bu kampanyaya katılım limitine ulaştın. Yeni kampanyalarda yine bekleriz!
14:33
📐 Mockup
error_user_limittexttaslak
Durum
Kullanıcı kampanya limitini doldurmuş.
Mesaj
Bu kampanyaya katılım limitine ulaştın. Yeni kampanyalarda yine bekleriz!
🔀 Geçişler
(akış bitti)END
KK
Kazan Kazan
çevrimiçi
Bir teknik sorun oluştu. Lütfen birazdan tekrar dene 🙏
14:33
📐 Mockup
error_system_ocrtexttaslak
Durum
Sistem / OCR hatası (servis yanıt vermedi).
Mesaj
Bir teknik sorun oluştu. Lütfen birazdan tekrar dene 🙏
🔀 Geçişler
tekrar denereceipt_request_body

WhatsApp UX Notları & Açık Sorular

8. GB Yükle Akışı

KK
Kazan Kazan
çevrimiçi
1 GB için 1000 FreeByte hesabından düşülecek. Onaylıyor musun?
16:05
✅ Onaylıyorum
❌ İptal
📐 Mockup (PLANNED)
gb_load_confirm_body interactive_button
Trigger
Menüde "📲 GB Yükle" tıklandı
🔀 Geçişler
✅ Onaylıyorum (bakiye OK)gb_load_success_body
✅ Onaylıyorum (yetersiz)gb_load_insufficient_body
❌ İptalmenu_body
KK
Kazan Kazan
çevrimiçi
Üzgünüz 😔 FreeByte bakiyen yetersiz. Kampanyalara katılarak FreeByte kazanabilirsin! 🎁
16:06
🎁 Kampanyalar
🏠 Menü
📐 Mockup (PLANNED)
gb_load_insufficient_body interactive_button
Trigger
GB Yükle onaylandı + FreeByte bakiyesi < 1000
Buton 1
campaign_menu → 🎁 Kampanyalar (bakiye kazanma döngüsü)
Buton 2
menu_button → 🏠 Menü
🔀 Geçişler
🎁 Kampanyalarcampaign
🏠 Menümenu_body
📌 Dead-end olmaması için sonuç ekranına buton eklendi — kullanıcı bakiye yetersizken kampanyalara yönlendirilir.
KK
Kazan Kazan
çevrimiçi
Yükleme sırasında bir hata oluştu. 😔 Lütfen birkaç dakika sonra tekrar dene.
16:07
🔄 Tekrar Dene
🏠 Menü
📐 Mockup (PLANNED)
gb_load_error_body interactive_button
Trigger
FreeByte API GB yükleme hatası
Buton 1
gb_load_retry → 🔄 Tekrar Dene
Buton 2
menu_button → 🏠 Menü
🔀 Geçişler
🔄 Tekrar Denegb_load_confirm_body
🏠 Menümenu_body
KK
Kazan Kazan
çevrimiçi
Tebrikler! 🎉 1 GB hattına başarıyla yüklendi! Keyifli kullanımlar! 😊
16:08
💎 FreeByte İşlemleri
🏠 Menü
📐 Mockup (PLANNED)
gb_load_success_body interactive_button
Trigger
FreeByte API → GB load success
Yan etki
SMS doğrulama mesajı (operatör tarafından)
Buton 1
menu_button_freebyte_ops → 💎 FreeByte İşlemleri
Buton 2
menu_button → 🏠 Menü
🔀 Geçişler
💎 FreeByte İşlemlerifreebyte_menu_body
🏠 Menümenu_body

9. FreeByte İşlemleri PLANNED

📌 Model: FreeByte bir cüzdan bakiyesidir. Kazanım: kampanya katılımı + uniq kod. Harcama: GB Yükle (FreeByte → GB) ve ileride diğer dijital varlıklar. Bu alt menü, ana menüde 3 buton sınırı dolduğu için bakiye ve kod aksiyonlarını toplar.
KK
Kazan Kazan
çevrimiçi
💎 FreeByte İşlemleri Ne yapmak istersin?
16:10
💰 Bakiye Sorgula
🎟️ Kod ile Yükle
🏠 Menü
📐 Mockup (PLANNED)
freebyte_menu_body PLANNED
Trigger
Ana menüde "💎 FreeByte İşlemleri" tıklandı
Buton 1
fb_ops_balance → 💰 Bakiye Sorgula
Buton 2
fb_ops_code → 🎟️ Kod ile Yükle (etiket max 20 karakter — "Kod ile Yükle" kullanıldı)
Buton 3
menu_button → 🏠 Menü (üst menüye dön)
🔀 Geçişler
💰 Bakiye Sorgulafreebyte_balance_body
🎟️ Kod ile Yüklefreebyte_code_prompt_body
🏠 Menümenu_body
📌 List Message kullanılmıyor — bu yüzden 3 buton sınırına uygun olarak tasarlandı. GB Yükle bu alt menüde değil, ana menüde (FreeByte harcama aksiyonu).
KK
Kazan Kazan
çevrimiçi
💎 Güncel FreeByte bakiyen: {balance} FreeByte
16:11
📲 GB Yükle
🏠 Menü
📐 Mockup (PLANNED)
freebyte_balance_body PLANNED
Trigger
FreeByte İşlemleri menüsünde "💰 Bakiye Sorgula" tıklandı
Kaynak
app API: GET balance — bakiye anlık çekilir. ⚠️ Performans kritik, API optimizasyonu gerekebilir (cache/response süresi).
Değişken
{balance} — kullanıcının güncel FreeByte bakiyesi
Buton 1
menu_button_gb_load → 📲 GB Yükle
Buton 2
menu_button → 🏠 Menü
🔀 Geçişler
📲 GB Yüklegb_load_confirm_body
🏠 Menümenu_body
KK
Kazan Kazan
çevrimiçi
Bakiyeni kontrol ederken geçici bir sorun oluştu. 🙏 Lütfen birkaç dakika sonra tekrar dene.
16:11
🔄 Tekrar Dene
🏠 Menü
📐 Mockup (PLANNED)
freebyte_balance_error_body PLANNED
Trigger
Bakiye API çağrısı başarısız (timeout, 5xx)
🔀 Geçişler
🔄 Tekrar Denefreebyte_balance_body
🏠 Menümenu_body
KK
Kazan Kazan
çevrimiçi
🎟️ FreeByte kodunu yaz, bakiyene ekleyelim 👇 (Örn: ABC123XYZ)
16:12
📐 Mockup (PLANNED)
freebyte_code_prompt_body PLANNED
Trigger
FreeByte İşlemleri menüsünde "🎟️ Kod ile Yükle" tıklandı
Girdi
Kullanıcı serbest metin olarak kodu yazar (buton değil, text input)
🔀 Geçişler
geçersiz/kullanılmışfreebyte_code_invalid_body
📌 Güvenlik: Kod doğrulama atomik claim ile (yarış koşulu yok), kod tekil ve bir kez kullanılır. Promosyon kodu havuzuyla aynı mantık — yeni altyapı gerekmiyor. Kullanıcı başına rate-limit (kod deneme spam'ine karşı).
KK
Kazan Kazan
çevrimiçi
Tebrikler! 🎉 {amount} FreeByte bakiyene eklendi! Güncel bakiyen: {balance} FreeByte
16:13
📲 GB Yükle
🏠 Menü
📐 Mockup (PLANNED)
freebyte_code_success_body PLANNED
Trigger
Geçerli kod girildi → FreeByte yükleme başarılı
Değişken
{amount} — kodun yüklediği FreeByte miktarı · {balance} — yeni güncel bakiye
🔀 Geçişler
📲 GB Yüklegb_load_confirm_body
🏠 Menümenu_body
KK
Kazan Kazan
çevrimiçi
Bu kod geçersiz veya daha önce kullanılmış. 😔 Kodunu kontrol edip tekrar deneyebilirsin.
16:13
🔄 Tekrar Dene
🏠 Menü
📐 Mockup (PLANNED)
freebyte_code_invalid_body PLANNED
Trigger
Girilen kod bulunamadı, süresi dolmuş veya zaten kullanılmış
🔀 Geçişler
🔄 Tekrar Denefreebyte_code_prompt_body
🏠 Menümenu_body
KK
Kazan Kazan
çevrimiçi
Kodu işlerken geçici bir sorun oluştu. 🙏 Lütfen birkaç dakika sonra tekrar dene.
16:13
🔄 Tekrar Dene
🏠 Menü
📐 Mockup (PLANNED)
freebyte_code_error_body PLANNED
Trigger
Kod doğrulama API çağrısı başarısız (timeout, 5xx)
🔀 Geçişler
🔄 Tekrar Denefreebyte_code_prompt_body
🏠 Menümenu_body