Workflows
Workflows automate document processing in Paperless-ngx. Each workflow has one or more triggers (conditions that activate it) and one or more actions (what to do when triggered). Triggers and actions are accessible as sub-resources via paperless.workflows.triggers and paperless.workflows.actions.
Models
See pypaperless/models/workflows/workflow.py for all fields and pypaperless/models/types.py for enum and filter types, and the Paperless-ngx API docs for the upstream schema.
Workflows
Fetch one
workflow = await paperless.workflows(1)
print(workflow.name) # "Auto-tag invoices"
print(workflow.enabled) # True
Iterate
async for wf in paperless.workflows:
print(wf.id, wf.name, "enabled:", wf.enabled)
# Only active workflows
active = [wf async for wf in paperless.workflows if wf.enabled]
Triggers
Triggers are accessed via paperless.workflows.triggers:
# Fetch a trigger by id
trigger = await paperless.workflows.triggers(3)
print(trigger.type) # WorkflowTriggerType.CONSUMPTION
print(trigger.filter_filename) # "invoice_*.pdf"
# Iterate all triggers
async for trigger in paperless.workflows.triggers:
print(trigger.id, trigger.type)
Actions
Actions are accessed via paperless.workflows.actions:
# Fetch an action by id
action = await paperless.workflows.actions(5)
print(action.type) # WorkflowActionType.ASSIGNMENT
print(action.assign_tags) # [1, 3]
print(action.assign_correspondent) # 7
# Iterate all actions
async for action in paperless.workflows.actions:
print(action.id, action.type)
# All actions as a dict keyed by id
actions_dict = await paperless.workflows.actions.as_dict()