Skip to main content

ActionDefinition

A registered, versioned action definition. The α layer record.

Stored in the definitions table with definition_type='action'. The body JSONB column holds the serialisation of this model.

Immutability: once registered, an (action_id, version) pair is permanent. Updates require a new version. The registry enforces this at the DB level.

The execution type and all delivery parameters are inside config. Access config.type for dispatch: WebhookActionConfig, NotificationActionConfig, WorkflowActionConfig, or RegisterActionConfig.

Actions are pre-bound at task creation time. There is no runtime action resolution — the executor fires only the pre-bound action for this record.

action_idAction Id (string)required
versionVersion (string)required
config objectrequired
typerequired

Possible values: [notification, register, webhook, workflow]

channelChannel (string)required
message_template object
anyOf
string
trigger objectrequired

Firing rule + condition binding for a registered action.

fire_on determines when the action fires relative to the decision value: 'true' → fires when decision=True (or matched label for equals strategy) 'false' → fires when decision=False 'any' → fires on every evaluation regardless of decision value

condition_id + condition_version pin this action to a specific, immutable condition version. Bound at action registration time; never resolved at execution time (no dynamic action resolution).

The executor evaluates _should_fire(trigger.fire_on, decision.value) before invoking the action config.

fire_onFireOn (string)required

Controls when a bound action fires relative to the condition decision.

TRUE — fires when decision.value is True (or the matched label for equals) FALSE — fires when decision.value is False ANY — fires on every evaluation, regardless of decision value

Wire values are lowercase strings: 'true', 'false', 'any'. These are NOT Python booleans — do not compare with is True / is False.

Possible values: [true, false, any]

condition_idCondition Id (string)required
condition_versionCondition Version (string)required
namespaceNamespace (string)required

Possible values: [personal, team, org, global]

created_at object
anyOf
string<date-time>
deprecatedDeprecated (boolean)
Default value: false
ActionDefinition
{
"action_id": "string",
"version": "string",
"config": {
"type": "webhook",
"endpoint": "string",
"method": "POST",
"headers": {},
"payload_template": {}
},
"trigger": {
"fire_on": "true",
"condition_id": "string",
"condition_version": "string"
},
"namespace": "personal",
"created_at": "2024-07-29T15:51:28.071Z",
"deprecated": false
}