The hierarchy
Endpoints
| Method | Path | Purpose |
|---|---|---|
GET | /v1/companies/{cid}/goals | List goals |
POST | /v1/companies/{cid}/goals | Create a goal |
GET | /v1/companies/{cid}/goals/{id} | Get one goal |
PATCH | /v1/companies/{cid}/goals/{id} | Update a goal |
POST | /v1/companies/{cid}/goals/{id}/close | Close a goal |
GET | /v1/companies/{cid}/projects | List projects |
POST | /v1/companies/{cid}/projects | Create a project |
GET | /v1/companies/{cid}/projects/{id} | Get one project |
PATCH | /v1/companies/{cid}/projects/{id} | Update a project |
POST | /v1/companies/{cid}/projects/{id}/archive | Archive a project |
The goal object
The project object
Create a goal
Create a project under a goal
Link a task to a project
When creating a task, setprojectId:
Progress rollups
Progress is computed on every task state transition. You do not have to maintain it by hand. The rollup fields:tasksTotal— all tasks ever created under this goal/projecttasksDone— tasks indonestatetasksInFlight— tasks inrunning,review, orhandofftasksQueued— tasks inqueuedorassignedtasksFailed— excluded from the above; shown separately
Closing a goal
- Marks it as
closedwith the given outcome - Prevents new projects from being created under it
- Existing projects keep running (they can be closed separately)
- Rolls up the final numbers into the closing record
Archiving a project
Webhooks
| Event | When |
|---|---|
goal.created | Goal created |
goal.updated | Any goal PATCH |
goal.closed | Goal closed |
project.created | Project created |
project.updated | Any project PATCH |
project.archived | Project archived |