Webhooks

Ipadala ang bawat tugon sa sarili ninyong address, bilang JSON, sa sandaling dumating ito.

Isang POST kada tugon

Ipinapadala sa sandaling maimbak ang sagot, nang hindi pinapaghintay ang respondent.

Matatag na hugis ng JSON

Pampublikong pangalan ng uri at permanenteng field ID, kaya hindi nasisira ang code ninyo kapag pinalitan ang pangalan ng tanong.

10 segundo, isang pagsubok

Naghihintay ang Fillio ng sampung segundo para sa inyong endpoint at hindi na ito muling susubok pagkatapos.

Pag-on ng webhook

Buksan ang form, pumunta sa Settings tab at i-on ang Webhook. I-paste ang address na dapat makatanggap ng mga tugon; sine-save ito ng Fillio ilang sandali matapos kayong tumigil sa pag-type at kinukumpirma ito sa screen. Isang address ang dala ng bawat form, at nabubura ito kapag ibinalik ninyo sa off ang toggle.

Kailangang HTTPS ang address

Tinatawagan lang ng Fillio ang mga address na nagsisimula sa https://. Tinatanggap ng settings field ang http:// na address ngunit hindi ito kailanman tinatawagan, kaya ang webhook na mukhang naka-save ay tahimik na walang ihahatid.

Tinatanggihan din ang mga address na nakaturo sa loob ng pribadong network: anumang host sa 10.x, 127.x, 169.254.x, 172.16-31.x o 192.168.x, anumang IPv6 address, at anumang pangalang localhost o nagtatapos sa .local o .internal. Kailangang maabot ang inyong endpoint mula sa pampublikong internet.

Ang request

Isang POST na may JSON body. Apat na header ang kasama nito.

HeaderPaglalarawan
Content-Type: application/jsonPalaging JSON ang body.
User-Agent: Fillio Webhooks/1.0Tinutukoy ang tumatawag bilang Fillio, na kapaki-pakinabang kapag isang endpoint ang nakikinig sa ilang serbisyo.
X-Fillio-Event: FORM_RESPONSEAng pangalan ng event. FORM_RESPONSE lang ang halagang ipinapadala ng Fillio sa ngayon.
X-Fillio-Event-IdBagong UUID para sa paghahatid na ito, na inuulit bilang eventId sa body.

Ang payload

Isang sobreng naglalarawan sa event, at isang data object na naglalarawan sa tugon.

{
  "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
      }
    ]
  }
}
PropertyPaglalarawan
eventIdNatatanging ID para sa paghahatid na ito.
eventTypePalaging FORM_RESPONSE.
createdAtKung kailan isinumite ang tugon, bilang ISO 8601 timestamp sa UTC.
data.responseIdAng ID ng nakaimbak na tugon.
data.formIdAng ID ng form, ang mismong lumalabas sa pampublikong link nito.
data.formNameAng pamagat ng form bilang plain text, na tinanggal ang anumang pormat.
data.fieldsIsang entry kada nasagutang tanong.

Sa loob ng fields

May apat na property ang bawat entry, at may ikalima ang tanong na may mga opsyon.

PropertyPaglalarawan
keyAng permanenteng ID ng tanong. Nananatili ito sa bawat pag-edit ng pananalita, kaya rito magtugma sa halip na sa label.
labelAng tanong gaya ng pagkakasulat nito sa editor.
typeAng uri ng tanong, mula sa listahan sa ibaba.
valueAng sagot, sa hugis na iniimbak ng tanong na iyon.
optionsSa mga tanong lang na may opsyon: ang ID at teksto ng bawat opsyon, para maibalik ninyo ang sagot sa label nito.

Nasagutang tanong lang ang dumarating

Ang tanong na hindi ginalaw ng respondent ay wala sa array sa halip na ipadala bilang walang lamang halaga, at ang tanong na itinago ng conditional logic ay hindi lumalabas kahit kailan. Hanapin ang bawat sagot sa pamamagitan ng key nito sa halip na umasa sa posisyon o sa nakapirming bilang ng entry.

