NueForm

Événements Webhook

Reference for all NueForm webhook event types, including when they fire, delivery guarantees, and planned future events.

NueForm sends webhook notifications for specific events that occur within your account. Each webhook request includes an event field in the JSON payload that identifies what happened.

Current Events

form.submitted

Fires when a respondent submits a complete response to one of your forms.

PropertyValue
Event nameform.submitted
TriggerA respondent completes and submits a form response
PayloadForm details, response ID, timestamped answers
Incremental formsOnly fires when the response is marked as complete

This is the primary webhook event in NueForm. It fires for both standard (single-submit) forms and incremental submission forms, but only when the response reaches a completed state.

When it fires:

  • On a standard form: immediately after the respondent clicks Submit and the response is saved.
  • On an incremental form: only when the final submission is sent with complete: true. Partial saves do not trigger this event.
  • On quiz-mode forms (knowledge quiz, lead qualification, match quiz): the payload includes quiz scoring results alongside the answers.

When it does NOT fire:

  • Partial submissions on incremental forms (where complete is not true).
  • Edits to existing responses (responses are immutable once submitted).
  • Form drafts or previews.
  • Test submissions from the form builder preview.

See Payloads for the full payload schema.

Planned Future Events

The following events are planned for future releases. They are not yet available but are documented here so you can design your integration with forward compatibility in mind.

Future events listed below are subject to change. Check the Changelog for announcements when new events become available.

form.partial

Will fire when a partial response is saved on a form with incremental submission enabled. This will allow you to track form abandonment and follow up with respondents who started but did not finish.

PropertyPlanned Value
Event nameform.partial
TriggerA partial response is created or updated (incremental forms only)
PayloadSame structure as form.submitted with a null completedAt

form.completed

Will fire when an incremental response transitions from partial to complete. This differs from form.submitted in that it explicitly indicates a previously partial response has been finalized.

PropertyPlanned Value
Event nameform.completed
TriggerA partial response is marked as complete
PayloadSame structure as form.submitted, including all accumulated answers

form.published

Will fire when a form is published or republished.

PropertyPlanned Value
Event nameform.published
TriggerA form is published via the dashboard or API
PayloadForm ID, title, slug, version number, published timestamp

form.unpublished

Will fire when a form is unpublished (taken offline).

PropertyPlanned Value
Event nameform.unpublished
TriggerA form is unpublished via the dashboard or API
PayloadForm ID, title, slug, unpublished timestamp

Event Delivery Guarantees

Understanding how NueForm delivers webhook events is important for building reliable integrations.

At-Most-Once Delivery

NueForm currently provides at-most-once delivery semantics. Each event is sent once and is not retried if delivery fails. This means:

  • Your endpoint may occasionally miss events if it is temporarily unavailable.
  • You will never receive duplicate events for the same submission from NueForm's delivery system.
  • You should design your integration to tolerate missed events.

No Automatic Retries

If your endpoint is unreachable, returns an error status code, or does not respond within the 5-second timeout window, the webhook delivery is silently dropped. NueForm does not queue or retry failed deliveries.

Because there are no automatic retries, we strongly recommend supplementing webhooks with periodic polling of the Responses API to catch any events your endpoint may have missed.

Ordering

Webhook events are dispatched in the order they occur, but because they are sent to multiple URLs in parallel and network conditions vary, delivery order is not guaranteed. If your application requires strict ordering, use the submittedAt timestamp in the payload to sort events after receipt.

Timeout

NueForm waits up to 5 seconds for your endpoint to respond. If your endpoint does not respond within this window, the request is aborted. Your endpoint should respond with a 2xx status code as quickly as possible and defer any heavy processing to a background job.

Idempotency

Although NueForm does not send duplicate events by design, network conditions (such as TCP retransmission) could theoretically cause your endpoint to receive the same payload more than once. Use the responseId field in the payload as an idempotency key to safely deduplicate.

Meilleures pratiques

  1. Respond quickly. Return a 200 OK immediately and process the webhook data asynchronously. NueForm has a 5-second timeout.

  2. Verify signatures. Always validate the X-NueForm-Signature header before trusting the payload. See Verification.

  3. Use idempotency keys. Store processed responseId values and skip duplicates.

  4. Reconcile periodically. Supplement real-time webhooks with scheduled polling of the Responses API to catch any missed events.

  5. Monitor your endpoint. Track response times and error rates on your webhook endpoint. If your endpoint consistently fails, consider implementing a queue (e.g., SQS, Redis) between your webhook receiver and your processing logic.

Next Steps

  • Payloads --- See the full JSON payload schema
  • Verification --- Implement signature verification
  • Testing --- Test webhook delivery locally
Dernière mise à jour : 6 avril 2026