Telefon Numarası Algılama & Bildirim Sistemi Analiz Raporu
Sorun: AI sohbet botları müşterilerle konuşurken telefon numarası topluyor ama Telegram'dan bildirim gelmiyor.
Ne Olması Gerekiyor?
Neden Önemli? Müşteri telefon numarası verdiğinde hemen aranması gerekir. Telegram bildirimi olmadan, bu değerli müşteri kayıtları gözden kaçıyor ve satış fırsatları kaybediliyor.
🚨 Şu Anda Ne Oluyor?
Sistem telefon numarasını algılıyor ama Telegram bildirimi gitmiyor. Kullanıcı "telefon numarası toplandı" diyor ama bildirim almıyor.
1. Telefon Algılama Servisi
📁 Modules/AI/app/Services/PhoneNumberDetectionService.php
hasPhoneNumber() - Mesajda telefon var mı kontrolextractPhoneNumbers() - Telefon numaralarını çıkarformatPhoneNumber() - Görsel format (0555 123 4567)2. Telegram Bildirim Servisi
📁 Modules/AI/app/Services/TelegramNotificationService.php
sendPhoneNumberAlert() - Ana bildirim fonksiyonuservices.telegram-bot-api.token & chat_id3. Ana Controller - Tespit & Bildirim Akışı
📁 Modules/AI/app/Http/Controllers/Api/PublicAIController.php
detectPhoneNumberAndLogToTelescope() çağrılıyor1. Config Dosyası:
config/services.php
'telegram-bot-api' => [
'token' => env('TELEGRAM_BOT_TOKEN'),
'chat_id' => env('TELEGRAM_CHAT_ID'),
]
2. .env Dosyası:
TELEGRAM_BOT_TOKEN=8344881512:AAGJQn3Z167ebNx67pwvGuKf1RbzTHazbt0 TELEGRAM_CHAT_ID=-1002943373765
✅ Config doğru tanımlı!
Telegram API Bağlantı Testi:
$ php artisan tinker --execute="... Array ( [success] => 1 [message] => Telegram bağlantısı başarılı! [response] => Array ( [ok] => 1 [result] => Array ( [message_id] => 59 [from] => iXtifBot [chat] => iXtif İletişim Mesajlari ) ) )
✅ Telegram API çalışıyor! Bot mesaj gönderebiliyor.
Ana Sorun: Sistem telefon numarası algılıyor ama Telegram bildirimi gitmiyor.
Kullanıcı "telefon numarası toplandı" diyor ama sistem gerçekten algılamadı olabilir.
Test Adımları:
tail -n 500 storage/logs/laravel.log | grep "Phone number detected"
Kod sadece USER mesajlarında telefon arıyor. AI'ın kendi mesajlarında telefonu görmezden geliyor.
Kod Mantığı:
// PublicAIController.php - Satır 2302-2304
if ($message->role === 'assistant') {
continue; // AI mesajlarını atla
}
// Sadece USER mesajlarında telefon ara
⚠️ Eğer telefon numarası AI'ın cevabında (örnek göstermek için) geçiyorsa algılanmıyor!
Telegram servisi çalıştı ama bir hata oluştu ve try-catch bloğu hatasını yakaladı.
Kod Bloğu:
// Satır 2350-2358
try {
$telegramService = new \Modules\AI\App\Services\TelegramNotificationService();
$telegramService->sendPhoneNumberAlert($conversation, $detectedPhones);
} catch (\Exception $telegramError) {
// Silent fail - Telegram hatası ana akışı bozmasın
\Log::warning('⚠️ Telegram notification failed', [
'error' => $telegramError->getMessage(),
]);
}
⚠️ Hata yakalandı ama sadece log yazıldı! Kullanıcı farketmedi.
tail -n 500 storage/logs/laravel.log | grep "Telegram notification failed"
Log::info() kullanılıyor ama log seviyesi error olarak ayarlanmış olabilir.
grep "LOG_LEVEL" .env # Eğer LOG_LEVEL=error ise info logları yazılmaz!
Telegram Bot API çok fazla istek gönderildiğinde rate limit uygular.
Telegram Limitleri:
# Telefon algılama logları tail -n 1000 storage/logs/laravel.log | grep -E "Phone number detected|Telegram" # Sadece Telegram hataları tail -n 1000 storage/logs/laravel.log | grep "Telegram notification failed" # Log seviyesi kontrolü grep LOG_LEVEL .env
Frontend'den AI chat aç, telefon numarası gönder:
User: "Merhaba, ürün hakkında bilgi alabilir miyim?" AI: "Tabii, size nasıl yardımcı olabilirim?" User: "Telefon numaramı bırakayım: 0555 123 4567" AI: "Teşekkürler, en kısa sürede sizi arayacağız."
⚠️ Telefon numarasını USER mesajında yazın (AI'ın cevabında değil!)
Telegram'da bildirim geldi mi kontrol et.
# AI conversation kayıtlarını kontrol et
php artisan tinker
>>> $conv = \Modules\AI\App\Models\AIConversation::latest()->first();
>>> $conv->messages->pluck('content', 'role');
# Telefon numarası hangi role'de (user/assistant)?
TelegramNotificationService.php içine debug log ekle:
// sendPhoneNumberAlert() - Satır 26'dan sonra ekle
\Log::info('🔔 TELEGRAM DEBUG: Function called', [
'conversation_id' => $conversation->id,
'phones' => $phoneNumbers,
'config_token' => substr($botToken ?? 'EMPTY', 0, 10).'...',
'config_chat_id' => $chatId ?? 'EMPTY',
]);
Bu debug log ile fonksiyona girilip girilmediğini anlarsın.
# Bot info kontrolü curl "https://api.telegram.org/bot8344881512:AAGJQn3Z167ebNx67pwvGuKf1RbzTHazbt0/getMe" # Chat bilgisi curl "https://api.telegram.org/bot8344881512:AAGJQn3Z167ebNx67pwvGuKf1RbzTHazbt0/getChat?chat_id=-1002943373765"
Kodda WhatsApp bildirimi de var (satır 2360-2381).
WhatsApp bildirimi geliyor mu kontrol et. Eğer WhatsApp geliyorsa, sorun sadece Telegram'da demektir.
tail -n 500 storage/logs/laravel.log | grep "WhatsApp"
✅ Çalışan Sistemler
❌ Sorunlu Kısım
⏱️ Toplam süre: ~40 dakika (sorun bulunana kadar)
Dosya Lokasyonları:
Database Tabloları:
Telegram Bot Bilgileri:
Telegram API Docs: