DocumentationAutomation data reference

Automation data reference

Every supported ticket input, requested-transition value and typed action output, with syntax, limits and worked mappings.

On this page
On this page

Read this first

A stage is a ticket status. An automation step is an action node in a chain. Data references read the saved ticket and completed steps in that run; they are not mutable global variables. No reference reads an attachment's contents or executes tests.

Managers configure these values under Workflows → Automation, then open an action's Edit dialog. Choose available entries from the data picker, or type supported references exactly. Apply to workflow draft changes only the draft. Save draft persists it; publication activates the reviewed configuration. The same template syntax does not imply that every action accepts every destination field.

Reference syntax and availability

Use {{ticket.title}}, {{steps.assess.verdict}} or, inside a gate, {{request.reason}}. Replace assess with the producer's actual node ID, not its display name. IDs are case sensitive and contain letters, numbers, underscores or hyphens; begin with a letter and use at most 64 characters.

Only completed upstream outputs guaranteed on the path to this consumer are available. A skipped branch does not provide an output. Unknown properties, forward references and incompatible condition operators fail validation. A valid but missing runtime value stops safely with “Variable unavailable”; null, false, zero and empty arrays are different from missing values. Retries retain completed steps and inference checkpoints.

Every ticket input below is available when that action executes, after earlier committed field updates. It is not an immutable copy of the ticket when the chain first started. Before-transition gates assess saved fields while the old status remains in place, and recheck source versions/evidence before applying the requested move.

Ticket inputs

Names and IDs are different: assignees, labels, types, workflows and stages use stored IDs/values. Templates do not automatically resolve these IDs to display names.

Reference Type Meaning Empty/limits Example
{{ticket.id}} text Stable ticket ID nonempty Ticket: {{ticket.id}}
{{ticket.key}} text Readable ticket key nonempty Ticket: {{ticket.key}}
{{ticket.title}} text Saved title nonempty; up to 300 characters Ticket: {{ticket.title}}
{{ticket.type}} text Ticket-type ID, not its display name nonempty Ticket: {{ticket.type}}
{{ticket.status}} text Current stage ID, not category or display name nonempty Ticket: {{ticket.status}}
{{ticket.project_id}} text Owning project ID nonempty Ticket: {{ticket.project_id}}
{{ticket.workflow_id}} text Assigned workflow ID nonempty Ticket: {{ticket.workflow_id}}
{{ticket.version}} number Current optimistic ticket version integer Ticket: {{ticket.version}}
{{ticket.reporter}} user ID Reporter ID nonempty Ticket: {{ticket.reporter}}
{{ticket.assignee}} user ID or null Assigned user ID null when unassigned Ticket: {{ticket.assignee}}
{{ticket.priority}} text Stored lowest/low/medium/high/critical value nonempty Ticket: {{ticket.priority}}
{{ticket.parent_id}} text or null Explicit parent ticket ID null without a parent Ticket: {{ticket.parent_id}}
{{ticket.sprint_id}} text or null Assigned sprint ID null without a sprint Ticket: {{ticket.sprint_id}}
{{ticket.release_id}} text or null Assigned release ID null without a release Ticket: {{ticket.release_id}}
{{ticket.release_note}} text Plain-text release-note summary may be empty Ticket: {{ticket.release_note}}
{{ticket.points}} number or null Story-point estimate zero is valid; may be null Ticket: {{ticket.points}}
{{ticket.hours}} number or null Original hour estimate zero is valid; may be null Ticket: {{ticket.hours}}
{{ticket.remaining}} number or null Remaining-hour estimate zero is valid; may be null Ticket: {{ticket.remaining}}
{{ticket.due_date}} text or null Saved YYYY-MM-DD date empty/null when unset Ticket: {{ticket.due_date}}
{{ticket.execution_mode}} text human, assisted or agent stored identifier Ticket: {{ticket.execution_mode}}
{{ticket.description}} text Saved Markdown description alias may be empty Ticket: {{ticket.description}}
{{ticket.acceptance}} text Saved Markdown acceptance-criteria alias may be empty Ticket: {{ticket.acceptance}}
{{ticket.data.description}} text Saved Markdown description same value as description Ticket: {{ticket.data.description}}
{{ticket.data.acceptance}} text Saved Markdown acceptance criteria same value as acceptance Ticket: {{ticket.data.acceptance}}
{{ticket.data.labels}} collection of IDs Explicit project label IDs empty array when none Ticket: {{ticket.data.labels}}

Custom ticket fields

Use {{ticket.data.custom.qa_test_plan}} or substitute a configured field ID. Values retain the configured type: text/date/select/user IDs are strings, numbers remain numbers, checkboxes remain booleans and multiselect fields are collections. An unset custom key may be absent rather than null; do not insert it unconditionally without checking that field is populated. False and zero are valid populated values. A user reference does not grant access or notify that person.

The reference validator accepts the custom-field path pattern; it does not guarantee the key exists in the run. Project fields still control destination validation. Text custom fields have a 5,000-character limit. Do not confuse source ticket.data.custom.qa_test_plan with destination custom.qa_test_plan in Update fields.

