Yapay Zeka ile Kurye Atama Nasıl Yapılır?

Cuma Akşamı, Saat 19:30, Bafra

Geçen yaz bir müşterimiz — Bafra'da kebap ve pide teslimatı yapan bir restoran — bizi aradı. Cuma akşamı, 8 kurye sahada, 14 sipariş havuzda bekliyor. Mutfaktan yemekler çıkıyor ama kim nereye gidecek, kimse bilmiyor. Operatör telefonda kuryeyle konuşuyor, diğer telefon çalıyor, bir yandan da haritaya bakıp "en yakın kim" diye tahmin yürütüyor.

Sonuç: 3 sipariş 50 dakikayı geçti. Müşterilerden biri Google'a 1 yıldız bıraktı. Kuryelerden ikisi aynı mahalleye gönderilmişti — biri boşuna yol yedi. Tanıdık bir tablo mu?

Biz de oradan başladık.

Manuel Atama Neden Çöker?

3-4 kurye, günde 20 sipariş — elle yönetirsiniz. Zor değil. Ama kurye sayısı 7-8'e, sipariş sayısı 60'a çıktığında insan beyni yetersiz kalıyor. Bunu söylemek ayıp değil; gerçekten yetersiz. Operatörün kafasında tutması gereken değişken sayısı düşünün: her kuryenin anlık konumu, üzerindeki aktif teslimat sayısı, trafiğin o saatteki durumu, restorana uzaklığı, müşteri adresinin hangi semtte olduğu...

Peki ya 8 kurye sahada olunca ne oluyor? Operatör genelde iki kişiyi tanır, güvenir, hep onlara verir. Diğerleri boşta kalır, şikayet eder. Adalet bozulur. Motivasyon düşer. Biri istifa eder. Klasik döngü.

Manuel atamadaki asıl sorun hız değil — görünmezlik. Operatör, kuryenin 5 dakika önce nerede olduğunu bilir ama şu an nerede olduğunu bilemez. Google Maps'i açıp tek tek bakmaya kalktığında 3 dakika geçer. O 3 dakikada yeni sipariş gelir. Kısır döngü.

Algoritmayı Sahaya Nasıl Taşıdık

Sistemimizin arkasında bir Python AI motoru çalışıyor. Havuza düşen her yeni sipariş için motor tetikleniyor ve birkaç saniye içinde o anki en uygun kuryeyi belirliyor. Basit gibi görünür ama "en uygun" kelimesinin arkasında ciddi hesaplama var.

Konum Verisi: Her Şeyin Temeli

Kurye mobil uygulaması birkaç saniyede bir GPS konumunu sunucuya gönderiyor. Enlem, boylam, zaman damgası. Sistem her kuryenin anlık konumunu biliyor — tahmin değil, ölçüm. GPS sinyali zayıf olan bölgelerde (bodrum kat, dar sokak, kırsal alan) konum gecikmesi yaşanabiliyor, bunu biliyoruz. Mükemmel değil. Ama operatörün "galiba Cumhuriyet Mahallesi civarındaydı" demesinden çok daha güvenilir.

Gerçek Yol Mesafesi

Kuş uçuşu 2 km olan bir mesafe, tek yönlü yollar ve köprüler yüzünden arabayla 6 km olabilir. Bafra'da bunu yaşadık — nehir kenarındaki mahalleler kuş uçuşu yakın ama köprüye dolanınca süre ikiye katlanıyor. Google Maps Distance Matrix API ile kurye-restoran arasındaki gerçek sürüş mesafesini ve tahmini süreyi hesaplıyoruz. Trafik dahil.

Puanlama: Mesafenin Ötesinde

AI motoru sadece "en yakın kurye" demiyor. Her uygun kuryeye bir skor atıyor:

Teslimata çıkmış, yani müşteriye giden kuryeye asla yeni sipariş atanmıyor. Elindeki teslimatı bitirsin, sonra değerlendirilsin. Yoksa hem mevcut müşteri bekler hem yenisi.

Adres Problemi: Kimsenin Konuşmadığı Dert

"Kızılırmak Mahallesi" yazıyor sipariş adresinde. Güzel. Ama Kızılırmak Mahallesi hem Bafra'da var hem Ankara Çankaya'da. Geocoding servisi (adresi koordinata çevirme) şehir bilgisi olmadan bu adresi Ankara'ya düşürdü. Kurye 600 km öteye atanmış gibi göründü.

Çözümümüz: Restoran hangi kurye firmasına bağlıysa, o firmanın kayıtlı şehir ve ilçe bilgisini adresin önüne ekliyoruz. "Kızılırmak Mahallesi" yerine "Samsun Bafra Kızılırmak Mahallesi" olarak Google Maps'e soruyoruz. Üstüne 50 km mesafe kontrolü var — sonuç firmanın bölgesinden çok uzaksa reddediliyor. Hardcode yok; yarın İstanbul'da yeni bir bayi açılsa aynı mantık orada da çalışır.

Gerçek vaka: Geocoding düzeltmesinden önce "Cumhuriyet Mahallesi" adresi 746 km uzaklığa düşüyordu (farklı bir şehirdeki Cumhuriyet Mahallesi). Düzeltmeden sonra 0.5 km. Aradaki fark, bir kuryenin yanlış atanması ya da hiç atanmaması demek.

AI Sihir Değil

Bunu açıkça söyleyelim: tüm kuryeler 15 km uzaktaysa, algoritma o teslimatı 5 dakikada yaptıramaz. Fizik kuralları geçerli. Sistem en iyi seçeneği buluyor ama bazen en iyi seçenek de "kötünün iyisi" oluyor. Restoran sahibinin bunu bilmesi lazım.

