create_workflow_action
Create a discrete Paperless-NGX workflow action (assignment, email, webhook, or trash) to serve as a reusable automation step. Use it when configuring workflows for document processing.
Instructions
Create ONE standalone workflow action. On its own an action does nothing, and Paperless deletes actions that belong to no workflow whenever any workflow is updated. To build an automation, use create_workflow with the actions inline; to change an action inside a workflow, use update_workflow (or update_workflow_action with the action id from get_workflow).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Action type: 1=assignment, 2=removal, 3=email, 4=webhook, 5=password removal (needs passwords), 6=move to trash, 7=remote OCR (its workflow must have a type-1 consumption-started trigger), 8=apply AI suggestions (needs ai_suggestion_fields; its workflow must have a trigger other than type 1) | |
| No | Type 3: email configuration | ||
| webhook | No | Type 4: webhook configuration | |
| passwords | No | Type 5 (required): PDF passwords to try, in order. The unlocked file is stored as a new version of the document. Tools return them masked ("**********"); send a masked list back unchanged to keep the stored passwords. | |
| assign_tags | No | ||
| remove_tags | No | ||
| assign_owner | No | ||
| assign_title | No | Type 1: Jinja2 title template | |
| remove_owners | No | ||
| remove_all_tags | No | ||
| ai_create_missing | No | Type 8: create suggested tags/correspondents/document types/storage paths that don't exist yet | |
| assign_view_users | No | ||
| remove_all_owners | No | ||
| remove_view_users | No | ||
| assign_view_groups | No | ||
| remove_view_groups | No | ||
| assign_change_users | No | ||
| assign_storage_path | No | ||
| remove_change_users | No | ||
| ai_suggestion_fields | No | Type 8 (required): which AI suggestions to apply. Needs AI enabled in Paperless. | |
| assign_change_groups | No | ||
| assign_correspondent | No | ||
| assign_custom_fields | No | Type 1: custom field IDs to add | |
| assign_document_type | No | ||
| remove_change_groups | No | ||
| remove_custom_fields | No | ||
| remove_storage_paths | No | ||
| ai_overwrite_existing | No | Type 8: apply suggestions even when the document already has a value | |
| remove_correspondents | No | ||
| remove_document_types | No | ||
| remove_all_permissions | No | ||
| remove_all_custom_fields | No | ||
| remove_all_storage_paths | No | ||
| remove_all_correspondents | No | ||
| remove_all_document_types | No | ||
| assign_custom_fields_values | No | Type 1: values for assign_custom_fields keyed by custom field ID, e.g. {"7": "2026-01-01"}. The value for the custom field. For monetary fields, use currency code prefix format (e.g., USD10.00, GBP123.45, EUR9.99) — NOT trailing symbol format (e.g., 10.00$). For documentlink fields, use a single document ID (e.g., 123) or an array of document IDs (e.g., [123, 456]). |