← API reference
CANONICAL TYPE REFERENCE

CustomWorkflowActionState

A tenant-defined action backed by a Script, invocable from workflows and the UI.

TypeID of this custom action, prefix cac (e.g. "cac_01K…").

nameString!

Machine-readable slug, unique per tenant and used to invoke the action. Must match ^[a-z][a-z0-9_-]{0,63}$ (lowercase letters, digits, '-', '_').

labelString!

Human-readable display name shown in the UI. Required.

Optional tooltip / documentation text for the action, max 1000 characters. Null when the author supplied none.

iconString

Optional Lucide icon name used to render the action in the UI, max 64 characters. Null when no icon was chosen.

TypeID (prefix scr) of the Script that implements the action. The script must exist in this tenant; writes are rejected otherwise.

Frozen snapshot of the script source taken when the action was pinned. Null means the action is unpinned and always executes the live script content.

Optional JSON Schema (draft 2020-12) describing the action's per-invocation configuration; the workflow editor builds its form from this. Null when the action takes no configuration. Validated beyond the specification: an unrecognised keyword is refused rather than ignored, because one that is ignored here silently constrains nothing.

isActiveBoolean!

Soft enable/disable toggle. Inactive actions are retained but omitted from listAvailableActions. Defaults to true on create.

createdAtString!

ISO-8601 timestamp of when the action was first created.

updatedAtString!

ISO-8601 timestamp of the last successful write to the action; equal to createdAt until it is first updated.

View exact SDL
"""
A tenant-defined action backed by a Script, invocable from workflows and the UI.
"""
type CustomWorkflowActionState @iac_resource(name: "custom_workflow_action") @iac_ops(create: "createCustomWorkflowAction", read: "getCustomWorkflowAction", update: "updateCustomWorkflowAction", delete: "deleteCustomWorkflowAction") {
  """TypeID of this custom action, prefix `cac` (e.g. "cac_01K…")."""
  id: CustomWorkflowActionID! @iac_identity(assignedBy: SERVER) @iac_computed
  """
  Machine-readable slug, unique per tenant and used to invoke the action. Must match `^[a-z][a-z0-9_-]{0,63}$` (lowercase letters, digits, '-', '_').
  """
  name: String!
  """Human-readable display name shown in the UI. Required."""
  label: String!
  """
  Optional tooltip / documentation text for the action, max 1000 characters. Null when the author supplied none.
  """
  description: String
  """
  Optional Lucide icon name used to render the action in the UI, max 64 characters. Null when no icon was chosen.
  """
  icon: String
  """
  TypeID (prefix `scr`) of the Script that implements the action. The script must exist in this tenant; writes are rejected otherwise.
  """
  scriptId: ScriptID! @iac_ref(resource: "script")
  """
  Frozen snapshot of the script source taken when the action was pinned. Null means the action is unpinned and always executes the live script content.
  """
  pinnedScriptContent: String @iac_computed
  """
  Optional JSON Schema (draft 2020-12) describing the action's per-invocation configuration; the workflow editor builds its form from this. Null when the action takes no configuration. Validated beyond the specification: an unrecognised keyword is refused rather than ignored, because one that is ignored here silently constrains nothing.
  """
  configSchema: String @iac_artifact(language: JSON, validators: ["json-schema-document"])
  """
  Soft enable/disable toggle. Inactive actions are retained but omitted from `listAvailableActions`. Defaults to true on create.
  """
  isActive: Boolean!
  """ISO-8601 timestamp of when the action was first created."""
  createdAt: String! @iac_computed
  """
  ISO-8601 timestamp of the last successful write to the action; equal to createdAt until it is first updated.
  """
  updatedAt: String! @iac_computed
}

One stable address across all schema views. Follow a field’s type to explore connections between domains.