Ayrıca bazı kenar durumlar hala elle müdahale gerektiriyor. Kuryenin telefonu kapanmış, son konum 2 saat öncesine ait — sistem bu kuryeyi 24 saatlik zaman aşımına kadar "aktif" sayıyor ama operatör bilir ki adam molada. Birkaç müşterimiz bu yüzden "hazır olduğunda elle aktifleme" tercih ediyor. Yapay zeka kurye atama her senaryonun cevabı değil; ama %90'ının cevabı.

Rakamlar Ne Diyor?

Akıllı atama sadece kurye tarafını değil, toplam teslimat süresini kısaltmanın en etkili adımlarından biri. Sistemimizi kullanan restoranlardan gördüğümüz tablo:

Kesin söyleyebileceğimiz bir şey var: akıllı eşleşme sistemi, insanın yapabileceğinden daha tutarlı karar veriyor. İyi günde de kötü günde de aynı mantıkla çalışıyor. Yorulmuyor, arada sırada tanıdığına torpil geçmiyor.

Peki Kurye Reddederse?

Kurye, telefonuna gelen bildirimi kabul etmek zorunda değil. Reddederse ya da belirli süre içinde yanıt vermezse sipariş havuza geri düşüyor ve motor yeniden çalışıyor — bu sefer bir sonraki en uygun kuryeye gidiyor. Sistem aynı kuryeye 10 dakika içinde tekrar bildirim göndermeyerek spam'i engelliyor. Sonuçta kurye gönüllü kabul etmeli; zorla atanmış siparişin kaliteli teslim edilme ihtimali düşük.

Bu İşe Nasıl Başlanır?

Birkaç şey gerekiyor:

  1. Kuryelerinizin elinde akıllı telefon olmalı ve konum paylaşan bir uygulama kullanmalılar. GPS verisi yoksa algoritma kördür
  2. Siparişleriniz tek bir havuzda toplanmalı — ister elle girilen, ister Getir'den gelen, ister Trendyol'dan. Karışık kaynak, tek havuz
  3. Restoran ve müşteri adresleri doğru olmalı — geocoding ne kadar isabetli olursa atama o kadar isabetli olur

Bunların hepsini biz RestoKurye olarak entegre sunuyoruz. Restoran panelinden sipariş oluşturuyorsunuz, AI motoru kuryeyi buluyor, kurye uygulamasından bildirim alıp kabul ediyor, siz haritadan takip ediyorsunuz. Getir ve Trendyol entegrasyonları zaten webhook ile otomatik akıyor. Doğru yazılımı seçmek kritik — kurye yazılımı seçerken dikkat etmeniz gereken 15 özelliği ayrı bir rehberde ele aldık.

Gelecekte Ne Değişecek?

Şu an her sipariş için ayrı ayrı en uygun kuryeyi arıyoruz. Gelecek adım, aynı anda havuzda bekleyen 5 siparişi topluca değerlendirip kuryelere en verimli şekilde dağıtan bir rota optimizasyonu (VRP — Vehicle Routing Problem) katmanı. Bir kurye Cumhuriyet'e giderken yolüstündeki Gazipaşa siparişini de alabilir, ama bugünkü sistem bunu henüz otomatik yapmıyor.

Yapay zeka kurye atama alanında geliştirecek çok şey var. Ama bugünkü haliyle bile, bir Cuma akşamı 14 siparişin havuzda beklediği o kaotik tabloyu ortadan kaldırıyor. Bafra'daki o müşterimiz artık Cuma akşamları operatör yerine mutfağa odaklanıyor.

Sizin operasyonunuzda en çok canınızı yakan ne? Kurye ataması mı, teslimat takibi mi, yoksa entegrasyon karmaşası mı? Merak ediyoruz — bize yazın, konuşalım.

Sıkça Sorulan Sorular

Küçük restoran için de işe yarar mı? 3-4 kuryem var sadece.

Evet, hatta küçük kadrolarda daha hızlı fark yaratır — çünkü operatöre gerek kalmıyor.

Google Maps API çok pahalı değil mi?

Google ayda 200 dolarlık ücretsiz kredi veriyor. Orta ölçekli bir restoran operasyonu (günde 50-80 sipariş) için bu genelde yetiyor. Üstüne biz sık kullanılan güzergahları önbelleğe alıyoruz — aynı restoran-mahalle çifti için tekrar tekrar API çağrısı yapmıyoruz. Gerçek maliyetimiz düşündüğünüzden çok daha düşük.

İnternet kesilirse siparişler kaybolur mu?

Hayır. Siparişler havuzda bekler, bağlantı geldiğinde atama devam eder.

Kurye istemediği siparişi kabul etmek zorunda mı?

Zorunda değil. Kabul etmezse ya da belirli sürede yanıt vermezse sipariş otomatik olarak sıradaki en uygun kuryeye yönlendiriliyor. Hiçbir kurye kabul etmezse sipariş havuza geri düşüyor ve motor birkaç dakika sonra tekrar deniyor. Zorla atama yapmıyoruz — isteksiz kuryenin teslim kalitesi düşük olur, bu da müşteri kaybettirir. Gönüllü kabul, herkes için daha iyi sonuç veriyor.

50 Ücretsiz Jeton ile Başlayın

Kurye yönetiminizi yapay zeka ile optimize edin. Kurulum ücretsiz, kredi kartı gerekmez.

Ücretsiz Demo İste