Skip to content

Approval Workflow

How Approvals Work

Each document follows an approval rule chosen at submission time based on the document type and conditions you've configured. A rule defines a sequence of steps; each step requires a specific role (or specific user) to approve.

A document moves through:

draft → pending_approval → approved   (success path)
                       ↘ rejected     (returned for correction)

When all required steps are approved, the document becomes approved and is eligible for reconciliation.

Approving a Document

  1. Open any document list (Receipts / Received Invoices / Issued Invoices)
  2. Click the Pending tab
  3. Documents pending your approval show an Approve button on the row
  4. Click the button to open the detail modal
  5. Review the document and click Approve or Reject (with comment)

You can also use Butler Chat:

"Approve the receipt from XYZ Store for ¥5,500."

Butler will summarize the document and ask for confirmation before executing.

Multi-Step Rules

Rules can have multiple steps:

Step 1: accounting
Step 2: manager

When step 1 is approved, the document remains pending_approval and moves to step 2. The next approver sees the document in their Pending tab. Only after the final step is approved does the document become approved.

Approval Rules (Admin)

Configure rules at Rules → Approval Rules:

  • Applies to — receipt / received invoice / issued invoice (any combination)
  • Conditions — apply this rule when an attribute matches (e.g. amount >= 100000). Use field: "always" for an unconditional rule
  • Steps — ordered list of {role, required}. The role can be a built-in role (accounting, manager, etc.) or direct_manager to dynamically resolve the submitter's manager
  • Active — toggle without deleting

Custom Approvers (Per Document)

When submitting a document, the submitter can add extra approvers beyond what the rule specifies. These appear as additional steps appended to the rule's steps and follow the same approve / reject flow.

Audit Trail

Every approval action writes an audit_logs entry:

  • approver_id — the user who acted
  • actionapproved / rejected / returned
  • comment — required for rejection
  • timestamp
  • During tax firm impersonation, also is_tax_firm_proxy: true and proxy_actor_uid (the tax firm UID)

You can view the audit trail on each document's detail panel.

Butler Series — Saikoku Studio