Tally, ücretsiz planında bile sınırsız form, sınırsız yanıt ve webhook desteği sunan bir form platformu. Typeform’un aksine çoğu özelliği ücretsiz katmanda mevcut. Ancak dönüşüm takibi konusunda doğru kurulum yapılmazsa form verileri analitik araçlarına ve CRM sistemlerine eksik veya hatalı aktarılır.
Bu rehberde Tally formlarında dönüşüm takibini uçtan uca ele alıyorum: postMessage event’leri, Google Tag Manager entegrasyonu, hidden fields, UTM parametreleri, webhook yapılandırması ve otomasyon araçları ile CRM aktarımı.
Tally Dönüşüm Olayları
Tally, form etkileşimlerini iki farklı mekanizma ile dış dünyaya iletir: postMessage event’leri (ücretsiz, tüm embed türlerinde) ve dataLayer event’leri (GA4 entegrasyonu gerektirir, Pro).
postMessage Event’leri (Ücretsiz)
Tally embed veya popup olarak kullanıldığında ana sayfaya postMessage ile event gönderir. Bu event’leri JavaScript ile yakalayabilirsiniz:
window.addEventListener("message", function (event) {
if (event.data && typeof event.data === "object") {
switch (event.data.event) {
case "Tally.FormLoaded":
// formId
break;
case "Tally.FormPageView":
// formId, page
break;
case "Tally.FormSubmitted":
// id, respondentId, formId, formName, createdAt, fields[]
break;
case "Tally.PopupClosed":
// formId
break;
}
}
});
Tally.FormSubmitted event’i form verilerini de taşır: respondentId, formName, fields[] dizisi ile tüm alan değerlerine erişilebilir. Bu sayede form gönderimini GTM’e, GA4’e veya doğrudan kendi analitik sisteminize iletebilirsiniz.
dataLayer Event’leri (Pro)
GA4 entegrasyonu aktif edildiğinde Tally şu event’leri dataLayer.push() ile gönderir:
Tally.FormPageView: Formun her sayfası görüntülendiğinde tetiklenirevent_category: Sayfa URL’sievent_label:Page [X](sayfa numarası)
Tally.FormSubmitted: Form gönderildiğinde tetiklenirevent_category: Sayfa URL’sievent_label: Form başlığı
dataLayer event’leri için GA4 entegrasyonunun aktif olması gerekir. GTM kullanmak istiyorsanız ancak GA4’e veri göndermek istemiyorsanız, dummy bir Measurement ID (G-XXXXXXXXXX) girebilirsiniz.
Google Tag Manager Entegrasyonu
Tally’nin doğrudan bir GTM bağlantı butonu yoktur. GTM kurulumu iki yöntemle yapılabilir:
Yöntem 1: postMessage ile GTM (Ücretsiz)
Embed veya popup formlar için postMessage event’lerini yakalayıp dataLayer.push() ile GTM’e aktarın:
window.addEventListener("message", function (event) {
if (event.data?.event === "Tally.FormSubmitted") {
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: "tally_form_submitted",
tallyFormId: event.data.payload.formId,
tallyFormName: event.data.payload.formName,
tallyRespondentId: event.data.payload.respondentId,
});
}
});
GTM’de tally_form_submitted adında bir Custom Event trigger oluşturun. Bu trigger tetiklendiğinde GA4 Event, Google Ads Conversion veya diğer platform etiketlerini çalıştırabilirsiniz.
Yöntem 2: Code Injection ile GTM (Pro)
Tally Pro’nun custom domain özelliğini kullanıyorsanız, Code Injection alanına GTM snippet’larını (<head> ve <body>) ekleyebilirsiniz. Bu durumda dataLayer event’leri doğrudan GTM tarafından yakalanır.
GTM’de trigger yapılandırması:
- Trigger tipi: Custom Event
- Event adı:
Tally.FormSubmitted - Data Layer Variable:
eventModel.event_labelile form başlığına erişin
Cross-domain Dikkat Noktaları
Tally formları varsayılan olarak tally.so domain’inde barınır. Bu durum:
- iframe embed: Üçüncü taraf çerez kısıtlamaları (Safari, Firefox) nedeniyle iframe içindeki GA4/GTM tracking çalışmayabilir.
postMessageyöntemi daha güvenilirdir. - Custom domain (Pro): Formlar kendi alan adınızdan sunulur, çerez bağlamı korunur, cross-domain sorunları ortadan kalkar.
- GA4 cross-domain:
tally.sodomain’ini GA4 data stream ayarlarından ek domain olarak tanımlayın.
Hidden Fields ile Veri Zenginleştirme
Tally’de hidden field oluşturmak ücretsiz ve sınırsız. Form editöründe /hidden yazarak gizli alan ekleyebilirsiniz.
Kullanım
Hidden field değerleri URL parametreleri ile geçirilir:
https://tally.so/r/FORM_ID?source=email&ref=newsletter
https://tally.so/r/FORM_ID?source=linkedin&campaign=q1-launch
Birden fazla parametre & ile ayrılır. Değerler form gönderiminde Submissions tablosunda görünür.
Embed Formlar İçin Otomatik Aktarım
Embed edilmiş Tally formlarında sayfanın URL parametreleri otomatik olarak forma aktarılır. Yani ana sayfanız example.com/register?utm_source=google ise, forma eklediğiniz utm_source hidden field’ı otomatik olarak google değerini alır.
Ayrıca originPage adında bir hidden field eklerseniz, formun hangi sayfadan doldurulduğu (örn. /register) otomatik olarak kaydedilir.
Formlar Arası Veri Aktarımı
Bir formun yönlendirme URL’sine hidden field değerlerini ekleyerek formlar arasında veri taşıyabilirsiniz. Çok adımlı süreçlerde (kayıt > onboarding > anket) kullanıcı bilgisini korumak için kullanışlıdır.
UTM Parametreleri
Tally’de ayrı bir “UTM Tracking” ayarı yoktur. UTM takibi hidden fields üzerinden yapılır:
- Form editöründe şu hidden field’ları oluşturun:
utm_source,utm_medium,utm_campaign,utm_term,utm_content - Form bağlantısını UTM parametreleri ile paylaşın:
https://tally.so/r/FORM_ID?utm_source=google&utm_medium=cpc&utm_campaign=marka
- Embed formlarda ana sayfa URL’sindeki UTM parametreleri otomatik olarak aktarılır
Webhook payload’ında hidden field’lar HIDDEN_FIELDS tipi ile iletilir. Otomasyon araçlarında bu alanları CRM’e eşleyebilirsiniz.
Webhook ile Dönüşüm Aktarımı
Tally’nin en güçlü ve tamamen ücretsiz özelliklerinden biri webhook desteği. Her form gönderiminde belirlediğiniz endpoint’e JSON payload gönderilir.
Webhook Kurulumu
Form ayarlarından Integrations > Webhooks bölümüne gidin ve endpoint URL’nizi ekleyin.
Webhook özellikleri:
- Tetikleme: Her yeni form gönderiminde POST isteği
- Format: JSON payload,
eventType: "FORM_RESPONSE" - Güvenlik: İsteğe bağlı signing secret ile
Tally-Signatureheader’ı (SHA256 HMAC, base64) - Custom header: Her webhook isteğine özel HTTP header ekleyebilirsiniz
- Timeout: Endpoint 10 saniye içinde 2XX yanıt dönmelidir
- Retry: Başarısız istekler 5dk, 30dk, 1 saat, 6 saat ve 1 gün aralıklarla yeniden denenir
- Sınır: Form başına sınırsız webhook URL’si
Payload Yapısı
{
"eventType": "FORM_RESPONSE",
"createdAt": "2026-03-27T10:00:00.000Z",
"data": {
"responseId": "abc123",
"formId": "FORM_ID",
"formName": "İletişim Formu",
"fields": [
{
"key": "question_email",
"label": "E-posta",
"type": "INPUT_EMAIL",
"value": "kullanici@example.com"
},
{
"key": "question_utm",
"label": "utm_source",
"type": "HIDDEN_FIELDS",
"value": "google"
}
]
}
}
Webhook İmza Doğrulama
Signing secret tanımladığınızda her istekte Tally-Signature header’ı gönderilir. Endpoint tarafında doğrulama:
import crypto from "crypto";
function verifyTallySignature(payload, signature, secret) {
const hash = crypto
.createHmac("sha256", secret)
.update(payload)
.digest("base64");
return hash === signature;
}
Otomasyon ve CRM Entegrasyonu
Tally’nin doğrudan CRM entegrasyonu yoktur. Ancak webhook ve otomasyon araçları ile hemen hemen her CRM’e bağlanabilirsiniz.
Doğrudan Entegrasyonlar
Tally’nin yerleşik entegrasyonları:
- Google Sheets
- Notion
- Airtable
- Coda
- Slack, Discord
- Linear
- Webhooks
Otomasyon Araçları ile CRM Bağlantısı
Zapier, Make ve n8n ile Tally form verilerini HubSpot, Salesforce, Pipedrive veya herhangi bir CRM’e aktarabilirsiniz.
Zapier örnek akış:
- Trigger: Tally > New Submission
- Action: HubSpot > Create/Update Contact
- Mapping: Tally alanlarını (e-posta, ad, utm_source, vb.) HubSpot property’lerine eşleyin
Webhook üzerinden doğrudan CRM API’sine veri göndermek de mümkündür. Bu yöntem otomasyon aracı maliyetini ortadan kaldırır ancak endpoint geliştirmeyi ve bakımını gerektirir.
Tally vs Typeform: Otomasyon Karşılaştırması
| Özellik | Tally | Typeform |
|---|---|---|
| Webhook | Ücretsiz, sınırsız | Ücretsiz, sınırlı |
| Hidden Fields | Ücretsiz, sınırsız | Ücretsiz |
| GTM (doğrudan) | Pro (code injection) | Pro (code injection) |
| GTM (postMessage) | Ücretsiz | Ücretsiz (dataLayer) |
| HubSpot entegrasyonu | Zapier/Make/webhook | Doğrudan |
| Google Sheets | Doğrudan | Doğrudan |
| Zapier/Make | Ücretsiz | Ücretsiz |
Test ve Doğrulama
Kurulumu tamamladıktan sonra şu kontrolleri yapın:
- postMessage: Tarayıcı konsolunda
window.addEventListener("message", (e) => console.log(e.data))ile form event’lerinin geldiğini doğrulayın - GTM Preview: dataLayer’da
tally_form_submitted(postMessage yöntemi) veyaTally.FormSubmitted(code injection yöntemi) event’ini kontrol edin - Hidden fields: Form URL’sine
?source=test&utm_source=testekleyin, gönderin, Submissions tablosunda değerlerin göründüğünü doğrulayın - Webhook: Form gönderin, webhook event log’unda başarılı teslimatı kontrol edin. Endpoint tarafında payload’ın doğru geldiğini doğrulayın
- CRM: Otomasyon aracı üzerinden oluşturulan contact’ın kaynak bilgisini kontrol edin
Embed formlarda üçüncü taraf çerez kısıtlamaları nedeniyle GTM/GA4 iframe içinde çalışmayabilir. postMessage yöntemi bu sorunu aşar ve tüm modern tarayıcılarda güvenilir çalışır.
- 01 Tally, postMessage ile ücretsiz event gönderimi yapar; dataLayer event'leri GA4 entegrasyonu (Pro) gerektirir
- 02 postMessage yöntemi iframe embed'lerde üçüncü taraf çerez kısıtlamalarını aşar ve tüm tarayıcılarda güvenilir çalışır
- 03 Hidden fields ücretsiz ve sınırsız; embed formlarda ana sayfa URL parametreleri otomatik aktarılır
- 04 Webhook desteği ücretsiz: her form gönderiminde JSON payload, signing secret ile imza doğrulama ve otomatik retry mekanizması
- 05 Tally'nin doğrudan CRM entegrasyonu yok; Zapier, Make veya n8n ile HubSpot, Salesforce gibi CRM'lere bağlanılır
+ Tally formlarında GTM ile dönüşüm takibi nasıl kurulur?
İki yöntem var. Ücretsiz yöntem: postMessage event'lerini JavaScript ile yakalayıp dataLayer.push() ile GTM'e aktarın. Pro yöntem: custom domain özelliğinde Code Injection alanına GTM snippet'larını ekleyin. Her iki durumda da GTM'de Custom Event trigger oluşturmanız gerekir.
+ Tally webhook'u nasıl çalışır?
Her form gönderiminde belirlediğiniz endpoint'e JSON formatında POST isteği gönderilir. Payload'da form verileri, hidden fields ve respondent bilgileri bulunur. Signing secret ile SHA256 HMAC imza doğrulaması yapılabilir. Başarısız istekler 5dk ile 1 gün arasında otomatik yeniden denenir.
+ Tally hidden fields embed formlarda otomatik çalışır mı?
Evet. Embed edilmiş Tally formlarında sayfanın URL parametreleri otomatik olarak forma aktarılır. Sayfanız example.com/register?utm_source=google ise, formda tanımlı utm_source hidden field'ı otomatik olarak google değerini alır.
+ Tally ile Typeform arasındaki temel fark nedir?
Tally, webhook, hidden fields ve sınırsız form gibi özellikleri ücretsiz sunar. Typeform'un doğrudan HubSpot entegrasyonu varken Tally'de CRM bağlantısı otomasyon araçları üzerinden yapılır. GTM entegrasyonunda Tally postMessage yöntemini ücretsiz sunar, Typeform ise dataLayer event'lerini doğrudan ateşler.