Skip to main content
Glama

update_workflow_trigger

Idempotent

Modify only the fields you specify on a single workflow trigger via partial update, leaving other settings intact. Fetch the trigger first to review its current configuration.

Instructions

Update fields on ONE workflow trigger (PATCH — only fields you supply are changed). Use get_workflow_trigger first to see its current shape.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYes
typeNoTrigger type: 1=consumption started, 2=document added, 3=document updated, 4=scheduled
matchNo
sourcesNoConsumption-started (type 1) triggers only: consumption sources 1=consume folder, 2=API upload, 3=mail fetch, 4=web UI (default [1,2,3])
filter_pathNoConsumption-started (type 1) triggers only: consume-folder path pattern, * wildcards allowed
is_insensitiveNo
filter_filenameNoFilename pattern (the whole name must match, case-insensitive), * wildcards allowed. Works for every trigger type: at consumption start it checks the incoming file's name, for types 2–4 the document's original file name.
filter_has_tagsNoDocument has ANY of these tags. Checked for types 2–4 (added, updated, scheduled) only — not at consumption start, when the document has no content or metadata yet.
filter_mailruleNoConsumption-started (type 1) triggers only: only 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. Checked for types 2–4 (added, updated, scheduled) only — not at consumption start, when the document has no content or metadata yet.
filter_has_all_tagsNoDocument has ALL of these tags. Checked for types 2–4 (added, updated, scheduled) only — not at consumption start, when the document has no content or metadata yet.
filter_has_not_tagsNoDocument has NONE of these tags. Checked for types 2–4 (added, updated, scheduled) only — not at consumption start, when the document has no content or metadata yet.
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]]]'. Checked for types 2–4 (added, updated, scheduled) only — not at consumption start, when the document has no content or metadata yet.
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. Checked for types 2–4 (added, updated, scheduled) only — not at consumption start, when the document has no content or metadata yet.
filter_has_not_storage_pathsNoStorage path is none of these. Checked for types 2–4 (added, updated, scheduled) only — not at consumption start, when the document has no content or metadata yet.
filter_has_any_correspondentsNoCorrespondent is one of these. Checked for types 2–4 (added, updated, scheduled) only — not at consumption start, when the document has no content or metadata yet.
filter_has_any_document_typesNoDocument type is one of these. Checked for types 2–4 (added, updated, scheduled) only — not at consumption start, when the document has no content or metadata yet.
filter_has_not_correspondentsNoCorrespondent is none of these. Checked for types 2–4 (added, updated, scheduled) only — not at consumption start, when the document has no content or metadata yet.
filter_has_not_document_typesNoDocument type is none of these. Checked for types 2–4 (added, updated, scheduled) only — not at consumption start, when the document has no content or metadata yet.
schedule_recurring_interval_daysNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed15 schema fields changedv3.2.1
    • changedInput schema / properties / filter_custom_field_query / description
      Previous value: -"Custom-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]]]'."New value: +"Custom-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]]]'. Checked for types 2–4 (added, updated, scheduled) only — not at consumption start, when the document has no content or metadata yet."
    • changedInput schema / properties / filter_filename / description
      Previous value: -"Filename pattern (whole name must match), * wildcards allowed"New value: +"Filename pattern (the whole name must match, case-insensitive), * wildcards allowed. Works for every trigger type: at consumption start it checks the incoming file's name, for types 2–4 the document's original file name."
    • changedInput schema / properties / filter_has_all_tags / description
      Previous value: -"Document has ALL of these tags"New value: +"Document has ALL of these tags. Checked for types 2–4 (added, updated, scheduled) only — not at consumption start, when the document has no content or metadata yet."
    • changedInput schema / properties / filter_has_any_correspondents / description
      Previous value: -"Correspondent is one of these"New value: +"Correspondent is one of these. Checked for types 2–4 (added, updated, scheduled) only — not at consumption start, when the document has no content or metadata yet."
    • changedInput schema / properties / filter_has_any_document_types / description
      Previous value: -"Document type is one of these"New value: +"Document type is one of these. Checked for types 2–4 (added, updated, scheduled) only — not at consumption start, when the document has no content or metadata yet."
    • changedInput schema / properties / filter_has_any_storage_paths / description
      Previous value: -"Storage path is one of these"New value: +"Storage path is one of these. Checked for types 2–4 (added, updated, scheduled) only — not at consumption start, when the document has no content or metadata yet."
    • changedInput schema / properties / filter_has_not_correspondents / description
      Previous value: -"Correspondent is none of these"New value: +"Correspondent is none of these. Checked for types 2–4 (added, updated, scheduled) only — not at consumption start, when the document has no content or metadata yet."
    • changedInput schema / properties / filter_has_not_document_types / description
      Previous value: -"Document type is none of these"New value: +"Document type is none of these. Checked for types 2–4 (added, updated, scheduled) only — not at consumption start, when the document has no content or metadata yet."
    • changedInput schema / properties / filter_has_not_storage_paths / description
      Previous value: -"Storage path is none of these"New value: +"Storage path is none of these. Checked for types 2–4 (added, updated, scheduled) only — not at consumption start, when the document has no content or metadata yet."
    • changedInput schema / properties / filter_has_not_tags / description
      Previous value: -"Document has NONE of these tags"New value: +"Document has NONE of these tags. Checked for types 2–4 (added, updated, scheduled) only — not at consumption start, when the document has no content or metadata yet."
    • changedInput schema / properties / filter_has_tags / description
      Previous value: -"Document has ANY of these tags"New value: +"Document has ANY of these tags. Checked for types 2–4 (added, updated, scheduled) only — not at consumption start, when the document has no content or metadata yet."
    • changedInput schema / properties / filter_mailrule / description
      Previous value: -"Only documents fetched by this mail rule ID"New value: +"Consumption-started (type 1) triggers only: only documents fetched by this mail rule ID"
    • changedInput schema / properties / filter_path / description
      Previous value: -"Path pattern, * wildcards allowed"New value: +"Consumption-started (type 1) triggers only: consume-folder path pattern, * wildcards allowed"
    • changedInput schema / properties / matching_algorithm / description
      Previous value: -"Content match for `match`: 0=none, 1=any word, 2=all words, 3=exact, 4=regular expression, 5=fuzzy word"New value: +"Content match for `match`: 0=none, 1=any word, 2=all words, 3=exact, 4=regular expression, 5=fuzzy word. Checked for types 2–4 (added, updated, scheduled) only — not at consumption start, when the document has no content or metadata yet."
    • changedInput schema / properties / sources / description
      Previous value: -"Consumption sources: 1=consume folder, 2=API upload, 3=mail fetch, 4=web UI (default [1,2,3])"New value: +"Consumption-started (type 1) triggers only: consumption sources 1=consume folder, 2=API upload, 3=mail fetch, 4=web UI (default [1,2,3])"
  2. First observedv3.2.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true and destructiveHint=false, so the safety profile is partly covered. The description adds genuine value beyond that by disclosing the PATCH partial-update behavior (only supplied fields change), which an agent needs to reason about idempotency and blast radius. It does not mention auth/permission requirements.

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?

Two sentences, zero waste, and the core mutation semantics are front-loaded ahead of the prerequisite hint. Nothing to trim.

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 24-parameter single-required-id mutation, the description correctly points the agent to a read-before-write step, and the remaining type-conditional complexity is carried by the schema. No output schema exists, but a PATCH return of the updated trigger is conventional; a note on the response would be the only improvement.

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 coverage is 79%, near the high-coverage baseline, and the schema descriptions are unusually rich (trigger-type applicability, wildcards, tag semantics, custom-field query syntax). The description adds no parameter-level meaning, so baseline 3 is appropriate.

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?

States a precise verb and resource ('Update fields on ONE workflow trigger') and immediately clarifies the operation semantics with 'PATCH — only fields you supply are changed'. The emphasis on ONE distinguishes it from bulk-edit siblings, and an agent can tell it apart from create_/delete_workflow_trigger.

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

Usage Guidelines4/5

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

Explicitly tells the agent to call get_workflow_trigger first to inspect the trigger's current shape before patching. This is a real prerequisite, though it doesn't state when-not to use this tool or name an alternative for bulk changes.

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