
When a human filling out a form should wake up your agent, you have two options: build a backend to receive the form, or use Hooksbase form ingest.
What you get
POST /v1/form/:publicIdacceptingapplication/x-www-form-urlencodedandmultipart/form-data- CORS headers so browser-side submissions work from any origin
GET /v1/form/:publicIdserving a minimal embeddable HTML form (zero-code option)- File uploads up to 15 MB per file (50 MB per ingest) on paid tiers, with signed URLs and an authenticated retrieval endpoint; free tier receives metadata only
Option A: embed the built-in form
Easiest path — point a link or iframe at the built-in form URL:
https://hooks.hooksbase.com/v1/form/YOUR_PUBLIC_ID
Users fill it in, submit, the agent fires. Zero code on your side.
Option B: build your own form
Submit directly to the ingest URL from your site:
<form
action="https://hooks.hooksbase.com/v1/form/YOUR_PUBLIC_ID"
method="POST"
enctype="multipart/form-data"
>
<input name="email" type="email" required />
<textarea name="message"></textarea>
<input name="attachment" type="file" />
<button type="submit">Send to agent</button>
</form>
CORS is enabled by default, so fetch() from your frontend also works.
The payload shape
Your agent receives structured JSON:
{
"source": "form",
"fields": {
"email": "user@example.com",
"message": "..."
},
"files": [
{
"fieldName": "attachment",
"filename": "screenshot.png",
"contentType": "image/png",
"size": 442120,
"fileRef": {
"key": "files/abc/def/0",
"url": "https://hooks.hooksbase.com/v1/files/eyJ..."
}
}
]
}
On free tier, fileRef is omitted; files are metadata-only.
Common agent recipes
- Support intake form: customer describes issue + uploads screenshot → agent classifies, writes Linear ticket, replies with ETA
- Lead qualification form: visitor fills out "tell us about your use case" → agent scores lead, routes to correct sales rep
- Custom request intake: anything where a form is the UX but an agent should process it
Security considerations
- Form submissions are typically unauthenticated. Use CAPTCHA, rate limiting, or a honeypot field upstream if abuse is a concern.
- Prevent double-submit in your own form UI if users can click Submit repeatedly; form ingest does not currently dedupe browser submissions by
Idempotency-Key.