Webhooks
Events
An Atlas webhook subscribes to events by pattern. A pattern can name one exact action, a whole namespace with a trailing wildcard, or every event at once. This page explains how matching works and lists the events you will reach for most.
How event matching works
A subscription lists one or more event patterns. Atlas compares each recorded action against those patterns using three rules.
- Exact. A pattern like
task.completedmatches only that action. - Prefix wildcard. A pattern ending in
.*matches that namespace.task.*matchestask.created,task.completed, and also the bare actiontask. It matchestask.prefixed actions and the bare prefixtask, but not unrelated names liketasks.created- the boundary is a dot. - Global. The pattern
*matches every event.
| Pattern | Matches | Does not match |
|---|---|---|
task.completed | task.completed | task.created |
task.* | task.created, task.completed | tasks.created, project.created |
* | every event | (nothing is excluded) |
A subscription's events array may hold 1 to 50 patterns, each 1 to 100 characters.
Commonly used events
These are the events surfaced in the Atlas dashboard when you create a webhook. They cover the actions most integrations react to.
| Event | Meaning |
|---|---|
task.created | A task was created. |
task.updated | A task was edited. |
task.completed | A task was marked complete. |
task.assigned | A task was assigned to someone. |
project.created | A project was created. |
project.completed | A project was marked complete. |
goal.completed | A goal was achieved. |
habit.completed | A habit was checked off. |
* | All events - every action Atlas records. |
Comment and status-change style events exist too, for example task.status_changed and the comment.* namespace. Because matching is by name, you can subscribe to any of them the same way.
How events are produced
Event names are not a fixed list you have to wait for us to publish.
Events come from the audit log
.*, or everything with *. In production, prefer subscribing narrowly to only the events you handle rather than *.