Ana içeriğe geç

Analitik – Raporlarınız otomatik olarak güncellenir: Her Survio yanıtını Google Sheets’e aktarın

Tamamlanan her Survio yanıtını otomatik olarak bir Google Sheet’e aktarın ve üzerinde canlı grafik veya pivot tablo oluşturun. n8n ile adım adım rehberi ve indirilmeye hazır iş akışını kullanın.

Yazar: Success Team Survio

Sizin için hangisi uygun?

Durum A – basit, herkese uygun: Yanıtlar geldikçe otomatik güncellenen tek bir Grafik.

Durum B – ekipler ve grup karşılaştırmaları için: Kanal, dil veya istediğiniz herhangi bir sütuna göre filtrelenebilen bir Pivot tablo.

Anketinizde toplanan her Yanıt, gönderildiği anda Google Sheet’te yeni bir satır olarak yer alır. Üzerine bir Grafik veya Pivot tablo kurduğunuzda, Raporunuz kendiliğinden güncellenir: dışa aktarma yok, kopyalama yok, manuel işlem için beklemek yok.
​

Durum A’da elde edeceğiniz Rapor, gelen her yeni Yanıtla otomatik güncellenen basit bir Grafik olacaktır:
​

The report tab with response counts and a column chart


​

Durum B’de ise, örnek olarak kanal seçimi ile filtrelenmiş bir Pivot tablo şöyle görünecektir:
​

Pivot table with a slicer on the Channel column

Sistem nasıl çalışır? Survio, tamamlanan her Yanıtı bir Webhook URL’sine gönderir. Burada, rehberde kullandığımız n8n gibi bir otomasyon aracı bu veriyi alıp bir satır olarak tabloya ekler. Yani Survio ile gönderim yapılır, n8n ile yazılır, sayfanız ise Raporu otomatik oluşturur.

Survio'da Webhooks’a yeni misiniz? Önce Webhooks: yanıtlarınızı gerçek zamanlı olarak diğer araçlarınıza gönderin makalesine göz atın, sonra bu rehbere geri dönün.
​

Neyi inşa edeceksiniz

Her iki Rapor da aynı kurulumdan faydalanır: Tamamlanan her Yanıt, responses adlı bir sekmede ayrı bir satır olur.

Genel bakış

Durum A: tek Grafik

Durum B: segmente göre Rapor

Sonuç

Yanıtların dağılımını özetleyen ve yeni Yanıtlarla otomatik güncellenen bir Grafik

Kanal, dil veya başka herhangi bir sütuna göre filtrelenebilen Pivot tablo

Araçlar

Survio, n8n, Google Sheets

Survio, n8n, Google Sheets (Pivot tablo ve dilimleyici)

En uygun

Her zaman güncel, sade bir Grafik isteyen küçük işletmeler

Farklı grupları kolayca karşılaştırmak isteyen ekipler; örneğin online ve mağaza müşterileri

Başlamadan önce

  • Ücretli bir Survio planında Anket. Webhook’lar Free planlarda sunulmaz, her planın Anket başına izin verdiği webhook sayısı farklıdır (detaylar için webhook makalesine bakın).

  • n8n hesabı, n8n Cloud veya kendi sunucunuzda kurulu sürüm.

  • Google Sheets için bir Google hesabı.

Bu rehberde kısa bir Müşteri memnuniyeti anketi örneği var: Yıldız derecelendirmesi, "Genel olarak ne kadar memnunsunuz?" Tek seçenekli soru, "Bu sefer bizimle nasıl alışveriş yaptınız?" Tek seçenekli soru, açık uçlu yorum sorusu ve isteğe bağlı e-posta alanı. Kendi Anketiniz farklı olabilir; 5. adımda sorularınızı siz eşleştireceksiniz.
​

Adım 1 — Tabloyu oluşturun

  1. Yeni bir Google Sheet açın ve ilk sekmenin adını responses olarak değiştirin.

  2. Birinci satıra sütun başlıklarını ekleyin. Biz şu başlıkları kullanıyoruz: Response ID, Submitted, Rating (1-5), Satisfaction, Channel, What could we do better, E-mail, Order ID, Language ve Source.

Response ID ilk sütun olmalı. Survio her Yanıta benzersiz bir kimlik atar. n8n, mükerrer gönderimlerde bu kimliği kullanarak aynı satırı günceller, tekrar eklemez.

Adım 2 — n8n’de webhook oluşturun

  1. n8n’de yeni bir iş akışı oluşturun ve Webhook düğümünü tetikleyici olarak ekleyin.

  2. HTTP Methodu POST olarak ayarlayın.

  3. Production URL sekmesine geçip adresi kopyalayın.

  4. Yayınlaya tıklayın. Production URL, iş akışı yayınlandığında etkinleşir ve gönderimleri kabul etmeye başlar.

