Webhook'lar

Her yanıtı, form gönderildiği anda JSON biçiminde kendi belirlediğiniz bir adrese iletin.

Her yanıt için tek bir POST

Yanıt kaydedilir kaydedilmez gönderilir ve katılımcı bunun için hiç bekletilmez.

Sabit bir JSON yapısı

Herkese açık tür adları ve kalıcı alan kimlikleri kullanılır; bir soruyu yeniden adlandırmanız kodunuzu asla bozmaz.

10 saniye, tek deneme

Fillio uç noktanızı on saniye bekler ve bu sürenin ardından yeniden denemez.

Webhook'u açmak

Formunuzu açın, Ayarlar sekmesine gidin ve Webhook seçeneğini etkinleştirin. Yanıtları alacak adresi yapıştırdığınızda Fillio, yazmayı bıraktıktan kısa bir süre sonra adresi kaydeder ve bunu ekranda doğrular. Her form tek bir adres taşır; anahtarı yeniden kapattığınızda bu adres silinir.

Adresin HTTPS olması gerekir

Fillio yalnızca https:// ile başlayan adresleri çağırır. http:// ile başlayan bir adres ayarlar alanı tarafından kabul edilir, ancak hiçbir zaman çağrılmaz; bu nedenle kayıtlı görünen bir webhook sessizce hiçbir şey iletmez.

Özel bir ağın içini gösteren adresler de reddedilir: 10.x, 127.x, 169.254.x, 172.16-31.x veya 192.168.x aralığındaki her sunucu, her IPv6 adresi ve localhost olan ya da .local veya .internal ile biten her ad bu kapsamdadır. Uç noktanızın genel internet üzerinden erişilebilir olması gerekir.

İstek

Gövdesi JSON olan bir POST isteği gönderilir. İstekle birlikte dört başlık iletilir.

BaşlıkAçıklama
Content-Type: application/jsonGövde her zaman JSON biçimindedir.
User-Agent: Fillio Webhooks/1.0Çağrıyı yapanın Fillio olduğunu belirtir; tek bir uç noktanın birden fazla servisi dinlediği durumlarda işinize yarar.
X-Fillio-Event: FORM_RESPONSEOlayın adıdır. Fillio bugün için yalnızca FORM_RESPONSE değerini gönderir.
X-Fillio-Event-IdBu gönderime özel yeni bir UUID değeridir ve gövdede eventId olarak yinelenir.

Gönderilen veri

Olayı tanımlayan bir dış katman ve yanıtı tanımlayan bir data nesnesinden oluşur.

{
  "eventId": "8f2c1d7a-4b09-4e5c-9a13-6d0f8b2e77c4",
  "eventType": "FORM_RESPONSE",
  "createdAt": "2026-08-26T09:14:22.481Z",
  "data": {
    "responseId": "Qh3Rk9wZm1sVtY7cN2xP",
    "formId": "7bTn4Kq2Wx",
    "formName": "Workshop signup",
    "createdAt": "2026-08-26T09:14:22.481Z",
    "fields": [
      {
        "key": "V1StGXR8_Z5jdHi6B-myT",
        "label": "Full name",
        "type": "INPUT_TEXT",
        "value": "Mira Kaya"
      },
      {
        "key": "kM4pQz7LxAe2Rn0BsTvUw",
        "label": "Which session?",
        "type": "MULTIPLE_CHOICE",
        "value": "c9XbNf3JdQ",
        "options": [
          { "id": "c9XbNf3JdQ", "text": "Morning" },
          { "id": "eR2mYt8KpL", "text": "Afternoon" }
        ]
      },
      {
        "key": "zA6cWn1FyH4tXd9QrLbEs",
        "label": "How likely are you to recommend us?",
        "type": "LINEAR_SCALE",
        "value": 9
      }
    ]
  }
}
ÖzellikAçıklama
eventIdBu gönderime ait benzersiz kimliktir.
eventTypeHer zaman FORM_RESPONSE değerini alır.
createdAtYanıtın gönderildiği an; UTC olarak ISO 8601 zaman damgası biçimindedir.
data.responseIdKaydedilen yanıtın kimliğidir.
data.formIdFormun kimliğidir; herkese açık bağlantısında görünen kimliğin aynısıdır.
data.formNameFormun başlığıdır; biçimlendirmesi kaldırılmış düz metin olarak gönderilir.
data.fieldsYanıtlanan her soru için bir kayıt içerir.

fields dizisinin içeriği

Her kayıt dört özellik taşır; seçenekleri olan sorular ise beşinci bir özellik daha taşır.

ÖzellikAçıklama
keySorunun kalıcı kimliğidir. Soru metnini değiştirseniz de aynı kalır; bu nedenle eşleştirmelerinizi etiket yerine bu değer üzerinden yapın.
labelSorunun editörde yazıldığı hâlidir.
typeSorunun türüdür; aşağıdaki listeden gelir.
valueSorunun sakladığı biçimiyle verilen yanıttır.
optionsYalnızca seçenekleri olan sorularda bulunur: her seçeneğin kimliğini ve metnini içerir; böylece bir yanıtı yeniden okunabilir bir etikete dönüştürebilirsiniz.

