Download OpenAPI specification:Download
The Cascade REST API
Authorize your requests with a bearer token.
To get a token, log in to your Cascade instance, then go to Profile > Security.
A request looks like this. Your token would go where the <token>
placeholder text is.
curl --location --request GET 'https://csegeneral.executestrategy.net/api/v2/goals?id=1,2'
--header 'Authorization: Bearer <token>'
Security Scheme Type | HTTP |
---|---|
HTTP Authorization Scheme | bearer |
Goals are the core resource of the Cascade application. They are the elementary units of a strategic plan.
Fetch some or all goal records, using filters to fetch subsets.
To filter the response to a subset of goals, use the query params.
If you want to include multiple values in a param, you can separate them with commas.
For example, this call returns goals that have id
values of 1
and 2
curl --location --request GET 'https://csegeneral.executestrategy.net/api/v2/goals?id=1,2'
--header 'Authorization: Bearer {token}'
offset | integer Default: 1 Example: offset=1 The offset for pagination. |
limit | integer Example: limit=10 The number of items to return |
role_id | integer Example: role_id=2 The ID of the role of the associated user or goal |
creator_id | integer Nullable Default: null Example: creator_id=3 The ID of the user who created the goal |
status | string Default: "DRAFT" Enum: "APPRO" "DRAFT" "ARCHI" Example: status=DRAFT Determines the state of the goal |
completion_criteria | string Enum: "TARGET-REACHED" "TARGET-DEADLINE-REACHED" Example: completion_criteria=TARGET-DEADLINE-REACHED Criteria to determine whether the goal is complete |
target_flow | string Enum: "OVER" "UNDER" "NONE" Example: target_flow=NONE The tracking direction of the goal. If |
action | string <= 25 characters Nullable Default: null Example: action=complete The action to accomplish the goal, task, etc. In the Cascade UI, |
detail | string <= 300 characters Nullable Default: null Example: detail=All tasks by Q3 Description of what is implementing the action |
initial | number Default: 0 Example: initial=0 Initial progress of the goal |
threshold | number Nullable Default: null Example: Allowed |
progress | number Example: progress=68.5 Current progress of the goal |
target | number Example: target=101 Expected target of the goal |
unit_id | integer [ 1 .. 4 ] Example: unit_id=1 What unit the goal uses for tracking
|
string or integer Example: start_id=2021-11-15T21:45:44+00:00 Intended start time of the goal, in Unix time or ISO 8601 format | |
end_time | string Example: end_time=2022-01-15T21:45:44+00:00 Expected end time of the goal, in Unix time or ISO 8601 format |
weight_id | integer [ 1 .. 4 ] Example: weight_id=2 The weight of a resources's priority.
The highest priority is |
link | object URIs that link to related resources |
why_type | string Default: "NONE" Enum: "VIDEO" "RHTML" "NONE" Describes the type of extra detail provided |
why | string Nullable Default: null Example: Extra detail about the goal, in the form of its |
number or boolean Example: is_private=0 Whether the resource is private | |
tracking_type | string Default: "MANUAL" Enum: "MANUAL" "SUBGOAL-SUM" "SUBGOAL-MEAN" "WEIGHTED-MEAN" "TASKS" Example: tracking_type=MANUAL Tracking schema used to track the goal |
integer or string Example: created_at=2021-11-26T17:43:08+00:00 Date when the resource was created, in Unix time or ISO 8601 format |
{- "goals": [
- {
- "id": 12,
- "role_id": 2,
- "creator_id": 3,
- "status": "DRAFT",
- "completion_criteria": "TARGET-DEADLINE-REACHED",
- "target_flow": "NONE",
- "action": "complete",
- "details": "All tasks by Q3",
- "initial": 0,
- "threshold": null,
- "progress": 68.5,
- "target": 101,
- "allocated_time": 0,
- "unit_id": 1,
- "start_time": "2021-11-15T21:45:44+00:00",
- "end_time": "2022-01-15T21:45:44+00:00",
- "weight_id": 2,
- "link": "NONE",
- "why_type": "NONE",
- "why": null,
- "is_private": 0,
- "tracking_type": "MANUAL",
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-26T17:43:08+00:00",
- "image": null,
- "custom_attributes": {
- "YOURCUSTOMFIELDID": "Field Value",
- "ANOTHERCUSTOMFIELDID": "Secondary"
}, - "entity_template_id": 12,
- "settings": "{\"row\":\"0\",\"col\":\"0\",\"width\":\"3\",\"height\":\"1\"}",
- "title": "string",
- "pending_edit_id": null,
- "pending_delete_id": null,
- "pending_completion_id": null,
- "direct_focus_area_ids": [
- 1,
- 2
], - "inherited_focus_area_ids": [
- 0
], - "aligned_from_ids": [ ],
- "aligned_to_ids": [ ],
- "ancestor_ids": [ ],
- "collaborators": [
- {
- "id": 12,
- "goal_id": 15,
- "role_id": 2
}
], - "milestones": [
- {
- "id": 2,
- "goal_id": 15,
- "end_date": "2021-12-29T20:43:08+00:00",
- "target": 33.3,
- "label": "Week 5",
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00"
}
], - "goal_type_ids": [
- 1,
- 2
], - "update_ids": [
- 1,
- 23,
- 56
], - "issue_ids": [
- 3,
- 4
], - "task_ids": [
- 12,
- 13,
- 14
]
}
], - "meta": {
- "total": 45
}
}
Create a new goal in your Cascade instance.
object The object to create a goal |
{- "goal": {
- "action": "complete",
- "details": "All tasks by Q3",
- "weight_id": 2,
- "start_time": "2021-11-15T21:45:44+00:00",
- "end_time": "2022-01-15T21:45:44+00:00",
- "role_id": 2,
- "creator_id": 3,
- "initial": 0,
- "status": "DRAFT",
- "threshold": null,
- "completion_criteria": "TARGET-DEADLINE-REACHED",
- "target": 101,
- "target_flow": "NONE",
- "progress": 68.5,
- "unit_id": 1,
- "link": null,
- "why_type": "NONE",
- "why": null,
- "is_private": 0,
- "tracking_type": "MANUAL",
- "custom_attributes": {
- "YOURCUSTOMFIELDID": "Field Value",
- "ANOTHERCUSTOMFIELDID": "Secondary"
}, - "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-26T17:43:08+00:00"
}
}
{- "errors": {
- "field": [
- "field can not be blank"
]
}, - "status": "Unprocessable"
}
To retrieve a single goal, make a request to the /goals/{id}
endpoint. In this case, id
represents the ID of the goal.
id required | integer Example: 12 The ID of the resource. For example, an |
offset | integer Default: 1 Example: offset=1 The offset for pagination. |
limit | integer Example: limit=10 The number of items to return |
{- "goal": {
- "id": 12,
- "role_id": 2,
- "creator_id": 3,
- "status": "DRAFT",
- "completion_criteria": "TARGET-DEADLINE-REACHED",
- "target_flow": "NONE",
- "action": "complete",
- "details": "All tasks by Q3",
- "initial": 0,
- "threshold": null,
- "progress": 68.5,
- "target": 101,
- "allocated_time": 0,
- "unit_id": 1,
- "start_time": "2021-11-15T21:45:44+00:00",
- "end_time": "2022-01-15T21:45:44+00:00",
- "weight_id": 2,
- "link": "NONE",
- "why_type": "NONE",
- "why": null,
- "is_private": 0,
- "tracking_type": "MANUAL",
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-26T17:43:08+00:00",
- "image": null,
- "custom_attributes": {
- "YOURCUSTOMFIELDID": "Field Value",
- "ANOTHERCUSTOMFIELDID": "Secondary"
}, - "entity_template_id": 12,
- "settings": "{\"row\":\"0\",\"col\":\"0\",\"width\":\"3\",\"height\":\"1\"}",
- "title": "string",
- "pending_edit_id": null,
- "pending_delete_id": null,
- "pending_completion_id": null,
- "direct_focus_area_ids": [
- 1,
- 2
], - "inherited_focus_area_ids": [
- 0
], - "aligned_from_ids": [ ],
- "aligned_to_ids": [ ],
- "ancestor_ids": [ ],
- "collaborators": [
- {
- "id": 12,
- "goal_id": 15,
- "role_id": 2
}
], - "milestones": [
- {
- "id": 2,
- "goal_id": 15,
- "end_date": "2021-12-29T20:43:08+00:00",
- "target": 33.3,
- "label": "Week 5",
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00"
}
], - "goal_type_ids": [
- 1,
- 2
], - "update_ids": [
- 1,
- 23,
- 56
], - "issue_ids": [
- 3,
- 4
], - "task_ids": [
- 12,
- 13,
- 14
]
}
}
To update a goal, send a PUT request to the goals/{id}
endpoint, where id
represents the goal you want to update.
Use the request body to update fields. The only required request body field is id
.
id required | integer Example: 12 The ID of the resource. For example, an |
object A goal object |
{- "goal": {
- "id": 12,
- "role_id": 2,
- "creator_id": 3,
- "status": "DRAFT",
- "completion_criteria": "TARGET-DEADLINE-REACHED",
- "target_flow": "NONE",
- "action": "complete",
- "details": "All tasks by Q3",
- "initial": 0,
- "threshold": null,
- "progress": 68.5,
- "target": 101,
- "allocated_time": 0,
- "unit_id": 1,
- "start_time": "2021-11-15T21:45:44+00:00",
- "end_time": "2022-01-15T21:45:44+00:00",
- "weight_id": 2,
- "link": "NONE",
- "why_type": "NONE",
- "why": null,
- "is_private": 0,
- "tracking_type": "MANUAL",
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-26T17:43:08+00:00",
- "image": null,
- "custom_attributes": {
- "YOURCUSTOMFIELDID": "Field Value",
- "ANOTHERCUSTOMFIELDID": "Secondary"
}, - "entity_template_id": 12,
- "settings": "{\"row\":\"0\",\"col\":\"0\",\"width\":\"3\",\"height\":\"1\"}",
- "title": "string",
- "pending_edit_id": null,
- "pending_delete_id": null,
- "pending_completion_id": null,
- "direct_focus_area_ids": [
- 1,
- 2
], - "inherited_focus_area_ids": [
- 0
], - "aligned_from_ids": [ ],
- "aligned_to_ids": [ ],
- "ancestor_ids": [ ],
- "collaborators": [
- {
- "id": 12,
- "goal_id": 15,
- "role_id": 2
}
], - "milestones": [
- {
- "id": 2,
- "goal_id": 15,
- "end_date": "2021-12-29T20:43:08+00:00",
- "target": 33.3,
- "label": "Week 5",
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00"
}
], - "goal_type_ids": [
- 1,
- 2
], - "update_ids": [
- 1,
- 23,
- 56
], - "issue_ids": [
- 3,
- 4
], - "task_ids": [
- 12,
- 13,
- 14
]
}
}
Add a new milestone to a goal.
id required | integer Example: 12 The ID of goal you want to add a milestone to. |
Array of objects |
{- "milestones": [
- {
- "id": "6",
- "end_date": "2021-10-19 02:59:59",
- "target": 1,
- "forecast": 0,
- "label": "Week 1",
- "goal_id": "15"
}, - {
- "id": "7",
- "end_date": "2021-10-26 02:59:59",
- "target": 10,
- "forecast": 0,
- "label": "Week 2",
- "goal_id": 15
}
]
}
{- "milestones": [
- {
- "id": "6",
- "end_date": "2021-10-19 02:59:59",
- "target": 1,
- "forecast": 0,
- "label": "Week 1",
- "goal_id": "15"
}, - {
- "id": "7",
- "end_date": "2021-10-26 02:59:59",
- "target": 10,
- "forecast": 0,
- "label": "Week 2",
- "goal_id": 15
}
]
}
Tasks are the individual bits of work that combine together to complete a goal. You can use tasks to break up individual components of a goal.
Fetch some or all task records, using filters to fetch subsets.
In addition to limit
and offset
, you can also pass any field in the task
object as a query parameter.
limit | integer Example: limit=10 The number of items to return |
offset | integer Default: 1 Example: offset=1 The offset for pagination. |
{- "tasks": [
- [
- {
- "id": 12,
- "task": "rewrite",
- "comment": "I agree.",
- "created_at": "2021-11-26T17:43:08+00:00",
- "is_complete": 0,
- "completed_at": "2021-12-29T00:00:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00",
- "user_id": 1,
- "role_id": 2,
- "completed_user_id": 2,
- "goal_id": 15,
- "thread_id": 82,
- "file_id": 12,
- "start_date": "2021-11-29T20:43:08+00:00",
- "due_date": "2021-12-29T20:43:08+00:00",
- "weight_id": 2,
- "entity_template_id": 12,
- "custom_attributes": {
- "YOURCUSTOMFIELDID": "Field Value",
- "ANOTHERCUSTOMFIELDID": "Secondary"
}, - "thread": {
- "id": 12,
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00",
- "is_locked": 0,
- "comments": [
- {
- "id": 12,
- "created_at": "2021-11-26T17:43:08+00:00",
- "comment": "I agree.",
- "user_id": 1,
- "thread_id": 82,
- "has_history": true,
- "links": { }
}
]
}
}
]
], - "meta": {
- "total": 45
}
}
Add a new task to a goal.
Request body MUST include the fields task
and goal_id
.
object Object to create a task. |
{- "task": {
- "task": "rewrite",
- "comment": "I agree.",
- "created_at": "2021-11-26T17:43:08+00:00",
- "is_complete": true,
- "completed_at": "2021-12-29T00:00:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00",
- "user_id": 1,
- "role_id": 2,
- "completed_user_id": 2,
- "goal_id": 15,
- "thread_id": 82,
- "file_id": 12,
- "start_date": "2021-11-29T20:43:08+00:00",
- "due_date": "2021-12-29T20:43:08+00:00",
- "weight_id": 2,
- "entity_template_id": 12,
- "custom_attributes": {
- "YOURCUSTOMFIELDID": "Field Value",
- "ANOTHERCUSTOMFIELDID": "Secondary"
}
}
}
{- "errors": {
- "field": [
- "field can not be blank"
]
}, - "status": "Unprocessable"
}
Get a task, using its id
as a path parameter
id required | integer Example: 12 The ID of the resource. For example, an |
{- "task": {
- "id": 12,
- "task": "rewrite",
- "comment": "I agree.",
- "created_at": "2021-11-26T17:43:08+00:00",
- "is_complete": 0,
- "completed_at": "2021-12-29T00:00:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00",
- "user_id": 1,
- "role_id": 2,
- "completed_user_id": 2,
- "goal_id": 15,
- "thread_id": 82,
- "file_id": 12,
- "start_date": "2021-11-29T20:43:08+00:00",
- "due_date": "2021-12-29T20:43:08+00:00",
- "weight_id": 2,
- "entity_template_id": 12,
- "custom_attributes": {
- "YOURCUSTOMFIELDID": "Field Value",
- "ANOTHERCUSTOMFIELDID": "Secondary"
}, - "thread": {
- "id": 12,
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00",
- "is_locked": 0,
- "comments": [
- {
- "id": 12,
- "created_at": "2021-11-26T17:43:08+00:00",
- "comment": "I agree.",
- "user_id": 1,
- "thread_id": 82,
- "has_history": true,
- "links": { }
}
]
}
}
}
Update a task, using its id
as a path parameter.
In the request body, update fields in a top-level task
object. No field is required, but you MUST send at least one field.
id required | integer Example: 12 The ID of the resource. For example, an |
object A task object |
{- "task": {
- "id": 12,
- "task": "rewrite",
- "comment": "I agree.",
- "created_at": "2021-11-26T17:43:08+00:00",
- "is_complete": 0,
- "completed_at": "2021-12-29T00:00:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00",
- "user_id": 1,
- "role_id": 2,
- "completed_user_id": 2,
- "goal_id": 15,
- "thread_id": 82,
- "file_id": 12,
- "start_date": "2021-11-29T20:43:08+00:00",
- "due_date": "2021-12-29T20:43:08+00:00",
- "weight_id": 2,
- "entity_template_id": 12,
- "custom_attributes": {
- "YOURCUSTOMFIELDID": "Field Value",
- "ANOTHERCUSTOMFIELDID": "Secondary"
}, - "thread": {
- "id": 12,
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00",
- "is_locked": 0,
- "comments": [
- {
- "id": 12,
- "created_at": "2021-11-26T17:43:08+00:00",
- "comment": "I agree.",
- "user_id": 1,
- "thread_id": 82,
- "has_history": true,
- "links": { }
}
]
}
}
}
{- "task": {
- "id": 12,
- "task": "rewrite",
- "comment": "I agree.",
- "created_at": "2021-11-26T17:43:08+00:00",
- "is_complete": 0,
- "completed_at": "2021-12-29T00:00:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00",
- "user_id": 1,
- "role_id": 2,
- "completed_user_id": 2,
- "goal_id": 15,
- "thread_id": 82,
- "file_id": 12,
- "start_date": "2021-11-29T20:43:08+00:00",
- "due_date": "2021-12-29T20:43:08+00:00",
- "weight_id": 2,
- "entity_template_id": 12,
- "custom_attributes": {
- "YOURCUSTOMFIELDID": "Field Value",
- "ANOTHERCUSTOMFIELDID": "Secondary"
}, - "thread": {
- "id": 12,
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00",
- "is_locked": 0,
- "comments": [
- {
- "id": 12,
- "created_at": "2021-11-26T17:43:08+00:00",
- "comment": "I agree.",
- "user_id": 1,
- "thread_id": 82,
- "has_history": true,
- "links": { }
}
]
}
}
}
Issues document problems and risks for a particular goal. In Cascade's help articles and UI-facing documentation, issues are usually referred to as "risks."
Fetch some or all issue records, using filters to fetch subsets.
In addition to limit
and offset
, you can also pass any field in the issue
object as a query parameter.
limit | integer Example: limit=10 The number of items to return |
offset | integer Default: 1 Example: offset=1 The offset for pagination. |
{- "issues": [
- {
- "id": 12,
- "issue": "Getting over budget",
- "comment": "I agree.",
- "is_critical": 0,
- "is_resolved": 0,
- "created_at": "2021-11-26T17:43:08+00:00",
- "user_id": 1,
- "goal_id": 15,
- "role_id": 2,
- "thread_id": 82,
- "file_id": 12,
- "due_date": "2021-12-29T20:43:08+00:00",
- "entity_template_id": 12,
- "custom_attributes": {
- "CA1573011427674": null,
- "CA1573011281053": 5,
- "CA1573011296755": 4,
- "CA1573011364578": null
}, - "thread": {
- "id": 12,
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00",
- "is_locked": 0,
- "comments": [
- {
- "id": 12,
- "created_at": "2021-11-26T17:43:08+00:00",
- "comment": "I agree.",
- "user_id": 1,
- "thread_id": 82,
- "has_history": true,
- "links": { }
}
]
}
}
], - "meta": {
- "total": 45
}
}
Add a new issue to a goal.
Request body MUST include the fields issue
and goal_id
.
object Request body to create an issue |
{- "issue": {
- "issue": "Getting over budget",
- "comment": "I agree.",
- "is_critical": 0,
- "is_resolved": 0,
- "created_at": "2021-11-26T17:43:08+00:00",
- "user_id": 1,
- "goal_id": 15,
- "role_id": 2,
- "thread_id": 82,
- "file_id": 12,
- "due_date": "2021-12-29T20:43:08+00:00",
- "entity_template_id": 12,
- "custom_attributes": {
- "YOURCUSTOMFIELDID": "Field Value",
- "ANOTHERCUSTOMFIELDID": "Secondary"
}
}
}
{- "issue": {
- "id": "21",
- "issue": "Nearly out of funds",
- "comment": null,
- "is_critical": 0,
- "is_resolved": 0,
- "created_at": "2021-12-14T20:09:46+00:00",
- "updated_at": "2021-12-14T20:09:46+00:00",
- "user_id": 1,
- "role_id": 2,
- "goal_id": 13,
- "thread_id": 125,
- "file_id": null,
- "due_date": "2021-10-25T13:00:00+00:00",
- "entity_template_id": 5,
- "custom_attributes": {
- "CA1573011281053": 5,
- "CA1573011296755": 1,
- "CA1573011364578": 5,
- "CA1573011427674": 5
}, - "thread": {
- "id": 125,
- "created_at": "2021-12-14T20:09:46+00:00",
- "updated_at": "2021-12-14T20:09:46+00:00",
- "is_locked": 0,
- "comments": [ ]
}
}
}
Get an issue, using its id
as a path parameter
id required | integer Example: 12 The ID of the resource. For example, an |
{- "issue": {
- "id": 12,
- "issue": "Getting over budget",
- "comment": "I agree.",
- "is_critical": 0,
- "is_resolved": 0,
- "created_at": "2021-11-26T17:43:08+00:00",
- "user_id": 1,
- "goal_id": 15,
- "role_id": 2,
- "thread_id": 82,
- "file_id": 12,
- "due_date": "2021-12-29T20:43:08+00:00",
- "entity_template_id": 12,
- "custom_attributes": {
- "CA1573011427674": null,
- "CA1573011281053": 5,
- "CA1573011296755": 4,
- "CA1573011364578": null
}, - "thread": {
- "id": 12,
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00",
- "is_locked": 0,
- "comments": [
- {
- "id": 12,
- "created_at": "2021-11-26T17:43:08+00:00",
- "comment": "I agree.",
- "user_id": 1,
- "thread_id": 82,
- "has_history": true,
- "links": { }
}
]
}
}
}
Update an issue, using its id
as a path parameter.
In the request body, update fields in a top-level issue
object. No field is required, but you MUST send at least one field.
id required | integer Example: 12 The ID of the resource. For example, an |
object An issue object |
{- "issue": {
- "id": 12,
- "issue": "Getting over budget",
- "comment": "I agree.",
- "is_critical": 0,
- "is_resolved": 0,
- "created_at": "2021-11-26T17:43:08+00:00",
- "user_id": 1,
- "goal_id": 15,
- "role_id": 2,
- "thread_id": 82,
- "file_id": 12,
- "due_date": "2021-12-29T20:43:08+00:00",
- "entity_template_id": 12,
- "custom_attributes": {
- "CA1573011427674": null,
- "CA1573011281053": 5,
- "CA1573011296755": 4,
- "CA1573011364578": null
}, - "thread": {
- "id": 12,
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00",
- "is_locked": 0,
- "comments": [
- {
- "id": 12,
- "created_at": "2021-11-26T17:43:08+00:00",
- "comment": "I agree.",
- "user_id": 1,
- "thread_id": 82,
- "has_history": true,
- "links": { }
}
]
}
}
}
{- "task": {
- "id": 12,
- "issue": "Getting over budget",
- "comment": "I agree.",
- "is_critical": 0,
- "is_resolved": 0,
- "created_at": "2021-11-26T17:43:08+00:00",
- "user_id": 1,
- "goal_id": 15,
- "role_id": 2,
- "thread_id": 82,
- "file_id": 12,
- "due_date": "2021-12-29T20:43:08+00:00",
- "entity_template_id": 12,
- "custom_attributes": {
- "CA1573011427674": null,
- "CA1573011281053": 5,
- "CA1573011296755": 4,
- "CA1573011364578": null
}, - "thread": {
- "id": 12,
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00",
- "is_locked": 0,
- "comments": [
- {
- "id": 12,
- "created_at": "2021-11-26T17:43:08+00:00",
- "comment": "I agree.",
- "user_id": 1,
- "thread_id": 82,
- "has_history": true,
- "links": { }
}
]
}
}
}
Fetch some or all update records, using filters to fetch subsets.
In addition to limit
and offset
, you can also pass any field in the update
object as a query parameter.
limit | integer Example: limit=10 The number of items to return |
offset | integer Default: 1 Example: offset=1 The offset for pagination. |
{- "updates": [
- [
- {
- "id": 12,
- "comment": "I agree.",
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00",
- "user_id": 1,
- "goal_id": 15,
- "thread_id": 82,
- "file_id": 12,
- "custom_attributes": {
- "YOURCUSTOMFIELDID": "Field Value",
- "ANOTHERCUSTOMFIELDID": "Secondary"
}, - "deleted": 0,
- "entity_template_id": 12,
- "has_history": true,
- "thread": {
- "id": 12,
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00",
- "is_locked": 0,
- "comments": [
- {
- "id": 12,
- "created_at": "2021-11-26T17:43:08+00:00",
- "comment": "I agree.",
- "user_id": 1,
- "thread_id": 82,
- "has_history": true,
- "links": { }
}
]
}, - "links": { }
}
]
], - "meta": {
- "total": 45
}
}
Add a new update to a goal.
Request body MUST include the fields update
and goal_id
.
object Request body to create an update |
{- "update": {
- "comment": "I agree.",
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00",
- "user_id": 1,
- "goal_id": 15,
- "thread_id": 82,
- "file_id": 12,
- "custom_attributes": {
- "YOURCUSTOMFIELDID": "Field Value",
- "ANOTHERCUSTOMFIELDID": "Secondary"
}
}
}
{- "update": {
- "id": "21",
- "update": "Nearly out of funds",
- "comment": null,
- "is_critical": 0,
- "is_resolved": 0,
- "created_at": "2021-12-14T20:09:46+00:00",
- "updated_at": "2021-12-14T20:09:46+00:00",
- "user_id": 1,
- "role_id": 2,
- "goal_id": 13,
- "thread_id": 125,
- "file_id": null,
- "due_date": "2021-10-25T13:00:00+00:00",
- "entity_template_id": 5,
- "custom_attributes": {
- "CA1573011281053": 5,
- "CA1573011296755": 1,
- "CA1573011364578": 5,
- "CA1573011427674": 5
}, - "thread": {
- "id": 125,
- "created_at": "2021-12-14T20:09:46+00:00",
- "updated_at": "2021-12-14T20:09:46+00:00",
- "is_locked": 0,
- "comments": [ ]
}
}
}
Get an update, using its id
as a path parameter
id required | integer Example: 12 The ID of the resource. For example, an |
{- "update": {
- "id": 12,
- "comment": "I agree.",
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00",
- "user_id": 1,
- "goal_id": 15,
- "thread_id": 82,
- "file_id": 12,
- "custom_attributes": {
- "YOURCUSTOMFIELDID": "Field Value",
- "ANOTHERCUSTOMFIELDID": "Secondary"
}, - "deleted": 0,
- "entity_template_id": 12,
- "has_history": true,
- "thread": {
- "id": 12,
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00",
- "is_locked": 0,
- "comments": [
- {
- "id": 12,
- "created_at": "2021-11-26T17:43:08+00:00",
- "comment": "I agree.",
- "user_id": 1,
- "thread_id": 82,
- "has_history": true,
- "links": { }
}
]
}, - "links": { }
}
}
Update an update, using its id
as a path parameter.
In the request body, update fields in a top-level update
object. No field is required, but you MUST send at least one field.
id required | integer Example: 12 The ID of the resource. For example, an |
object An update object |
{- "update": {
- "id": 12,
- "comment": "I agree.",
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00",
- "user_id": 1,
- "goal_id": 15,
- "thread_id": 82,
- "file_id": 12,
- "custom_attributes": {
- "YOURCUSTOMFIELDID": "Field Value",
- "ANOTHERCUSTOMFIELDID": "Secondary"
}, - "deleted": 0,
- "entity_template_id": 12,
- "has_history": true,
- "thread": {
- "id": 12,
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00",
- "is_locked": 0,
- "comments": [
- {
- "id": 12,
- "created_at": "2021-11-26T17:43:08+00:00",
- "comment": "I agree.",
- "user_id": 1,
- "thread_id": 82,
- "has_history": true,
- "links": { }
}
]
}, - "links": { }
}
}
{- "task": {
- "id": 12,
- "comment": "I agree.",
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00",
- "user_id": 1,
- "goal_id": 15,
- "thread_id": 82,
- "file_id": 12,
- "custom_attributes": {
- "YOURCUSTOMFIELDID": "Field Value",
- "ANOTHERCUSTOMFIELDID": "Secondary"
}, - "deleted": 0,
- "entity_template_id": 12,
- "has_history": true,
- "thread": {
- "id": 12,
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00",
- "is_locked": 0,
- "comments": [
- {
- "id": 12,
- "created_at": "2021-11-26T17:43:08+00:00",
- "comment": "I agree.",
- "user_id": 1,
- "thread_id": 82,
- "has_history": true,
- "links": { }
}
]
}, - "links": { }
}
}
Entity templates let you make custom fields for your goals and workflows. To work with entity templates in the UI, select your profile, then Customize Fields.
Fetch some or all entity template records, using filters to fetch subsets.
In addition to limit
and offset
, you can also pass any field in the entity_template
object as a query parameter.
limit | integer Example: limit=10 The number of items to return |
offset | integer Default: 1 Example: offset=1 The offset for pagination. |
{- "entity_templates": [
- {
- "id": 12,
- "name": "Example name",
- "description": "A dropdown",
- "settings": "{\"row\":\"0\",\"col\":\"0\",\"width\":\"3\",\"height\":\"1\"}",
- "entity_type": "update",
- "is_enabled": true,
- "is_archived": 0,
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00",
- "modified_by_id": null,
- "entity_template_attributes": {
- "id": 12,
- "entity_template_id": 2,
- "settings": "{\"row\":\"0\",\"col\":\"0\",\"width\":\"3\",\"height\":\"1\"}",
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00",
- "attribute": {
- "id": 12,
- "reference": "CA1573011427674",
- "label": "residential",
- "data_type": "data_set",
- "appearance": "dropdown",
- "settings": "{\"row\":\"0\",\"col\":\"0\",\"width\":\"3\",\"height\":\"1\"}",
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00"
}
}
}
], - "meta": {
- "total": 45
}
}
Get a template, using its id
as a path parameter
id required | integer Example: 12 The ID of the resource. For example, an |
{- "entity_template": {
- "id": 12,
- "name": "Example name",
- "description": "A dropdown",
- "settings": "{\"row\":\"0\",\"col\":\"0\",\"width\":\"3\",\"height\":\"1\"}",
- "entity_type": "update",
- "is_enabled": true,
- "is_archived": 0,
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00",
- "modified_by_id": null,
- "entity_template_attributes": {
- "id": 12,
- "entity_template_id": 2,
- "settings": "{\"row\":\"0\",\"col\":\"0\",\"width\":\"3\",\"height\":\"1\"}",
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00",
- "attribute": {
- "id": 12,
- "reference": "CA1573011427674",
- "label": "residential",
- "data_type": "data_set",
- "appearance": "dropdown",
- "settings": "{\"row\":\"0\",\"col\":\"0\",\"width\":\"3\",\"height\":\"1\"}",
- "created_at": "2021-11-26T17:43:08+00:00",
- "updated_at": "2021-11-29T20:43:08+00:00"
}
}
}
}
Fetch some or all users, using filters to fetch subsets.
In addition to limit
and offset
, you can also pass any field in the user
object as a query parameter.
limit | integer Example: limit=10 The number of items to return |
offset | integer Default: 1 Example: offset=1 The offset for pagination. |
{- "users": [
- {
- "user": {
- "id": 5,
- "client_id": "U0F53915B7",
- "username": "Eriberto_Blanda67@example.net",
- "is_enabled": 0,
- "is_locked": 0,
- "is_notified": 0,
- "is_restricted": 0,
- "is_archived": 0,
- "first_name": "Kristoffer",
- "last_name": "Tester 4",
- "email": "Tressie_Jacobi16@example.com",
- "creation_time": "2021-11-26T18:25:15+00:00",
- "last_login_ip": null,
- "last_login_time": null,
- "role_id": null,
- "current_appointment_id": null,
- "invitation_id": null,
- "appointment_ids": [ ],
- "appraisal_ids": [ ],
- "meeting_ids": [ ],
- "survey_campaign_ids": [ ],
- "survey_ids": [ ],
- "competency_assessment_ids": [ ],
- "dashboard_ids": [ ],
- "dashboard_configuration_ids": [ ],
- "links": {
- "events": "/api/v2/users/5/events",
- "user_configs": "/api/v2/users/5/user_configs",
- "scheduled_jobs": "/api/v2/users/5/scheduled_jobs",
- "snapshots": "/api/v2/users/5/snapshots",
- "job_applications": "/api/v2/users/5/job_applications",
- "statistic": "/api/v2/users/5/statistic"
}
}
}
], - "meta": {
- "total": 45
}
}
Create a user, with name and login credentials. You can optionally add your own client_id
, and a password
for first time logins.
A successul request returns the new user's Cascade id
, along with other user data.
offset | integer Default: 1 Example: offset=1 The offset for pagination. |
limit | integer Example: limit=10 The number of items to return |
first_name | string Example: first_name=Roberta A user's first name |
last_name | string Example: last_name=Allen A user's last name |
role_id | integer Example: role_id=2 The ID of the role of the associated user or goal |
username | string Example: username=Sofia@example.com The user's name when they log in |
string Example: email=boballen@example.com A user's email |
object Top-level object that holds user data |
{- "user": {
- "client_id": "U8132B5E78",
- "username": "Sofia@example.com",
- "email": "boballen@example.com",
- "first_name": "Roberta",
- "last_name": "Allen",
- "password": "PleaseMakeYourPasswordsLong"
}
}
{- "user": {
- "id": "25",
- "client_id": "U938168735",
- "username": "robertsonr21",
- "is_enabled": 1,
- "is_locked": 0,
- "is_notified": 0,
- "is_restricted": 0,
- "is_archived": 0,
- "first_name": "Rob",
- "last_name": "Allen",
- "email": "hello@example.com",
- "creation_time": "2021-12-09T23:28:32+00:00",
- "last_login_ip": null,
- "last_login_time": null,
- "role_id": null,
- "current_appointment_id": null,
- "invitation_id": null,
- "appointment_ids": [ ],
- "appraisal_ids": [ ],
- "meeting_ids": [ ],
- "survey_campaign_ids": [ ],
- "survey_ids": [ ],
- "competency_assessment_ids": [ ],
- "dashboard_ids": [ ],
- "dashboard_configuration_ids": [ ],
- "links": {
- "events": "/api/v2/users/25/events",
- "user_configs": "/api/v2/users/25/user_configs",
- "scheduled_jobs": "/api/v2/users/25/scheduled_jobs",
- "snapshots": "/api/v2/users/25/snapshots",
- "job_applications": "/api/v2/users/25/job_applications",
- "statistic": "/api/v2/users/25/statistic"
}
}
}
Returns all information about the user, specified by the id
id required | integer Example: 12 The ID of the resource. For example, an |
{- "user": {
- "id": 5,
- "client_id": "U0F53915B7",
- "username": "Eriberto_Blanda67@example.net",
- "is_enabled": 0,
- "is_locked": 0,
- "is_notified": 0,
- "is_restricted": 0,
- "is_archived": 0,
- "first_name": "Kristoffer",
- "last_name": "Tester 4",
- "email": "Tressie_Jacobi16@example.com",
- "creation_time": "2021-11-26T18:25:15+00:00",
- "last_login_ip": null,
- "last_login_time": null,
- "role_id": null,
- "current_appointment_id": null,
- "invitation_id": null,
- "appointment_ids": [ ],
- "appraisal_ids": [ ],
- "meeting_ids": [ ],
- "survey_campaign_ids": [ ],
- "survey_ids": [ ],
- "competency_assessment_ids": [ ],
- "dashboard_ids": [ ],
- "dashboard_configuration_ids": [ ],
- "links": {
- "events": "/api/v2/users/5/events",
- "user_configs": "/api/v2/users/5/user_configs",
- "scheduled_jobs": "/api/v2/users/5/scheduled_jobs",
- "snapshots": "/api/v2/users/5/snapshots",
- "job_applications": "/api/v2/users/5/job_applications",
- "statistic": "/api/v2/users/5/statistic"
}
}
}
Update a user's, using its id
as a path parameter.
In the request body, update fields in a top-level user
object. No field is required, but you MUST send at least one field.
id required | integer Example: 12 The ID of the resource. For example, an |
object Information about a user in your Cascade instance |
{- "user": {
- "user": {
- "id": 5,
- "client_id": "U0F53915B7",
- "username": "Eriberto_Blanda67@example.net",
- "is_enabled": 0,
- "is_locked": 0,
- "is_notified": 0,
- "is_restricted": 0,
- "is_archived": 0,
- "first_name": "Kristoffer",
- "last_name": "Tester 4",
- "email": "Tressie_Jacobi16@example.com",
- "creation_time": "2021-11-26T18:25:15+00:00",
- "last_login_ip": null,
- "last_login_time": null,
- "role_id": null,
- "current_appointment_id": null,
- "invitation_id": null,
- "appointment_ids": [ ],
- "appraisal_ids": [ ],
- "meeting_ids": [ ],
- "survey_campaign_ids": [ ],
- "survey_ids": [ ],
- "competency_assessment_ids": [ ],
- "dashboard_ids": [ ],
- "dashboard_configuration_ids": [ ],
- "links": {
- "events": "/api/v2/users/5/events",
- "user_configs": "/api/v2/users/5/user_configs",
- "scheduled_jobs": "/api/v2/users/5/scheduled_jobs",
- "snapshots": "/api/v2/users/5/snapshots",
- "job_applications": "/api/v2/users/5/job_applications",
- "statistic": "/api/v2/users/5/statistic"
}
}
}
}
{- "user": {
- "user": {
- "id": 5,
- "client_id": "U0F53915B7",
- "username": "Eriberto_Blanda67@example.net",
- "is_enabled": 0,
- "is_locked": 0,
- "is_notified": 0,
- "is_restricted": 0,
- "is_archived": 0,
- "first_name": "Kristoffer",
- "last_name": "Tester 4",
- "email": "Tressie_Jacobi16@example.com",
- "creation_time": "2021-11-26T18:25:15+00:00",
- "last_login_ip": null,
- "last_login_time": null,
- "role_id": null,
- "current_appointment_id": null,
- "invitation_id": null,
- "appointment_ids": [ ],
- "appraisal_ids": [ ],
- "meeting_ids": [ ],
- "survey_campaign_ids": [ ],
- "survey_ids": [ ],
- "competency_assessment_ids": [ ],
- "dashboard_ids": [ ],
- "dashboard_configuration_ids": [ ],
- "links": {
- "events": "/api/v2/users/5/events",
- "user_configs": "/api/v2/users/5/user_configs",
- "scheduled_jobs": "/api/v2/users/5/scheduled_jobs",
- "snapshots": "/api/v2/users/5/snapshots",
- "job_applications": "/api/v2/users/5/job_applications",
- "statistic": "/api/v2/users/5/statistic"
}
}
}
}
Roles are the positions that users have in your organization. They are also how Cascade manages permissions and resource ownership. Roles are deeply connected to some key features of the Cascade application:
Manager
, and every supervisor can have the role Supervisor
, etc.Fetch some or all role records, using filters to fetch subsets.
{- "role": {
- "id": 2,
- "client_id": "R0001",
- "org_unit_id": 2,
- "title": "CFO",
- "employment_type": null,
- "lft": 2,
- "rgt": 7,
- "parent_id": 1,
- "role_family_id": 1,
- "user_id": 1,
- "current_appointment_id": 4,
- "level": 1,
- "role_ids": [
- 3,
- 4
], - "privilege_ids": [
- 1,
- 2,
- 5,
- 3,
- 4,
- 6
], - "links": {
- "immediate_roles": "/api/v2/roles/2/immediate_roles",
- "goals": "/api/v2/roles/2/goals",
- "collaborations": "/api/v2/roles/2/collaborations",
- "goal_watchers": "/api/v2/roles/2/goal_watchers",
- "notifications": "/api/v2/roles/2/notifications",
- "appointments": "/api/v2/roles/2/appointments",
- "assigned_tasks": "/api/v2/roles/2/assigned_tasks"
}
}
}
Add a new role..
Request body MUST include the fields task
and goal_id
.
object An object to create roles |
{- "role": {
- "role": {
- "client_id": "R0005",
- "title": "A new role",
- "org_unit_id": 2,
- "role_family_id": 1,
- "employment_type": "PTIME",
- "parent_id": 2
}
}
}
{- "errors": {
- "field": [
- "field can not be blank"
]
}, - "status": "Unprocessable"
}
Get a role, using its id
as a path parameter
id required | integer Example: 12 The ID of the resource. For example, an |
{- "role": {
- "role": {
- "id": 2,
- "client_id": "R0001",
- "org_unit_id": 2,
- "title": "CFO",
- "employment_type": null,
- "lft": 2,
- "rgt": 7,
- "parent_id": 1,
- "role_family_id": 1,
- "user_id": 1,
- "current_appointment_id": 4,
- "level": 1,
- "role_ids": [
- 3,
- 4
], - "privilege_ids": [
- 1,
- 2,
- 5,
- 3,
- 4,
- 6
], - "links": {
- "immediate_roles": "/api/v2/roles/2/immediate_roles",
- "goals": "/api/v2/roles/2/goals",
- "collaborations": "/api/v2/roles/2/collaborations",
- "goal_watchers": "/api/v2/roles/2/goal_watchers",
- "notifications": "/api/v2/roles/2/notifications",
- "appointments": "/api/v2/roles/2/appointments",
- "assigned_tasks": "/api/v2/roles/2/assigned_tasks"
}
}
}
}
Fetch some or all org unit records, using filters to fetch subsets.
In addition to limit
and offset
, you can also pass any field in the org_unit
object as a query parameter.
limit | integer Example: limit=10 The number of items to return |
offset | integer Default: 1 Example: offset=1 The offset for pagination. |
{- "org_units": [
- [
- {
- "id": 12,
- "client_id": "U8132B5E78",
- "org_unit": "Operations",
- "lft": 3,
- "rgt": 6,
- "parent_id": 2,
- "colour": null,
- "org_unit_ids": [
- 12,
- 13
], - "plan_ids": [
- 12,
- 13
], - "level": 2,
- "is_enabled": true
}
]
], - "meta": {
- "total": 45
}
}
Get an organization unit, using its id
as a path parameter
id required | integer Example: 12 The ID of the resource. For example, an |
{- "org_unit": {
- "id": 12,
- "client_id": "U8132B5E78",
- "org_unit": "Operations",
- "lft": 3,
- "rgt": 6,
- "parent_id": 2,
- "colour": null,
- "org_unit_ids": [
- 12,
- 13
], - "plan_ids": [
- 12,
- 13
], - "level": 2,
- "is_enabled": true
}
}