CRM Modülü
Amaç ve Kimler Kullanır
CRM modülü; müşteri adaylarının (potansiyel müşteri) takibi, satış fırsatlarının (pipeline/kanban) yönetimi, görüşme/arama/not gibi aktivitelerin kaydı ve müşteriye gönderilecek teklif belgelerinin hazırlanmasını sağlar. Modül, kullanıcının AktifModuller yetkisinde Crm claim'i bulunması şartıyla görünür.
- Satış temsilcisi / plasiyer: kendi müşteri adaylarını, fırsatlarını, aktivitelerini ve tekliflerini yönetir.
- Satış yöneticisi: tüm kullanıcıların kayıtlarını görür, tanım ekranlarını (etiket, ünvan, pipeline aşaması, kayıp sebebi) düzenler, teklif şablonlarını hazırlar.
- Kısıtlı kullanıcı ("CRM sadece kendi kayıtları"): Şirket ayarında bu kısıt açık olan kullanıcılar sadece kendilerine atanmış veya kendilerinin plasiyer olduğu cari/fırsat/aktivite/teklif kayıtlarını görebilir ve düzenleyebilir; sistem bunu ekranlarda otomatik filtreler, ayrıca sunucu tarafında da zorlar.
- Müşteri (dış kullanıcı): CRM'e giriş yapmaz; kendisine e-posta/WhatsApp ile gönderilen teklif linkini tarayıcıdan açarak teklifi görür ve kabul/red kararı verir (bkz. "Müşterinin Teklifi Görüntülemesi" bölümü).
Ana Ekranlar

🎬 Videolu anlatım: Şirket ve Kişi Kartları
| Ekran | Ne işe yarar |
|---|---|
| Dashboard | Seçilen kullanıcıya (veya tüm şirkete) ait CRM özet göstergeleri; üstte kullanıcı seçici dropdown (kısıtlı kullanıcıda kilitli/gizli). |
| Haber Akışı | Şirket içi CRM olaylarının (yeni potansiyel, fırsat açıldı/aşama değişti, teklif gönderildi, not, e-posta) kronolojik akışı; beğenme/yorum yapılabilir, serbest metin paylaşım da eklenebilir. Sağ sütunda "Beni Bekleyenler" ve kişisel aktivite kuyruğu gösterilir. Paylaşım kutusundan hızlı aday kaydı açılabilir ve otomatik hatırlatma aktivitesi kurulabilir. |
| Potansiyel Müşteriler | Potansiyel ve müşteriye dönüşmüş kayıtların listesi (müşteri satırlarında yeşil "Müşteri" rozeti); Hesap Tipi süzgecinden "Yalnız Potansiyel" seçilebilir. Filtre, Excel'e aktarma, panelden hızlı kayıt/düzenleme. |
| Fırsatlar (Liste) | Tüm satış fırsatlarının tablo görünümü; filtre, toplu işlem (aşama/plasiyer değiştir, sil), Excel içe/dışa aktarma. |
| Pipeline (Kanban) | Fırsatların aşama sütunlarına göre kart (drag&drop) görünümü; KPI bandı, kart sürükleyerek aşama değiştirme. |
| Teklifler (Liste) | Hazırlanan tekliflerin listesi; durum, hazırlayan kullanıcı, müşteri ve tarih aralığı süzgeçleri, toplu durum değiştirme/silme, Excel'e aktarma, satıra tıklayınca hızlı önizleme paneli. Tutarlar teklifin kendi para biriminde gösterilir. Satır sonundaki İşlemler menüsünde PDF, Kopyala ve Sil bulunur. |
| Teklif Şablonları | Kapak/sunum mektubu/ön metin/dip metin HTML şablonları ve yeniden kullanılabilir içerik blokları tanımı. |
| Aktiviteler | Görüşme/arama/e-posta/ziyaret/görev kayıtlarının listesi; tarih aralığı ve kullanıcı filtresi. |
| Takvim | Aktivitelerin aylık/haftalık takvim (FullCalendar tarzı) görünümü; her etkinliğe tıklayınca düzenleme sayfasına gider. |
| Kişiler / Şirketler | Cari bazlı iletişim kişileri ve şirket (cari) kartlarının ayrı listeleri (TeamGram tarzı "Veritabanı" görünümü). |
| Ürünler | Stok kartlarının CRM görünümü; bir ürüne tıklayınca o ürünün geçtiği açık fırsatlar ve teklifler listelenir. |
| Etiketler / Ünvanlar / Pipeline Aşamaları / Kayıp Sebepleri | Şirket bazlı tanım (master data) yönetim ekranları. |
Adım Adım Kullanım
Yeni Potansiyel Müşteri Kaydetme

İki yol vardır: tam sayfa form veya liste ekranındaki hızlı panel.
A) Tam sayfa form
- CRM > Satışlar > Potansiyel Müşteriler ekranına gidin.
- Sağ üstteki "Yeni" benzeri butonla yeni kayıt sayfasını açın.
- Formda şu alanları doldurun: İsim/Unvan (zorunlu), Kod, Durum, Telefon, E-posta, İl, İlçe, Adres, Vergi No, Vergi Dairesi, Kaynak Kanal, Bölge, Saha, Notlar.
- Kaydet butonuna basın → kayıt oluşturulur ve doğrudan carinin CRM Cari Detay sayfasına yönlendirilirsiniz (bkz. "CRM Cari Detay 360 Görünümü"). Ekranda "Potansiyel müşteri oluşturuldu." mesajı görünür.
B) Liste ekranındaki panel (AJAX, hızlı ekleme)
- Potansiyel Müşteriler listesinde "Yeni" ikonuna tıklayın; sağdan kayan bir panel (offcanvas) açılır.
- Panelde şirkete özel olarak açılıp kapatılabilen alan seti doldurulur (Ayarlar'dan hangi alanların gösterileceği/zorunlu olacağı yönetilebilir — bkz. "Alanları Düzenle").
- Aynı panelde birden fazla iletişim kişisi satırı (ünvan + ad soyad + telefon) eklenebilir; boş bırakılan satırlar dikkate alınmaz.
- Kaydet ile panel kapanır, liste otomatik yenilenir ve "Yeni potansiyel: ..." başlığıyla Haber Akışı'na otomatik kayıt düşer.
C) Haber Akışı'ndan hızlı aday + otomatik hatırlatma
- CRM > Haber Akışı ekranında paylaşım kutusunun yanındaki "Yeni Aday" düğmesine tıklayın.
- Açılan pencerede Ünvan* (zorunlu), telefon, e-posta ve şehir girilir. Cari kodu otomatik üretilir; kayıt "Potansiyel Müşteri" hesap tipiyle açılır. Aynı telefon başka bir caride kayıtlıysa mükerrer uyarısı alırsınız.
- Hatırlatma: "kaç gün sonra hatırlat" alanı varsayılan 7 gündür ve aktivite tipini (varsayılan Telefon) seçebilirsiniz. Kaydettiğinizde belirttiğiniz güne saat 09:00'a "İlk temas: <ünvan>" başlıklı bir aktivite açılır ve size atanır. 0 gün yazarsanız hatırlatma kurulmaz.
- Kaydettiğiniz aday paylaşım kutusundaki cari alanına seçili olarak gelir; tekrar arama yapmanız gerekmez.
Mevcut bir cariye paylaşım yaparken de hatırlatma kurabilirsiniz: paylaşım kutusunda cari seçtiğinizde altta bir "Hatırlat" satırı belirir. Satır varsayılan olarak kapalıdır (her paylaşımda aktivite oluşmasın diye); işaretlediğinizde gün ve aktivite tipi alanları açılır. Paylaşımdan sonra ilk satırından türetilen "Takip: …" başlıklı bir aktivite oluşur. Cari seçmezseniz satır görünmez ve aktivite kurulmaz; cariyi kaldırdığınızda işaret sıfırlanır.
Not: Panelde gizlenmiş (Göster=Hayır yapılmış) alanlar forma hiç konulmadığından, düzenleme sırasında bu alanların mevcut veritabanı değeri korunur, silinmez.
Potansiyeli Müşteriye Dönüştürme

