1. API
  2. Cases
  3. Case templates

Case templates: Create

Description

Create a case template in a team. Template names must be unique within the team.

See the Get Cases API to learn more about cases.

Request

HTTP Method: POST

Parameter Description
team_id The ID of the team to create the case template in.
name The case template name.
emoji Optional The emoji associated with the case template, as a shortcode such as :mag:. A random emoji is assigned when omitted.
options Optional The case template configuration. See Options fields below.

Options fields

The options object describes the case that gets created from this template.

Formulas are stored as written and evaluated when a case is created from the template, against the event that triggered the case creation. Pass them as raw formula strings wrapped in quotes rather than pill values. Use the Preview case template API to check the resolved shape of a template - it returns formulas unevaluated, since there is no triggering event to evaluate them against.

Parameter Description
name Optional The name given to cases created from this template. Supports formulas and field mentions.
description Optional The description given to cases created from this template. Supports markdown, formulas and field mentions.
status Optional The status given to cases created from this template - open or closed.
priority Optional The priority given to cases created from this template - critical, high, medium, low or info.
sub_status_id Optional The ID of the case sub-status given to cases created from this template.
assignee_emails Optional An array of user email addresses to assign. Emails that do not match a user on the team are dropped.
tag_names Optional An array of tag name strings. Tags are found or created on the team.
team_case_buttons Optional An array of case action objects for downstream actions associated with the case. Each object has button_type (one of webhook, page, chat, story, or app), url, label (tooltip), and button_text (text shown on the button).
tasks Optional An array of task objects. Each object has a description and an optional assignee_emails array.
closure_conditions Optional An array of closure requirements in the form of a set of formula rules that need to evaluate to true to enable the closing of a case. Each entry has a name and a formula.

N.B. The formula key should be passed as a raw formula wrapped in strings as opposed to a pill value.
blocks Optional An array of block objects. See block parameters below.
field_values Optional An object containing a key-value pair of field IDs and the values those fields are pre-filled with. Field IDs provided must exist within the team.
metadata Optional Case related metadata represented as key-value pairs.

Block parameters

Each object in the blocks array accepts:

Parameter Description
title The title of the block.
block_type The type of block to create - options: note, file, linked_cases, metadata, closure_conditions, case_action, block_group and html.
elements An array of elements to add to the block. Required but may be empty for block types that do not support elements.
hidden Optional A boolean (true or false).
guid Optional A client-generated identifier for the block, used for referencing in parent_block_guid.
parent_block_guid Optional The guid of a block_group block within the same request to nest this block inside.

Note element parameters

Parameter Description
content The content of the note.
note_type The type of note - "html" for html blocks and "text" for any others.
color Optional The color of the note - options: white, gold, magenta, green, blue, red, mint, indigo.
sensitive Optional A boolean (true or false) indicating whether the element holds sensitive content.

Sample request

curl -X POST \
  https://<tenant-domain>/api/v1/case_templates \
  -H 'content-type: application/json' \
  -H 'Authorization: Bearer <<CREDENTIAL.tines_api_key>>' \
  -d '{
        "team_id": 2,
        "name": "Phishing investigation",
        "emoji": ":fishing_pole_and_fish:",
        "options": {
          "name": "Phishing report for <<recipient>>",
          "description": "Investigate the reported email",
          "priority": "high",
          "tag_names": ["phishing", "email"],
          "assignee_emails": ["analyst@example.com"],
          "tasks": [
            {
              "description": "Review headers and attachments",
              "assignee_emails": ["analyst@example.com"]
            }
          ],
          "closure_conditions": [
            {
              "name": "has at least 1 assignee",
              "formula": "=SIZE(team_case.assignees) > 0"
            }
          ],
          "metadata": {
            "source": "user_report"
          }
        }
      }'

Response

A successful request will return a JSON object representing the created case template.

Field description

Parameter Description
id The case template ID.
name The case template name.
emoji The emoji associated with the case template.
team The team the case template belongs to - ID and name.
created_at ISO 8601 timestamp representing the date and time the case template was created.
updated_at ISO 8601 timestamp representing the date and time the case template was updated.

Sample response

{
  "id": 12,
  "name": "Phishing investigation",
  "emoji": ":fishing_pole_and_fish:",
  "team": {
    "id": 2,
    "name": "Security"
  },
  "created_at": "2026-05-25T10:00:00Z",
  "updated_at": "2026-05-25T10:00:00Z"
}
Was this helpful?