Overview
Webhooks allow you to receive real-time notifications when important events occur in your Manus tasks. When you register a webhook, Manus will send HTTP POST requests to your specified callback URL whenever these events are triggered.How Webhook Events Work
When you create and execute tasks, two key lifecycle events can trigger webhook deliveries:- Task Creation: Immediately after a task is successfully created via the API
- Task State Change: When a task completes, or requires user input
Setting Up Webhooks
Manage Webhooks
Open Developers settings to create or manage webhooks.
- Respond with HTTP status code 200
- Accept POST requests with JSON payloads
- Respond within 10 seconds
Event Types and Payloads
task_created Event
When it triggers: Immediately after a new task is successfully created.
Why it’s useful: Allows you to track task creation in your own systems, send confirmation emails, or update dashboards in real-time.
Payload Schema:
Example Payload:
task_stopped Event
When it triggers: When a task reaches a stopping point - either because it completed successfully or needs user input to proceed.
Why it’s useful: Essential for knowing when your tasks finish and what the outcome was. Enables automated workflows based on task completion.
Payload Schema:
question_expectation.event_id identifies the underlying question event, not the webhook notification identified by the top-level event_id. It is not a reply parameter or a send-message idempotency key. In task.listMessages, use the enclosing message’s id; the nested event_id is absent.
options contains display text, not option IDs or mandatory exact-match answers. An empty array means free-text input; selection_mode defaults to single and is only a UI hint. For multiple, combine the chosen text into one readable message.content; no delimiter or option-ID array is required, and users may supply their own text. See question replies for a request example and unknown-method handling.
Stop Reason Values:
"finish": Task completed successfully and has final results"ask": Task paused and requires user input or confirmation to continue
Example Payload (Task Completed):
Integration Examples
Slack Integration
Post task updates directly to Slack channels:Custom Dashboard Updates
Update your internal dashboards in real-time:Troubleshooting
Common Issues
- Webhook not receiving events: Verify your URL is accessible and returns 200 status
- SSL/TLS errors: Ensure your endpoint uses valid HTTPS certificates
- Timeout errors: Make sure your endpoint responds within 10 seconds
Testing Your Webhook
You can test your webhook endpoint using tools like:- webhook.site for quick testing
- ngrok for local development
- Postman or curl for manual testing