Requested-transition inputs

These exist only in a Before transition chain. They describe the original request, not a new permission grant.

Reference Type Meaning Empty/limits Example
{{request.from}} text Original source stage ID Required From {{request.from}}
{{request.to}} text Requested target stage ID Required To {{request.to}}
{{request.transition}} text Published transition ID Required Check {{request.transition}}
{{request.reason}} text Original requester’s reason May be empty unless required Reason: {{request.reason}}

There is no requester-profile, arbitrary request-body or external-system object exposed through this namespace.

Step output catalogue

Each table uses the illustrative node ID step. Change it to the real producer ID. Outputs exist only after that action completes successfully. AI collections may be empty unless stated otherwise; rejected/refused/malformed responses do not create valid assessment outputs.

AI evaluation

Reference Type Meaning and limits Example
{{steps.step.verdict}} select pass, fail or insufficient_evidence; Pass needs a supplied source ID {{steps.step.verdict}}
{{steps.step.explanation}} text Nonempty assessment, at most 4,000 characters {{steps.step.explanation}}
{{steps.step.findings}} collection 0–10 strings, each at most 4,000 characters {{steps.step.findings|lines}}
{{steps.step.sources}} collection 0–100 supplied source IDs; Pass requires at least one {{steps.step.sources|lines}}
{{steps.step.model}} text Effective provider model ID {{steps.step.model}}

AI ticket draft

Reference Type Meaning and limits Example
{{steps.step.title}} text Proposed title; at most 300 characters {{steps.step.title}}
{{steps.step.description}} text Proposed Markdown; at most 10,000 characters {{steps.step.description}}
{{steps.step.acceptance}} text Proposed acceptance criteria; at most 10,000 characters {{steps.step.acceptance}}
{{steps.step.questions}} collection 0–20 strings, each at most 4,000 characters {{steps.step.questions|lines}}
{{steps.step.model}} text Effective provider model ID {{steps.step.model}}

AI summary

Reference Type Meaning and limits Example
{{steps.step.state}} text Summary; at most 4,000 characters {{steps.step.state}}
{{steps.step.decisions}} collection 0–20 strings, each at most 4,000 characters {{steps.step.decisions|lines}}
{{steps.step.blockers}} collection 0–20 strings, each at most 4,000 characters {{steps.step.blockers|lines}}
{{steps.step.nextSteps}} collection 0–20 strings, each at most 4,000 characters; case-sensitive S {{steps.step.nextSteps|lines}}
{{steps.step.sources}} collection 0–100 supplied source IDs {{steps.step.sources|lines}}
{{steps.step.model}} text Effective provider model ID {{steps.step.model}}

Condition

Reference Type Meaning and limits Example
{{steps.step.matched}} checkbox true when conditions passed; false selects the False branch {{steps.step.matched}}
{{steps.step.reasons}} collection Failure messages; empty on a match; inaccessible work stays generic {{steps.step.reasons|lines}}

Add comment

Reference Type Meaning and limits Example
{{steps.step.body}} text Posted comment body; 1–10,000 characters {{steps.step.body}}
{{steps.step.commentId}} text Stable ID of the idempotently created comment {{steps.step.commentId}}

Update fields

Reference Type Meaning and limits Example
{{steps.step.fields}} structured Expanded values requested by this step, not the complete ticket {{steps.step.fields|json}}
{{steps.step.ticketVersion}} number Version after the committed field update {{steps.step.ticketVersion}}

Transition

Reference Type Meaning and limits Example
{{steps.step.fields}} structured Requested status change, e.g. {"status":"ready"} {{steps.step.fields|json}}
{{steps.step.ticketVersion}} number Version returned for the step; see pending-gate limitation below {{steps.step.ticketVersion}}

Create from template

Reference Type Meaning and limits Example
{{steps.step.instanceId}} text Created work-template instance ID, not a child ticket ID {{steps.step.instanceId}}

Request review

Reference Type Meaning and limits Example
{{steps.step.reviewer}} user Eligible reviewer ID; not a review-completion result {{steps.step.reviewer}}

Notify / handoff

Reference Type Meaning and limits Example
{{steps.step.message}} text Expanded message text {{steps.step.message}}
{{steps.step.ticket}} text Ticket key, e.g. SAMPLE-28 {{steps.step.ticket}}
{{steps.step.nextTransitions}} text Only present for an assignee recipient; otherwise unavailable {{steps.step.nextTransitions}}

Approval

Approval publishes no referenceable output properties. Its committed review/checkpoint controls whether the next action may proceed; there is no steps.step.approved property.

Picker and runtime differences

The text-reference validator supports AI model, summary sources, and Notify/handoff nextTransitions, although these are absent from the current output picker. They can be typed in text references; they are not available as typed step-condition choices. Notify nextTransitions is omitted for manager recipients, so inserting it on that path fails rather than producing an empty string.