n8n Webhook node with HTTP Method POST and the Production URL tab
Published button in the n8n editor

Production URL’yi kullanın, Test URL’yi değil. Test URL yalnızca editör açıkken çalışır; editörden çıkınca Survio’nun gönderdiği teslimatlar başarısız olur. Survio başarısız teslimatı yaklaşık bir gün boyunca tekrarlar, 5 ardışık başarısız denemeden sonra Webhook’u kapatır.

Adım 3 — Survio’da Anketi entegre edin

  1. Anketi açıp Yanıtları al bölümüne geçin.

  2. Sol kenar çubuğunda Otomasyonlar & Entegrasyonlar altında Webhooksu seçin ve + Webhook ekleye tıklayın.

  3. n8n Production URL’sini Webhook URL alanına yapıştırın, ardından Webhook’u kaydete tıklayın. Webhook anında etkinleşir.

Add a webhook dialog in Survio with the n8n Production URL filled in
Saved webhook in Survio, switched on


​

Adım 4 — Test yanıtı gönderin ve soru kimliklerinizi bulun

  1. Anketin bağlantısı üzerinden ilerleyip eksiksiz bir Yanıt gönderin. Survio yalnızca tamamlanan Yanıtları gönderir; tüm adımları bitirmeden veri iletmez.

  2. n8n’de Çalışmalar (Executions) sekmesini açın. Teslimat dakikalar içinde gelir.

  3. İlgili çalışmayı açıp Webhook düğümüne tıklayın. Ardından body, data ve answers bölümlerini açın. Her Yanıt, ilgili question.id, label ve answerı gösterir.

  4. Her sütuna karşılık gelecek soru kimliklerini not edin. Ayrıca Sabitle (Pin) seçeneğiyle ekranı sabitleyip yeniden Yanıt göndermeye gerek kalmadan işlemlerinize devam edebilirsiniz.

Executions tab in n8n with successful runs
Webhook node output in n8n: body, data, answers

Yanıtları her zaman soru kimliğiyle eşleştirin. Yanıtlar liste olarak gelir; Ankete ek soru eklediğinizde listedeki pozisyonlar kayar ve tabloda yanlış eşleşmeler oluşabilir. Ancak, soru kimlikleri asla değişmez.

Katılımcının e-posta adresini mi arıyorsunuz? data.email alanını kullanmayın; bu alan sadece e-posta sorusu veya URL parametresinden girilirse dolu olur. Kendi e-posta sorunuzdan veya data.parameters üzerinden okuyun.

Adım 5 — Yanıtı satıra dönüştürün

Bunun için iki düğüm gerekir: Satırı hazırla (Prepare row) Yanıt içinden gerekli cevapları seçer; Yanıtı sayfaya kaydet (Save response to sheet) ise bunları Google Sheet’e yazar.

Satırı hazırla

  1. Webhook’tan sonra bir Alanları Düzenle (Set) düğümü ekleyin ve adını Prepare row olarak değiştirin.

  2. Alanlar (Fields) ekle kısmında, tablonuzdaki her sütun için bir alan ekleyin ve türü String olarak bırakın. Alan adınız sütun başlığıyla birebir aynı olmalı; değer kısmı aşağıdaki ifadelerle doldurulmalı.

  3. 4. adımda not aldığınız soru kimliklerini ekleyin ve time zone olarak kendi bölgenizi girin.

Alan adı

Değer

Response ID

{{ $json.body.data.responseId }}

Submitted

{{ DateTime.fromISO($json.body.data.submitted).setZone('Europe/Prague').toFormat('yyyy-MM-dd HH:mm') }}

Rating (1-5)

{{ $json.body.data.answers.find(a => a.question.id === 90403153)?.answer ?? "" }}

Satisfaction

{{ $json.body.data.answers.find(a => a.question.id === 90403151)?.answer?.labels?.[0] ?? "" }}

Channel

{{ $json.body.data.answers.find(a => a.question.id === 90403154)?.answer?.labels?.[0] ?? "" }}

What could we do better

{{ $json.body.data.answers.find(a => a.question.id === 90403152)?.answer ?? "" }}

E-mail

{{ $json.body.data.answers.find(a => a.question.id === 90403187)?.answer || $json.body.data.parameters?.email || "" }}

Order ID

{{ $json.body.data.parameters?.['order-id'] ?? '' }}

Language

{{ $json.body.data.langCode }}

Source

{{ $json.body.data.source }}

Prepare row node in n8n with Fields to Set and their expressions


​

