# Get workflow by ID Retrieve a single approval workflow by its ID, including all steps, conditions, and approvers. Endpoint: GET /public/v1/workflows/{workflow_id}/ Version: 1.0.0 ## Path parameters: - `workflow_id` (integer, required) ## Response 200 fields (application/json): - `id` (integer, required) - `record_type` (string, required) Supported record types for workflows. Enum: "invoice", "bill", "journal_entry", "bank_transfer", "purchase_order", "sales_order", "intercompany_journal_entry", "vendor", "customer" - `name` (string, required) - `is_active` (boolean, required) - `description` (string, required) - `version` (integer, required) - `priority` (integer, required) - `company_ids` (array, required) - `applies_to_all_companies` (boolean, required) - `allow_self_approval` (boolean, required) - `steps` (array, required) - `steps.order` (integer, required) - `steps.conditions` (array, required) - `steps.conditions.field` (string, required) - `steps.conditions.operator` (string,null) Comparison operators for workflow conditions. Enum: "eq", "neq", "gt", "lt", "gte", "lte", "contains", "not_contains", "starts_with", "ends_with", "in", "not_in", "between", "contains_any", "contains_all", "not_contains_any" - `steps.conditions.value` (any) - `steps.conditions.logical_operator` (string,null) Logical operators for connecting conditions. Enum: "and", "or", "not" - `steps.substeps` (array,null, required) - `steps.substeps.approver_ids` (array, required) - `steps.substeps.approve_condition` (string, required) Condition for approving a substep. Enum: "any", "all" - `pending_approval_count` (integer, required) ## Response 400 fields (application/json): - `success` (boolean) - `errors` (object, required) ## Response 404 fields (application/json): - `success` (boolean) - `errors` (object, required) ## Response 500 fields (application/json): - `success` (boolean) - `errors` (object, required)