Webhook-ови

Пошаљите сваку пријаву на сопствену адресу, као JSON, истог тренутка када стигне.

Један POST по одговору

Шаље се чим је одговор сачуван, без задржавања испитаника.

Стабилан JSON облик

Јавна имена типова и трајни ID-јеви поља, па преименовање питања никада не квари ваш код.

10 секунди, један покушај

Fillio чека десет секунди на ваш ендпоинт и после тога не покушава поново.

Укључивање webhook-а

Отворите формулар, идите на картицу Подешавања и укључите Webhook. Налепите адресу која треба да прима пријаве; Fillio је чува тренутак након што престанете да куцате и потврђује то на екрану. Сваки формулар носи једну адресу, а враћање прекидача на искључено је брише.

Адреса мора бити HTTPS

Fillio позива само адресе које почињу са https://. Адресу са http:// поље у подешавањима прихвата, али се она никада не позива, па webhook који изгледа сачувано неће тихо испоручити ништа.

Адресе које показују унутар приватне мреже такође се одбијају: сваки хост на 10.x, 127.x, 169.254.x, 172.16-31.x или 192.168.x, свака IPv6 адреса и свако име које је localhost или се завршава са .local или .internal. Ваш ендпоинт мора бити доступан са јавног интернета.

Захтев

POST са JSON телом. Уз њега путују четири заглавља.

ЗаглављеОпис
Content-Type: application/jsonТело је увек JSON.
User-Agent: Fillio Webhooks/1.0Означава позиваоца као Fillio, што је корисно када један ендпоинт слуша више сервиса.
X-Fillio-Event: FORM_RESPONSEИме догађаја. FORM_RESPONSE је једина вредност коју Fillio данас шаље.
X-Fillio-Event-IdНов UUID за ову испоруку, поновљен као eventId у телу.

Payload

Омотач који описује догађај и објекат data који описује одговор.

{
  "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
      }
    ]
  }
}
СвојствоОпис
eventIdЈединствен ID ове испоруке.
eventTypeУвек FORM_RESPONSE.
createdAtКада је одговор послат, као ISO 8601 временска ознака у УТЦ.
data.responseIdID сачуваног одговора.
data.formIdID формулара, исти онај који се појављује у његовом јавном линку.
data.formNameНаслов формулара као обичан текст, без форматирања.
data.fieldsПо једна ставка за свако одговорено питање.

Унутар фиелдс

Свака ставка носи четири својства, а питање са опцијама носи и пето.

СвојствоОпис
keyТрајни ID питања. Преживљава сваку измену текста, па се ослоните на њега уместо на ознаку.
labelПитање онако како је написано у едитору.
typeТип питања, преузет са листе испод.
valueОдговор, у облику у којем га то питање чува.
optionsСамо код питања са опцијама: ID и текст сваке опције, да одговор можете вратити у ознаку.

Стижу само одговорена питања

Питање које испитаник није додирнуо изостаје из низа уместо да буде послато као празна вредност, а питање сакривено условном логиком се уопште не појављује. Тражите сваки одговор по његовом key уместо да се ослањате на положај или на сталан број ставки.

Одговори са избором носе ID-јеве, не ознаке

Одговор из падајуће листе или радио дугмета је ID изабране опције, а одговор из поља за потврду, вишеструког избора или рангирања је низ ID-јева опција. Разрешите их помоћу листе options у истој ставци. Одговор из рангирања задржава редослед којим је испитаник поређао ставке.

Опција Друго

Када испитаник упише нешто у поље Друго, вредност није ID опције него текст __OTHER__: праћен оним што је откуцао. Уклоните тај префикс да прочитате одговор.

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

Фајлови и потписи

Одговор са отпремањем фајла је линк за преузимање фајла из Fillio-овог складишта. Одговор са потписом је base64 PNG data URL, који можете сачувати или приказати директно.

Типови поља

Тип је стабилно јавно име, па промена унутар Fillio-а никада не стиже до ваше интеграције. Све што Fillio не може да мапира стиже као INPUT_TEXT.

ТипПитањеВредност
INPUT_TEXTКратак одговорТекст
TEXTAREAДугачак одговорТекст
INPUT_EMAILИмејлТекст
INPUT_PHONE_NUMBERБрој телефонаТекст
INPUT_NUMBERБројБрој као текст, тачно онако како је откуцан
INPUT_LINKЛинкТекст
INPUT_DATEДатумДатум, у облику YYYY-MM-DD
INPUT_TIMEВремеВреме, у облику HH:MM на 24-часовном сату
DROPDOWNПадајућа листаЈедан ID опције
MULTIPLE_CHOICEРадио дугмеЈедан ID опције
CHECKBOXESПоље за потврдуНиз ID-јева опција
MULTI_SELECTВишеструки изборНиз ID-јева опција
RATINGОцена звездицамаБрој
LINEAR_SCALEЛинеарна скалаБрој
RANKINGРангирањеНиз ID-јева опција, редоследом испитаника
FILE_UPLOADОтпремање фајлаЛинк за преузимање
SIGNATUREПотписbase64 PNG data URL

Ако ваш ендпоинт не одговори

Fillio чека десет секунди. Истек времена, грешка у вези или било који статус ван 2xx опсега рачуна се као неуспела испорука, и ту је крај: нема поновног покушаја ни реда за поновно слање.

То никада не утиче на сам одговор. Он се чува пре него што се захтев пошаље и остаје на вашем контролном панелу шта год ваш ендпоинт урадио, па панел остаје потпуна евиденција чак и ако се испорука изгуби.

Потписа нема

Fillio не потписује захтев и не шаље никакву дељену тајну, па тело само по себи не доказује одакле је дошло. Ако ваш ендпоинт мора бити сигуран, дајте му адресу коју само ви знате: дугачку, непогодиву путању или упит. Третирајте све што стигне другде као непоуздано.

Свака испорука носи сопствени ID догађаја, и у заглављу X-Fillio-Event-Id и у телу. Бележење оних које сте већ обрадили најједноставнији је начин да ваш ендпоинт буде безбедан за двоструки позив.

Савет

Усмерите webhook на било који ендпоинт за преглед захтева и пошаљите сопствени формулар једном. Видећете тачан payload који ваш формулар производи, са сопственим ID-јевима поља. То је најбржи начин да напишете мапирање на својој страни.