Oauser Manual

OA Approval System — User Manual #

Applicable version: SmartChart OA Module Last updated: 2026-04-26


1. System Overview #

The OA Approval System is a lightweight workflow approval tool for:

  • Employees initiating approvals (leave, reimbursement, procurement, etc.)
  • Auto-routing to designated approvers per predefined workflows
  • Approvers processing online (approve, reject, transfer, etc.)
  • Admin backend for workflow and organization management

The system supports multi-tenancy — different tenants (companies/departments) have fully isolated data.


2. Page Entry Points #

Page URL Role
OA Workspace /oa/ All employees
Flow Designer /oa/designer/ System admin
Organization Management /oa/org/ System admin

3. Employee Guide #

3.1 Initiate Approval #

  1. Enter OA Workspace → click 「New Request」
  2. Select the workflow type (e.g., Leave Request, Expense Reimbursement)
  3. Fill in the form (different workflows have different fields)
  4. If the workflow supports self-selected approvers, choose them
  5. Click 「Submit」

3.2 Process Approvals (Pending) #

  1. OA Workspace → 「Pending Approvals」
  2. Click any task to view details (request content, workflow history, current node)
  3. Choose action:
    • Approve: Agree, continue flow
    • Reject: Reject, flow ends
    • Transfer: Assign to another person
    • Return: Send back to initiator or previous approver
    • Countersign: Temporarily add other approvers

3.3 Withdraw Request #

If approval hasn’t started processing, find the request in 「My Requests」 → click 「Withdraw」.

3.4 View History #

  • 「My Requests」: All requests you’ve initiated
  • 「Processed by Me」: All approvals you’ve handled
  • Filter by workflow type, status, date range

4. System Admin Guide #

4.1 Flow Designer #

The Flow Designer configures workflow routing rules.

4.1.1 Page Layout #

┌─────────────────────────────────────────────────────────┐
│  Toolbar: [New] [Save] [Publish] [New Version] [Export] [Import] │
├──────────────┬──────────────────────────────────────────┤
│  Node Panel  │              Canvas                        │
│  ─────────   │  [Drag nodes to canvas, connect with arrows] │
│  ▶ Start     │                                           │
│  ▶ Approval  │                                           │
│  ▶ Countersign│                                          │
│  ▶ Or-sign   │                                           │
│  ▶ Condition │                                           │
│  ▶ Parallel  │                                           │
│  ▶ Notify    │                                           │
│  ▶ Delay     │                                           │
│  ▶ Agent     │                                           │
│  ▶ End       │                                           │
└──────────────┴──────────────────────────────────────────┘

4.1.2 Design Steps #

Step 1: New Workflow — Click 「New」, enter name and description

Step 2: Configure Start Node — Drag Start node, add form fields (text, number, date, select, person picker, etc.)

Step 3: Add Approval Nodes — Drag Approval (single person) or Countersign (multi-person) node, configure approver source:

  • Designated person: Fixed approver
  • Self-selected by initiator: Initiator chooses at submission
  • Form field: Read from form (e.g., “Department Manager” field)

Step 4: Condition Branches (optional) — Drag Condition Branch node, configure routing with variable syntax: v.amount > 10000

Step 5: Save & PublishSave for draft, Publish for production

4.1.3 Node Types #

Node Type Description
Start Entry point, defines the form
Approval Single-person approval
Countersign Multi-person sequential, all must approve
Or-sign Multi-person, any one approval passes
Condition Routes based on condition expression
Parallel Multiple branches execute simultaneously
Notify Sends in-app message
Delay Pauses for specified duration
Script Executes Python code
Agent Calls SmartChart AI agent
Data Write Writes form data to a table
Sub-flow Triggers another workflow
End Normal termination

4.1.4 Copy Flow UUID #

The UUID is shown in the left panel’s “Flow Info” area. Click the copy icon.

UUID Usage: Required when initiating workflows via API.


4.2 Organization Management #

Entry: OA Workspace → top-right 「Org Management」 (or /oa/org/)

4.2.1 Tenant Management #

Tenants are the highest-level isolation unit (e.g., different subsidiaries). Only super admins can manage tenants.

4.2.2 Roles & Permissions #

Role Permission Code Description
Org Manager org_manage Manage org structure
Employee Manager employee_manage CRUD employees
Task Manager task_manage Process approval tasks

4.2.3 Department Management #

Add/edit/delete departments, set parent departments (tree structure), search by name.

4.2.4 Position Management #

Add/edit/delete positions, assign role permissions to positions.

4.2.5 Employee Management #

Add/edit/delete employee accounts, set department, position, direct supervisor, concurrent departments, and roles.

Employee status: Active (ACTIVE) or inactive. Inactive employees cannot log in.


5. FAQ #

Q: Can’t find the workflow when initiating? A: Contact admin to confirm the workflow is published and you have the required role.

Q: Can’t see pending tasks? A: Check you’re in the correct tenant, or refresh the page.

Q: Can I modify a running workflow? A: No. Once started, the workflow definition cannot be changed. Terminate and re-initiate with a new version.

Q: What happens to an inactive employee’s requests? A: Existing requests continue normally. The employee account is marked inactive and cannot log in.

Q: How to initiate via API? A: Use POST /oa/instance/start/ with a valid session/token.


6. Glossary #

Term Description
Flow Definition (FlowInfo) The workflow template/configuration
Flow Instance (FlowInstance) A specific request from start to end
Flow Task (FlowTask) A todo item at each workflow node
Tenant Data isolation unit (company/department)
Variable Dynamic data in workflow for condition evaluation
Countersign All must approve
Or-sign Any one approval suffices
Transfer Assign task to another person
Return Send flow back to a previous node