Web sitesindeki teklif formlarını CRM’ye otomatik aktarmak için form gönderimini doğrudan “müşteri oluştu” diye kaydetmek yerine önce sunucuda doğrulayın, her başvuruya benzersiz bir talep kimliği verin, aynı kişi veya şirketten gelen tekrarları kontrollü biçimde eşleştirin ve yalnız doğrulanan veriyi CRM’de ilgili satış kuyruğuna gönderin. Sağlam akış; web formu → sunucu doğrulaması → spam ve tekrar kontrolü → CRM talep kaydı → ürün/bölgeye göre atama → satış görevi → teklif ve sonuç takibi şeklindedir. En kritik nokta, kullanıcıya “talebiniz alındı” mesajı gösterirken CRM aktarımı başarısız olmuşsa kaydı kaybetmemektir.

Teklif formunu CRM’ye bağlamak neyi çözer?

Form bildirimleri yalnız e-posta kutusuna düşüyorsa satış ekibi bir başvuruyu iki kez arayabilir, başka birini tamamen kaçırabilir veya hangi kampanyanın gerçek teklife dönüştüğünü göremeyebilir. CRM entegrasyonu her başvuruyu tek bir kayıt altında toplar; ürün, şirket, kaynak ve takip durumunu standartlaştırır. Böylece “kaç form geldi?” yerine “kaç nitelikli talep doğrulandı, kaç teklif çıktı ve hangileri sonuçlandı?” soruları cevaplanabilir.

E-posta bildirimi ile CRM otomasyonu arasındaki fark
KonuYalnız form e-postasıForm → CRM otomasyonu
Kayıt kimliğiKonu satırı veya gelen kutusu sırasıHer gönderim için benzersiz talep ID
SorumluKimin gördüğüne bağlıKural veya satış kuyruğuyla atanır
Tekrar başvuruİkinci e-posta ayrı görünürAynı kişi/şirket eşleştirilebilir, yeni ihtiyaç ayrı fırsat olabilir
KaynakUTM bilgisi e-postada kaybolabilirİlk ve son kaynak alanları tutulabilir
Teklif sonucuBaşka dosyada izlenirTalep → fırsat → teklif → sonuç zinciri
Hata takibiE-posta ulaşmadıysa görünmeyebilirKuyruk, tekrar deneme ve hata durumu izlenebilir

B2B teklif formunda hangi alanlar gerçekten gerekli?

Formu CRM’ye bağlamadan önce formun kendisini sadeleştirin. Akhisar’da ambalaj üretimi yapan kurgusal bir işletme düşünelim: her ziyaretçiden vergi numarası, tam adres ve onlarca teknik alan istemek yerine ilk değerlendirmeyi yapmaya yetecek bilgileri toplayabilir. Ürün türü, yaklaşık ölçü veya hacim, adet, teslim bölgesi ve gerekli dosya ilk temas için yeterli olabilir; satış temsilcisi ayrıntıları görüşmede tamamlar.

Kurgusal ambalaj üreticisi için ilk teklif formu
AlanZorunlulukCRM kullanımı
Ad soyadZorunluİletişim kişisi
Şirket adıB2B’de genellikle zorunluŞirket eşleştirme ve tekrar kontrolü
Telefon veya e-postaEn az biri doğrulanabilir olmalıGeri dönüş kanalı
Ürün / ihtiyaçZorunluÜrün kuyruğuna yönlendirme
Adet aralığıTercihen zorunluKapasite ve teklif ön elemesi
Teslim ili/ülkesiİhtiyaca göreBölgesel satış veya lojistik kontrolü
Teknik dosyaİhtiyaca göreÖlçü/çizim değerlendirmesi; güvenli dosya politikası gerekir
AçıklamaOpsiyonelÖzel koşullar; serbest metin güvenilir veri kabul edilmez

Form gönderildiğinde ilk kontrol tarayıcıda değil sunucuda yapılmalı

Tarayıcıdaki required, e-posta biçimi veya JavaScript kontrolleri kullanıcı deneyimini iyileştirir; güvenlik sınırı değildir. İstek doğrudan API uç noktasına gönderilebilir. Bu nedenle sunucu, alan uzunluklarını, beklenen veri tiplerini, izin verilen seçenekleri ve dosya türü/boyut politikalarını yeniden doğrulamalıdır. OWASP, sözdizimsel doğrulama ile iş kuralı doğrulamasını ayrı düşünmeyi ve mümkün olduğunda izin verilen değer yaklaşımını kullanmayı önerir.

