Integraatiot

Lähetä lomakevastaukset webhookien kautta

Webhookit ovat YeetFormin yleiskäyttöinen tapa lähettää vastausdataa minne tahansa: omaan backendiin, tietokannan synkronointityöhön tai toiseen automaatioalustaan. Lisää HTTPS-päätepiste lomakkeen Integraatiot-välilehdelle, niin YeetForm lähettää allekirjoitetun JSON-hyötykuorman POST-pyynnöllä jokaisesta uudesta vastauksesta, salaisuudella jota vastaan voit varmistaa HMAC-SHA256:lla. Epäonnistuneet toimitukset yritetään uudelleen automaattisesti. Tämä sivu käy läpi tarkan allekirjoitusmuodon, hyötykuorman rakenteen ja uudelleenyritysaikataulun, jotta voit rakentaa vastaanottimen luottavaisin mielin.

Käyttöönotto

1

Lisää päätepiste

Liitä HTTPS-päätepisteesi URL lomakkeen Integraatiot-välilehdellä Webhooks-kohtaan ja klikkaa Lisää webhook. YeetForm luo kyseiselle päätepisteelle allekirjoitussalaisuuden (whsec_...).

2

Varmista allekirjoitus

Jokainen toimitus sisältää X-YeetForm-Signature-otsikon: t=<unix-aikaleima>,v1=<HMAC-SHA256 hex-tiiviste kohteesta `${t}.${body}`>. Varmista se raakaa pyynnön runkoa vasten ennen kuin luotat hyötykuormaan.

import { createHmac, timingSafeEqual } from "crypto";

function verify(secret, signatureHeader, rawBody) {
  const [tPart, v1Part] = signatureHeader.split(",");
  const timestamp = tPart.split("=")[1];
  const signature = v1Part.split("=")[1];

  const expected = createHmac("sha256", secret)
    .update(`${timestamp}.${rawBody}`)
    .digest("hex");

  const a = Buffer.from(signature, "hex");
  const b = Buffer.from(expected, "hex");
  if (a.length !== b.length) return false;
  return timingSafeEqual(a, b);
}
3

Lue hyötykuorma

POST-pyynnöt laukeavat response.created-tapahtumasta (ja webhook.test manuaalisen testipainikkeen kautta), ja mukana on lomakkeen tunnus, vastauksen tunnus, vastausten määrä ja kentän tunnuksella avaimistetut vastaukset sekä fields-taulukko jokaisen kentän nimellä.

{
  "event": "response.created",
  "form_id": "<uuid>",
  "form_title": "Customer Feedback",
  "response_id": "<uuid>",
  "response_count": 42,
  "answers": { "fld_x": "..." },
  "submitted_at": "2026-09-13T12:00:00.000Z"
}
4

Käsittele uudelleenyritykset

Muu kuin 2xx-vastaus (tai aikakatkaisu) laukaisee uudelleenyrityksen: heti, sitten 30 sekunnin kuluttua, sitten 5 minuutin kuluttua - yhteensä 3 yritystä ennen kuin YeetForm merkitsee toimituksen epäonnistuneeksi. Uudelleenohjauksia ei seurata, joten osoita URL suoraan päätepisteeseesi.

Vinkit

  • Kenttien nimet sisältyvät hyötykuorman fields-taulukkoon (id, label, type), joten sinun ei tarvitse koodata kenttätunnuksia kovakoodattuna alavirtaan.
  • Jokaisella vastauksella on pysyvä response_id - käytä sitä idempotenssiavaimena, sillä uudelleen yritetty toimitus käyttää samaa tunnusta.
  • Epäonnistunut toimitus yritetään uudelleen yhteensä 3 kertaa (heti, 30 s, 5 min) ennen kuin se merkitään epäonnistuneeksi - onnistumiseksi vaaditaan 2xx-vastaus, uudelleenohjauksia ei seurata.

Rakenna lomakkeesi tekoälyllä sekunneissa

Aloita ilmaiseksi

UKK

Mikä laukaisee webhookin?+
response.created laukeaa jokaisesta uudesta vastauksesta; webhook.test laukeaa, kun klikkaat integraation testipainiketta, joten voit varmistaa päätepisteesi ennen käyttöönottoa.
Miten tiedän, että pyyntö todella tuli YeetFormilta?+
Varmista X-YeetForm-Signature-otsikko päätepisteesi salaisuutta vasten HMAC-SHA256:lla kohteesta `${aikaleima}.${raaka_runko}` - katso yllä oleva varmennusote.
Mitä tapahtuu, jos päätepisteeni on alhaalla?+
YeetForm yrittää uudelleen yhteensä 3 kertaa: heti, 30 sekunnin kuluttua, sitten 5 minuutin kuluttua. Jos kaikki kolme epäonnistuvat, toimitus merkitään epäonnistuneeksi eikä sitä yritetä enää.
Voinko lisätä mukautettuja otsikoita?+
Kyllä, kun määrität webhookin, voit asettaa mukautettuja otsikoita - ne yhdistetään mukaan, mutta YeetFormin omat Content-Type- ja X-YeetForm-*-otsikot voittavat aina ristiriitatilanteessa.