Ingest channel
Post an HTML form straight into your event pipeline.
Form-to-webhook turns a Hooksbase webhook into a browser-postable endpoint: every webhook exposes a form URL at hooks.hooksbase.com/v1/form/{publicId} that accepts standard HTML form posts including multipart file uploads, and each submission becomes a delivery with the same routing, retries, signing, replay, and dead-letter handling as any other event.
Sometimes the producer is a browser, not a server — an internal tool, a lightweight embed, or a system that can only post a traditional form. That should not require standing up a backend just to catch the submission.
Form ingest is available on every plan, including Free. Non-HTTP outbound destinations require Pro or above.
How it works
Creating a webhook returns a formIngestUrl of the form hooks.hooksbase.com/v1/form/{publicId}. The unguessable publicId is the access credential — there is no separate secret — so rotate the webhook if the URL leaks.
Set it as your form action, or post to it with fetch from your own UI. GET on the same URL renders a minimal HTML form, which is useful for a quick test or a lightweight embed. OPTIONS is handled for CORS preflight.
Each POST creates a delivery on the target webhook. Multipart submissions including file uploads are accepted, so a form with an attachment does not need separate upload handling.
Form encodings are flat and awkward. An Automation can flatten or restructure the submission into the shape your agent expects before delivery, and routing rules can select a destination based on the submitted fields.
Form to webhook at a glance
| URL shape | hooks.hooksbase.com/v1/form/{publicId}, one per webhook |
|---|---|
| Methods | POST to submit, GET for a minimal built-in form, OPTIONS for CORS preflight |
| Encodings | Standard form encodings including multipart with file uploads |
| Credential | The unguessable publicId in the URL. No separate secret |
| Reshaping | Automations and routing rules run on the submission before delivery |
| Outbound destinations | HTTP, and on Pro or above AWS SQS, EventBridge, GCP Pub/Sub, and S3-compatible storage |
Form to webhook is not a side door.
Every channel lands in the same delivery engine. The same routing rules, Automations, retry policy, Standard Webhooks-compatible signing, delivery history, analytics, deterministic replay, and dead-letter handling apply no matter how the event arrived.
- • A backend endpoint whose only job is catching a form post
- • CORS handling for a form embedded on another origin
- • Multipart parsing and somewhere to put uploaded files
- • Retry logic for when the downstream consumer is unavailable
- • A record of what was submitted and whether it was processed
- • A dead-letter path for submissions that never made it through
Form-backend services exist to catch a submission and forward it, usually to an inbox or a single webhook, and for a contact form that is the right amount of tool. The difference shows up when the submission matters: whether a failed forward is retried, whether you can see what was submitted six weeks ago, whether you can re-run it, and whether it can reach a destination other than an HTTP endpoint. Hooksbase treats a form post as an event in the same pipeline as everything else.
What teams use it for
An embedded form gives non-technical users a way to hand work to an agent, with the submission recorded as a durable event rather than a fire-and-forget request.
A back-office page posts directly to the form URL. There is no service to deploy, and the submission still gets retries and history.
Multipart submissions carry uploads through the same path, so a document handed in through a form reaches the agent alongside its metadata.
On Pro and above a submission can be delivered straight to S3-compatible storage or a message destination, rather than to an HTTP endpoint you have to run.
Limits worth knowing before you build on it
Every channel has edges. These are the ones that change how you design around it.
There is no signing secret or API key on the form route. Security rests on the publicId being unguessable, so treat the URL as sensitive and rotate the webhook if it is exposed. Do not describe this endpoint as authenticated.
Standard form encodings produce flat key-value data, which rarely matches the structure an agent wants. Expect to add an Automation to reshape the submission rather than consuming it raw.
The GET view exists for testing and lightweight embeds. It is not a form builder — for anything designed, build your own markup and point it at the same URL.
Frequently asked questions
- How do I send an HTML form to a webhook?
- Create a Hooksbase webhook and use the formIngestUrl it returns as the form action. Standard form posts, including multipart submissions with file uploads, become deliveries on that webhook with retries, routing, and replay.
- Do I need a backend to receive form submissions?
- No. The form URL is a hosted endpoint. A static page can post to it directly, and CORS preflight is handled, so the form can live on a different origin.
- Is the form endpoint authenticated?
- Not in the usual sense. There is no separate secret — the unguessable publicId in the URL is the access credential. Treat the URL as sensitive and rotate the webhook if it leaks.
- Can forms include file uploads?
- Yes. Multipart submissions with files are accepted on the same endpoint, so you do not need separate upload handling to get a document into the pipeline alongside its fields.
- What shape does my agent receive?
- Form encodings are flat key-value data. Most teams add an Automation to flatten or restructure the submission into the shape the agent expects before it is delivered.
- What happens if the destination is down when someone submits?
- The submission is already recorded as a delivery, so it is retried under the webhook’s retry policy and lands in the dead-letter path if it ultimately fails. It can then be inspected and re-driven rather than lost.
Try it on the free plan
5,000 deliveries a month, no card. Create a webhook and the form channel is available on it immediately.