> ## Documentation Index
> Fetch the complete documentation index at: https://help.dingtalk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Process design

> A complete guide to designing approval processes. Add approver, CC recipient, and handler nodes, configure node attributes and action permissions, and set up conditional branches so approval forms flow automatically by rule.

## 1. Prerequisites

<Note>
  Only **approval Admins** can design processes, so you must first become an approval Admin.
</Note>

If you are not an approval Admin, open DingTalk OA Approval, tap **Settings**, tap **Create Approval Form**, tap **Apply for Admin Permissions**, and then tap **Submit**.

<div className="grid grid-cols-3 gap-4 my-4">
  <Frame>
    ![Open the OA Approval Settings page on mobile](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/jP2lRYjZmyDkLO8g/img/3bc72db6-0758-4388-85fa-5b516370ef92.png)
  </Frame>

  <Frame>
    ![Entry point for applying for Admin permissions appears after tapping Create Approval Form](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/jP2lRYjZmyDkLO8g/img/d76c8667-79ad-4856-bbd1-db2bfb11d9ca.png)
  </Frame>

  <Frame>
    ![Fill in and submit the OA Approval Admin permission application](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/jP2lRYjZmyDkLO8g/img/f0f909f7-8058-44ef-8388-ed6868c815a2.png)
  </Frame>
</div>

Once the Admin receives the pending approval notification and approves the request, the employee automatically gains approval Admin permissions.

<div style={{maxWidth:'400px',margin:'16px auto'}}>
  <Frame>
    ![Admin handles the permission request in To-Do](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/jP2lRYjZmyDkLO8g/img/f0a67e04-bf73-4e3d-ab03-2676c919a89f.jpeg)
  </Frame>
</div>

## 2. Entry point

<Steps>
  <Step title="Open form editing">
    On the **Approval Admin Console** > **Form Management** page, click **Edit** in the form's Action column.

    <Frame>
      ![Click Edit in the Action column on the Form Management page](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/jP2lRYjZmyDkLO8g/img/0aa4e5e9-e662-4552-866b-60163ba741b8.png)
    </Frame>
  </Step>

  <Step title="Open process design">
    Click **Process design** to open the main process design page.

    <Frame>
      ![Main process design page](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/YdgOk2b0JJJNXq4B/img/1991fcb9-5976-4331-bc66-5332c816016e.png)
    </Frame>
  </Step>
</Steps>

## 3. Basic actions

Process design includes the following four basic actions:

| Basic action         | Description                                                              |
| -------------------- | ------------------------------------------------------------------------ |
| Add a node           | Add initiator, approver, CC recipient, or handler nodes to the process.  |
| Set node attributes  | Select the operator type for the node and complete the related settings. |
| Set node permissions | Adjust each node's action permissions for form fields.                   |
| Add a branch         | Set branch conditions and configure tiered conditional processes.        |

### 3.1 Add a node

Click **+** to add an approver, CC recipient, handler, or conditional branch.

<Frame>
  ![Click the plus sign in process design to add a node](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/YdgOk2b0JJJNXq4B/img/1991fcb9-5976-4331-bc66-5332c816016e.png)
</Frame>