Bot koruması kullanıyorsanız yalnız tarayıcıda bir doğrulama rozeti göstermek yeterli değildir. Örneğin Cloudflare Turnstile, tokenın sunucu tarafında Siteverify ile doğrulanmasını zorunlu tutar; tokenlar sürelidir ve yeniden kullanım kontrolü vardır. CRM kaydını ancak formun kendi sunucu kontrolleri ve varsa anti-bot doğrulaması geçtikten sonra oluşturun.

  • Alanları trim/normalize edin; şirket adı veya telefon için körlemesine tüm karakterleri silmeyin.
  • Kullanıcının seçebileceği ürün tipi gibi alanlarda tanımlı değer listesini doğrulayın.
  • Serbest metni komut, SQL veya HTML olarak çalıştırmayın; depolama ve gösterim katmanında bağlama uygun kaçış uygulayın.
  • Dosya yükleme gerekiyorsa yalnız dosya uzantısına güvenmeyin; boyut, içerik türü, depolama konumu ve erişim yetkisini ayrı politikayla yönetin.
  • Form endpointi için makul rate limit ve bot doğrulama kuralları kullanın; başarısız doğrulama ayrıntılarını kullanıcıya iç sistem bilgisi olarak göstermeyin.

Her form gönderimine neden benzersiz talep ID vermelisiniz?

Form başarıyla sunucuya ulaştığında CRM’den bağımsız bir talep kimliği üretmek hata ayıklamayı ve tekrar denemeyi kolaylaştırır. Örneğin WEB-2026-09-001842 gibi gözle okunabilir bir referans kullanıcıya gösterilebilir; sistem içinde ise UUID gibi çakışma riski düşük bir anahtar kullanılabilir. Aynı istek ağ problemi nedeniyle iki kez gönderilirse istemci veya sunucu idempotency anahtarıyla ikinci talebin yeni bir kayıt mı yoksa aynı gönderimin tekrarı mı olduğunu ayırabilir.

Aynı müşteri tekrar form gönderirse yeni kişi mi, yeni fırsat mı oluşmalı?

Tekrar kontrolünde tek bir evrensel kural yoktur. Aynı e-posta adresinin beş dakika içinde aynı ürün ve aynı metinle ikinci kez gelmesi büyük olasılıkla yeniden gönderimdir; altı ay sonra aynı şirketin farklı ürün için başvurması ise yeni satış fırsatı olabilir. CRM’de kişi/şirket kimliği ile fırsat kimliğini ayırmak bu nedenle önemlidir. “E-posta aynıysa kaydı at” yaklaşımı gerçek yeni talepleri kaybettirebilir.

Tekrar başvuruyu sınıflandırma örneği
SinyalÖrnek yorumÖnerilen işlem
Aynı idempotency anahtarıAğ tekrar denemesiYeni kayıt oluşturma; önceki sonucu döndür
Aynı kişi + aynı form + birkaç dakikaÇift tıklama veya sayfa yenilemeTek talep altında birleştir, olay kaydı tut
Aynı şirket + farklı ürünYeni ihtiyaçAynı şirket/kişi altında yeni fırsat aç
Aynı kişi + aylar sonraYeni satın alma döngüsüYeni talep/fırsat; geçmiş ilişkiyi koru
Farklı kişi + aynı şirketAynı kurumdan başka yetkiliKişiyi ayrı, şirketi ortak tut
Şüpheli seri gönderimBot/spam olasılığıİnceleme veya otomatik spam kuyruğu; satış temsilcisine düşürme

Web formu alanları CRM alanlarına nasıl eşlenmeli?

Formdaki alan adlarını doğrudan CRM’nin kullanıcıya görünen etiketlerine bağlamak kırılgandır. Arada sürümlenmiş bir eşleme katmanı kullanın. Web formunda “urun_tipi” alanı CRM’de “interest_product_family” alanına gidebilir; CRM yöneticisi etiketi değiştirdiğinde entegrasyon bozulmaz. Kaynak sistem, form sürümü ve oluşturulma zamanı gibi teknik alanları da görünür veya gizli denetim alanlarında saklayın.

