Webhook Triggers

These are inbound webhook triggers that start runs. For outbound webhook events that notify your server when runs complete, see Webhook Events. They are two completely different features.

Overview

Webhook triggers let external systems start runs via HTTP POST. There are two types:

TypeWhat it triggersPayload
Task webhookRuns a pre-created taskOptional JSON body (task has its own instructions)
Teammate webhookStarts a new dynamic runRequires {"message": "..."} in body

Rule of thumb: If the work is always the same, use a task webhook. If each trigger has a different message, use a teammate webhook.

Task Webhook Triggers

Attach a webhook trigger to a task. When you POST to the generated URL, the task runs automatically using its pre-defined instructions.

Create a Task Webhook

Trigger the Task

POST to the webhook URL. The JSON body is optional — the task already has its own instructions.

cURL

Teammate Webhook Triggers

Enable a webhook directly on a teammate. Each POST creates a new run with the message you provide — useful for dynamic, event-driven workflows.

Enable Teammate Webhook

Important: The webhook URL contains a secret token and is only shown once. Store it securely.

Trigger a Run

POST a JSON body with a message field:

cURL

The teammate processes the message using its configured instructions and tools.

Disable Teammate Webhook

When to Use Which

Use CaseType
Automated report on a schedule + manual triggerTask webhook
CI/CD pipeline triggers a fixed analysisTask webhook
Slack/Discord bot forwards messagesTeammate webhook
Customer support system routes ticketsTeammate webhook
GitHub webhook on new issuesTeammate webhook

Managing Triggers

List Triggers

Python

Delete a Trigger

Python

Deduplication

Include an X-M8tes-Event-Id header to prevent duplicate runs from retried webhooks:

cURL

What's Next