NBForms

Webhook

Send submission data to any URL via HTTP POST.

The Webhook integration sends an HTTP POST request to any URL you control on every new submission.

Required fields

FieldRequiredDescription
Endpoint URLYesThe URL that will receive the POST request.
SecretNoSent as the X-NBForms-Secret header so your server can verify the request origin.

Setup

  1. Set up an endpoint on your server (or use a service like webhook.site for testing).
  2. Open your form → IntegrationsAdd next to Webhook.
  3. Paste your endpoint URL.
  4. Optionally add a secret string.
  5. Save.

Request format

NBForms sends a POST request with Content-Type: application/json.

{
  "formId": 42,
  "formName": "Contact",
  "submittedAt": "2025-06-14T10:23:00.000Z",
  "data": {
    "name": "Sarah Chen",
    "email": "[email protected]",
    "message": "Hello!"
  }
}

File uploads are not included in the JSON body.

Verifying the secret

If you set a secret, check the X-NBForms-Secret header in your handler and reject requests where it does not match:

// Node.js / Express example
app.post('/webhook', (req, res) => {
  if (req.headers['x-nbforms-secret'] !== process.env.NBFORMS_SECRET) {
    return res.status(401).end()
  }
  // process req.body ...
  res.status(200).end()
})

Response expectations

Your endpoint should return a 2xx status code within 10 seconds. If it returns a non-2xx status or times out, the worker will retry with exponential back-off.

On this page