Örnek web formu → CRM alan eşlemesi
Form alanıCRM alanıNot
request_idexternal_request_idTekrar denemede aynı kalır
company_nameaccount/companyNormalize edilmiş şirket adı; otomatik kesin eşleşme dikkatli yapılır
contact_namecontactKişi şirketten ayrı tutulur
email / phonecontact channelsGerekli kanal; biçim doğrulaması ve kaynak bilgisi
product_typeinterest_product_familySatış kuyruğu için kontrollü değer
quantity_rangeopportunity_quantityKesin sipariş değildir; tahmini ihtiyaç
delivery_regionterritoryBölgesel atama varsa kullanılır
utm/sourcelead_source fieldsİlk temas ve kampanya analizi
form_versionintegration metadataForm değişikliklerinde geriye dönük hata ayıklama

Talep hangi satış temsilcisine atanmalı?

Atama, çalışan isimlerini kod içine sabitlemek yerine iş kuralıyla yapılmalıdır. Örneğin ambalaj türüne göre ürün uzmanı, ülkeye göre ihracat ekibi veya mevcut müşteriyse hesap sorumlusu seçilebilir. Hiçbir kurala uymayan talep sahipsiz kalmamalı; ortak bir “inceleme kuyruğu”na düşmelidir. İzinli tatil, çalışan ayrılığı veya kapasite değişikliği gibi durumlarda kuralı kod yayını gerektirmeden değiştirebilmek operasyonu kolaylaştırır.

Atama karar tablosu — kurgusal örnek
KoşulAtamaEk görev
Yurt içi standart ambalajİç satış kuyruğuİlk kontrol görevi
İhracat / yabancı dilİhracat satış kuyruğuDil ve teslim ülkesini doğrula
Teknik çizim yüklenmiş özel üretimTeknik satış kuyruğuDosya erişimi ve üretilebilirlik incelemesi
Mevcut müşteriMevcut hesap sorumlusuYeni fırsatı aynı şirkete bağla
Kural bulunamadıGenel inceleme kuyruğuYöneticiye sahiplik görevi

CRM API’si hata verirse form talebi nasıl korunur?

Entegrasyonun en kritik testi, CRM normal çalışırken değil çalışmadığında yapılır. Web sunucusu önce kendi kalıcı kaydını oluşturabilir ve durumu “CRM aktarımı bekliyor” yapabilir. İşleyici CRM’ye gönderdiğinde başarıyla dönen CRM kayıt ID’sini saklar. Zaman aşımı veya geçici sunucu hatasında aynı request_id ile tekrar dener. Doğrulama hatası gibi kalıcı sorunlarda sonsuz tekrar yerine “manuel inceleme” durumuna geçer.

CRM aktarım durum makinesi
DurumAnlamSonraki adım
receivedForm doğrulandı ve kalıcı kaydedildiCRM kuyruğuna al
syncingAktarım işleniyorAynı işi paralel ikinci worker çalıştırmasın
syncedCRM ID alındıSatış ataması/görevini doğrula
retryable_errorZaman aşımı veya geçici servis sorunuArtan bekleme ile tekrar dene
needs_reviewAlan eşleşmesi veya kalıcı doğrulama sorunuİnsan incelemesi
spam/rejectedGüvenlik veya iş kuralı nedeniyle reddedildiSatış kuyruğuna göndermeden logla

Tekrar denemelerde yeni CRM kişisi veya fırsatı üretmemek için dış talep kimliğini CRM’de mümkünse benzersiz dış anahtar olarak kullanın. CRM bu özelliği sunmuyorsa entegrasyon kendi eşleme tablosunda request_id → crm_record_id ilişkisini saklamalıdır. Sistem, CRM’den zaman aşımı aldı diye ilk çağrının başarısız olduğunu varsaymamalıdır; çağrı karşı tarafta tamamlanmış olabilir.

Kurgusal Akhisar ambalaj üreticisinde formdan teklife örnek akış