May dalang ID ang mga piniling sagot, hindi label

Ang sagot sa dropdown o multiple choice ay ang ID ng napiling opsyon, at ang sagot sa checkbox, multi-select o ranking ay array ng mga option ID. Itugma ang mga ito sa listahan ng opsyon sa parehong entry. Iniingatan ng sagot sa ranking ang pagkakasunod-sunod na inilagay ng respondent.

Ang Other na opsyon

Kapag sumulat ang respondent sa Other na kahon, hindi option ID ang halaga kundi ang tekstong __OTHER__: na sinusundan ng isinulat nila. Alisin ang prefix na iyon para mabasa ang sagot.

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

Mga file at lagda

Ang sagot sa file upload ay download link papunta sa file sa storage ng Fillio. Ang sagot na lagda ay base64 PNG data URL, na puwede ninyong i-save o ipakita nang direkta.

Mga uri ng field

Matatag at pampubliko ang pangalan ng uri, kaya hindi naaabot ng pagbabago sa loob ng Fillio ang inyong integrasyon. Ang anumang hindi mai-map ng Fillio ay dumarating bilang INPUT_TEXT.

UriTanongHalaga
INPUT_TEXTMaikling SagotTeksto
TEXTAREAMahabang SagotTeksto
INPUT_EMAILEmailTeksto
INPUT_PHONE_NUMBERNumero ng TeleponoTeksto
INPUT_NUMBERNumeroAng numero bilang teksto, eksakto kung paano ito tinipa
INPUT_LINKLinkTeksto
INPUT_DATEPetsaPetsa, bilang YYYY-MM-DD
INPUT_TIMEOrasOras, bilang HH:MM sa 24 na oras na relo
DROPDOWNDropdownIsang option ID
MULTIPLE_CHOICERadioIsang option ID
CHECKBOXESCheckboxArray ng mga option ID
MULTI_SELECTMulti-SelectArray ng mga option ID
RATINGRating na bituinIsang numero
LINEAR_SCALELinear na SukatanIsang numero
RANKINGRankingArray ng mga option ID, sa pagkakasunod-sunod ng respondent
FILE_UPLOADPag-upload ng FileIsang download link
SIGNATURELagdaIsang base64 PNG data URL

Kung hindi sumasagot ang inyong endpoint

Naghihintay ang Fillio ng sampung segundo. Ang timeout, ang error sa koneksyon o ang anumang status sa labas ng 2xx ay itinuturing na nabigong paghahatid, at doon na iyon nagtatapos: walang retry at walang pilang mababalikan.

Hindi kailanman naaapektuhan ang tugon mismo. Naiimbak ito bago gawin ang request at nananatili sa inyong dashboard anuman ang gawin ng endpoint ninyo, kaya nananatiling kumpletong talaan ang dashboard kahit may nawalang paghahatid.

Walang lagda

Hindi nilalagdaan ng Fillio ang request at walang ipinapadalang shared secret, kaya hindi mapapatunayan ng body mismo kung saan ito nanggaling. Kung kailangang makasigurado ng inyong endpoint, bigyan ito ng address na kayo lang ang nakakaalam: mahaba at hindi mahuhulaang path o query string. Ituring na hindi mapagkakatiwalaan ang anumang dumating sa ibang lugar.

May sariling event ID ang bawat paghahatid, nasa X-Fillio-Event-Id header at nasa body. Ang pagtatala sa mga naasikaso na ninyo ang pinakasimpleng paraan para maging ligtas na tawagan nang dalawang beses ang inyong endpoint.

Tip

Ituro ang webhook sa kahit anong request-inspection endpoint at isumite nang isang beses ang sarili ninyong form. Makikita ninyo ang eksaktong payload na ginagawa ng form ninyo, kasama ang sarili ninyong mga field ID. Iyon ang pinakamabilis na paraan para maisulat ang mapping sa panig ninyo.