Sobmit Docs

Webhooks

A webhook lets you trigger a saved flow over HTTP. When the endpoint is called, Sobmit starts a run with the request body as the run input.

Endpoint

Each saved flow has a webhook URL:

POST /api/hooks/<shortId>

The <shortId> is the flow’s public short id (the same one in its shareable URL).

Authentication

Webhook calls are authenticated with a bearer token. Generate (and rotate) the token in the flow’s Webhook trigger panel in the sidebar.

Authorization: Bearer <token>

The comparison is constant-time, so the token cannot leak through timing side-channels.

Request bodies

The webhook accepts several content types, each mapped to a run input:

Content typeBecomes the run input
application/jsonThe parsed JSON value
multipart/form-dataFiles as upload payloads + text fields as JSON
text/*The raw string
Anything elseA single upload payload from the raw bytes

Multipart file uploads

Files arrive in the exact shape of an Upload File node ({ name, mime, kind, content }), so a vision Agent, Transcribe node or image reference can consume them directly — no adapter needed.

Limits

  • The body is capped at 4 MB (Vercel’s serverless limit); larger requests get a 413.

Example — trigger with JSON

curl -X POST https://www.sobm.it/api/hooks/AbCdEf 
  -H "Authorization: Bearer $WEBHOOK_TOKEN" 
  -H "Content-Type: application/json" 
  -d '{"question": "Summarize this"}'

Example — trigger with a file

curl -X POST https://www.sobm.it/api/hooks/AbCdEf 
  -H "Authorization: Bearer $WEBHOOK_TOKEN" 
  -F "file=@recording.mp3"

Related