| Approval node type | Description                                                                                                                                                                   | Details                                                                                                                                                                                                                                                                                                                                                                                                              |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Initiator          | The initiator node is the starting point of an approval process. On this node, configure who can submit the approval form and which fields the initiator can fill in.         | Default node<br />Node name cannot be changed<br />After submission, view under **Submitted by me** in the process center<br />Supports form field action permissions: Editable, Read-only, or Hidden                                                                                                                                                                                                                |
| Approver           | Can Accept, Decline, transfer, return, or add an approver to the approval form.                                                                                               | Optional node<br />Node name can be changed<br />Before approval, view under **Pending** in the process center; after approval, view under **Handled by me**<br />Supports form field action permissions: Editable, Read-only, or Hidden                                                                                                                                                                             |
| CC recipient       | When the process reaches this node, the recipient cannot approve but receives the approval form and can view and comment on it.                                               | Optional node<br />Node name can be changed<br />After the process reaches this node, view under **CC'd to me** in the process center<br />Supports form field visibility: Read-only or Hidden                                                                                                                                                                                                                       |
| Handler            | Can Submit, transfer, return, add an approver, or comment on the approval form.                                                                                               | Optional node<br />Node name can be changed<br />Before handling, view under **Pending** in the process center; after handling, view under **Handled by me**<br />Supports form field action permissions: Editable, Read-only, or Hidden                                                                                                                                                                             |
| Conditional branch | Routes the process down different branches based on different conditions.<br />For details, see >>> [How to set up conditional approval](/approval/set-conditional-approval). | Optional node<br />Branch name can be changed<br />Supports duplicating branches<br />Supports adding conditions: multiple conditions are joined by AND<br />Supports adding condition groups: multiple condition groups are joined by OR<br />**Branches run in priority order at execution time.**<br />As soon as one branch rule passes, the others are skipped. **At most one conditional branch is executed.** |
| Parallel branch    | Available with a paid plan. Routes the process through multiple approval branches simultaneously.                                                                             | Optional node<br />Branch name can be changed<br />Supports duplicating branches<br />Supports adding conditions: multiple conditions are joined by AND<br />Supports adding condition groups: multiple condition groups are joined by OR<br />Multiple branches can **run in parallel** according to the rules you set                                                                                              |
| Connector          | Available with a paid plan. Calls a connector configured in **My Integrations**.                                                                                              | Optional node                                                                                                                                                                                                                                                                                                                                                                                                        |
| Automation         | Available with a paid plan. Configures automation tasks.                                                                                                                      | Optional node                                                                                                                                                                                                                                                                                                                                                                                                        |

### 3.2 Set node attributes

#### 3.2.1 Initiator

The initiator is the person who requests the business action and marks the starting point of the approval process. The initiator fills in the form and submits it.

| Attribute      | Description                                                                                                  |
| -------------- | ------------------------------------------------------------------------------------------------------------ |
| Initiator type | Defaults to members of the Organization.                                                                     |
| Who can submit | Kept in sync with **Who can initiate** in Basic Settings. Any change here is also applied to Basic Settings. |

<Frame>
  ![Initiator node attribute panel](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/756fccfb-b266-4cc6-915e-17b381ff5936.png)
</Frame>

#### 3.2.2 Approver

The approver reviews and approves the business action, and can Accept, Decline, transfer, return, or add an approver on the approval form.

**1) Approver attributes**

| Attribute                              | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Node name                              | Displayed on the approval details page as the name of the approval node. Defaults to **Approver**.<br />Set it to the job title of the node, such as **CFO**, or to the specific review content, such as **Contract compliance review**.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| Approval type                          | Supports manual approval, automatic approval, and automatic decline.<br />Defaults to manual approval.<br />Automatic approval and automatic decline are typically used together with conditional branches to enable automated approval.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| Node approver                          | Supports multiple types, flexibly meeting different approval routing needs.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| Approval method for multiple approvers | When multiple people participate in the same node, sequential approval, joint approval, either-or approval, or vote is supported.<br />Sequential approval: multiple approvers approve one after another; the request is approved only after every approver Accepts.<br />Joint approval: multiple approvers approve at the same time; the request is approved only after every approver Accepts.<br />Either-or approval: multiple approvers approve at the same time; the request is approved as soon as any one approver Accepts, and Declined as soon as any one approver Declines.<br />Vote: available with a paid plan. Multiple approvers approve at the same time; the request is approved once the required number of Accept votes is reached. |
| Handling when the approver is empty    | When the approver is set to a manager, department head, role, or similar type, an incomplete Contacts setup may result in no matching person. In this case, set the routing rule for when the approver is empty.<br />Automatic approval: if no approver is found for the node, the approval form is automatically approved.<br />Automatic decline: if no approver is found for the node, the approval form is automatically declined.<br />Automatically transfer to Admin: transfers to the template Admin by default; if there is no template Admin, transfers to the approval Admin.<br />Approval by specified user: when the role or manager is empty, the approval form is automatically transferred to a specified user (up to one).            |

Approver node attribute panel:

<Frame>
  ![Approver node attribute panel](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/YdgOk2b0JJJNXq4B/img/5196dba1-0904-4a58-8889-c18160ed3968.png)
</Frame>

Click the edit icon next to the node name to rename the node:

