Webhook Triggers

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