Webhook Triggers
Overview
Webhook triggers let external systems start runs via HTTP POST. There are three types:
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. If a connected app should trigger runs automatically (e.g. "on every GitHub push"), use an app trigger.
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.
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:
The teammate processes the message using its configured instructions and tools.
Disable Teammate Webhook
App Triggers
App triggers connect to your integrated apps (GitHub, Slack, etc.) and automatically start task runs when specific events occur — no webhook URL management needed.
Discover Available Triggers
Create an App Trigger
Prerequisite: The app must be connected first via
client.apps.connect()or the dashboard.
How It Works
- You connect an app (e.g. GitHub) via OAuth
- You create an app trigger on a task with a trigger type and config
- When the event fires, the task runs automatically with the event data injected into the instructions
- If you disconnect the app or the connection expires, all triggers using that connection are automatically disabled
Multi-Tenancy
For multi-tenant apps, pass user_id to scope the trigger to a specific end-user's connection:
When to Use Which
Managing Triggers
List Triggers
Delete a Trigger
Deduplication
Include an X-M8tes-Event-Id header to prevent duplicate runs from retried webhooks:
What's Next
- Scheduling — automate with cron and intervals
- Email Inbox — trigger runs from inbound emails
- Webhook Events — get notified when runs complete (outbound)
