core.cases.create_case
Create a new case.
Inputs
string
required
The description of the case.
string
required
The summary of the case.
boolean
If true, create any tags that do not already exist.Default:
false.array[CaseDropdownValueInput] | null
Dropdown selections to set on the case. Each item must include either definition_id or definition_ref, and either option_id or option_ref (or null to clear).Default:
null.object | null
Custom fields for the case.Default:
null.object | null
Payload for the case.Default:
null.string
The priority of the case.Default:
"unknown".Allowed values: unknown, low, medium, high, critical, other.string
The severity of the case.Default:
"unknown".Allowed values: unknown, informational, low, medium, high, critical, fatal, other.string
The status of the case.Default:
"unknown".Allowed values: unknown, new, in_progress, on_hold, resolved, closed, other.array[string] | null
List of tag identifiers (IDs or refs) to add to the case.Default:
null.Examples
Create a casecore.cases.get_case
Get details of a specific case by ID.
Inputs
string
required
The ID of the case to retrieve.
Examples
Get a casecore.cases.update_case
Update an existing case.
Inputs
string
required
The ID of the case to update.
boolean
If true, append the provided description to the existing description when it is not empty.Default:
false.boolean
If true, create any tags that do not already exist.Default:
false.string | null
The updated description of the case.Default:
null.array[CaseDropdownValueInput] | null
Dropdown selections to set or clear. Each item must include either definition_id or definition_ref, and either option_id or option_ref (or null to clear).Default:
null.object | null
Updated custom fields for the case.Default:
null.object | null
Updated payload for the case.Default:
null.string | null
The updated priority of the case.Default:
null.string | null
The updated severity of the case.Default:
null.string | null
The updated status of the case.Default:
null.string | null
The updated summary of the case.Default:
null.array[string] | null
List of tag identifiers (IDs or refs) to set on the case. This will replace all existing tags.Default:
null.Examples
Update case fieldscore.cases.list_cases
List all cases.
Inputs
string | null
Pagination cursor used to fetch a specific page when paginate=true.Default:
null.integer
Maximum number of cases to return.Default:
100.string | null
The field to order the cases by.Default:
null.boolean
If true, return cursor pagination metadata along with items.Default:
false.boolean
Reverse pagination direction when paginate=true.Default:
false.string | null
The direction to order the cases by.Default:
null.Examples
List casescore.cases.search_cases
Search cases based on various criteria.
Inputs
string | array[string] | null
Filter by assignee ID or ‘unassigned’.Default:
null.string | null
Pagination cursor used to fetch a specific page when paginate=true.Default:
null.array[string] | null
Filter by dropdown values in definition_ref:option_ref format.Default:
null.string | null
Filter cases created before this time.Default:
null.integer
Maximum number of cases to return.Default:
100.string | null
The field to order the cases by.Default:
null.boolean
If true, return cursor pagination metadata along with items.Default:
false.string | array[string] | null
Filter by case priority.Default:
null.boolean
Reverse pagination direction when paginate=true.Default:
false.string | null
Text to search for in case summary and description.Default:
null.string | array[string] | null
Filter by case severity.Default:
null.string | null
Filter by case short_id.Default:
null.string | null
The direction to order the cases by.Default:
null.string | null
Filter cases created after this time.Default:
null.string | array[string] | null
Filter by case status.Default:
null.array[string] | null
Filter by tag IDs or refs (AND logic).Default:
null.string | null
Filter cases updated after this time.Default:
null.string | null
Filter cases updated before this time.Default:
null.Examples
Search casescore.cases.aggregate_cases
Filter, group, and summarize workspace cases. Returns groups and a truncated flag indicating whether more groups exist than the requested limit.
The example counts new and in_progress cases by priority and day.
It includes cases created on or after August 1, 2026 whose priority
is high or critical, or whose region is emea.
Before running it, create a TEXT custom case field named region.
Use ACTIONS.cases_by_priority_per_day.result.groups to read the results.
Each item contains a priority, a date, and a case count.
If ACTIONS.cases_by_priority_per_day.result.truncated is true,
the result reached the group limit and omitted some groups.
Inputs
array[string | object]
required
Choose how to split cases into groups. Use up to 3 fields, or
[] for one total across all matching cases.Supply a field name such as priority, or an object with field and optional bucket, timezone, and alias. For example: [‘priority’, {‘field’: ‘created_at’, ‘bucket’: ‘day’}]. An alias names the field in the result; it defaults to the field name. Output names must be unique and at most 63 UTF-8 bytes.Fields you can group by:- Built-in fields:
status,priority,severity, andassignee_id(a user UUID). - Custom fields:
fields.region, replacingregionwith a defined field name. URL fields use the URL, not the display label. LONG_TEXT fields work as text. Other JSONB fields and MULTI_SELECT fields are unsupported. - Dates and times:
created_at,updated_at, and custom date/time fields. These require abucket:hour,day,week, ormonth. Weeks start on Monday.
- Timestamps accept an IANA timezone name, such as
America/New_York. The default isUTC; results always contain UTC timestamps. - DATE fields return
YYYY-MM-DD. They do not accept a timezone, and even anhourbucket retains only date precision.
- Missing values share one
nullgroup, including cases with no saved custom fields. - TEXT and SELECT values use only the first 256 characters. Values with the same prefix merge into one group.
- NUMERIC values appear as exact decimal strings.
- Use
dropdowns.categoryto group by option reference; replacecategorywith your dropdown reference. This requires case add-ons. Missing or deleted options share thenullgroup. - Use
tagsto group by tag reference. A case belongs to every tag group that applies to it; untagged cases share thenullgroup. Adding the group counts can therefore count a case more than once.
array[object] | null
Choose what to calculate for each group. Omit this input to count cases. Supply up to 8 calculations; an empty list is invalid.Each calculation is an object with
function, optional field, and optional alias. For example: [{‘function’: ‘sum’, ‘field’: ‘fields.amount’, ‘alias’: ‘total’}].Available calculations:count: Count cases when you omitfield, or count non-null values when you supply it.count_distinct: Count different non-null values.sum,mean,median: Calculate the total, average, or middle value.min,max: Return the smallest or largest value.
count requires a field. Numeric custom fields support all functions. Text and date/time fields support count, count_distinct, min, and max. BOOLEAN and SELECT fields support only count and count_distinct.Naming and number formats:- Use
aliasto name a result, such astotal. Otherwise the name iscountorfunction_field, using the final part of the field name. All output names must be unique and at most 63 UTF-8 bytes. - Counts are integers. INTEGER/NUMERIC sums, all means and medians, and NUMERIC min/max use floating-point numbers and can lose precision. NUMERIC grouping values remain exact decimal strings.
min_count count each case once within each group. You cannot use sum, mean, or median with tag grouping.Default: null.object | null
Choose which cases to include before grouping. Omit this input to include all cases.Write one condition as {field, op, value}. For example: {‘field’: ‘status’, ‘op’: ‘in’, ‘value’: [‘new’, ‘in_progress’]}. Combine conditions with {‘and’: […]}, {‘or’: […]}, or {‘not’: {…}}.Choose an operator supported by the field type:
- Equality:
eq(equals),ne(does not equal). - Lists:
in(matches any listed value),not_in(matches none). Supply a list asvalue. - Ranges:
gt,gte,lt,lte(greater than, at least, less than, at most). - Text:
contains,starts_with. Both ignore case and match literal text. - Missing values:
is_null. Omitvalue; custom fields also match cases with no saved field row.
summary, description, and case_number. You cannot filter on short_id or payload. Use strings for exact decimals and ISO-formatted dates or timestamps.Built-in values must be lowercase:- Status:
unknown,new,in_progress,on_hold,resolved,closed,other. Status does not support range comparisons. - Priority, from lowest to highest:
low,medium,high,critical. - Severity, from lowest to highest:
informational,low,medium,high,critical,fatal. - Priority and severity also accept
unknownandotherfor equality or list matching. These values never match a range and cannot be range boundaries.
neandnot_inexclude missing values. An emptynot_inlist matches all cases; an emptyinlist matches none.- Where tag aggregation is supported,
tagsacceptscontains(one tag reference),in(any listed reference), oris_null(untagged). - Filters allow up to 4 levels of nesting, 50 conditions, and 1000 total values. The server validates the request when the action runs.
null.integer | null
Set the maximum number of groups to return. Use at least 1, up to your server’s configured maximum (normally 1000). Omit this input to use the server default (normally 100).If more groups exist, the result sets
truncated to true. There is no next-page cursor.Default: null.integer | null
Only return groups with at least this many cases (minimum 1).Default:
null.string | null
Choose a group or calculation output name to sort by, including any alias you set.If omitted, results sort by the first date/time bucket, or by the first calculation when there is no date/time bucket.Default:
null.string | null
Use
asc for ascending order or desc for descending order.If omitted, the direction is asc when the action automatically sorts by a date/time bucket. Otherwise it is desc, including when you set order_by yourself. Missing values sort last; group values break ties.Default: null.Examples
Count open cases by priority and daycore.cases.list_case_events
List all events for a case in chronological order.
Inputs
string
required
The ID of the case to get events for.
Examples
List case eventscore.cases.assign_user
Assign a user to an existing case.
Inputs
string
required
The ID of the user to assign to the case.
string
required
The ID of the case to assign a user to.
Examples
Assign a user by IDcore.cases.assign_user_by_email
Assign a user to an existing case by email.
Inputs
string
required
The email of the user to assign to the case.
string
required
The ID of the case to assign a user to.
Examples
Assign a user by emailcore.cases.add_case_tag
Add a tag to a case by tag ID or ref.
Inputs
string
required
The ID of the case to add a tag to.
string
required
The tag identifier (ID or ref) to add to the case.
boolean
If true, create the tag if it does not exist.Default:
false.Examples
Add a case tagcore.cases.remove_case_tag
Remove a tag from a case by tag ID or ref.
Inputs
string
required
The ID of the case to remove a tag from.
string
required
The tag identifier (ID or ref) to remove from the case.
Examples
Remove a case tagcore.cases.delete_case
Delete a case.
Inputs
string
required
The ID of the case to delete.
Examples
Delete a casecore.cases.get_case_metrics
Get case metrics as OTEL-aligned time-series for the provided case IDs.
Enterprise Edition
Inputs
array[string]
required
List of case IDs to get case metrics for.