Prerequisites
- An agent with a working model. See create and configure an agent.
- A publicly reachable API, or a tunnel to your local one — the sending system has to be able to reach the webhook URL.
- An access token as
AGENTAREA_TOKENand the API base URL asAGENTAREA_URL.
Steps
Create the trigger
Omit
webhook_id and the platform generates one with
secrets.token_urlsafe(16). Let it — a generated id is unguessable, and for
an unverified webhook the URL is the only thing standing between the agent
and the internet.The response carries the
webhook_id. The URL is:Turn on signature verification
Configure the secret the provider signs with, then point the trigger at it:For Those three values are the defaults.
generic webhooks the HMAC details are configurable, because the sender
is whatever you wrote:slack, github, discord (Ed25519),
linear and stripe ignore them and use their provider’s scheme. Telegram
is validated by bot token at a different layer.Point the sending system at the URL
Register the URL wherever the events come from — a GitHub repository webhook,
a Stripe endpoint, your own service.
Only Telegram registers its inbound webhook with the provider automatically.
Every other channel is a manual step, and nothing in the platform reports
that you skipped it.
Verify
The execution history records every delivery that reached the trigger, including ones that produced no task:status: "success" with a task_id means the delivery started a task. status: "success" with task_id: null means validation passed and the conditions
declined — the trigger is working and deliberately filtering.Troubleshooting
Signature verification failed
Signature verification failed
A signing secret is configured and the signature did not match. The most
common cause is the body: the signature is computed over the exact raw bytes,
so any proxy that re-serializes JSON between the provider and the API
invalidates it. The same response is returned when a secret is configured but
the raw body was unavailable to verify.
Method ... not allowed
Method ... not allowed
allowed_methods defaults to ["POST"] and is checked before signature and
validation. A provider that sends PUT, or a browser preflight, is rejected
here.Deliveries return success but nothing happens
Deliveries return success but nothing happens
Validation passed and the conditions declined to create a task. Conditions
with no explicit
type are evaluated by a model against the payload, so the
verdict is a judgement, not a rule mismatch. Read trigger_data on the
execution record to see exactly what the model was shown.The webhook worked and then stopped accepting anything
The webhook worked and then stopped accepting anything
Crossing
failure_threshold consecutive failures disables the trigger, and
nothing re-enables it automatically:I set webhook_type and assumed it was secured
I set webhook_type and assumed it was secured
It is not. The type selects which verifier runs, not whether one runs.
Verification begins only once a signing secret resolves from
webhook_config or validation_rules.Related
Triggers and channels
The model behind this, and what it does not cover.
Schedule an agent
The other way a task starts without a person.
Debug a failed task
When the delivery worked and the task did not.
Errors
What the API returns, and what is safe to retry.