<Frame>
  ![Edit the approver node name](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/37a53cd8-9947-441d-adb5-d6616ff75f8e.png)
</Frame>

Three approval types are supported: manual approval, automatic approval, and automatic decline.

<Frame>
  ![Select the approval type](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/ee53c043-aeaf-4a85-ad14-e64886c5493c.png)
</Frame>

Node approvers support common approvers, managers, and other types:

<Frame>
  ![Select the node approver type](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/0c120092-9313-4ed2-b110-f005c01f4045.png)
</Frame>

Approval methods for multiple approvers include sequential approval, joint approval, either-or approval, and vote:

<Frame>
  ![Select the approval method for multiple approvers](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/30108558-7a0f-482e-bd06-9535b2c9aad6.png)
</Frame>

Handling when the approver is empty:

<Frame>
  ![Set the handling when the approver is empty](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/41fb5088-84d7-46a5-a0b0-bfbf53e61d29.png)
</Frame>

**2) Node approver settings**

Node approvers support the following types. Expand each item to see its configuration instructions.

<AccordionGroup>
  <Accordion id="q1" title="Specified users">
    When you set the node approver to **Specified users**, add specified users as approvers.

    * Pick approvers from Contacts. The Standard edition allows up to 50 users per node; a paid plan raises this limit to 100.
    * When you pick multiple users, set the approval method for multiple approvers. The default is joint approval.

    Select **Specified users** and click Add:

    <Frame>
      ![Set the node approver to specified users](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/8d60245d-111b-4177-ba5b-04973c1ee4e6.png)
    </Frame>

    Pick users from Contacts:

    <Frame>
      ![Pick specified users from Contacts](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/1fecd907-5776-4077-8d06-3970ec81bdcc.png)
    </Frame>

    Set the approval method when multiple users are picked:

    <Frame>
      ![Set the approval method when multiple specified users are picked](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/45f1d288-2d32-4c42-ae0d-c8d86cf7307f.png)
    </Frame>
  </Accordion>

  <Accordion id="q2" title="Initiator themselves">
    When you set the node approver to **Initiator themselves**, the initiator acts as the approver for this node. This is typically used when the initiator must confirm the approval result.

    * For example, after a purchase request is submitted and the purchase is completed, the initiator confirms whether the outcome meets expectations.
    * After a ticket is submitted and resolved, the initiator confirms whether the issue has been fixed.

    Set the node approver to the initiator:

    <Frame>
      ![Set the node approver to the initiator themselves](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/079a32b8-209b-476a-bf33-9e41e72a0448.png)
    </Frame>
  </Accordion>

  <Accordion id="q3" title="Initiator picks">
    When you set the node approver to **Initiator picks**, the initiator can pick either a single user or multiple users.

    * Set the range of pickable users. The default is the entire Company; you can also restrict the range to roles or specified users. For example, in a rotating shift scenario where several cashiers or IT staff take turns, set these roles or specified users as the pickable range, and let the initiator pick based on that day's scheduling.
    * When the initiator picks multiple users, set the approval method for multiple approvers.

    Choose whether the initiator picks one user or multiple users:

    <Frame>
      ![Set the number of users the initiator can pick](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/9e2599a9-7ade-445b-865c-cf50f131d2f2.png)
    </Frame>

    Set the range of pickable users. You can choose the entire Company, specified users, or roles:

    <Frame>
      ![Set the range of users the initiator can pick](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/21385b92-04ff-43aa-96ea-b83ee2840cc3.png)
    </Frame>

    Set the approval method when the initiator picks multiple users:

    <Frame>
      ![Set the approval method when the initiator picks multiple users](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/6ea9f6aa-198f-477f-976a-28a0f6f97161.png)
    </Frame>
  </Accordion>

  <Accordion id="q4" title="Role">
    When you set the node approver to **Role**, add a role as the approver.

    * After picking a specific role, set the approval method for multiple approvers.
    * Because a role may return no approver due to management scope settings, set the handling logic for when the approver is empty.
    * For details, see >>> [How to set up role-based approval](/approval/set-role-approval).

    Add a role as the approver:

    <Frame>
      ![Set the node approver to a role and add it](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/8bebbd41-da51-4836-bd3e-d0be39c3f530.png)
    </Frame>

    Set the approval method and the handling when the approver is empty:

    <Frame>
      ![Set the approval method and empty-approver handling for a role approver](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/1741df01-e903-4b9e-b63a-a726d13e7811.png)
    </Frame>
  </Accordion>

  <Accordion id="q5" title="Direct manager">
    When you set the node approver to **Direct manager**, choose which tier of direct manager above the initiator should approve. Up to 8 tiers are supported.

    * Because a direct manager may return no approver due to direct manager settings, set the handling logic for when the approver is empty.
    * For details, see >>> [How to set up direct manager approval](/approval/set-direct-manager-approval).

    Choose which tier of direct manager above the initiator should approve:

    <Frame>
      ![Choose which tier of direct manager above the initiator to route to](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/f3a8dcde-6f46-4fd2-81ac-6bffcae8fa7f.png)
    </Frame>
  </Accordion>

  <Accordion id="q6" title="Department manager">
    When you set the node approver to **Department manager**, choose which tier of department manager above the initiator should approve. Up to 8 tiers are supported.

    * Because a department manager may return no approver due to Contacts settings, set the handling logic for when the approver is empty.
    * For details, see >>> [How to set up department manager approval](/approval/set-dept-manager-approval).

    Set the department manager. You can select "If no manager is found, the higher-level manager approves on their behalf":

    <Frame>
      ![Department manager settings and higher-level approval when no manager is found](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/fba3ce1c-d274-4a53-a791-40d779188ba2.png)
    </Frame>

    Choose which tier of department manager above the initiator should approve:

    <Frame>
      ![Choose which tier of department manager above the initiator to route to](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/0c9615c7-3098-48ba-935e-53833813fe04.png)
    </Frame>
  </Accordion>

  <Accordion id="q7" title="Multiple levels of managers">
    When you set the node approver to **multiple levels of managers**, set how many tiers above the initiator the approval should flow to. The process automatically routes upward tier by tier along the department manager hierarchy: it first identifies the initiator's first-tier department manager, then the second-tier department manager, and so on, up to the Nth tier above the initiator.

    You can also set the highest tier in Contacts that the approval should reach. The process then routes upward tier by tier along the department manager hierarchy until it reaches the Nth-tier manager in Contacts.

    <Warning>
      If the initiator is already the Nth-tier manager in Contacts, the approval is routed one more tier upward.
    </Warning>

    Set the maximum tier above the initiator:

    <Frame>
      ![Set the maximum tier above the initiator for multiple levels of managers](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/71c03908-3686-4233-9a43-a9d0801bd330.png)
    </Frame>

    Set the highest tier in Contacts:

    <Frame>
      ![Set the highest Contacts tier for multiple levels of managers](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/6ff6fef5-06a7-4b86-9916-c4f496f7bdd8.png)
    </Frame>
  </Accordion>

  <Accordion id="q8" title="Manager of a department field">
    When you set the node approver to **Manager of a department field**, first select a Department field in the form. This is typically used when a specific department manager must confirm, such as for a transfer request.

    * Select which tier of department manager above that department should approve. Up to 8 tiers are supported.

    Select a Department field in the form:

    <Frame>
      ![Select a Department field in the form for manager of a department field](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/a26d5d54-3e65-4a82-afe5-0bcf80b3dc03.png)
    </Frame>

    Choose which tier of manager the department field routes to:

    <Frame>
      ![Choose the manager tier for manager of a department field](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/45c7bb08-0380-442c-8cb7-866d4d9c9653.png)
    </Frame>
  </Accordion>

  <Accordion id="q9" title="Role for a department field">
    When you set the node approver to **Role for a department field**, first select a Department field in the form. This is typically used when a specific role within a department must confirm, such as for a work handover.

    * Pick a role from the role list. For role and management scope settings, see >>> [How to set up role-based approval](/approval/set-role-approval).

    Select a Department field in the form:

    <Frame>
      ![Select a Department field in the form for role for a department field](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/5654c315-33f1-47c2-b8d1-e20fdebb8456.png)
    </Frame>

    Pick a role from the role list:

    <Frame>
      ![Pick a department-related role from the role list](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/1822703c-c72c-4378-aef6-c55c61e974e0.png)
    </Frame>
  </Accordion>

  <Accordion id="q10" title="Contact field in the form">
    When you set the node approver to **Contact field in the form**, select a Contact field in the form so that the user in that field acts as the approver.

    * For details, see >>> [How to set up form contact approval](/approval/set-form-contact-approval).

    Select a Contact field in the form:

    <Frame>
      ![Select a Contact field in the form](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/ee27d669-e01f-45eb-a534-b9558d0a958a.png)
    </Frame>
  </Accordion>
