İçeriğe geç
ceaksan
gtm

Tally Form UTM Takibi ve Dönüşüm Rehberi: Hidden Fields, Webhook ve GTM

Tally formlarında UTM parametreleri hidden fields, webhook ve Google Tag Manager ile nasıl izlenir. GA4, Meta Ads ve CRM akışları için tam dönüşüm takibi kurulumu.

27 Mar 2026 4 dk okuma
TL;DR

Tally, ücretsiz planında bile webhook, hidden fields ve sınırsız form desteği sunan bir form platformu. Dönüşüm takibi için postMessage event'leri (ücretsiz) veya dataLayer event'leri (Pro) kullanılabilir. GTM entegrasyonu, hidden fields ile kaynak zenginleştirme, webhook ile server-side veri aktarımı ve otomasyon araçları ile CRM entegrasyonu bu rehberde adım adım ele alınıyor.

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 tetiklenir
    • event_category: Sayfa URL’si
    • event_label: Page [X] (sayfa numarası)
  • Tally.FormSubmitted: Form gönderildiğinde tetiklenir
    • event_category: Sayfa URL’si
    • event_label: Form başlığı
not

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ı:

  1. Trigger tipi: Custom Event
  2. Event adı: Tally.FormSubmitted
  3. Data Layer Variable: eventModel.event_label ile 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. postMessage yö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.so domain’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:

  1. Form editöründe şu hidden field’ları oluşturun: utm_source, utm_medium, utm_campaign, utm_term, utm_content
  2. 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
  1. 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-Signature header’ı (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ış:

  1. Trigger: Tally > New Submission
  2. Action: HubSpot > Create/Update Contact
  3. 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ı

ÖzellikTallyTypeform
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 entegrasyonuZapier/Make/webhookDoğrudan
Google SheetsDoğrudanDoğrudan
Zapier/MakeÜcretsizÜcretsiz

Test ve Doğrulama

Kurulumu tamamladıktan sonra şu kontrolleri yapın:

  1. postMessage: Tarayıcı konsolunda window.addEventListener("message", (e) => console.log(e.data)) ile form event’lerinin geldiğini doğrulayın
  2. GTM Preview: dataLayer’da tally_form_submitted (postMessage yöntemi) veya Tally.FormSubmitted (code injection yöntemi) event’ini kontrol edin
  3. Hidden fields: Form URL’sine ?source=test&utm_source=test ekleyin, gönderin, Submissions tablosunda değerlerin göründüğünü doğrulayın
  4. 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
  5. CRM: Otomasyon aracı üzerinden oluşturulan contact’ın kaynak bilgisini kontrol edin
not

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.

Önemli Noktalar
  • 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
Sık Sorulan Sorular (FAQ)
+ 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.