Yalnızca yanıtlanan sorular gelir

Katılımcının hiç dokunmadığı bir soru, boş bir değerle gönderilmek yerine dizide hiç yer almaz; koşullu mantıkla gizlenen bir soru ise hiçbir zaman görünmez. Bu nedenle her yanıtı sırasına veya sabit bir kayıt sayısına güvenerek değil, key değeri üzerinden bulunuz.

Seçim yanıtları etiket değil kimlik taşır

Açılır liste veya tekli seçim yanıtı, seçilen seçeneğin kimliğidir; onay kutusu, çoklu seçim ve sıralama yanıtları ise seçenek kimliklerinden oluşan bir dizidir. Bu kimlikleri aynı kayıttaki options listesiyle eşleştirerek çözünüz. Sıralama yanıtı, katılımcının belirlediği sırayı korur.

Diğer seçeneği

Katılımcı Diğer kutusuna bir şey yazdığında değer bir seçenek kimliği olmaz; __OTHER__: ifadesinin ardından yazdığı metin gelir. Yanıtı okumak için bu ön eki kaldırınız.

"value": "__OTHER__:Heard about it from a friend"

Dosyalar ve imzalar

Dosya yükleme yanıtı, dosyanın Fillio deposundaki indirme bağlantısıdır. İmza yanıtı ise base64 kodlu bir PNG veri adresidir; bu adresi doğrudan kaydedebilir veya görüntüleyebilirsiniz.

Alan türleri

Tür adı, herkese açık ve sabit bir addır; Fillio'nun içinde yapılan bir değişiklik entegrasyonunuza yansımaz. Fillio'nun eşleştiremediği her alan INPUT_TEXT olarak gelir.

TürSoruDeğer
INPUT_TEXTKısa YanıtMetin
TEXTAREAUzun YanıtMetin
INPUT_EMAILE-postaMetin
INPUT_PHONE_NUMBERTelefon NumarasıMetin
INPUT_NUMBERSayıSayının, yazıldığı hâliyle metin olarak karşılığı
INPUT_LINKBağlantıMetin
INPUT_DATETarihYYYY-AA-GG biçiminde bir tarih
INPUT_TIMESaat24 saatlik düzende SS:DD biçiminde bir saat
DROPDOWNAçılır ListeTek bir seçenek kimliği
MULTIPLE_CHOICETekli SeçimTek bir seçenek kimliği
CHECKBOXESOnay KutusuSeçenek kimliklerinden oluşan bir dizi
MULTI_SELECTÇoklu SeçimSeçenek kimliklerinden oluşan bir dizi
RATINGYıldız PuanlamaBir sayı
LINEAR_SCALEDoğrusal ÖlçekBir sayı
RANKINGSıralamaKatılımcının belirlediği sırayla seçenek kimliklerinden oluşan bir dizi
FILE_UPLOADDosya YüklemeBir indirme bağlantısı
SIGNATUREİmzabase64 kodlu bir PNG veri adresi

Uç noktanız yanıt vermezse

Fillio on saniye bekler. Zaman aşımı, bağlantı hatası veya 2xx aralığının dışındaki herhangi bir durum kodu başarısız bir gönderim sayılır ve iş orada biter: yeniden deneme yapılmaz, yeniden oynatılabilecek bir kuyruk tutulmaz.

Yanıtın kendisi bundan hiçbir şekilde etkilenmez. Yanıt, istek gönderilmeden önce kaydedilir ve uç noktanız ne yaparsa yapsın kontrol panelinizde kalır; bu nedenle bir gönderim kaybolsa bile eksiksiz kayıt kontrol panelinizdedir.

İstek imzalanmaz

Fillio isteği imzalamaz ve paylaşılan bir gizli anahtar göndermez; bu nedenle gövde tek başına isteğin nereden geldiğini kanıtlamaz. Uç noktanızın bundan emin olması gerekiyorsa yalnızca sizin bildiğiniz bir adres kullanın; tahmin edilemeyecek kadar uzun bir yol veya sorgu dizesi belirleyin ve başka bir yerden gelen her isteği güvenilmez sayın.

Her gönderim, hem X-Fillio-Event-Id başlığında hem de gövdede kendi olay kimliğini taşır. Daha önce işlediğiniz kimlikleri kaydetmek, uç noktanızı iki kez çağrılmaya karşı güvenli kılmanın en basit yoludur.

İpucu

Webhook'u istekleri görüntüleyen herhangi bir test adresine yönlendirip kendi formunuzu bir kez gönderin. Formunuzun ürettiği veriyi kendi alan kimliklerinizle birlikte tam olarak görürsünüz; kendi tarafınızdaki eşleştirmeyi yazmanın en hızlı yolu budur.