Akhisar’da gıda üreticilerine özel ambalaj yapan kurgusal “Ege Paket” işletmesini düşünelim. Web formundan Manisa’daki bir zeytin ürünleri firması 20 bin adet baskılı kutu için talep gönderiyor. Bu şirket, müşteri veya rakam gerçek bir Akhisar Dijital projesi değildir; yalnız süreci somutlaştırmak için kullanılır.

  • 1. Ziyaretçi şirket adı, iletişim, kutu tipi, yaklaşık adet, teslim bölgesi ve teknik PDF ile formu gönderir.
  • 2. Sunucu alanları ve Turnstile gibi kullanılıyorsa anti-bot tokenını doğrular; talebe UUID ve kullanıcıya gösterilecek kısa referans verir.
  • 3. Dosya güvenli depoya alınır; CRM kaydında doğrudan herkese açık dosya URL’si yerine kontrollü referans tutulur.
  • 4. Şirket adı ve iletişim kanalları normalize edilir; aynı şirketin mevcut CRM hesabı varsa yeni fırsat ona bağlanır.
  • 5. Ürün tipi “özel baskılı kutu” olduğu için teknik satış kuyruğuna atanır; ilk inceleme görevi açılır.
  • 6. Satış temsilcisi ihtiyacı doğrular. Form göndermek otomatik olarak “nitelikli fırsat” sayılmaz.
  • 7. Teklif oluşturulduğunda teklif numarası fırsata bağlanır; revizyonlar eski teklifin üzerine yazılmaz.
  • 8. Kazanıldı/kaybedildi sonucu ve gerçek sipariş tutarı ayrı kaydedilir; kampanya kaynağı varsa form sayısıyla değil bu sonuçlarla karşılaştırılır.

Satış ekibine hangi bildirimler gönderilmeli?

Her yeni form için herkese e-posta atmak kısa sürede bildirim yorgunluğu oluşturabilir. CRM içinde sahip ataması ve görev, ana çalışma yüzeyi olmalıdır. Kritik veya zaman hassas taleplerde e-posta/Slack benzeri ek bildirim kullanılabilir; fakat bildirim başarısız olduğunda CRM kaydı kaybolmamalıdır. Bir talebin atamasız kalması, belirlenen sürede ilk işlem görmemesi veya tekrar denemelerin tükenmesi asıl alarm konularıdır.

Bildirim ve görev matrisi
OlayCRM göreviEk bildirim
Yeni doğrulanmış talepSorumluya ilk incelemeYüksek öncelikte opsiyonel
Atamasız talepİnceleme kuyruğuYönetici uyarısı
Belirlenen sürede işlem yokGecikme göreviSorumlu + gerekirse yönetici
CRM senkronizasyonu sürekli hataTeknik inceleme kaydıTeknik sorumlu
Teklif revizyonu bekliyorSatış takip göreviTakvime göre
Kazanıldı/kaybedildiDurumu kapat ve neden kaydetGenellikle anlık bildirim gerekmez

Formun hangi kaynaktan geldiği nasıl korunmalı?

UTM parametreleri, yönlendiren sayfa, formun bulunduğu hizmet sayfası ve varsa reklam tıklama tanımlayıcıları ilk talep kaydında saklanabilir. Kaynak hiç gelmediyse “organik” diye tahmin etmek yerine “bilinmiyor/doğrudan” gibi açık bir durum kullanın. Daha sonra CRM’de nitelikli talep, teklif ve satış olaylarını aynı fırsata bağlayarak hangi kanalın gerçek satış sürecine katkı verdiğini ölçebilirsiniz. Bu yaklaşım, yalnızca Google Ads panelinde görülen form sayısından farklıdır.

Formdan CRM’ye veri aktarırken hangi güvenlik sınırları korunmalı?

Web formu internetten gelen güvenilmeyen girdidir; CRM ise satış ekibinin günlük kullandığı iç sistemdir. Bu iki alan arasında doğrulama ve yetki katmanı olmalıdır. API anahtarlarını tarayıcı koduna koymayın, CRM gizli anahtarlarını sunucu ortamında tutun, CRM’den yalnız entegrasyon için gereken izinleri isteyin ve loglara gereksiz kişisel veri veya yüklenen belge içeriği yazmayın. Dosya indirme bağlantıları süreli veya yetkili olmalı; herkesçe tahmin edilebilir URL’lerle teknik çizim paylaşılmamalıdır.