</AccordionGroup>

#### 3.2.3 CC recipient

CC recipients are people related to the business action. They need to stay informed but do not make decisions. When the process reaches this node, the recipient cannot approve but receives the approval form and can view and comment on it.

| Attribute         | Description                                                                                                                                                                                           |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Node name         | Displayed on the approval details page as the name of the CC node. Defaults to **CC recipient**.<br />Set it to the job title or role type of the node, such as **CFO** or **Other project members**. |
| Node CC recipient | Supports multiple types, flexibly meeting different notification needs.                                                                                                                               |

CC recipient node attribute panel:

<Frame>
  ![CC recipient node attribute panel](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/cee7f567-f135-4414-81bd-72cdc83f0fbd.png)
</Frame>

Edit the CC recipient node name:

<Frame>
  ![Edit the CC recipient node name](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/b983c2ae-447d-4cf7-8c22-c8ae89ae30ef.png)
</Frame>

Node CC recipients support common CC recipients, managers, and other types:

<Frame>
  ![Select the node CC recipient type](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/df0abecc-168b-40a3-89dc-5af1eb7f7f3b.png)
</Frame>

#### 3.2.4 Handler

The handler is the person who actually carries out the business action. Handlers do not have review or approval authority, but they can Submit, transfer, return, add an approver, or comment on the approval form.