- İlgili potansiyelin panelini/detayını açın, "Müşteriye Dönüştür" işlemini başlatın (potansiyel panelindeki dönüştürme aksiyonu bir onay modalı açar).
- Modalda uyarı görülebilir: potansiyel henüz "Nitelikli" durumda değilse sarı uyarı gösterilir (kayıt yine de dönüştürülebilir).
- "Yeni satış fırsatı oluştur" anahtarı açıksa: Yetki sahibi (fırsatı kimin sahipleneceği), Fırsatın konusu (varsayılan: "<Müşteri adı> satışı") ve isteğe bağlı Tahmini tutar girilir.
- Devam butonuna basınca: carinin hesap tipi "Müşteri" olur, potansiyel durumu "Kazanıldı" işaretlenir, anahtar açıksa yeni bir fırsat da otomatik açılır. Haber Akışı'na "Müşteriye dönüştürüldü: ..." kaydı düşer.
Dönüşen kayıt listede kalır. Potansiyel Müşteriler listesi dönüşmüş müşterileri de gösterir; satırda yeşil "Müşteri" rozeti çıkar. Yalnız adayları görmek isterseniz Hesap Tipi süzgecinden "Yalnız Potansiyel" seçin. Buna karşılık Finans > Cari Hesaplar listesi potansiyelleri göstermez — potansiyeller CRM tarafında takip edilir. (Yeni cari açarken hesap tipi listesinde "Potansiyel Müşteri" seçeneği durmaya devam eder.)
CRM Cari Detay 360 Görünümü

CRM içinden bir cariye (potansiyel veya dönüşmüş müşteri) tıklanan tüm bağlantılar — panel altındaki "Detaylar" butonu dahil — artık CRM'in kendi Cari Detay sayfasına gider. Üst arama çubuğundan yapılan cari aramasının sonuçları da (hem açılır liste hem "tümünü gör" sayfası) bu sayfaya gider; CRM ekranlarına yetkisi olmayan kullanıcılar klasik cari detayına yönlendirilir. Bu sayfa, sağdan açılan hızlı panelin tam sayfa hâlidir: üstte logo/avatar (tıklayıp logo yüklenebilir), isim, durum rozeti ve aksiyonlar; altında sekmeler bulunur.
Sekmeler:
- Bilgi: Etiketler, puanlama, kaynak, plasiyer ve şirkete göre yapılandırılabilen alan seti (panel ile birebir aynı içerik). Kalem simgesi düzenleme formunu, dişli simgesi "Alanları Düzenle" ayarını açar.
- Zaman Tüneli: Aktivite, teklif, not, mahal girişi ve saha kayıtlarının işlem geçmişiyle birlikte kronolojik akışı (bkz. "Cari Zaman Çizelgesi").
- Notlar / E-posta / Aktiviteler / Kişiler / Fırsatlar: Paneldeki sekmelerin aynısı; not ekleme-düzenleme, e-posta gönderme ve kişi yönetimi buradan da yapılır.
- Teklifler: Carinin tüm CRM teklifleri (numara, konu, tarih, durum, tutar); "Yeni Teklif" butonu teklif sihirbazını bu cari seçili açar.
- Dosyalar: Cariye bağlı dokümanlar (yükle/indir/sil) ayrı bir sekme olarak.
- Mahal Girişi ve Saha: İlgili menü yetkisi olan kullanıcılarda, carinin mahal belgeleri ve saha kayıtları listelenir; yeni kayıt butonları cari seçili açılır.
Aksiyonlar: Dönüşmemiş potansiyelde "Dönüştür" butonu buradan da çalışır. Dönüşmüş müşteride, cari listesi yetkisi olan kullanıcılara "Muhasebe Kartı" köprüsü görünür — bakiye, ekstre ve e-fatura bilgileri ERP cari kartında yaşamaya devam eder; CRM sayfası satış/ilişki yönetimine odaklanır.
Not: ERP tarafındaki (Finans/Muhasebe) cari detayı değişmedi; bu sayfa yalnız CRM modülü içindeki cari bağlantıları için geçerlidir.
Aktivite (Görüşme/Arama/Not) Ekleme

Aktivite tipleri: Ziyaret, Görev, Telefon, Email, Toplantı.
A) Tam sayfa form
- CRM > Aktiviteler > Aktiviteler ekranından "Yeni Aktivite" ile yeni aktivite formu açılır (bir carinin detayından açılırsa Cari alanı otomatik dolu gelir).
- Alanlar: Tip*, Başlık*, Cari* (Select2 arama), Atanan* (varsayılan: oturum açan kullanıcı), Başlangıç*, Bitiş, Süre (dk), Durum, Konum (harita üzerinden adres seçme desteği — "Haritadan Seç" butonu OpenStreetMap/Leaflet ile açılır), Açıklama, Sonuç.
- Başlangıç tarihi girilince bitiş boşsa otomatik +1 saat önerilir; süre girilirse bitiş buna göre hesaplanır. Bitiş tarihi başlangıçtan önce olamaz — hem tarayıcıda hem sunucuda doğrulanır.
- Kaydet → "Aktivite oluşturuldu." mesajı görünür ve Haber Akışı'na otomatik kayıt düşer (istenirse "Haber akışında göster" kutusu kapatılabilir). Formu bir cari kartının Aktiviteler bölümünden açtıysanız o cari kartına geri dönersiniz; Vazgeç de aynı şekilde çalışır. Aktivite listesinden, Haber Akışı'ndan veya Pipeline'dan açtığınız formlar kaydedince aktivite listesine döner.
B) Hızlı panel (cari detay/kanban üzerinden)
- İlgili carinin sayfasında veya Pipeline/Fırsat panelinde aktivite ekle simgesine tıklayın; sağdan panel açılır.
- Aynı alanlar AJAX ile kaydedilir; yeni kayıtta Cari seçimi zorunludur, düzenlemede Cari alanı salt-okunurdur (mevcut kayıttaki cari korunur).
- Aktivite listesinde veya panelde "Tamamla" aksiyonuyla bir aktivite sonuç notu girilerek Tamamlandı durumuna alınabilir.
Takvim görünümü: Takvim sayfasında tüm aktiviteler renk kodlu (Tamamlandı=yeşil, İptal=gri, Devam Ediyor=mavi, diğerleri=sarı) takvim etkinliği olarak görünür; bir etkinliğe tıklamak düzenleme formunu açar.
Cari Zaman Çizelgesi (İşlem Geçmişi)