İlk 30 günde form → CRM otomasyonu nasıl devreye alınır?

  • 1–3. gün: Mevcut formları, satış ekibinin gerçekten kullandığı CRM alanlarını ve teklif adımlarını çıkarın.
  • 4–7. gün: Talep, kişi, şirket ve fırsat kavramlarını ayırın; request_id ve kaynak alanlarını belirleyin.
  • 8–11. gün: Sunucu doğrulaması, anti-bot kontrolü, dosya politikası ve kalıcı giriş kaydını kurun.
  • 12–15. gün: CRM alan eşlemesi, dış kimlik ve tekrar kontrolünü test verileriyle uygulayın.
  • 16–19. gün: Ürün/bölge ataması, sahipsiz talep kuyruğu ve satış görevlerini ekleyin.
  • 20–23. gün: CRM kesintisi, zaman aşımı, aynı formun iki kez gönderilmesi ve kısmi hataları zorlayarak test edin.
  • 24–26. gün: Kaynak/UTM ve teklif sonuçlarını rapora bağlayın; form sayısı ile nitelikli talebi ayırın.
  • 27–30. gün: Küçük bir trafik yüzdesi veya tek formda canlı pilot yapın; kayıp ve çift kayıt olmadığını doğruladıktan sonra diğer formlara genişletin.

Canlıya almadan önce 12 maddelik kontrol listesi

Form → CRM otomasyonu yayın kontrolü
KontrolBeklenen durum
Sunucu doğrulamasıTüm kritik alanlar backend’de tekrar doğrulanıyor
Bot korumasıKullanılıyorsa token sunucu tarafında doğrulanıyor
Talep IDHer gönderimde benzersiz, tekrar denemede aynı kalabilen kimlik var
Kalıcı kayıtCRM kapalı olsa bile doğrulanmış talep kaybolmuyor
Tekrar kontrolüÇift tıklama yeni fırsat üretmiyor; gerçek yeni ihtiyaç silinmiyor
Şirket/kişi ayrımıBir şirketin birden fazla yetkilisi destekleniyor
Alan eşlemeForm ve CRM alanları sürümlenmiş eşleme üzerinden gidiyor
CRM yetkisiAPI anahtarı minimum gerekli yetkiye sahip ve istemcide görünmüyor
Dosya güvenliğiTeknik dosyalar kontrollü erişimli depoda
AtamaKurala uymayan talep sahipsiz kalmıyor; inceleme kuyruğuna düşüyor
Hata kuyruğuGeçici ve kalıcı hatalar ayrılıyor; manuel inceleme yolu var
ÖlçümForm, nitelikli talep, teklif ve satış ayrı metrikler

Sık sorulan sorular

Web formunu doğrudan CRM API’sine tarayıcıdan göndermek doğru mu?

Genellikle hayır. CRM gizli anahtarlarını istemciye çıkarmamak ve doğrulama, spam kontrolü, tekrar kontrolü ile hata kuyruğunu merkezi yönetmek için form verisini önce sunucu katmanına gönderin.

CRM çalışmıyorsa form tamamen hata mı vermeli?

Doğrulanmış talebi kendi kalıcı veritabanınıza veya dayanıklı kuyruğunuza kaydedebiliyorsanız kullanıcı kaydını koruyup CRM aktarımını tekrar deneyebilirsiniz. Henüz kalıcı kayıt yoksa başarı mesajı göstermeyin.

Aynı e-posta adresinden gelen ikinci formu silmeli miyim?

Hayır. Aynı kişi yeni bir ürün veya yeni satın alma döngüsü için tekrar başvurabilir. Kişi/şirket kimliğini fırsattan ayırın; yalnız gerçekten aynı gönderimin tekrarı olan kayıtları idempotency veya kısa zamanlı tekrar kontrolüyle birleştirin.

Formdan gelen her kayıt nitelikli müşteri sayılır mı?

Hayır. Form gönderimi yeni talep aşamasıdır. İhtiyaç, bölge, bütçe veya üretilebilirlik gibi işletmenizin kriterleri doğrulandıktan sonra nitelikli fırsata dönüştürülmelidir.

Turnstile gibi bot koruması eklemek yeterli mi?

Yalnız istemci tarafında widget göstermek yeterli değildir. Cloudflare dokümantasyonuna göre Turnstile tokenı sunucuda Siteverify API ile doğrulanmalıdır. Formun kendi alan ve iş kuralı kontrolleri de ayrıca yapılmalıdır.

Formdan CRM’ye hangi pazarlama bilgileri aktarılmalı?

İhtiyaca göre UTM parametreleri, formun geldiği sayfa, yönlendiren kaynak ve varsa uygun reklam tıklama tanımlayıcısı saklanabilir. Kaynak verisi yoksa tahmin etmek yerine açıkça bilinmiyor/doğrudan olarak kaydedin.