SAVEFORM

Webhooks · Last updated April 23, 2026

Delivery & retries

Every webhook call is logged on the corresponding submission row, together with the HTTP status, response body, and timing. Failures are surfaced visibly rather than silently retried.

Successful deliveries

Any 2xx response counts as a success — the submission row shows a green status and the raw response is kept for inspection. Non-2xx responses are recorded as failures.

Failed deliveries

SaveForm does not auto-retry failed deliveries. Instead, the failure is recorded and surfaced on the submission row in the dashboard with the status code and error body.

Manual retries

From the submissions table, open a submission with a failed delivery and click Retry. The call is re-sent with the current webhook configuration — if you updated the URL or template in the meantime, the retry uses the new values.

  • Retries run synchronously and show the new result inline.
  • Retrying a success is allowed and counts as a new delivery.
  • Retrying a submission that was marked as spam fires the webhook as a manual delivery, bypassing the spam skip.

Test button

On the webhook card in the settings page, click Test to fire a sample payload using fake-but-realistic data. The editor uses the same rendering pipeline as production, so if Test works, real submissions will work too.

Test fires do not count toward your plan's webhook delivery limit and are excluded from usage analytics.

Rate limits

The Free plan allows up to 20 successful webhook deliveries per month across all forms. Lite and Pro have unlimited deliveries. If you hit the Free cap, submissions are still stored — only the webhook call is skipped, and the reason is visible in the delivery log. See Rate limits and the pricing page for the full breakdown.

Webhook delivery & retries | SaveForm.io