Download OpenAPI specification:
KeysAi servis talebi (case) triage, sınıflandırma ve öğrenme API'si.
Mail veya web formdan gelen talebi KeysAi'ye gönderir.
İşlem Adımları:
Dosya Gönderme:
| message_id required | string Dış sistemdeki mail veya ticket id (unique) |
| tenant_id required | string Organizasyon / müşteri tenant id |
| channel required | string Enum: "Email" "Web" "Phone" "Chat" Talebin geldiği kanal |
| subject required | string Mail subject veya kısa başlık |
| body required | string Talebin detay açıklaması (plain text veya HTML) |
| language_hint | string Enum: "tr" "en" Opsiyonel dil ipucu (ör. "tr", "en"). Boş bırakılırsa sistem tahmin eder. |
object İletişime geçen kişi bilgisi | |
object Opsiyonel müşteri bilgisi. Dynamics'te lookup için ipucu olarak kullanılabilir. | |
object Ön-doldurulmuş case alanları (opsiyonel). Eğer buradan gönderilirse, AI bu alanları değiştirmez, sadece doğrular. | |
Array of objects Dosyalar URL ile gönderilecekse kullanılır. Sistem gerekirse buradan indirip OpenAI'ye yükler. | |
object Yanıt içeriğini kontrol etmek için opsiyonel parametreler. Bu alanlar agentic response bölümlerini açıp kapatabilir (performans optimizasyonu için). |
{- "message_id": "<unique-id@example.com>",
- "tenant_id": "parge-soft",
- "channel": "Email",
- "subject": "NAV e-Fatura hatası",
- "body": "GİB'e gönderirken UBL validation hatası alıyoruz",
- "contact": {
- "name": "Ahmet Yılmaz",
- "email": "ahmet@example.com"
}
}{- "case_id": "CAS-125731",
- "tenant_id": "parge-soft",
- "vector_record_id": "vec_8df8b6b4-12ab-34cd-56ef-1234567890ab",
- "keysai_result": {
- "case": {
- "case_title": "NAV e-Fatura UBL Validation Hatası",
- "subject": "NAV_EFATURA",
- "product_family": "D365_BUSINESSCENTRAL_NAV",
- "product_version_guess": "NAV 2018",
- "case_type": "ERROR",
- "priority": "HIGH",
- "status": "ACTIVE",
- "status_reason": "NEW",
- "origin": "EMAIL",
- "birim": "DANISMANLIK",
- "firma_durumu": "MUSTERI",
- "faturalama_bilgisi": "TIME_MATERIAL",
- "project": "SUMIKA-NAV-UPGRADE",
- "project_step": "GOLIVE",
- "customer_name": "Sumika Polymer Compounds Europe",
- "contact_name": "Ahmet Yılmaz",
- "language": "tr",
- "internal_summary": "Müşteri NAV e-fatura modülünde UBL validation hatası alıyor. GİB'e gönderim başarısız.",
- "customer_summary": "e-Fatura gönderim hatası - UBL doğrulama sorunu",
- "missing_info_questions": [
- "Hangi NAV versiyonu kullanılıyor?",
- "Hata mesajının tam metni nedir?",
- "Test mi yoksa canlı ortamda mı?"
], - "expected_sla_hours": 24,
- "tags": [
- "e-fatura",
- "ubl",
- "gib",
- "validation-error"
]
}, - "consultant_guidance": {
- "problem_analysis": {
- "what_customer_sees": "E-faturalar GİB'e gönderilemiyor",
- "actual_root_cause": "UBL schema version 2.0 kullanılıyor, GİB 2.1 bekliyor",
- "why_this_happens": "GİB 01.01.2025'ten itibaren UBL 2.1 zorunlu kıldı, eski sistemler güncellenmedi",
- "affected_components": [
- "NAV e-Fatura Modülü",
- "GİB Entegrasyonu",
- "UBL Generator"
]
}, - "step_by_step_solution": {
- "prerequisites": [
- {
- "check": "Test ortamı mevcut mu?",
- "how_to_verify": "NAV Company List'te TEST şirketi görünüyor mu kontrol et",
- "if_missing": "Production backup'ından test restore et veya DBA'den yardım iste"
}
], - "diagnostic_steps": [
- {
- "step_number": 1,
- "title": "GİB Portal Hatası Kontrol",
- "nav_path": "Departments > Finance > Setup > e-Invoice Setup",
- "action": "UBL Version alanına bak",
- "what_to_look_for": "Current value (2.0 veya 2.1)",
- "expected_result": "2.0 görürseniz problem burası",
- "if_fails": "Setup sayfası açılmıyorsa yetki sorunu olabilir, permissions kontrol et",
- "screenshot_location": "KB-NAV-EF-001, Section 3.2"
}
], - "resolution_steps": [
- {
- "step_number": 1,
- "action": "UBL Version güncelle",
- "nav_path": "Departments > Finance > Setup > e-Invoice Setup",
- "exact_field_values": {
- "UBL Version": "2.1",
- "GIB Environment": "PRODUCTION",
- "Enable Validation": "Yes"
}, - "code_snippet": "IF \"UBL Version\" <> '2.1' THEN\n ERROR('Please update UBL Version to 2.1');\n",
- "sql_query": "SELECT TOP 100 * FROM [e-Document Header] WHERE Status = 'ERROR'",
- "warning": "⚠️ ÖNCE TEST ORTAMINDA DENEYIN! Production'da direkt değişiklik RİSKLİ.",
- "why_this_works": "GİB artık sadece UBL 2.1'i kabul ediyor. 2.0 ile gönderilen faturalar otomatik reddediliyor."
}
], - "verification": {
- "test_scenario": "Gerçek bir satış faturası oluşturun ve GİB'e gönderin",
- "how_to_test": "1. Yeni satış faturası oluştur\n2. Post et\n3. e-Invoice menüsünden 'Send to GIB' tıkla\n4. GİB portalında kontrol et\n",
- "success_criteria": [
- "Fatura GİB portalında 'APPROVED' statusünde görünüyor",
- "NAV'da 'e-Invoice Sent' field = Yes",
- "Müşteri e-posta ile faturayı aldı"
]
}
}, - "educational_content": {
- "key_concepts": [
- {
- "concept": "UBL Schema Version",
- "simple_explanation": "E-fatura XML dosyasının format versiyonu",
- "technical_explanation": "Universal Business Language (UBL) standardının versiyonlu XML şeması. GİB tarafından zorunlu kılınan format.",
- "analogy": "Evinizdeki elektrik prizi standardı gibi: Eski tip (2.0) prize yeni tip (2.1) fiş takamazsınız.",
- "why_it_matters": "Yanlış versiyon = GİB otomatik red. Yasal süreç durur."
}
], - "how_nav_works_here": "NAV e-fatura gönderirken:\n1. Satış faturasından XML oluşturur (UBL standardında)\n2. Sertifika ile imzalar\n3. GİB web servisine POST eder\n4. GİB response'u kaydeder\nUBL version field bu XML'in hangi şemada oluşturulacağını belirler.\n",
- "common_misconceptions": [
- {
- "wrong_belief": "UBL version otomatik güncellenir",
- "why_wrong": "NAV kendi başına schema'yı değiştirmez",
- "correct_understanding": "Her schema değişikliğinde manuel setup güncellemesi gerekir"
}
]
}, - "decision_tree": {
- "first_question": "Fatura GİB'e ulaşıyor mu?",
- "if_yes": "GİB portalında hata kodu nedir?",
- "if_no": "NAV log'larında connection hatası var mı?",
- "next_steps_map": {
- "gib_validation_error": "UBL schema version kontrol et (diagnostic_step 2)",
- "connection_timeout": "Network ayarları ve firewall kontrol et",
- "certificate_error": "Certificate expiration date kontrol et",
- "unknown_error": "ESCALATE to senior consultant"
}
}, - "warnings": [
- {
- "severity": "CRITICAL",
- "warning": "Production ortamında direkt değişiklik yapmayın",
- "when_this_applies": "UBL schema veya GİB certificate güncellemesi",
- "how_to_mitigate": "1. Test ortamında deneyin\n2. Bir test faturası gönderin\n3. Başarılı olduktan sonra production'a alın\n4. İlk production faturasını test müşterisine gönderin\n"
}
], - "alternative_solutions": [
- {
- "approach_name": "3. parti e-Fatura servisi kullan (ör. Foriba, Uyumsoft)",
- "description": "Entegratör firma ile çalışarak NAV'dan bağımsız e-fatura yönetimi",
- "pros": [
- "Otomatik GİB güncellemeleri",
- "7/24 teknik destek",
- "Çoklu şirket yönetimi kolay"
], - "cons": [
- "Aylık €500-1000 maliyet",
- "Vendor bağımlılığı",
- "NAV entegrasyonu ekstra iş"
], - "when_to_use": "İç IT kaynağı yetersizse veya çok şirketli yapı varsa",
- "estimated_time": "2-3 gün (entegrasyon)"
}
]
}, - "customer_response": {
- "draft_email": {
- "subject_line": "Re: GİB e-Fatura Gönderim Hatası - Çözüm Önerisi",
- "greeting": "Sayın Ahmet Bey,",
- "body": "Konuyu inceledik. NAV sisteminizde kullanılan e-Fatura UBL schema versiyonu (2.0) güncel değil. GİB 01.01.2025 tarihinden itibaren sadece UBL 2.1 versiyonunu kabul ediyor.\n\n**Hızlı Çözüm (30 dakika):**\n1. NAV > Finance > Setup > e-Invoice Setup ekranını açın\n2. UBL Version alanını 2.1 olarak güncelleyin\n3. Test ortamında bir fatura gönderip doğrulayın\n4. Sorun çözülürse production'a uygulayın\n\n**Kalıcı Önlem:**\nGelecekte bu tür sorunlarla karşılaşmamak için GİB schema değişikliklerini otomatik kontrol eden bir mekanizma kurmanızı öneriyoruz.\n",
- "action_items": [
- "1. Test ortamında UBL version 2.1 güncellemesi",
- "2. Test faturası gönderimi ve doğrulama",
- "3. Production'a uygulama"
], - "next_steps": "Bu adımları tamamladıktan sonra sonuçları bizimle paylaşır mısınız? Herhangi bir sorunla karşılaşırsanız hemen bize ulaşın.",
- "attachments_to_include": [
- "KB-NAV-EF-001.pdf (UBL Migration Guide)",
- "GIB-Schema-2.1-Changelog.pdf"
]
}, - "customer_friendly_explanation": {
- "what_happened": "E-fatura sisteminiz eski bir format kullanıyor, GİB yeni formatı istiyor",
- "why_it_happened": "GİB, Avrupa standartlarına uyum için format gereksinimlerini güncelledi",
- "what_we_will_do": "NAV'daki e-fatura ayarlarını güncelleyeceğiz ve test edeceğiz",
- "how_long_it_takes": "Test dahil 30-45 dakika",
- "how_to_prevent": "GİB duyurularını takip edin, büyük değişiklikler için bizi bilgilendirin"
}, - "follow_up_questions": [
- {
- "question": "Test ortamınız var mı ve production ile senkron mu?",
- "why_ask": "Önce test'te denemek için gerekli",
- "how_to_phrase": "Bu değişikliği önce test ortamında denemek istiyoruz. Güncel bir test environment'ınız mevcut mu?"
}
]
}, - "knowledge_base": {
- "similar_resolved_cases": [
- {
- "case_id": "CAS-123456",
- "similarity_score": 0.95,
- "what_was_done": "UBL schema 2.1'e güncellendi, test ortamında doğrulandı",
- "outcome": "Başarılı - Faturalar GİB'e gönderilmeye başladı",
- "time_to_resolve": "2 hours",
- "key_learning": "Test ortamı kullanımı kritik, production'da direkt değişiklik riskli"
}
], - "kb_articles": [
- {
- "article_id": "KB-NAV-EF-001",
- "title": "NAV e-Fatura GİB Entegrasyonu Kılavuzu",
- "relevance_score": 0.98,
- "key_sections": [
- "UBL Configuration",
- "GİB Connection Setup",
- "Troubleshooting"
],
}
], - "microsoft_docs": [
- {
- "title": "Business Central e-Document Management",
- "relevance": "UBL formatting and e-invoicing procedures"
}
], - "community_solutions": [
- {
- "source": "mibuso.com",
- "solution_summary": "UBL 2.1 migration steps for NAV 2018",
}
]
}, - "escalation_guide": {
- "should_escalate": false,
- "escalation_reason": "Custom code değişikliği gerekiyor, codeunit modification",
- "escalate_to": "DEVELOPER",
- "what_to_handoff": [
- "NAV event log (son 24 saat)",
- "GİB portal error screenshots",
- "Current e-Invoice Setup export",
- "Customer NAV version (Help > About)"
], - "timeline_expectation": "Developer 4 saat içinde cevap vermeli"
}, - "meta": {
- "vector_record_hint": "vec_previous-case-id",
- "confidence_scores": {
- "subject": 0.95,
- "case_type": 0.88,
- "priority": 0.82,
- "product_family": 0.98
}, - "tools_used": [
- "vector_search",
- "subject_mapping",
- "product_family_detection"
], - "processing_time_ms": 2345.67
}
}
}Case Dynamics'te kapandığında final alanlar ve gerçek çözümü KeysAi'ye gönderir.
Amaç:
| caseId required | string Example: CAS-125731 Dynamics case id |
| tenant_id required | string |
| vector_record_id required | string İlk triage sırasında oluşturulan vector store id |
required | object Dynamics'teki final case alanları |
| resolution_text | string Gerçek çözüm açıklaması |
| final_customer_reply | string Müşteriye gerçekten gönderilen son mail |
object or null |
{- "tenant_id": "parge-soft",
- "vector_record_id": "vec_8df8b6b4-12ab-34cd-56ef-1234567890ab",
- "final_case_fields": {
- "subject": "NAV_EFATURA",
- "product_family": "D365_BUSINESSCENTRAL_NAV",
- "case_type": "ERROR",
- "priority": "HIGH",
- "status": "RESOLVED",
- "status_reason": "PROBLEM_SOLVED",
- "closed_at": "2025-12-04T10:30:00Z",
- "solution_time_days": 2.5,
- "sla_breached": false
}, - "resolution_text": "GİB UBL schema 2.1'e güncellendi",
- "final_customer_reply": "Sorun çözüldü",
- "metrics": {
- "customer_satisfaction_score": 5,
- "reopen_count": 0
}
}{- "case_id": "CAS-125731",
- "vector_record_id": "vec_8df8b6b4-12ab-34cd-56ef-1234567890ab",
- "status": "updated",
- "message": "CASE_SNAPSHOT updated with final resolution. System learned from this case.",
- "accuracy_metrics": {
- "subject_match": true,
- "priority_match": true,
- "case_type_match": false,
- "overall_accuracy": 0.85
}
}Dosya KeysAi'ye yüklenir, OpenAI file servisine forward edilir ve openai_file_id döner.
Desteklenen Formatlar:
| tenant_id required | string |
| file required | string <binary> Upload edilecek dosya |
{- "file_id": "local-file-id-123",
- "openai_file_id": "file-abc123xyz",
- "file_name": "error-log.txt",
- "content_type": "text/plain",
- "size": 10240,
- "tenant_id": "parge-soft",
- "created_at": "2025-12-04T10:30:00Z"
}Priority, case_type, origin gibi çekirdek setler veya product-family'ye göre subject listesi döner.
Kullanılabilir Setler:
Temel Setler:
priority - Case öncelik seviyeleri (HIGH, NORMAL, LOW)status - Ana durum seviyeleri (ACTIVE, RESOLVED, CANCELLED)status_reason - Detaylı durum açıklamaları (NEW, ON_PROCESS, PROBLEM_SOLVED, vb.)case_type - Case türleri (QUESTION, REQUEST, ERROR, PROJECT_STEP)origin - Talep kanalı (EMAIL, PHONE, WEB, TEAMS, API)Organizasyon & Müşteri:
birim - Organizasyonel birim (YAZILIM, DANISMANLIK, YAZILIM_DANISMANLIK)firma_durumu - Müşteri durumu (MUSTERI, PROSPECT, IS_ORTAGI, ESKI_MUSTERI)faturalama_bilgisi - Faturalama tipi (FIX_COST, UNBILLABLE, TIME_AND_MATERIAL, PROJECT)Ürün Bazlı (product_family parametresi gerekli):
subject - Ürün/modül bazlı konu listesi (örn: NAV için NAV_EFATURA, NAV_SATIS, vb.)project_step - Proje adımları (product_family'ye göre farklılaşır)Kullanım Örnekleri:
GET /options/priority
GET /options/case_type
GET /options/subject?product_family=D365_BUSINESSCENTRAL_NAV
GET /options/status?language=en
| setName required | string Enum: "priority" "status" "status_reason" "case_type" "origin" "birim" "firma_durumu" "faturalama_bilgisi" "subject" "project_step" Example: priority Option set adı |
| product_family | string Enum: "D365_BUSINESSCENTRAL_NAV" "D365_Finance_Operations_AX" "D365_CRM_CE" "PowerPlatform" "PowerBI" "Azure" "Other" Example: product_family=D365_BUSINESSCENTRAL_NAV Subject veya project_step setleri için zorunlu parametre. Product family'ye göre ilgili subject veya proje adımlarını filtreler. |
| language | string Default: "tr" Enum: "tr" "en" Example: language=tr Dil seçeneği (tr=Türkçe, en=English) |
Case öncelik seviyeleri. SLA süreleri ile ilişkilidir.
{- "set_name": "priority",
- "product_family": null,
- "language": "tr",
- "values": [
- {
- "code": "HIGH",
- "label": "Yüksek Öncelik",
- "description": "Kritik hatalar, sistem çalışmıyor, üretim durdu",
- "active": true,
- "tags": [
- "critical",
- "urgent",
- "sla-4h"
]
}, - {
- "code": "NORMAL",
- "label": "Normal Öncelik",
- "description": "Standart destek talepleri, soru-cevap",
- "active": true,
- "tags": [
- "standard",
- "sla-24h"
]
}, - {
- "code": "LOW",
- "label": "Düşük Öncelik",
- "description": "İyileştirme önerileri, kozmetik sorunlar",
- "active": true,
- "tags": [
- "non-urgent",
- "sla-48h"
]
}
]
}Basit health check endpoint'i. Authentication gerektirmez.
Kontrol Edilen Servisler:
{- "status": "ok",
- "uptime_seconds": 123456,
- "version": "1.0.0",
- "timestamp": "2025-12-04T10:30:00Z",
- "dependencies": {
- "openai": "ok",
- "dynamics": "ok",
- "vector_store": "ok"
}
}