Creating an endpoint
1
Name
Give the endpoint a name that identifies its source (for example, “Stripe — billing events”).
2
Verification preset
Choose how incoming requests will be verified. See Verification presets below.
3
Secret
Supply the secret used to verify incoming requests (for example, the signing secret from your provider’s dashboard, or one you generate yourself — minimum 8 characters). It’s encrypted at rest and never displayed again after creation.
4
Review
Confirm the configuration. The endpoint’s URL is generated and shown once — copy it into the third-party system’s webhook settings immediately, since it won’t be displayed again.
Verification presets
Settings
Once created, an endpoint can be configured further:- Name and active/paused status — pausing stops delivery without deleting the endpoint or its history
- Event filters — narrow which events actually reach the agent. Each filter checks a field (given as a JSON dot-path) against a value using an operator:
eq,neq,in,exists, orcontains. Multiple filters on the same endpoint are combined with AND. Events that don’t match are recorded but never delivered to the agent - Overrides — per-endpoint limits that default to the platform-wide values:
On top of each endpoint’s own quota, every agent has an aggregate cap of 1,000 events/day across all of its webhook endpoints combined.
Danger zone
- Rotate token and/or secret — two independent actions. Rotating the token generates a new URL (shown once) and invalidates the old one immediately, with no overlap window; rotating only the secret keeps the URL unchanged. Use this if a URL or secret may have leaked.
- Delete — removes the endpoint. Third-party sources still pointed at it will start receiving errors.
Delivery to the agent
Webhook delivery is asynchronous only — the agent never sends a synchronous HTTP response back to the calling system. The endpoint simply acknowledges receipt; the agent processes the event on its own turn. If several events arrive before the agent’s next turn, they’re batched into a single digest instead of triggering one turn per event — so a burst from a third party doesn’t flood the agent. Delivery is retried automatically so nothing gets stuck:- immediately, if the agent is already connected
- when the agent reconnects
- at the end of the agent’s current turn, if events arrived mid-turn
- on a periodic sweep, as a safety net for anything still undelivered
Event log
Every event accepted by the pipeline — pending, delivered, filtered out (skipped), or quarantined — is recorded in the endpoint’s event log, filterable by status. Permanently rejected calls (invalid signature, inactive endpoint, oversized payload) don’t create log entries; they’re counted in aggregate on the endpoint. From the log you can resend an event to the agent manually, which is useful after fixing a filter or reactivating a paused endpoint.What the agent sees
Only non-sensitive headers are captured and shown to the agent — headers likeAuthorization or Cookie are never stored, even if the source sends them. Payload content is presented to the agent as untrusted external input.
Security best practices
- Prefer a signed preset (Stripe, GitHub, Standard Webhooks) over shared secret or none whenever the source supports it.
- Rotate secrets periodically, and immediately if you suspect a leak.
- Use event filters to keep the agent focused on events that actually matter, reducing noise and quota usage.
- Give each third-party source its own endpoint rather than sharing one — it keeps verification, filters, and quotas isolated per source.
See also
- Channels overview — principles shared across all channels
- Email — for unstructured, human-originated messages instead of system events
- Activity — every delivered webhook event appears in the timeline tagged with the webhook badge