| Attribute                             | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Node name                             | Displayed on the approval details page as the name of the handler node. Defaults to **Handler**.<br />Set it to the job title of the node, such as **Cashier**, or to the specific handling task, such as **Contract sealing**.                                                                                                                                                                                                                                                                                                                   |
| Node handler                          | Supports multiple types, flexibly meeting different routing needs.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| Handling method for multiple handlers | When multiple people participate in the same node, sequential handling, simultaneous handling by all, or handling by any one handler is supported.                                                                                                                                                                                                                                                                                                                                                                                                |
| Handling when the handler is empty    | When the handler is set to a role or manager, an incomplete Contacts setup may result in no matching person. In this case, set the routing rule for when the handler is empty.<br />Automatic approval: if no handler is found for the node, the node is automatically skipped.<br />Automatically transfer to Admin: transfers to the template Admin by default; if there is no template Admin, transfers to the approval Admin.<br />Handling by specified user: when the role or manager is empty, transfers to a specified user for handling. |

Handler node attribute panel:

<Frame>
  ![Handler node attribute panel](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/ec0ac1b8-4dda-4f12-ba4e-63f93112559e.png)
</Frame>

Edit the handler node name:

<Frame>
  ![Edit the handler node name](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/59c218ca-1bda-4afc-9bcf-7365209d02c5.png)
</Frame>

Node handlers support specified users, roles, initiator picks, and other types:

<Frame>
  ![Select the node handler type](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/53b1a665-d4a5-4a7a-b6a1-a1be7cf1811e.png)
</Frame>

### 3.3 Set node action permissions

In the node attribute panel, switch to the **Form action permissions** tab to set the node's action permissions for each field in the form.

<Frame>
  ![Form action permissions in the node attributes](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/jP2lRYjZmyDkLO8g/img/cb38d7f6-5d7d-460d-9800-94dca7333874.png)
</Frame>

| Form action permission | Description                                                                 | Details                                                                                                                                                                                                                                                     |
| ---------------------- | --------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Editable               | Can fill in and edit **Editable** content in the form.                      | Supported for initiator, approver, and handler nodes<br />Initiator's default form action permission is Editable                                                                                                                                            |
| Read-only              | Can only view **Read-only** content in the form; cannot fill in or edit it. | Supported for initiator, approver, handler, and CC recipient nodes<br />Default form action permission for approver, handler, and CC recipient is Read-only<br />When the initiator node is set to Read-only, the current node is hidden from the initiator |
| Hidden                 | Cannot view **Hidden** content in the form.                                 | Supported for initiator, approver, handler, and CC recipient nodes                                                                                                                                                                                          |