fields is a structured object. A text reference may address a present member, for example {{steps.move.fields.status}} or {{steps.save.fields.custom.qa_test_plan}}. The generic picker exposes the whole object, not all nested members. Validation accepts a nested fields path without proving that the member will exist; guard the path or use a known configured destination. Typed conditions expose only declared whole output fields, not arbitrary nested properties.

AI sourceDependencies and update/transition pendingGate may appear in operational records but are not supported data references. A transition step waiting for a separate gate does not mean the status is applied; inspect the pending request and final run state. Simulation is illustrative, including proposed changes/version values; it does not prove actual persistence, current provider availability or an AI verdict.

Production mapping explicitly allows the upstream description output for custom.qa_test_plan; it does not overwrite the ticket description.

Automation Data Picker

Production mapping explicitly allows the upstream description output for custom.qa_test_plan; it does not overwrite the ticket description. Identity redactions are recorded in the capture manifest.

Production Condition reads the upstream evaluation verdict and branches on Pass, with separate successful and false destinations.

Typed Condition

Production Condition reads the upstream evaluation verdict and branches on Pass, with separate successful and false destinations. Identity redactions are recorded in the capture manifest.

Whole values, text and formatting

A reference occupying an entire value preserves the primitive/collection/object type: "{{steps.check.matched}}" becomes a boolean rather than the string “true”. This matters when a destination expects a boolean or number. Destination fields still enforce their own type, permission and length rules.

In surrounding text, primitive strings are inserted directly; non-string values use JSON representation. For readable lists choose {{steps.assess.findings|lines}}; for explicit JSON choose {{steps.assess.sources|json}}. |lines joins array entries with newlines and is intended for simple values; it is not a table formatter. Both formatted results are bounded to 16,000 characters. The consumer's smaller limit still applies, including comments (10,000), prompts (4,000) and custom text (5,000). Oversized values fail; do not rely on silent truncation.

{{steps.assess.verdict}} uses stored pass, fail or insufficient_evidence. In the condition editor, choose its labelled option. Text checks are case insensitive; reference paths are not. Collection outputs support empty/populated and count comparisons. “Matched = false” is different from an absent output.

Example: evidence → assessment → comment → approval → move

Follow the complete testing-proof guide to create a Before transition chain. Use these node IDs for the example:

  1. requirements: Match all populated evidence fields. False → a literal guidance comment, then end blocked without inference.
  2. assess: AI evaluation of selected saved fields and permitted bounded comments/attachment metadata.
  3. verdict: compare steps.assess.verdict with pass.
  4. True → pass_note, Add comment using the text below → review, explicit manager Approval → move, Transition to the original requested target.
  5. False → fail_note, Add comment with the same assessment/findings and requested missing evidence → end blocked.
Proposed testing-proof assessment: {{steps.assess.verdict}}
{{steps.assess.explanation}}
{{steps.assess.findings|lines}}
Supplied source IDs: {{steps.assess.sources|json}}
Assessment of supplied text and file metadata only; attachment contents,
external systems and actual test execution were not inspected.

Post an assessment on both evaluated outcomes. A reference does not create approval or authority. Generated comments cannot create unsolicited mentions or attachment embeds, are attributed to automation and are idempotent per run/step. Changed or inaccessible evidence makes a gate stale; request a deliberate fresh check rather than automatically repeating inference.

Example: QA draft → custom field

The manual QA training guide uses AI Draft ticket content, with the complete proposed plan in its description output. After an explicit Approval action, configure Update fields:

{
  "custom.qa_test_plan": "{{steps.draft_qa.description}}"
}

Explicitly allow custom.qa_test_plan as the generated destination. This saves to QA test plan, not to the ticket description. The AI draft parser permits 10,000 description characters, but this custom text destination accepts only 5,000; instruct the model to stay below 4,000 and expect oversized output to fail safely. The AI node's proposed title/acceptance are ignored unless mapped separately.

Work-template parameters are separate

Work templates declare named inputs such as feature and use {{parameters.feature}} in template content. Automation's Create from template action maps literal text or valid upstream references into those declared parameters. A template instance's parameters are not an extra parameters namespace for arbitrary automation nodes, and instanceId does not expose every created ticket as step outputs.

Troubleshooting and boundaries

  • Unknown data reference: choose a documented path; arbitrary model response keys, environment variables, secrets and HTTP headers are not available.
  • Outputs must come from earlier actions: move the consumer onto a path where the producer always completes; a branch does not create global state.
  • Variable unavailable: check skipped producers, absent custom fields, optional notification output and nested changed-field members. Keep existing saved content; correct the configuration before deliberate retry.
  • Wrong type/too long: use the appropriate whole-value reference or explicit list/JSON formatting; respect the consumer's limit.
  • Blocked/stale gate: inspect current evidence, requested transition and original actor permissions. A successful provider call alone is not a successful assessment or transition.

This catalogue describes public configuration references. Operational job records, provider attempts and internal snapshots are not an additional supported expression language. No scripts, regular expressions, custom output schemas, external tools or automatic test execution are provided.