Feature: Re-firing Webhooks

March 10, 2026

Webhook deliveries can fail for all kinds of reasons — a downstream service was briefly down, an endpoint was misconfigured, or you simply want to replay a submission to a newly connected integration. Until now, the only option was to wait for Basin's automatic retry cycle to finish or resubmit the form entirely.

Today we're shipping manual webhook re-firing across the dashboard and API.

What's new

Re-fire from the submission log

Open any submission's Log view and you'll see a Re-fire Webhook button next to each webhook event. Clicking it immediately re-queues that specific webhook and creates a fresh log entry so you can track exactly what happened. The button disables itself after firing so you don't accidentally double-send.

Bulk re-fire from the inbox

Need to replay webhooks for a batch of submissions? Select them in your form's inbox using the checkboxes, open the Action dropdown, and choose Re-fire Webhooks. Every enabled webhook on each selected submission will be queued.

Re-fire via the API

Automate webhook re-firing from your own tooling using two new API endpoints:

Single submission:

curl -X POST "https://usebasin.com/api/v1/submissions/{id}/refire_webhooks?api_token=YOUR_TOKEN"

Multiple submissions:

curl -X POST "https://usebasin.com/api/v1/submissions/refire_webhooks?api_token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"submission_ids": [123, 456]}'

Both endpoints support Account API keys and Form API keys. When a Form API key is used, only submissions belonging to that form can be re-fired — requests for submissions from other forms are rejected.

How it works

Each re-fire creates a new parent log event (labelled "Webhook Re-fired") and re-queues WebhookJobV2, so the full retry and failure handling cycle applies exactly as it does for an original webhook delivery. Your webhook logs will always show a clear history of every attempt, including manual re-fires.


Read the docs →