### 3.4 Add a branch

<Note>
  A conditional branch is not a traditional node, but it is an essential part of Flow configuration.

  **Branches run in priority order at execution time. As soon as one branch rule passes, the others are skipped. At most one conditional branch is executed.**
</Note>

#### 3.4.1 Add a conditional branch

Click **+**, and then click **Conditional branch**.

<Frame>
  ![Click the plus sign to add a conditional branch](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/34b2cf04-dc19-4ea1-89f5-b9db644c79d8.png)
</Frame>

#### 3.4.2 Duplicate a conditional branch

Click **Copy** to quickly duplicate an existing conditional branch.

<Frame>
  ![Click Copy to quickly duplicate a conditional branch](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/067e5fe4-bc2d-4f3e-898a-04c6560100e2.png)
</Frame>

#### 3.4.3 Set branch conditions

Click a conditional branch node in the flow diagram, and set the branch conditions in the right-hand panel.

Conditional branch node and condition summary in the flow diagram:

<Frame>
  ![Conditional branch node in the flow diagram](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/c0f410b4-1d5d-43fa-aed5-13bd21288dc5.png)
</Frame>

Condition settings panel, where you can add conditions or condition groups:

<Frame>
  ![Conditional branch settings panel](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/6cf5bfa0-b16b-4bb6-8961-0e325a68aeb8.png)
</Frame>

| Condition setting                  | Description                                                                                                                                                                                                                                                                                                                                                                               |
| ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Condition name                     | Identifies a condition or condition group. Defaults to Condition 1, Condition 2, Condition 3, and so on.                                                                                                                                                                                                                                                                                  |
| Single condition                   | By default, conditions are set based on the initiator's Department, Role, and similar attributes.<br />Form fields that support conditional branching can serve as branch condition options after being marked as Required.<br />Steps:<br />1. Click **Add condition**.<br />2. Select the condition type.<br />3. Enter or select the specific condition value.<br />4. Click **Save**. |
| Multiple conditions met at once    | A condition group can contain multiple conditions, all joined by AND.<br />The branch is taken only when every condition is met at the same time.                                                                                                                                                                                                                                         |
| Any one of multiple conditions met | Click **Add condition group**. New condition groups are joined to the original group by OR.<br />The branch is taken when any one of the condition groups is met.                                                                                                                                                                                                                         |

Click the edit icon next to the condition name to rename the condition:

<Frame>
  ![Edit the conditional branch name](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/d10a3b83-ae6b-448f-9fcc-8718fea4af99.png)
</Frame>

Single condition, using the initiator as the branch condition:

<Frame>
  ![Set the initiator as a branch condition](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/ee229c62-562e-4825-8c6b-657a15292088.png)
</Frame>

Multiple conditions met at once, joined by AND:

<Frame>
  ![Set multiple conditions joined by AND](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/9119ed46-3e5d-44d3-86cf-5bfa2f5eb4c3.png)
</Frame>

Any one of multiple conditions met, with condition groups joined by OR:

<Frame>
  ![Set condition groups joined by OR](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/WgZOZA8xwkvdrqLX/img/e7deb602-397d-4693-89b4-551c9cd723aa.png)
</Frame>

#### 3.4.4 Configure the flow for a branch condition

After setting the branch conditions, configure the operators for each conditional branch. The configuration is the same as for the main process.

## 4. Related documents

<CardGroup cols={2}>
  <Card title="How to set up conditional approval" href="/approval/set-conditional-approval">
    Route approval forms down different branches based on department, amount, and other conditions.
  </Card>

  <Card title="How to set up role-based approval" href="/approval/set-role-approval">
    Set roles as approvers and configure management scope.
  </Card>

  <Card title="How to set up direct manager approval" href="/approval/set-direct-manager-approval">
    Set up tier-by-tier approval by direct managers.
  </Card>

  <Card title="How to set node action permissions" href="/approval/set-node-permission">
    Control Editable, Read-only, and Hidden permissions for form fields at each node.
  </Card>
</CardGroup>