Yanıtı sayfaya kaydet

  1. Prepare row’dan sonra bir Google Sheets düğümü ekleyin, adını Save response to sheet olarak değiştirin ve Append or Update Row işlemini seçin.

  2. Google hesabınızı bağlayın, ardından Belge seçeneğinden tablonuzu seçin (listeden veya ID ile yapıştırarak) ve Sayfa kısmında responses sekmesini seçin.

  3. Mapping Column Modeu Map Automatically olarak ayarlayın ve Eşleştirilecek sütun olarak Response ID seçin.

Google Sheets node: Append or Update Row, Map Automatically, Column to match on Response ID

Neden ayrı bir Satırı hazırla adımı var? Google Sheets düğümünde farklı bir sayfa/sekme seçerseniz n8n sütun eşleşmelerini sıfırlar. Prepare row’daki ifadelerde bir değişiklik olmaz, sadece alan başlıkları Google Sheets’teki başlıklarla otomatik eşleşir.

Tekrar Yayınlaya tıklayın. Yayınlama sonrası yapılan değişiklikler sadece yeniden yayınlandığında aktif olur.

n8n workflow: Survio Webhook, Prepare row, Save response to sheet

Kullandığınız ifadelerin arka planda yaptığı işlemler şunlardır:

  • Tek seçenekli sorular şu şekilde gelir: { ids, labels, value }. labels[0] seçili cevabın metnidir. Çoktan seçmeli soru için labels.join(', ') ile tüm seçenekleri tek hücrede görebilirsiniz. value, "Diğer" seçeneğinde girilen serbest metindir.

  • Zaman bilgileri UTC ile gelir. Submitted ifadesi, saat bilgisini bölgenize çevirir; Google Sheets bu sütunu tarih ve saate göre sıralayabilir ve gruplandırabilir.

  • Tire içeren URL parametreleri için örn. order-id, köşeli parantez yazımı parameters['order-id'] kullanılmalı. Survio parametre adlarında alt çizgiye izin vermez.

  • Anket başlığı Survio’nun gönderdiği verilerde bulunmaz. Birden çok Anket aynı sayfada ise, ayrıca Anket sütunu ekleyip Prepare row’da Anket adını girmelisiniz.

Bir Yanıt daha gönderin; birkaç saniye içinde sayfada yeni bir satır göreceksiniz.

The responses tab in Google Sheets with one row per response


​

Durum A — Otomatik Grafik ile yanıtları görselleştirin

  1. report adlı bir sekme oluşturun.

  2. A1 hücresine Satisfaction, B1’e Responses yazın. A2-A6 arasına Anketteki cevap seçeneklerini girin.

  3. B2 hücresine =COUNTIF(responses!D:D,A2) formülünü girip B6’ya kadar kopyalayın.

  4. A1:B6 aralığını seçip Ekle → Grafik yolunu izleyin. Google Sheets Sütun grafik önerir. Başlığını değiştirmek için Özelleştir → Grafik ve eksen başlıkları menüsünü kullanın.

Gelen her yeni Yanıt, responses sekmesinde otomatik bir satır oluşturur, sayılar ve Grafik kendiliğinden güncellenir; bu makaledeki örnek Grafikteki gibi.
​

Durum B — Pivot tablo ile grupları karşılaştırın

  1. responses sekmesindeki tabloyu seçip Ekle → Pivot tablo ve ardından Yeni sayfayı seçin.

  2. Satırlarda Satisfaction, Değerlerde ise Response ID’yi seçin ve Toplam: ayarını TOPLAM yerine SAY (COUNTA) olarak değiştirin.

  3. Veri → Dilimleyici ekle menüsünden Channel sütununu seçin. Dilerseniz diğer sütunları da ekleyebilirsiniz. İlgili değerleri belirleyip OK ile onaylayın. Sonuç bu rehberin başındaki örnek Pivot tabloya benzeyecektir.

Tüm sütunlara göre süzgeç uygulayabilirsiniz: Channel (kendi sorunuz), Language (katılımcının Yanıtladığı dil), Source (Yanıtın geliş şekli; ör. doğrudan bağlantı ya da e-posta daveti) ya da Order ID.

Dilimleyicideki seçimler bir dahaki ziyaret için kaydedilmez. Dosya yeniden açıldığında dilimleyici tüm değerleri gösterir. Filtrenizi kaydetmek için dilimleyici menüsünden varsayılan olarak ayarlayın.

Hazır iş akışını indirin