Bir carinin detay sayfasındaki (CRM görünümü açık cariler) Zaman Çizelgesi bölümü, o cariye ait aktivite, teklif ve notların kronolojik akışını gösterir. Artık yalnız kayıtların mevcut hali değil, üzerlerinde yapılan işlemler de olay olarak listelenir:
- Oluşturuldu (yeşil): yeni aktivite / teklif / not eklendiğinde.
- Güncellendi (mavi): kayıt düzenlendiğinde (aktivitede durum da değiştiyse "eski → yeni" olarak belirtilir).
- Durumu değişti (turuncu): teklif durum geçişlerinde (ör. Taslak → Gönderildi, kabul/red, müşterinin weblink'ten verdiği karar) ve aktivite Tamamlandı yapıldığında; eski ve yeni durum birlikte gösterilir.
- Silindi (kırmızı): aktivite / teklif / not silindiğinde.
Her olayda kim (işlemi yapan kullanıcı; müşterinin weblink kararında kullanıcı boş görünür), ne zaman ve hangi işlem bilgisi yer alır. Silinen bir kaydın olay geçmişi çizelgeden kaybolmaz. Bu özellik devreye girmeden önce oluşturulmuş eski kayıtlar da çizelgede görünmeye devam eder. Bölüm sayfa açıldığında otomatik yüklenir; koyu tema dahil her iki temada okunur. Mahal girişi belgelerinde yapılan oluşturma / güncelleme / silme işlemleri de bu çizelgeye "Mahal girişi ..." olayı olarak düşer. Aynı şekilde, bir cariye bağlı Saha kayıtlarındaki oluşturma / güncelleme / silme işlemleri "Saha kaydı ..." olayı olarak çizelgeye düşer.
Mahal Girişi (Cariye Bağlı Mahal Listeleri)

🎬 Videolu anlatım: Var/Yok Kontrolleri ve Mahal Girişi
Mahal Girişi; bir cariye bağlı, teklifden bağımsız bir mahal listesi belgesidir. Fiyat/tutar içermez ve teklif tutarlarıyla hiçbir ilişkisi yoktur.
Ön koşul — stok kartında "Tip": Bir stok kartının mahal satırında seçilebilmesi için Stok > Kart ekranında Stok Tipi alanının Kontrol seçilmiş olması gerekir; grup başlığı satırında kart seçmek isterseniz Kontrol Başlık tipli bir kart gerekir. Tip alanının değerleri: Malzeme (varsayılan; mevcut tüm kartlar), Ürün, Hizmet, Kontrol, Kontrol Başlık (eski adlarıyla "Mahal" ve "Mahal Başlık"; mevcut kartlarınız otomatik dönüştürülmüştür). Kontrol ve Kontrol Başlık seçenekleri yalnızca CRM modülü aktif olan şirketlerde görünür. Sadece "Kontrol" tipli kartlar mahal satırında, sadece "Kontrol Başlık" tipli kartlar başlık satırının kart seçiminde listelenir.
Menü: CRM > Mahal Girişi.
Yeni belge oluşturma
- CRM > Mahal Girişi listesinde "Yeni Mahal Girişi" ile form açılır.
- Cari* (Select2 arama) ve Proje Adı* girilir; istenirse Açıklama eklenir. Aradığınız cari listede yoksa cari kutusunun yanındaki + butonuyla açılan pencereden (Ad/Ünvan zorunlu; telefon, vergi ve adres bilgileri opsiyonel) hızlıca yeni cari ekleyebilirsiniz — kaydedilen cari otomatik seçilir, cari kodu sistemce üretilir.
- Satırlar dört türde eklenir — Blok > Tip > Grup Başlığı > Mahal Satırı. Satırların başında hangi seviye olduğu yazar ve her seviyenin kendi rengi vardır; girinti yalnızca görseldir:
- Blok Ekle ve Tip Ekle: tamamen elle yazılan başlıklardır (ör. "A BLOK", "2+1"). Kart seçmezler.
- Grup Başlığı Ekle: listeyi bölümlere ayıran başlık satırı (ör. "ZEMİN KAT"). Başlık, Kontrol Başlık tipli bir stok kartından seçilebilir (kart seçilince başlık metni kartın adıyla otomatik doldurulur, dilerseniz elle değiştirebilirsiniz) veya doğrudan serbest metin olarak yazılabilir; ikisinden en az biri zorunludur.
- Mahal Satırı Ekle: bir Kontrol tipli kart seçilir, Miktar ve Çarpan girilir. Formda en altta hazır bekleyen bir boş satır bulunur; "Mahal Satırı Ekle" düğmesi yeni bir satır açmak yerine doğrudan bu hazır satırın kart seçim kutusunu açar, böylece yazdığınız miktar yanlış satıra gitmez. Sondaki boş satır kaydı engellemez. Kart seçilmemiş ama içi doldurulmuş bir satır varsa kaydetmeden önce onay sorulur (Evet → o satır atılır, Vazgeç → kart kutusu açılır). Hata mesajları ekranda gördüğünüz numarayla konuşur (ör. "2. mahal satırı"). Kart seçildiğinde Çarpan, stok kartındaki Çarpan değerinden otomatik doldurulur; dilerseniz elle değiştirebilirsiniz. Toplam = Miktar × Çarpan anlık hesaplanıp satırda gösterilir (ör. 40,5 × 12 = 486). Çarpan boş bırakılırsa 0 kabul edilir ve 0 olarak da kaydedilebilir.
- Sıra zorunlu değildir: bloksuz tip, tipsiz grup, başlıksız mahal satırı serbesttir.
- Toplamlar: her seviye kendi alt toplamını gösterir — bir blok, altındaki tüm tip/grup/mahal satırlarını kapsar; tablonun en altında Genel Toplam yer alır. Bu toplamlar sayısaldır; farklı birimlerdeki satırlar ayrıştırılmadan toplanır. Aynı toplamlar belge Detay ekranında da görünür.
- PDF çıktısı: belge Detay ekranındaki PDF butonuyla mahal listesinin (grup ve genel toplamlar dahil) PDF dökümü indirilir; dosya adı proje adından türetilir.
- Satırlar sürükleyerek sıralanır (soldaki tutamaçtan); bir başlığı sürüklediğinizde altındaki satırlar da birlikte taşınır. Silme çöp kutusu simgesiyle yapılır.
- Kaydet → belge detayına yönlendirilir; işlem carinin CRM zaman çizelgesine düşer.
Önemli davranışlar
- Her satırın birimi, seçilen kartın kendi ölçü birimidir (5 oda, 3 lamba, 3 düğme gibi). Bu yüzden belge geneli tek toplam gösterilmez — farklı birimler toplanmaz; yalnız satır toplamları görünür.
- Mahal satırında yalnız Tip=Kontrol stoklar seçilebilir; bu kural sunucuda da doğrulanır.
- Düzenle/Sil işlemleri liste ve detaydan yapılır; silme yumuşak silmedir (kayıt arşivlenir, çizelge geçmişi korunur).
Saha (Sahadan Konum + Fotoğraf + Açıklama)

🎬 Videolu anlatım: Saha Kayıtları
Saha; sahadaki ekibin bir açıklama, konum (GPS) ve fotoğraf(lar) girerek oluşturduğu, takip edilebilen bir kayıttır. Bir saha kaydı bağımsız oluşturulabilir; istenirse bir cariye bağlanır ve o carinin bir fırsatına veya teklifine de ilişkilendirilebilir.
Menü: üst menüde ayrı Saha bölümü (Saha Kayıtları / Yeni Saha Kaydı). Bölüm CRM modülü kapsamında sunulur; görünmesi için Menu.Saha rol yetkisi gerekir (kurulumda Menu.CrmTeklif yetkisi olan rollere otomatik atanır).
Yeni saha kaydı (mobil öncelikli)
- Saha > Yeni Saha Kaydı ile form açılır.
- Açıklama* (zorunlu) ve istenirse Başlık girilir.
- Konum (GPS): "Konumumu Al" butonuna basıldığında tarayıcı konum izni ister; alınan Enlem/Boylam değerleri görünür alanlara yazılır ve haritada işaretlenir. İşaret sürüklenerek veya haritaya tıklanarak düzeltilebilir; enlem/boylam alanları elle de değiştirilebilir (harita anında güncellenir). Temizle ile konum kaldırılır. Konum girmek zorunlu değildir; girilecekse enlem ve boylam birlikte girilmelidir.
- Fotoğraflar: "Fotoğraf Çek / Seç" ile birden fazla fotoğraf eklenir; mobilde kamera ile anında çekilebilir. Seçilenler küçük önizleme olarak listelenir.
- Bağlantılar (opsiyonel): Cari seçilir; cari yoksa yandaki + ile Hızlı Cari Ekle penceresinden (telefon mükerrer kontrolü ile) anında oluşturulur. Cari kodu yazmanız gerekmez, otomatik üretilir; sahada tanışılan firma "Potansiyel Müşteri" hesap tipiyle açılır ve CRM > Potansiyel Müşteriler listesinde görünür. Cari seçilince o cariye ait Fırsat ve Teklif listeleri açılır ve seçilebilir.
- Kaydet → kayıt detayına yönlendirilir.
Liste ve harita
- Saha Kayıtları listesi iki görünümde açılır: Kart (akış) ve Tablo. Seçtiğiniz görünüm hatırlanır. Kart görünümünde ziyareti beğenebilir, yorum yazabilir, fotoğrafa tıklayıp büyütebilir, konum bilgisine tıklayıp sayfadan çıkmadan harita penceresinde görebilir ("Google Maps'te Aç" bağlantısıyla dışarıda da açabilir) ve firma adına tıklayıp cari kartına geçebilirsiniz. Kartlara yazdığınız yorumlar Haber Akışı'nda da görünür (ortak yorum/beğeni).
- Liste tarih aralığı, cari ve metin (başlık/açıklama/cari) ile filtrelenir; filtreler sayfalar arasında korunur. Tablo görünümünde her satırda konum var/yok ve fotoğraf sayısı göstergesi bulunur.
- Konumlu kayıtlar için Harita Görünümü kutusu açıldığında tüm işaretler (pin) haritada gösterilir; pine tıklayınca kaydın detayına gidilir. Harita koyu tema dahil her iki temada okunur.
Detay ve düzenleme
- Detay ekranında açıklama, fotoğraf galerisi (tıklayınca büyütme), konum haritası, "Haritada Aç" bağlantısı ve cari/fırsat/teklif bağlantıları görünür.
- Düzenle ekranından açıklama/konum/fotoğraf güncellenir ve bağlantılar sonradan kurulabilir (bağımsız açılan bir kayıt burada cariye, fırsata veya teklife bağlanır). Mevcut fotoğraflar tek tek silinebilir.
- Sil yumuşak silmedir; fotoğraf dosyaları diskte korunur.
Önemli davranışlar
- Fırsat/Teklif yalnız seçili carinin kayıtlarından listelenir; seçilen fırsat/teklifin gerçekten o cariye ait olduğu sunucuda doğrulanır. Fırsat/Teklif seçebilmek için önce cari seçilmelidir.
- Enlem -90…90, Boylam -180…180 aralığında olmalıdır; kurallar sunucuda ve veritabanında da doğrulanır.
- Bir cariye bağlı saha kaydının oluşturma / güncelleme / silme işlemleri, ilgili carinin CRM zaman çizelgesine "Saha kaydı ..." olayı olarak düşer. Cari bağlı değilse çizelgeye olay yazılmaz.
Fırsat (Satış Pipeline) Oluşturma ve Yönetme

🎬 Videolu anlatım: Pipeline Aşamaları ve Kayıp Sebepleri
Yeni fırsat — tam form
- CRM > Satışlar > Fırsatlar listesinden "Yeni" ile yeni fırsat formu açılır (bir cariden açılırsa Cari önceden seçili gelir).
- Alanlar: Başlık* (ör. "ABC Endüstri 2026 yıllık bakım sözleşmesi"), Aşama* (varsayılan: sıradaki ilk aktif aşama), Cari*, İletişim Kişisi, Beklenen Tutar (TRY), Beklenen Kapanış*, Atanan Kullanıcı* (varsayılan: oturum sahibi), Açıklama, Notlar (iç not, müşteriye gösterilmez).
- Kaydet → Fırsat Detay sayfasına yönlendirilir; Haber Akışı'na "Fırsat açıldı: ..." kaydı düşer.
Pipeline (Kanban) üzerinden hızlı kart ekleme
- Pipeline sayfasında her aşama bir kolondur (KPI bandında toplam/ağırlıklı tutar gösterilir).
- Kolon başlığındaki "+ Hızlı kart" ile sadece Başlık + Cari + Tutar girilerek fırsat oluşturulur; aşama, kartın eklendiği kolon olur.
- Kartlar sürükle-bırak ile başka bir aşama kolonuna taşınabilir:
- Kart bir "Kazandı" işaretli aşamaya bırakılırsa açılan modalda hangi teklif ile kazanıldığı seçilir (opsiyonel).
- Kart bir "Kaybetti" işaretli aşamaya bırakılırsa açılan modalda kayıp sebebi seçilir ve kapanış notu girilebilir.
- Modal iptal edilirse kart eski kolonuna geri döner.
- Karta tıklayınca sağdan detay paneli (offcanvas) açılır; buradan gidişat (İyi/Kötü/Belirsiz) ve ara aşamalar arası geçiş de yapılabilir.
Fiyatlama (ürün/kalem satırları)
- Fırsat panelinde/detayında "Fiyatlama" modalını açın.
- Satır tipi (ürün/başlık), Stok, Miktar, Birim Fiyat, İskonto %, KDV %, Döviz girilir; birden çok döviz kullanılıyorsa kur alanları (1 XXX = ___ TL) ayrıca girilir, Genel İndirim % uygulanabilir.
- Kaydedilen bu satırlar, aynı fırsattan teklif oluşturulurken ("fırsattan devir") sihirbaza otomatik aktarılabilir.
Toplu işlemler ve içe/dışa aktarma
- Liste ekranında birden fazla fırsat seçip toplu aşama değiştirme, toplu plasiyer atama veya toplu silme yapılabilir.
- "Excel Şablon" ile içe aktarma şablonu indirilir (CariKod/CariAd, Başlık, Açıklama, Beklenen Tutar, Beklenen Kapanış, Aşama Adı, Atanan E-posta, Notlar sütunları); doldurulup "İçe Aktar" ile toplu fırsat oluşturulur (Başlık zorunlu; Aşama boşsa ilk aktif aşama, Atanan boşsa içe aktaran kullanıcı atanır).
- "Excel" butonuyla filtrelenmiş listenin tamamı dışa aktarılır.
CRM Teklif Sihirbazı — Adım Adım

🎬 Videolu anlatım: CRM Ürün Kataloğu ve Teklif Listesi
Teklif hazırlamanın iki yolu vardır: klasik form (şablonsuz basit teklifler için) ve Sihirbaz (şablonlu/gelişmiş teklifler için — önerilen yöntem). Bir teklif şablonla veya "başlık satırı"/"Toplam İş Adedi" kullanılarak oluşturulduysa, düzenlemeye her zaman otomatik olarak Sihirbaz açılır (klasik form bu alanları taşımadığından veri kaybını önlemek için).
Sihirbaza giriş
- CRM > Satışlar > Teklifler listesinden "Yeni Teklif" (Sihirbaz) ile açılır; bir fırsattan veya cariden açılırsa ilgili alanlar önceden dolu gelir.
- Sihirbaz 4 adımlı bir sayfa: üstte adım göstergesi 1. Müşteri → 2. Bilgiler → 3. İçerik → 4. Gözden Geçir, sağ tarafta ise formla eş zamanlı güncellenen canlı PDF önizlemesi (iframe) bulunur.
Adım 1 — Müşteri
- Şablon seçilir (boş bırakılırsa "Şablonsuz (klasik PDF)" — QuestPDF ile sabit düzende üretilir). Şablon seçilince kapak/mektup/ön metin/dip metin otomatik ön dolar (3. adımda serbestçe düzenlenebilir). Sağdaki dişli ikonu ile şablon yönetim ekranı yeni sekmede açılabilir.
- Müşteri* (arama kutulu dropdown) seçilir; seçilince o cariye ait İlgili Kişi listesi ve açık fırsatları otomatik yüklenir.
- Bağlı Fırsat (opsiyonel) seçilebilir; yanındaki "Yeni fırsat" linkiyle küçük bir modalda (Başlık*, Tutar, Aşama) hızlıca yeni fırsat açılıp otomatik seçilebilir. Fırsatın fiyatlama satırları varsa bunlar 3. adımda "Fırsattan fiyatlama devri" kutusunda teklife aktarılmak üzere önerilir.
- Konu* girilir (fırsat seçilince Konu boşsa fırsat başlığı otomatik kopyalanır).
Adım 2 — Bilgiler
- Teklif Tarihi otomatik atanır ve değiştirilemez (salt-okunur).
- Geçerlilik tarihi, Döviz göstergesi (3. adımda ürün seçilince otomatik güncellenir), Kur, Şartlar/Notlar, Teslimat Adresi (müşteri seçilince cari adresinden otomatik doldurulur, elle değiştirilebilir; yalnız yeni teklifte otomatik doldurma yapılır, düzenlemede dokunulmaz).
- "Teklifi Sunan — Ünvan/İmza" kartı: buraya girilen Ünvan ve imza (canvas üzerine Çiz sekmesinde çizerek ya da Resim Yükle sekmesinden PNG/JPG — en fazla 1 MB — yükleyerek) her zaman oturum açan kullanıcının profiline kaydedilir ve bu kullanıcının hazırladığı tüm tekliflerde kullanılır (teklife özel değildir). "Ünvan / İmzayı Kaydet" butonuyla anında AJAX ile kaydedilir; "İmzayı Sil" ile kaldırılabilir.
Adım 3 — İçerik
- Kapak Sayfası, Sunum Mektubu, Ön Metin, Dip Metin için zengin metin editörleri (TinyMCE) bulunur; her birinde "Merge" menüsünden hazır placeholder alanlar (müşteri adı, teklif no vb.) ve "Blok" menüsünden önceden tanımlı içerik blokları eklenebilir. Editörde ayrıca hizalama (sol/orta/sağ/iki yana yasla), yazı tipi–boyut–renk, tablo, yatay çizgi ve sayfa sonu vardır; resim araç çubuğundan, sürükle-bırakla veya kopyala-yapıştır ile eklenebilir (dosya sunucuya yüklenir, PDF'e de gider). Kapak Sayfası editöründe hazır kapak tasarımları listelenir — birine tıklayıp üzerinde düzenleyebilirsiniz.
- Fırsattan fiyatlama devri varsa ekranda özel bir kutu çıkar; önizleme tablosu gösterilir, "Aktar" ile satırlar teklife kopyalanır veya "Vazgeç" ile atlanır.
- Ürün/Hizmet Satırları tablosu: "Satır Ekle" ile ürün/hizmet kalemi (Stok, Açıklama, Miktar, Birim Fiyat, İskonto%, KDV%, Döviz) eklenir. Ürün kutusunda ürün adıyla veya stok koduyla arama yapabilirsiniz (aynısı fırsat fiyatlama penceresinde de geçerlidir). Stok seçilince fiyat, kartta tanımlı fiyat listesinden gelir; kartta fiyat listesi kaydı yoksa stok kartındaki Satış Fiyatı ve para birimi kullanılır. "Grup Başlığı" ile satırları gruplayan bir başlık bandı eklenebilir (opsiyonel "Toplam İş Adedi" girilirse, başlık miktarları toplamı bununla karşılaştırılıp uyuşmazsa sarı bilgilendirme uyarısı çıkar — kayıt engellenmez).
- Birden fazla döviz kullanılan satır varsa kur girişi alanları ve Genel İndirim % burada görünür; TL cinsinden genel toplam otomatik hesaplanır.
- Genel İndirim ve Ek İskonto KDV'den ÖNCE uygulanır. Genel toplam değişmez, ancak KDV matrahı ve KDV tutarı indirimli tutar üzerinden hesaplanır (ör. 800 EUR mal bedeli, %10 indirim → matrah 720, KDV 144). Teklif belgesindeki indirim ile Maliyet Raporu'ndaki indirim aynı tutardır.
- Satırın para birimini değiştirirseniz birim fiyat güncel kurla yeni para birimine çevrilir ve satırın altında hangi kurdan çevrildiği belirtilir. Kuru tanımlı olmayan bir para birimi seçerseniz fiyat değiştirilmez ve kırmızı uyarı çıkar — yanlış bir çevrim yapılmaz.
- Satır listesinin altındaki boş satır hesaba katılmaz; bu yüzden dövizli tekliflerde gereksiz "0,00 TRY" bloğu çıkmaz ve Ek İskonto alanı boş satır yüzünden kilitlenmez.
- Teklif zaten kaydedilmişse (ID mevcutsa) bu adımda Ek Dosyalar bölümünden dosya yüklenip silinebilir (yeni/henüz kaydedilmemiş teklifte önce "Kaydet" ile teklif oluşturulmalıdır).
Adım 4 — Gözden Geçir
- Girilen bilgilerin özeti gösterilir; sağdaki önizleme PDF çıktısıyla birebir aynıdır (şablon seçiliyken). Şablonsuz + tek dövizli tekliflerde önizleme yalnızca bilgilendirme amaçlıdır (gerçek PDF QuestPDF ile farklı sabit düzende üretilebilir).
- Yeni teklifte "Haber akışında göster" kutusu işaretli gelir.
- Kaydet ile teklif Taslak durumunda kaydedilir ve Detay sayfasına geçilir (gönderim buradan yapılır).
- Finalize Et butonu Kaydet ile aynı kaydı yapar; ayrıca bağlı bir fırsat varsa ve fırsatın tutarı/ürün tablosu teklifle farklıysa bir "Fırsatı Güncelle" modalı sunar — "Fırsat tutarını güncelle" ve/veya "Ürün tablosunu güncelle" seçenekleriyle fırsat senkronize edilebilir.
- Her adımda Geri/Sonraki ile gezinilir; sayfa üstündeki adım numaralarına doğrudan tıklayarak da geçiş yapılabilir. "Kapat" ile listeye dönülür (kayıt yapılmaz).
Teklifi Müşteriye Gönderme

Teklif Detay sayfasında, sadece Taslak durumundaki teklifler için:
- "Mail Gönder" aksiyonu bir modal açar; varsayılan alıcı (önce iletişim kişisinin, yoksa carinin e-postası), Cc/Bcc, Konu (varsayılan: "<Şirket Ünvanı> - Teklif <No>") ve gövde önizlemesi (iframe) gösterilir; gövde metni özelleştirilebilir. Gönderilince teklif PDF'i otomatik üretilip mail ekine konur, teklifin durumu Gönderildi'ye çevrilir ve Haber Akışı'na kayıt düşer.
- "Web Linki" butonu (Üret/Görüntüle) tıklandığında bir erişim token'ı üretilir (daha önce üretildiyse aynısı döner — idempotent) ve müşterinin login olmadan açabileceği link modalda gösterilir; "Kopyala" ile panoya alınabilir. Bu link taslak veya gönderilmiş her durumda üretilebilir.
- "WhatsApp ile Gönder" aksiyonu, önce web linkini üretir, sonra iletişim kişisinin (öncelik: cep telefonu) veya carinin telefonuna hazır mesaj metniyle WhatsApp Web/uygulamasını açar.
- PDF linkiyle teklifin QuestPDF/HTML çıktısı yeni sekmede (inline) görüntülenir/indirilir.
- Teklifin Erişim sekmesinde/panelinde, web linkinin kim tarafından ne zaman görüntülendiği (IP, tarayıcı bilgisiyle) loglanmış olarak izlenebilir.
- "Revize Et": mevcut teklifin yeni bir taslak revizyonunu (Rev N) oluşturur; şablonlu teklifse doğrudan Sihirbaz'a, değilse klasik Form'a yönlendirir. Eski teklif üzerinde "Bu teklifin yerini Rev N aldı" notu görünür.
- Detay sayfasındaki durum dropdown'undan (yalnızca yönetim amaçlı, admin tarafında) teklif manuel olarak Kabul Edildi / Reddedildi ve diğer durumlara da elle taşınabilir; kapanış notu istenebilir.
- Bağlı bir fırsat varsa ve teklif tutarıyla fırsat tutarı arasında fark oluşmuşsa, Detay sayfasında bir uyarı şeridi ile "Fırsatı Güncelle" (tutar senkronu) aksiyonu sunulur.
- Teklifi tekrar taslağa alma: Gönderildi, Beklemede, Kabul/Red gibi durumlardaki bir teklifi durum menüsünden yeniden Taslak'a çekip düzenleyebilirsiniz; yeni teklif açmanız gerekmez.
Teklif kopyalama: Liste veya Detay'daki İşlemler > Kopyala ile mevcut teklif, yeni numaralı bir taslak olarak çoğaltılır (revizyon değildir). Satırlar, kurlar, içerik bölümleri, şablon bağlantısı ve Var/Yok sayfası birebir taşınır; kopya doğrudan Sihirbaz'da açılır. Açılan pencerede müşteriyi değiştirebilir, konu ve geçerlilik tarihini güncelleyebilirsiniz — müşteri değişirse eski müşterinin ilgili kişisi ve teslimat adresi taşınmaz. Fırsat bağlantısı kopyaya geçmez.
Şablondan tüm bölümleri yenileme: Şablon tasarımını (logo, kapak, sunum mektubu, ön/dip metin) sonradan değiştirdiyseniz, Sihirbaz'ın 3. adımındaki "Şablondan Yenile" düğmesiyle açık teklifin tüm içerik bölümlerini şablonun güncel hâliyle değiştirebilirsiniz. Düğme yalnız şablona bağlı tekliflerde görünür ve hangi bölümlerin değişeceğini onaya sunar — mevcut içerik üzerine yazılacağı için önce onay istenir.
Müşterinin Teklifi Görüntülemesi ve Kabul/Red Etmesi (Public Sayfa)

Bu akış tamamen oturum açmadan erişilebilen genel bir sayfa üzerinden çalışır; müşteri hiçbir kullanıcı adı/şifre girmez.
- Müşteri, kendisine mail/WhatsApp ile gönderilen linke tıklar.
- Token geçersiz/boşsa veya bilinmiyorsa "Bağlantı Geçersiz" sayfası gösterilir.
- Geçerliyse: şirket ünvanı, Teklif No, müşteri adı, geçerlilik tarihi uyarısı ve teklifin tam belge önizlemesi (kaydedilmiş/gönderilmiş halinin PDF ile birebir aynı HTML render'ı, iframe içinde) gösterilir. Her görüntüleme otomatik olarak erişim logu (IP, tarayıcı, zaman) olarak kaydedilir.
- Teklif "Gönderildi" veya "Beklemede" durumundaysa, süresi geçmemişse ve teklifin daha yeni bir revizyonu yoksa, sayfanın altında bir karar formu görünür:
- İsteğe bağlı "Notunuz" alanı,
- "Kabul Ediyorum" (yeşil) ve "Reddediyorum" (kırmızı, tıklanınca onay istenir) butonları.
- Formun üstünde şu uyarı metni sabit gösterilir: "Bu onay bir ön kabul niteliğindedir; sipariş ve sözleşme koşulları ayrıca teyit edilecektir."
- Karar formu koşulları sağlanmıyorsa (süre dolmuş / daha yeni revizyon var / zaten karar verilmiş) karar formu yerine ilgili bilgilendirme mesajı gösterilir (ör. "Bu teklifin geçerlilik süresi dolmuştur.", "Bu teklif güncellendi. Lütfen satış temsilcinizden güncel teklif bağlantısını isteyin.").
- Müşteri Kabul veya Red seçip formu gönderdiğinde bir sonuç sayfasına yönlenir: "Teklif Kabul Edildi" veya "Teklif Reddedildi" başlığıyla bir kapanış ekranı gösterilir ve alt yazıda "Bu bağlantı kapanmıştır." uyarısı yer alır (karar tekrar değiştirilemez).
- Admin tarafında bu karar, teklifin Detay sayfasına otomatik yansır (durum KabulEdildi/Reddedildi olur) ve Haber Akışı'na işlenir.
Teklif Maliyet Raporu (Hassas — Yetki Gerektirir)
Teklifin kârlılığını satır bazında gösteren, yalnızca "CRM > Teklif Maliyet Raporu" (Menu.CrmTeklifMaliyet) yetkisine sahip kullanıcılara açık bir rapordur. Bu yetki hassas ticari veri (tedarikçi maliyeti, kâr, marj) içerdiğinden hiçbir role otomatik verilmez; kullanıcılara Roller > Menü Yetkileri ekranından bilinçli olarak atanır.
Nasıl açılır: Teklif Detay sayfasında, yetkili kullanıcıya görünen "Maliyet Raporu" butonu ile yeni sekmede açılır. Yetkisiz kullanıcı bu butonu görmez; adres çubuğundan doğrudan erişmeye çalışsa da sunucu erişimi reddeder.
Maliyet nasıl hesaplanır:
- Birim alış maliyeti = stok kartındaki satış fiyatı × (1 − Alış İskonto %), stok kartının kendi para biriminde. Alış iskontosunun varsayılanı stok kartından gelir (Stok > Alış İskonto %); teklif satırı girilirken satıra kopyalanır ve satır bazında değiştirilebilir. Müşteriye verilen satır fiyatını sonradan değiştirseniz de maliyet değişmez (tedarikçi iskontosu her zaman liste/satış fiyatı üzerinden hesaplanır). Para birimi: stok kartının satış dövizi ile teklif satırının dövizi aynıysa çevrim yapılmaz (ör. EUR fiyat EUR olarak kalır — yanlışlıkla TL sayılıp çevrilmez); farklıysa güncel kurla satırın dövizine çevrilir; kur yoksa "—" gösterilir (1:1 uydurma değerleme yapılmaz).
- Alış iskontosu girilmemiş (0 / boş) satırlarda alış maliyeti hesaplanmaz. Bir satırın efektif alış iskontosu (satır değeri varsa o, yoksa stok kartı varsayılanı) 0 veya boş ise, o satırın alış (birim) maliyeti = 0 kabul edilir — satış fiyatının tamamı maliyet sayılmaz. Sebep: iskonto girilmediğinde maliyet = satış fiyatı çıkar ve o satır kârı sıfırlayıp marjı yanlış (düşük) gösterir. Gerçek bir alış maliyeti görmek istiyorsanız satıra (ya da stok kartına) alış iskontosu % girin.
- Hizmet / Kontrol tipli kartlarda alış maliyeti hesaplanmaz. Stok kartının Tip alanı Hizmet, Kontrol veya Kontrol Başlık ise o satırın alış (birim) maliyeti = 0 kabul edilir (yukarıdaki iskonto kuralıyla aynı gerekçe). Teklif giriş formunda Hizmet/Kontrol kartı seçilince Alış İsk% alanı otomatik pasifleşir ve boşalır.
- Ortak gösterim: Alış maliyeti hesaplanmayan (yukarıdaki iki durumdan biri) satırların Alış İsk%, Br. Maliyet ve Alış Mal. kolonları nötr "—" ile gösterilir; bu, "maliyeti yok" (0) anlamındadır ve stok fiyatı/kuru eksik olduğunda çıkan (kırmızı) "—" uyarısıyla karıştırılmaz (o satırlar için eksik-maliyet uyarısı çıkmaz). İşçilik/barem bundan etkilenmez — bu satırlarda barem doluysa işçilik yine hesaplanır.
- İşçilik (barem) maliyeti = stok kartındaki Barem adedi × Barem birim değeri × satır miktarı. Barem birim değeri ve dövizi Ayarlar > Barem Tanımlama ekranından tanımlanır. Bu, teklife elle girdiğiniz işçilik satırlarından tamamen ayrı bir hesaptır. Not: Hizmet/Kontrol kartına Barem girilmişse işçilik maliyeti bu satırda da normal hesaplanır (alış maliyeti 0 kalır, yalnız işçilik gelir); yani bir hizmet için işçilik yansıtmak isterseniz stok kartına Barem tanımlamanız yeterlidir.
- Satır toplam maliyeti = alış maliyeti + işçilik. Belge toplamında toplam maliyet, teklif tutarı, kâr ve kâr marjı (%) gösterilir. Kâr/marj her zaman KDV hariç net tutar üzerinden hesaplanır (maliyet de KDV hariçtir); belge geneli indirim varsa tabana uygulanır.
- Kârlılık Özetinde KDV dahil bilgi satırları: Toplam Alış Maliyeti, Toplam İşçilik ve Toplam Maliyet satırları (KDV hariç) olarak etiketlenir ve her birinin altında ikincil bir "KDV dahil: …" satırı gösterilir (her satırın kendi KDV oranı alış+işçilik tutarına uygulanır). Teklif Net Tutarı (kâr tabanı) satırının altındaki "KDV dahil" değer, teklifin genel toplamıyla (KDV dâhil) birebir aynıdır — iki farklı yerden farklı KDV toplamı çıkmaz. Bu satırlar yalnız bilgi amaçlıdır; kâr ve marj değişmez (KDV hariç net üzerinden hesaplanır).
- Ekran düzeni — Satır Detayları: Satır bazlı maliyet tablosu, rapor açıldığında varsayılan olarak kapalıdır; üstteki "Satır Detayları (… kalem)" başlığına tıklayarak açıp kapatabilirsiniz. Kârlılık Özeti ve Kâr / Kâr Marjı panelleri her zaman görünür kalır. Yazdırırken (Yazdır butonu) satır tablosu, ekrandaki aç/kapa durumundan bağımsız olarak çıktıda her zaman açık gelir.
- Rapor para birimi: Teklifin tüm ürün satırları aynı para biriminde ise (en yaygın durum) rapor o para biriminde gösterilir — kolonlar (Alış Mal., İşçilik, Satır Maliyet) ve kârlılık özeti teklif dövizindedir. İşçilik, barem birim değerinin dövizinden (genelde TL) teklif dövizine teklifin kendi kuruyla çevrilir (ör. 1.000 TL / 53 = 18,87 EUR). Toplam maliyet ve kâr için ayrıca TL karşılığı ikincil satır olarak, kullanılan kur ibaresiyle ("1 EUR = 53,00 TL") verilir. Kâr marjı (%) oran olduğundan para biriminden bağımsızdır, değişmez. Satırlar farklı para birimlerinde ise (karışık döviz) rapor TL olarak gösterilir (tutarlar tek dövizde toplanamaz) ve raporun üstünde bu durum belirtilir. TL tekliflerde görünüm değişmez.
Açık / Kapalı teklif farkı (önemli):
- Teklif açıkken (Taslak / Gönderildi / Beklemede) rapor; birim alış maliyetini, barem adedini ve işçilik değerlerini güncel tanımlardan canlı okur (stok kartındaki güncel satış fiyatı + para birimi + güncel kur, güncel Barem adedi, güncel barem birim değeri). Böylece stok kartı fiyatı/kuru güncellenince rapor da güncel kalır.
- Teklif kapandığında (Kabul Edildi / Reddedildi / Terk Edildi / Geri Çekildi) hem barem değerleri hem birim alış maliyeti o anki hâliyle teklife dondurulur (snapshot); kapalı teklifin raporu her zaman bu dondurulmuş değerleri gösterir. Böylece geçmiş bir teklifin kârlılığı, aradan zaman geçip tanımlar değişse de kapanış anındaki gerçeği yansıtır.
- Teklif terminal durumdan geri açılırsa (ör. toplu durum değiştirme ile) barem snapshot'ı temizlenir ve rapor yeniden güncel tanımlardan (alış maliyeti dâhil) canlı hesaplar; yeniden kapandığında tekrar dondurulur. Rapor üst kısmında, değerlerin "güncel tanımlardan" mı yoksa "kapanış anı"ndan mı geldiği açıkça belirtilir.
- Teklif zarardaysa (satış tutarı toplam maliyetin altında) rapor bunu belirgin (kırmızı "ZARARDA" uyarısı ve negatif kâr/marj) gösterir.
Not: Maliyeti hesaplanamayan (stok kartında satış fiyatı olmayan veya geçerli kur bulunamayan) satırlar toplama katılmaz ve raporda "—" ile gösterilerek uyarılır — yanlış (1:1) bir değerleme yapılmaz.
Teklif İşçilik Maliyeti Dökümü

Teklif Detay sayfasındaki işlem menüsünden İşçilik Maliyeti yeni sekmede açılır; yazdırılabilir tek sayfalık bir dökümdür.
- Üstte teklif no, konu, cari ve teklifin görüntüleme durumu rozeti yer alır.
- Döküm, teklifteki işçilik kalemlerini barem üzerinden toplar ve teklifin para biriminde gösterir; barem dövizi farklıysa teklif kuru (1 döviz = … TL) başlıkta yazılır. Güncel kur bulunamazsa uyarı çıkar ve tutar TL olarak kalır.
- Alt toplam KDV hariç, altında KDV dahil olarak verilir. Yazdır düğmesi tarayıcı yazdırma penceresini açar; Teklife Dön detay sayfasına döner.
Gizlilik: Bu döküm alış maliyeti, kâr ve marj bilgisi içermez; müşteriyle paylaşılabilir. Maliyet/kâr için "Teklif Maliyet Raporu" bölümüne bakın (yetki gerektirir).
CRM Ayarları — Teklif Fiyatları KDV Dahil / Hariç

Menü: Ayarlar > CRM Ayarları (Şirket Ayarları yetkisi — Menu.SirketAyarlari — gerektirir).
Teklif hazırlarken girdiğiniz birim fiyatların KDV içerip içermediğini şirket bazında belirlersiniz:
- KDV Hariç (varsayılan): Girilen fiyatlar KDV içermez; hesapta fiyatların üstüne KDV eklenir. Örn. 100 ₺ + %20 KDV → 120 ₺. Bu, teklif modülünün bugüne kadarki tek davranışıdır — bu ayarı hiç açmadıysanız hiçbir teklifiniz etkilenmez.
- KDV Dahil: Girilen fiyatlar KDV içerir; hesapta fiyatların içinden KDV ayrıştırılır (iç yüzde). Örn. 120 ₺ dahil, %20 → 100 ₺ mal + 20 ₺ KDV. Genel toplam her iki modda da KDV dâhildir; kâr/marj her iki modda da KDV hariç net üzerinden hesaplanır. Satır bazlı farklı KDV oranları ve genel indirim iki modda da desteklenir.
Önemli — damgalama: Seçilen mod, teklif oluşturulurken o teklife işlenir (damgalanır). Ayarı sonradan değiştirseniz de daha önce oluşturulmuş tekliflerin rakamları değişmez — her teklif kendi damgasıyla hesaplanır. Bu, geçmiş belgelerin tutarlılığı ve denetlenebilirliği içindir. Aktif mod; teklif hazırlama ekranında, PDF çıktısında ve müşteriye giden web bağlantısında küçük bir ibareyle ("Fiyatlara KDV dâhildir/dâhil değildir") gösterilir.
Not: Bu ayar yalnız CRM tekliflerini ilgilendirir; Satış Faturası / Sipariş / Hızlı Satış modüllerinin ayrı Fiyatlar_KdvDahil ayarından bağımsızdır.
Yetkisiz kullanıcı davranışı: Alış iskonto ve maliyet alanları teklif formunda da yalnızca yetkili kullanıcıya görünür. Yetkisi olmayan kullanıcı teklifi kaydettiğinde maliyet yine sunucuda otomatik hesaplanır (stok kartı varsayılan iskontosuyla); veri bütünlüğü bozulmaz. Ancak yetkisiz bir kullanıcı taslağı düzenleyip kaydederse, satır bazlı iskonto override'ları stok kartı varsayılanına geri döner.
Doküman Ekleme (Teklif / Fırsat / Cari)

- İlgili kaydın (potansiyel/cari, fırsat veya teklif) panelinde/detayında "Dokümanlar" sekmesine gidin.
- Dosya Seç ve isteğe bağlı bir açıklama girip Yükle butonuna basın (tek dosya en fazla 20 MB).
- Yüklenen dosyalar listede görünür; satırdaki göze tıklayınca dosya (PDF/görsel için) tarayıcı içinde açılır, indirme linkiyle indirilebilir, çöp kutusu ile silinebilir.
Tanımlar

🎬 Videolu anlatım: Pipeline Aşamaları ve Kayıp Sebepleri · Var/Yok Kontrolleri
- Etiketler (Tag): Cari veya tekliflere serbestçe atanabilen, renk seçilebilen etiketler; ilgili tanım sayfasından eklenir/düzenlenir/silinir.
- Ünvanlar: İletişim kişisi kayıtlarında kullanılan unvan (ör. "Satın Alma Müdürü") listesi.
- Pipeline Aşamaları: Fırsatların geçtiği aşamalar (ör. Yeni, Görüşülüyor, Teklif Verildi, Kazanıldı, Kaybedildi); her aşamaya sıra no, renk, olasılık % ve "Kazandı"/"Kaybetti" bayrağı atanır — bu bayraklar Pipeline kanban'da hangi kolona bırakılınca hangi modalın (kazanma/kayıp) açılacağını belirler.
- Kayıp Sebepleri: Bir fırsat "Kaybedildi" aşamasına taşınırken seçilebilecek sebep listesi.
- Teklif Şablonları ve İçerik Blokları: İlgili tanım sayfasından yönetilir — her şablonun kendi vurgu rengi, logosu, kapak/mektup/ön-dip metin HTML'i vardır; "Şablon Düzenle" ekranında merge alanları (placeholder) kullanılabilir. Ayrıca burada tekrar kullanılabilir içerik blokları da tanımlanır (Sihirbaz Adım 3'teki "Blok" menüsünde listelenir).
- Alanları Düzenle (Potansiyel formu): Potansiyel panelindeki alan ayarları ekranından, şirket bazında hangi potansiyel formu alanının gösterileceği ve zorunlu olacağı özelleştirilebilir.
Alan Açıklamaları
Potansiyel Müşteri Formu
| Alan | Açıklama |
|---|---|
| İsim/Unvan * | Firma veya kişi adı; zorunlu. |
| Kod | Serbest referans kodu. |
| Durum | Yeni, İletişim Kuruldu, Değerlendirilmede, Nitelikli, Niteliksiz, Kazanıldı, Kaybedildi (huni sırasıyla). |
| Telefon / E-posta | İletişim bilgileri. |
| İl / İlçe / Adres | Konum bilgileri. |
| Vergi No / Vergi Dairesi | Kurumsal kimlik bilgisi. |
| Kaynak Kanal | Web, Fuar, Referans, Soğuk Arama, Diğer. |
| Bölge / Saha | Serbest metin, satış bölgesi/saha sınıflandırması. |
| Notlar | Serbest not alanı. |
| Web Sitesi / Facebook / LinkedIn / Instagram / X | Yalnız http(s) ile başlayan geçerli adresler kabul edilir. |
| IYS İzin Tarihi / Kaynağı | Pazarlama izni takibi. |
Fırsat Formu
| Alan | Açıklama |
|---|---|
| Başlık * | Fırsatın kısa tanımı. |
| Aşama * | Pipeline aşaması; varsayılan sıradaki ilk aktif (kazanma/kayıp olmayan) aşama. |
| Cari * | Fırsatın bağlı olduğu müşteri/potansiyel. |
| İletişim Kişisi | Cariye bağlı kişi (opsiyonel). |
| Beklenen Tutar | TRY cinsinden tahmini tutar (fiyatlama satırları ayrıca girilebilir). |
| Beklenen Kapanış * | Tahmini kapanış tarihi. |
| Atanan Kullanıcı * | Fırsatın sorumlusu; varsayılan oturum sahibi. |
| Açıklama | Fırsatın detayı/müşteri talebi. |
| Notlar | İç not, müşteriye gösterilmez. |
Aktivite Formu
| Alan | Açıklama |
|---|---|
| Tip * | Ziyaret, Görev, Telefon, Email, Toplantı. |
| Başlık * | Aktivitenin kısa açıklaması. |
| Cari * | Yeni kayıtta zorunlu; düzenlemede değiştirilemez. |
| Atanan * | Aktiviteden sorumlu kullanıcı. |
| Başlangıç * / Bitiş | Tarih-saat; bitiş başlangıçtan önce olamaz. |
| Süre (dk) | Girilirse bitiş otomatik hesaplanır. |
| Durum | Planlandı, Devam Ediyor, Tamamlandı, İptal. |
| Konum | Serbest metin veya haritadan seçilen adres. |
| Açıklama / Sonuç | Aktivite detayı ve (tamamlandığında) sonuç notu. |
Teklif Sihirbazı — Önemli Alanlar
| Alan | Açıklama |
|---|---|
| Şablon | Boşsa "şablonsuz" klasik PDF; seçilirse kapak/mektup/metinler otomatik ön dolar. |
| Müşteri * / İlgili Kişi / Bağlı Fırsat | Teklifin muhatabı; fırsat seçilince satırlar/kur devredilebilir. |
| Konu * | Teklif başlığı; mailin/PDF'in konusuna yansır. |
| Teklif Tarihi | Otomatik atanır, değiştirilemez. |
| Geçerlilik Tarihi | Müşterinin karar verebileceği son tarih; süresi geçince müşteri linki karar formu göstermez. |
| Döviz / Kur | Ürün satırındaki stoktan otomatik güncellenir; karışık dövizde satır bazlı kur girilir. |
| Teslimat Adresi | Boşsa müşteri seçilince cari adresinden otomatik doldurulur. |
| Teklifi Sunan (Ünvan/İmza) | Oturum sahibi kullanıcıya özel, tüm tekliflerinde kullanılır. |
| Kapak/Sunum Mektubu/Ön Metin/Dip Metin | Zengin metin, merge alanı ve içerik bloğu destekli. |
| Ürün/Hizmet Satırları | Stok, Açıklama, Miktar, Birim Fiyat, İskonto%, KDV%, Döviz; Grup Başlığı ile bantlanabilir. |
| Alış İsk% (satır) | Yalnız "Teklif Maliyet Raporu" yetkisi olan kullanıcıya görünür. Stok kartındaki alış iskonto varsayılanı önerilir, satır bazında değiştirilebilir; birim alış maliyeti hesabında kullanılır (bkz. Teklif Maliyet Raporu). Boş bırakılırsa stok kartı varsayılanı geçerlidir. |
| Toplam İş Adedi | Opsiyonel; başlık miktarları toplamıyla karşılaştırılıp uyarı verir (engellemez). |
| Genel İndirim % | Tüm satırlara uygulanan ek indirim. |
Sık Karşılaşılan Durumlar / İpuçları / Uyarılar
- Sadece Taslak teklifler düzenlenebilir/gönderilebilir: Gönderildi/Beklemede/Kabul Edildi vb. durumdaki bir teklifi düzenlemek için önce "Revize Et" ile yeni bir taslak revizyon oluşturmak gerekir.
- Şablonlu veya başlık/Toplam İş Adedi içeren teklifler klasik formda düzenlenemez: sistem otomatik olarak Sihirbaz'a yönlendirir; aksi halde bu alanlar sessizce silinebilirdi.
- "CRM sadece kendi kayıtları" kısıtı: bu ayar açık kullanıcılar başka bir plasiyerin/atananın carisine, fırsatına, aktivitesine veya teklifine erişemez; dashboard, liste, Excel çıktısı ve AJAX uçları dahil her yerde sunucu tarafında zorlanır (arayüzde gizlense de bypass edilemez).
- Müşteri teklif linkini yalnızca bir kez kararlaştırabilir: Kabul/Red verildikten sonra "Bu bağlantı kapanmıştır." mesajı görünür, tekrar karar değiştirilemez. Yeni bir teklif revizyonu gönderilirse eski link üzerinden karar alınamaz, müşteriye yeni link verilmelidir.
- Genel İndirim % ve satır İskonto/KDV % değerleri 0-100 aralığında olmalıdır; aralık dışı değerler hem sihirbazda hem fiyatlama modalında reddedilir.
- Teklif listesi tarih aralığı boş açılır: liste ilk açılışta tüm teklifleri gösterir. Hazırlayan, müşteri, durum ve tarih süzgeçleri sayfalar arasında ve Excel çıktısında korunur. "CRM sadece kendi kayıtları" kısıtı olan kullanıcılarda Hazırlayan süzgeci görünmez.
- Eskiden kaydedilmiş TL tekliflerde KDV farkı görebilirsiniz: indirim artık KDV'den önce uygulandığı için, güncellemeden önce kaydedilmiş bir teklifin detay ekranı kayıtlı (eski) KDV değerini, PDF'i ise yeni hesabı gösterebilir. Teklifi bir kez yeniden kaydettiğinizde ikisi eşitlenir. Genel toplam her iki durumda da aynıdır.
- İmza/logo yükleme sınırları: potansiyel logosu ve teklif imzası PNG/JPG(/WEBP logo için) ile sınırlıdır, imza en fazla 1 MB, logo en fazla 2 MB; doküman eki en fazla 20 MB.
- Web linki idempotent üretilir: aynı teklif için "Web Linki" tekrar tekrar üretilse de (silinmediği sürece) aynı token/URL döner — müşteriye birden fazla farklı link göndermekten çekinmeye gerek yoktur.
- Aktivite bitiş tarihi kontrolü: hem form hem panel (AJAX) kaydında sunucu tarafında da doğrulanır; tarayıcı doğrulaması atlatılsa bile kayıt reddedilir.
- Excel içe aktarımda en az CariKod veya CariAd'dan biri ve Başlık zorunludur; boş satırlar otomatik atlanır, hata veren satırlar (en fazla 10 tanesi) mesaj olarak gösterilir.
Dövizli Teklifler ve TL Karşılığı

Dövizli tekliflerde toplam blokları teklif dövizinde gösterilir; hemen yanında güncel (veya teklif tarihli) kurla TL karşılığı yer alır. Genel İndirim de teklifin kendi para biriminde gösterilir: sihirbaz özetinde (kaydetmeden, anında), teklif detayında, fırsat panelindeki teklif bloğunda ve PDF'te aynı üç satır görünür — "EUR Toplam", "Genel İndirim (%…)" ve "EUR Net Toplam". Karışık para birimli tekliflerde her para birimi bloğu kendi indirimini gösterir. Teklif listesindeki genel toplam da belgenin para birimindedir; karışık dövizli tekliflerde tutarlar alt alta listelenir ve Excel çıktısında ayrıca "TL Karşılığı" sütunu bulunur. Teklif sihirbazında para birimi seçildiğinde kur alanı TCMB kurundan otomatik dolar; dilerseniz elle değiştirirsiniz. Maliyet Raporu, kur ve stok iskonto varsayılanlarını dikkate alarak hesaplar.
Müşteri çıktısı: Müşteriye giden teklif PDF'i yalnızca teklifin kendi dövizindedir — TL çevrimleri ve kur ibareleri yalnız iç ekranlarda görünür.
Saha Kayıtları Haber Akışı'nda

Saha ziyaret kayıtları CRM Haber Akışı'na düşer; paylaşımlara konum (GPS) ve fotoğraf eklenebilir. Cari seçilerek yapılan paylaşım, o carinin notlarına da otomatik işlenir. Akış kartındaki hızlı kısayollarla paylaşımdan tek tıkla Aktivite, Fırsat veya Teklif oluşturabilirsiniz.