---
id: object/table/1501
type: object
title: Table 1501 "Workflow"
summary: Table 1501 "Workflow" in Base Application (System.Automation). 5 fields, 7 public procedures. Present since at least BC23, still in BC30, changed in BC24.
tier: official
language: en
tags:
  - table
  - base application
versions:
  introduced: null
  last_changed: "24"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 8c56e1d7db3d87d7553f9a2b6953243765da1d0026eab1a7d494b02343092f90
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/System/Workflow/Workflow.Table.al
    title: src/Layers/W1/BaseApp/System/Workflow/Workflow.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/across-use-workflows
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/general-business-functionality/workflows/use-approval-workflows
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 1501
name: Workflow
namespace: System.Automation
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 5
  procedures: 35
  events: 0
  subscribers: 0
relations:
  out: 2
  referenced_by: 7
  pages: 4
  extended_by: 0
  event_subscribers: 0
  calls: 3
  called_by: 0
  implements: 0
---

# Table 1501 "Workflow"

> Table 1501 "Workflow" in Base Application (System.Automation). 5 fields, 7 public procedures. Present since at least BC23, still in BC30, changed in BC24.

Base Application · System.Automation · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/System/Workflow/Workflow.Table.al) · facts from BC29

Learn documents this table through its pages: [Page 1501 "Workflow"](../page/1501.md) (1 Learn page).

## Properties

| Property | Value |
|---|---|
| Caption | Workflow |
| DataClassification | CustomerContent |
| Permissions | TableData "Workflow Step" = rimd, TableData "Workflow Step Instance" = rm |

## Fields

Explanation: the field's ToolTip in the code; without one, the ToolTip of a page control bound to the field (marked via the page); without that, its Caption (marked caption) when that differs from the name.

| No. | Name | Type | Explanation | Notes |
|---|---|---|---|---|
| 1 | Code | Code[20] | Specifies the workflow. <small>via [Page 1501 "Workflow"](../page/1501.md)</small> | NotBlank |
| 2 | Description | Text[100] | Specifies the workflow. <small>via [Page 1501 "Workflow"](../page/1501.md)</small> |  |
| 3 | Enabled | Boolean | Specifies that the workflow will start when the event in the first entry-point workflow step occurs. <small>via [Page 1501 "Workflow"](../page/1501.md)</small> |  |
| 4 | Template | Boolean | — |  |
| 5 | Category | Code[20] | Specifies the category that the workflow belongs to. <small>via [Page 1501 "Workflow"](../page/1501.md)</small> | TableRelation [Table 1508 "Workflow Category"](../table/1508.md) (Workflow Category) |

## Keys

- Key1: Code (clustered)
- Key2: Enabled
- Key3: Template

## Procedures

- `CreateInstance(var WorkflowStepInstance: Record "Workflow Step Instance")`
- `CheckEditingIsAllowed()`
- `LookupOtherWorkflowCode(var LookupCode: Code[20]): Boolean`
- `InsertAfterFunctionName(FunctionName: Code[128]; NewFunctionName: Code[128]; NewEntryPoint: Boolean; NewType: Option)`
- `ExportToBlob(var TempBlob: Codeunit "Temp Blob")`
- `ImportFromBlob(var TempBlob: Codeunit "Temp Blob")`
- `CanDelete(ThrowErrors: Boolean): Boolean`

Plus 28 local procedures.

## Triggers

OnDelete, OnRename

## Relations

- drill-down page [Page 1501 "Workflow"](../page/1501.md)
- Category: TableRelation [Table 1508 "Workflow Category"](../table/1508.md)

## Referenced by

7 fields in 5 objects relate to this table (TableRelation or CalcFormula).

- [Table 1500 "Workflow Buffer"](../table/1500.md): Enabled, Template
- [Table 1502 "Workflow Step"](../table/1502.md): Function Name, Workflow Code
- [Table 1507 "Workflow Step Buffer"](../table/1507.md): Template
- [Table 6121 "E-Document"](../table/6121.md): Workflow Code
- [Table extension 6100 "E-Document Sending Profile"](../tableextension/6100.md): Electronic Service Flow

## Pages and codeunits on this table

- [Page 1501 "Workflow"](../page/1501.md) (source table)
- [Page 2145 "APIV2 - Workflows"](../page/2145.md) (source table)
- [Page 30441 "Approval User Overview"](../page/30441.md) (source table)
- [Page 30442 "Enabled Workflows"](../page/30442.md) (source table)
- [Codeunit 1547 "Workflow Webhook Sub Delete"](../codeunit/1547.md) (codeunit runs on it)

## Calls

From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Codeunit 1521 "Workflow Response Handling"](../codeunit/1521.md) (3 calls: `CheckRecordChangedWorkflows → ApplyNewValuesCode`, `CheckRecordChangedWorkflows → RevertValueForFieldCode`, `CheckResponseOptions → HasRequiredArguments`)
- [Codeunit 1502 "Workflow Setup"](../codeunit/1502.md) (2 calls: `CanDelete → OnAllowEditOfWorkflowTemplates`, `CheckEditingIsAllowed → OnAllowEditOfWorkflowTemplates`)
- [Codeunit 4100 "Temp Blob"](../codeunit/4100.md) (2 calls: `ExportToBlob → CreateOutStream`, `ImportFromBlob → CreateInStream`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "table", object_name: "Workflow")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