2. ve 5. adımları elle kurmak yerine, rehberdeki hazır akışı kullanarak başlayabilirsiniz. Makalenin sonundaki eklerden survio-responses-to-google-sheets.json dosyasını indirin ve:

  1. n8n’de yeni, boş bir iş akışı oluşturun. Akış adının yanındaki üç noktaya tıklayın, İçe aktar ve ardından Dosyadan seçeneklerini kullanıp indirdiğiniz dosyayı yükleyin.

  2. Prepare row adımını açıp kendi soru kimliklerinizi ve zaman diliminizi girin.

  3. Save response to sheet adımını açın. Ayar tamamlanana kadar kırmızı bir uyarı görünebilir. Google hesabınızı bağlayın, sayfanızı ve responses sekmesini seçin. Sonrasında n8n, Mapping Column Modeu Map Each Column Manually moda getirebilir: tekrar Map Automatically’yi seçip Column to match on kısmında Response ID’yi belirleyin.

  4. Survio Webhook adımını açın, Production URL’sini kopyalayıp Survio’da yapıştırın ve ardından Yayınlaya tıklayın.

n8n workflow menu with Import and From file
Imported workflow: Survio Webhook, Prepare row, Save response to sheet

Baştan sona test edin

  1. Anket bağlantısından bir Yanıt gönderin. responses sekmesinde birkaç saniye içinde yeni bir satır oluşacaktır.

  2. Response ID alanı dolu mu kontrol edin. Bu, çift kayıtların önüne geçer.

  3. n8n’de Çalışmalar sekmesini kontrol edin. Tüm teslimatlar ve veriler burada görünür.

Sorun giderme

Belirti

Sebep

Çözüm

n8n’de hiçbir şey görünmüyor

Survio’da Test URL var ya da iş akışı yayınlanmamış

Production URL’yi Survio’ya yapıştırıp Yayınla’ya tıklayın

Survio, self-hosted n8n'den gelen webhook URL'sini kaydetmiyor

n8n, dahili adresi gösteriyor, harici adresi değil

n8n'in WEBHOOK_URL ayarını genel https adresinize ayarlayıp URL’yi tekrar alın

"Test etkinliği dinle" ekranı hiçbir şey göstermiyor

Survio Production URL’ye gönderiyor; dinleyici Test URL’yi izliyor

Çalışmalar sekmesini kontrol edin

Son değişiklikler görünmüyor

İş akışı yayınlanmış ama değişiklik henüz yayımlanmamış (Yayınla butonuna nokta işareti gelmiş)

Yeniden Yayınla’ya tıklayın

Aynı Yanıt iki kez kaydediliyor

İşlem, Append Row veya eşleşen sütun yok

Append or Update Row seçin ve Response ID ile eşleştirin

Bir sütun boş, sayfa sonunda yeni bir sütun oluştu

Prepare row’daki alan adı ile sütun başlığı birebir aynı değil

Prepare row’da alan adını birebir başlıkla eşleştirin ve fazla sütunu silin

Bir hücrede [object Object] yazıyor

Bir Seçenekli Yanıta labels olmadan eşleştirme yapıldı

?.answer?.labels?.[0] kullanın

Anketi düzenleyince sütunlarda yanlış veriler oluştu

Yanıtlar listedeki dizine göre çekildi

Her zaman question.id ile seçin

E-mail sütunu eksik

data.email kullanılmış

E-posta değerini e-posta sorusunun yanıtından veya URL parametresinden çekin

Kurulumdan önceki yanıtlar eksik

Webhook’lar sadece oluşturulduktan sonraki Yanıtları iletir

Eksik Yanıtları bir defa Survio’dan dışa aktararak manuel yapıştırın

Survio Webhook’u devre dışı bırakmış

Webhook URL’si 5 gün arka arkaya başarısız oldu

Sorunu giderip Survio'da Webhook'u tekrar etkinleştirin

Bilmeniz gereken diğer noktalar

  • Survio yalnızca tamamlanan Yanıtları, her biri için saniyeler içinde bildirim göndererek iletir.

  • Öncesinde toplanan veriler veya Webhook kapalı iken gelen Yanıtlar gönderilmez.

  • Başarısız iletim yaklaşık 27 saate kadar en fazla 8 defa tekrar denenir, her denemede ise 30 saniye beklenir. Response ID ile eşleşme, yinelenen kayıtları önemsiz kılar.

  • Teslimatlar 5 ardışık gün başarısız olursa, Survio Webhook’u kapatır, açmak için manuel müdahale gerekir.

  • Webhook’u duraklatmak slotu korur, silmek ise sonsuza kadar kaybettirir.

  • Survio uygulamasında geçmiş teslimata dair kayıt tutulmaz, n8n’deki Çalışmalar sekmesi log‘unuzdur.

  • Yanıtların Webhook ile gönderimi, planınızdaki ilave Yanıt kotanızı etkilemez.

Kurulumu bizim üstlenmemizi ister misiniz? Survio’da Webhooks ekranında Uzmanla kurulum al (Get expert setup) düğmesine tıklayın, ihtiyaçlarınızı kısaca yazın; ekibimiz kurulumu tamamlar, test eder ve size çalışan bir Webhook teslim eder.

Bu cevap sorunuzu yanıtladı mı?