RestoranTakibi paneline sipariş, stok, görev, destek, vergi ve kârlılık verilerini tek pakette özetleyen AI Operasyon Özeti eklendi. İstenirse aynı özet n8n webhook akışına otomatik gönderilebilir.
Restoran sahibi her akşam altı ayrı ekranı tek tek gezmek zorunda kalmamalı: siparişler, kârlılık, stok, görevler, destek talepleri ve vergi. Bu ekranların hepsi ayrı ayrı doğru olabilir ama hiçbiri tek başına "bugün ne oldu, nerede sorun var, neye müdahale etmeliyim" sorusuna cevap vermez.
AI Operasyon Özeti bu boşluğu kapatmak için yazıldı. Aynı verileri tek pakette toplar, kural tabanlı bir operasyon skoru çıkarır, riskleri ve aksiyonları listeler. İsteyen işletme aynı paketi kendi n8n akışına JSON olarak gönderebilir. Özetin dayandığı asistan için AI restoran asistanı sayfasına, anlık bildirim tarafı için AI restoran asistanı güncellemesi yazısına bakabilirsiniz.
Özet tahmin yürütmez; panelde zaten var olan hesap sonuçlarını okur. Bir özet üretildiğinde şu kaynaklar aynı anda sorgulanır:
| Kaynak | Ne getirir |
|---|---|
| Bugünün özeti | Aktif sipariş sayısı ve açık siparişlerin tutarı |
| Rapor istatistikleri | Teslim sipariş, ciro, ortalama sepet, iptal oranı, kanal ve ürün kırılımı |
| Kârlılık | Net kâr, kâr marjı, ürün maliyeti kapsamı, gider kalemleri |
| Vergi tahmini | Vergi rezervi, uyarılar ve güven skoru |
| Stok panosu | Stok değeri, kritik stok, eksi stok, SKT yaklaşan ürün, reçete eksiği |
| Operasyon merkezi | Beklenen tahsilat, kasa vardiyası, yazıcı ve rezervasyon sayısı |
| Aktif siparişler | O an açık olan siparişlerin listesi |
| Görevler | O güne ait personel görevlerinin durum dağılımı |
| Destek talepleri | Açık, acil ve son 24 saatte açılan talepler |
Bu, özetin en önemli özelliği: rapordaki rakam ile özetteki rakam aynı hesaptan gelir. İki ekranda iki farklı ciro görmezsiniz. Raporlama tarafının nasıl hesaplandığını restoran raporlama ve analiz yazısında ayrıntılı anlattık.
Skor bir dil modelinin görüşü değil, açık kurallarla hesaplanan bir sayıdır. Bir taban puandan başlanır; ölçülebilir sorunlar puan düşürür, ölçülebilir iyi işaretler puan ekler ve sonuç 0-100 aralığına sıkıştırılır.
Puan düşüren kalemler: eksi stoktaki ürün sayısı, kritik seviyedeki stok kalemleri, son tüketim tarihi yaklaşan ürünler, reçetesi eksik menü kalemleri, açık ve acil destek talepleri, onay bekleyen veya reddedilmiş görevler, negatif net kâr ve belirli eşiğin üstündeki iptal oranı. Her kalemin katkısı ayrıca üst sınıra bağlıdır; tek bir kalem skoru tek başına sıfırlayamaz.
Puan ekleyen kalemler: dönemde ciro oluşmuş olması, kâr marjının belirli bir eşiğin üstünde olması, ürün maliyeti kapsamının yeterli olması ve vergi tahmininin yeterli güven skoruna ulaşması.
Skora bağlı olarak üç başlıktan biri üretilir: operasyon sağlıklı görünüyor, takip edilmesi gereken noktalar var, ya da hızlı müdahale gerektiren riskler var.
Skorun sınırı da açıktır: veri girildikçe anlamlanır. Reçete girmemiş, alış fiyatı tanımlamamış, gider kaydı tutmamış bir işletmede skor operasyonun gerçek durumunu değil, veri eksikliğini ölçer. Bu yüzden özet ayrıca "maliyet netliğini artır" ve "vergi tahminini netleştir" gibi aksiyonlar üretir.
Özet üç ayrı liste döndürür. Üçünde de başlık ve ayrıntı vardır; sonrasında alanlar ayrışır: risk kalemi bir seviye (kritik ya da uyarı) ve bir öneri taşır, aksiyon kalemi bir öncelik ve bir sorumlu taşır, fırsat kalemi bir sonraki adım taşır.
Riskler iki seviyede işaretlenir. Kritik seviye eksi stok ve negatif net kâr gibi doğrudan para kaybettiren durumlar için ayrılmıştır; uyarı seviyesi kritik stok, SKT yaklaşan ürün, reçete eksiği ve yüksek iptal oranı gibi kalemler içindir. Açık destek talepleri de listeye girer; acil öncelikli talep varsa kritik seviyeye çıkar.
Aksiyonlar hem bir öncelik hem de bir sorumlu ile gelir: onay bekleyen görevler müdüre, maliyet netliğini artırma işletme sahibine, vergi tahminini netleştirme muhasebeye yazılır.
Fırsatlar yalnız somut bir sinyal varsa üretilir: kâr marjı belirli eşiğin üstündeyse, o an aktif sipariş varsa ya da hedef stoklara tamamlamak için hesaplanmış bir satınalma önerisi tutarı varsa. Boş bir "büyümeye devam edin" cümlesi üretilmez.
Metin listelerin altında yaklaşık yirmi beş alanlık düz bir metrik nesnesi durur. Bu nesne hem panelde gösterilir hem de n8n'e giden pakette yer alır. İçinde teslim sipariş sayısı, toplam sipariş, aktif sipariş, ciro, aktif sipariş potansiyeli, ortalama sepet, iptal sayısı ve oranı, net kâr, kâr marjı, ürün maliyeti kapsamı, vergi rezervi, vergi güven skoru, stok değeri, kritik ve eksi stok sayıları, SKT yaklaşan ürün sayısı, eksik reçete sayısı, bekleyen stok düşümü sayısı, görev durum sayıları, açık ve acil destek sayıları ile tanımlı yazıcı sayısı bulunur.
Bu düzlük bilinçli. İç içe geçmiş bir yapı yerine tek seviyeli alanlar, n8n tarafında kural yazmayı ("net kâr negatifse şu adımı çalıştır") tek satıra indirir.
Özet ekranda gösterilip kaybolmaz; veritabanına yazılır. Bu sayede geçmiş özetler listelenebilir ve tek tek açılabilir. Kayıtta tarih aralığı, özet tipi (elle üretilmiş mi zamanlanmış mı), skor, başlık, tüm gövde ve kim tarafından üretildiği bulunur.
Ayrıca her üretim ve her gönderim denetim kaydına düşer: özet üretildi, özet n8n'e gönderildi, AI ayarları değiştirildi. İşletmede birden fazla yetkili varsa kimin ne zaman ne yaptığı sonradan görülebilir.
Özetin çalışması için işletmenin panelden AI veri erişimini açması gerekir. İzin kapalıysa özet üretme isteği reddedilir ve AI hiçbir veriyi okumaz. Bu bir arayüz süsü değil, sunucu tarafında zorlanan bir kapıdır.
İzin açılıp kapatıldığında kimin değiştirdiği ve varsa açıklama notu kaydedilir. Demo hesaplarda AI kullanımı tamamen kapalıdır. Personel hesapları için ayrıca AI kullanma yetkisi aranır; yetkisi olmayan personel bu uçlara hiç erişemez. AI koç tarafında ise günlük soru limiti plana göre değişir ve dakika/saat bazında hız sınırı uygulanır. Verinin nasıl ayrıldığı ve kimin neyi görebildiği konusunda güvenlik ve veri ayrımı sayfası ayrıntılı.
Panelde bir n8n webhook adresi tanımlandığında aynı özet JSON olarak o adrese gönderilebilir. Gönderim iki şekilde tetiklenir: özet üretilirken elle, ya da günlük zamanlayıcı ile otomatik.
Paket şu alanları taşır:
| Alan | İçerik |
|---|---|
| `event` | Sabit olay adı — akışta filtrelemek için |
| `generated_at` | Üretim zaman damgası |
| `restaurant` | İşletme kimliği, adı ve işletme tipi |
| `range` | Tarih aralığı ve saat dilimi |
| `score` / `headline` | Operasyon skoru ve başlık |
| `executive_summary` | Birkaç cümlelik yönetici özeti |
| `risks` / `opportunities` / `actions` | Üç liste; risk kalemi seviye + başlık + ayrıntı + öneri, aksiyon kalemi öncelik + başlık + ayrıntı + sorumlu, fırsat kalemi başlık + ayrıntı + sonraki adım taşır |
| `metrics` | Düz metrik nesnesi |
| `suggested_prompt` | Paketi rapora çevirmek isteyen bir dil modeli için hazır yönerge |
Son alan pratik bir kolaylık: n8n içinde bir AI adımı kullanacaksanız yazacağınız yönergeyi sıfırdan kurmanız gerekmez, pakette hazır gelir.
n8n'de akış bir Webhook düğümüyle başlar; paket oraya düşer. Sonrasında akışın ne yapacağı tamamen işletmenin kendi tercihidir: paketi bir dil modeline verip günlük rapora çevirmek, e-posta ile göndermek, mesajlaşma kanalına düşürmek, belirli bir eşiği aşan riskte ayrı bir uyarı üretmek ya da başka bir sisteme kayıt açmak. Bu adımların hepsi n8n'in kendi düğümleriyle kurulur; RestoranTakibi tarafında yapılan tek şey paketi doğru biçimde ve doğru zamanda göndermektir.
Ayarlarda otomatik gönderim açılıp bir saat belirlenirse zamanlayıcı o saatte çalışır. Saat karşılaştırması işletmenin saat dilimine göre yapılır. Aynı gün için aynı tipte ikinci bir gönderim yapılmaz — sunucu yeniden başlasa ya da zamanlayıcı iki kez tetiklense bile aynı özet iki kere gitmez.
Gönderim sonucu kayda geçer: başarılı mı, HTTP durum kodu ne, karşı taraf ne döndü. Gönderim başarısızsa panelde uyarı bildirimi oluşur, böylece n8n akışınızın sessizce bozulduğunu haftalar sonra fark etmezsiniz.
Bu bölüm ürünün en dürüst anlatılması gereken kısmı. Webhook özelliği ilk yazıldığında yalnızca adresin protokolüne bakılıyordu. Sunucu, kullanıcının verdiği herhangi bir adrese istek atıyor ve yanıt gövdesini çağırana geri veriyordu. Bu bir SSRF açığıdır ve canlı ortamda ölçüldü: yönlendirme davranışı kullanılarak bulut sağlayıcının iç meta veri servisine ulaşılabiliyor, geçici erişim anahtarları dışarı çıkarılabiliyordu. Yani sunucunun ele geçmesi anlamına geliyordu.
Açık kapatıldı ve yerine üç katmanlı bir koruma kondu:
Buna ek olarak istek zaman aşımına bağlıdır ve webhook adresi veritabanında şifreli tutulur.
Özet, verisi olan işletmede işe yarar. Şunlar girilmişse çıktı gerçekten karar verdirir: menü reçeteleri, malzeme alış fiyatları, gider kayıtları, stok sayımları, personel görevleri. Bunlar yoksa özet dürüstçe "veri eksik" der ve düzeltilecek yerleri gösterir — ama operasyon hakkında derin bir yorum yapamaz.
Stok ve reçete tarafını kurmak için stok takip ve reçeteyle otomatik düşüm yazısı, görev akışı için görev takibi modülü yazısı, panelin bütünü için restoran kontrol paneli sayfası yol gösterir.
Bir sınırı daha açıkça yazmak gerekir: AI operasyon özeti danışman modunda çalışır. Veriyi okur, riskleri ve aksiyonları listeler; kendiliğinden fiyat değiştirmez, sipariş iptal etmez, stok düzeltmez. Kararı işletme verir.
Özetin kendisi kural tabanlı hesaplanır; skor, riskler, fırsatlar ve aksiyonlar panelin kendi hesaplarından türetilir. Veri dışarı yalnızca siz bir n8n webhook adresi tanımlar ve gönderimi açarsanız çıkar. AI veri erişimi izni kapalıysa hiçbir veri okunmaz.
Bir taban puandan başlanır; eksi stok, kritik stok, SKT yaklaşan ürün, eksik reçete, açık ve acil destek talepleri, bekleyen görevler, negatif net kâr ve yüksek iptal oranı puan düşürür. Ciro oluşması, iyi kâr marjı, yeterli ürün maliyeti kapsamı ve yeterli vergi güven skoru puan ekler. Sonuç 0-100 aralığına sıkıştırılır.
Skor girdiğiniz veriyi ölçer. Reçete, alış fiyatı, gider kaydı ve stok sayımı girilmemişse ürün maliyeti kapsamı düşük, vergi güven skoru zayıf çıkar ve bunlar puanı aşağı çeker. Özet bu durumda operasyonu değil veri eksikliğini raporlar ve tamamlanacak yerleri aksiyon olarak listeler.
Evet. Webhook tamamen isteğe bağlıdır. Özeti panelden üretip ekranda okuyabilir, geçmiş özetleri listeleyip tek tek açabilirsiniz. n8n yalnız aynı paketi kendi otomasyon akışınıza taşımak isterseniz gerekir.
Olay adı, üretim zamanı, işletme kimliği ve adı, tarih aralığı, skor, başlık, yönetici özeti, risk/fırsat/aksiyon listeleri ve yaklaşık yirmi beş alanlık düz bir metrik nesnesi. Pakette ayrıca, bir dil modeline verilecek hazır bir yönerge metni de bulunur.
Hayır. Zamanlayıcı, o gün için aynı tipte bir gönderim yapılmışsa ikincisini üretmez. Sunucu yeniden başlasa ya da zamanlayıcı iki kez tetiklense bile aynı gün aynı özet tekrar gitmez.
Yalnız https kabul edilir, standart dışı port ve adres içine gömülü kullanıcı adı/şifre reddedilir. Gönderim anında alan adı çözülür ve çözülen tüm adreslerin dış ağda olması aranır; loopback, özel ağ blokları, bulut meta veri adresleri ve IPv6 yerel blokları reddedilir. Yönlendirme takip edilmez.
Yanıtın durum kodu ve gövdesi kayda yazılır, panelden gönderimin başarılı olup olmadığını görürsünüz. Yanıt gövdesi API cevabıyla doğrudan geri verilmez; verilseydi bu uç, sunucu üzerinden keyfi adres okuma aracına dönüşürdü.
Evet. Başarısız gönderimde panelde uyarı bildirimi oluşur ve sonuç kayda geçer. Böylece n8n akışınızın sessizce bozulduğunu haftalar sonra fark etmezsiniz.
Hayır. AI danışman modunda çalışır: veriyi okur, riskleri ve aksiyonları listeler. Fiyat değiştirmez, sipariş iptal etmez, stok düzeltmez. Kararı ve uygulamayı işletme yapar.
Evet. Her özet tarih aralığı, tipi, skoru, başlığı, tam gövdesi ve kim tarafından üretildiği bilgisiyle kaydedilir; geçmiş listelenip tek tek açılabilir. Ayrıca üretim, gönderim ve ayar değişiklikleri denetim kaydına düşer.