Skip to main content
Glama

create_workflow_trigger

Create a standalone workflow trigger to define when Paperless automations run; attach it to a workflow to make the trigger active.

Instructions

Create ONE standalone workflow trigger. On its own a trigger does nothing, and Paperless deletes triggers that belong to no workflow whenever any workflow is updated. To build an automation, use create_workflow with the triggers inline; to change a trigger inside a workflow, use update_workflow (or update_workflow_trigger with the trigger id from get_workflow).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeYesTrigger type: 1=consumption started, 2=document added, 3=document updated, 4=scheduled
matchNo
sourcesNoConsumption sources: 1=consume folder, 2=API upload, 3=mail fetch, 4=web UI (default [1,2,3])
filter_pathNoPath pattern, * wildcards allowed
is_insensitiveNo
filter_filenameNoFilename pattern (whole name must match), * wildcards allowed
filter_has_tagsNoDocument has ANY of these tags
filter_mailruleNoOnly documents fetched by this mail rule ID
matching_algorithmNoContent match for `match`: 0=none, 1=any word, 2=all words, 3=exact, 4=regular expression, 5=fuzzy word
filter_has_all_tagsNoDocument has ALL of these tags
filter_has_not_tagsNoDocument has NONE of these tags
schedule_date_fieldNoType 4: date the schedule is based on
schedule_offset_daysNoType 4: days to offset from schedule_date_field
schedule_is_recurringNo
filter_custom_field_queryNoCustom-field filter as a JSON expression passed as a string. A condition is [field, operator, value], where field is the custom field's name or ID. Combine conditions with ["AND", [cond, …]] or ["OR", [cond, …]], and negate with ["NOT", cond]. Valid operators depend on the field's data type (e.g. exact, in, isnull, exists, icontains, gt, gte, lt, lte, range); pick an invalid one and Paperless names the valid ones. Examples: '["Amount", "gte", 100]', '["AND", [["Due", "lt", "2026-10-01"], ["Paid", "exact", false]]]'.
schedule_date_custom_fieldNoType 4 with schedule_date_field=custom_field: the date custom field ID
filter_has_any_storage_pathsNoStorage path is one of these
filter_has_not_storage_pathsNoStorage path is none of these
filter_has_any_correspondentsNoCorrespondent is one of these
filter_has_any_document_typesNoDocument type is one of these
filter_has_not_correspondentsNoCorrespondent is none of these
filter_has_not_document_typesNoDocument type is none of these
schedule_recurring_interval_daysNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv3.2.0

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say readOnlyHint=false and destructiveHint=false, which is minimal. The description adds critical behavioral context: 'On its own a trigger does nothing, and Paperless deletes triggers that belong to no workflow whenever any workflow is updated.' This warns about a non-obvious destructive side effect (orphaned triggers being deleted) that annotations don't capture. It doesn't fully explain all side effects, but it discloses the most important behavioral trap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with zero waste. The critical warning about orphaned triggers is front-loaded, and the alternative routing is compact. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 23-parameter tool with 83% schema coverage and no output schema, the description covers the essential context: what the tool does, the critical deletion behavior, and how to route to alternatives. It doesn't explain return values, but with no output schema and a create operation, that's a minor gap. The warning about deletion is the most important contextual information and it's present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 83%, so the schema already documents most parameters well. The description doesn't add parameter-level detail beyond what the schema provides, but it does clarify the purpose of the trigger in context. Baseline 3 is appropriate since the schema carries the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates ONE standalone workflow trigger, and immediately distinguishes it from create_workflow (which creates workflows with triggers inline) and update_workflow/update_workflow_trigger (which modify triggers). The verb 'create' plus the specific resource 'standalone workflow trigger' is precise and differentiates it from the many sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use this tool vs alternatives: 'To build an automation, use create_workflow with the triggers inline; to change a trigger inside a workflow, use update_workflow (or update_workflow_trigger with the trigger id from get_workflow).' This is explicit when/when-not guidance with named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools