> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.monite.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.monite.com/_mcp/server.

# Trigger examples

## Overview

On this page, we delve into a variety of real-world scenarios of [conditions for triggering approval policies](../../approvals/policies/index#approval-policy-structure). These scenarios are designed to help you understand how [approval policies](../../approvals/policies/index) can be automatically set to specific invoices and how to customize these conditions to address specific operational, compliance, and governance needs within your organization.

> **Info**
>
> * The conditions mentioned on this page are designed using the [MoniteScript](../../../references/monitescript) and must be inserted into the `trigger` field. Check the [Evaluated string](../../../references/monitescript#evaluated-string) section for further information about the syntax.
> * The `"{event_name == 'submitted_for_approval'}"` condition is mandatory in triggers.
> * The `if`, `then`, and `else` statements are not allowed in triggers.
> * When a payable has `enforce_approval_policy_id` set, the MoniteScript trigger conditions are ignored.

## By invoice amount

Set an approval policy for all invoices worth more than 300 EUR:

```json
{
  "name": "Invoices worth more than 300 EUR",
  "trigger": {
    "all": [
      "{event_name == 'submitted_for_approval'}",
      "{invoice.currency == 'EUR'}",
      "{invoice.amount > 30000}"
    ]
  },
  "script": [
    ...
  ]
}
```

If you receive invoices in multiple currencies, you can convert the amount to some base currency to use the same threshold for all invoices:

```json
{
  "name": "Invoices worth more than 300 EUR (after currency conversion)",
  "trigger": {
    "all": [
      "{event_name == 'submitted_for_approval'}",
      {
        "left_operand": {
          "call": "Currency.convert",
          "params": {
            "amount": "{invoice.amount}",
            "from_currency": "{invoice.currency}",
            "to_currency": "EUR"
          }
        },
        "operator": ">",
        "right_operand": 30000
      }
    ]
  },
  "script": [
    ...
  ]
}
```

## With specific currencies

Set an approval policy for all invoices with specific currencies, in this case, EUR and USD:

```json
{
  "name": "EUR and USD invoices",
  "trigger": {
    "all": [
      "{event_name == 'submitted_for_approval'}",
      "{invoice.currency in ['EUR', 'USD']}"
    ]
  },
  "script": [
    ...
  ]
}
```

## With specific tags

Set an approval policy for all invoices containing one of the specific tags:

```json
{
  "name": "Invoices with specific tags",
  "trigger": {
    "all": [
      "{event_name == 'submitted_for_approval'}",
      {
        "any": [
          "{'Marketing' in invoice.tags.name}",
          "{'Urgent' in invoice.tags.name}",
          "{'d566f374-463a-4a07-b252-2eb0200d62ce' in invoice.tags.id}",
          "{'398b2748-b255-46da-b8dc-a01219539ec9' in invoice.tags.id}"
        ]
      }
    ]
  },
  "script": [
    ...
  ]
}
```

## From a specific project

Set an approval policy for all invoices related to specific projects:

```json
{
  "name": "Invoices from a specific project",
  "trigger": {
    "all": [
      "{event_name == 'submitted_for_approval'}",
      "{invoice.project_id == 'd566f374-463a-4a07-b252-2eb0200d62ce'}"
    ]
  },
  "script": [
    ...
  ]
}
```

## For specific counterparts

Set an approval policy for all invoices from a specific list of counterparts:

```json
{
  "name": "Invoices from specific counterparts (vendors)",
  "trigger": {
    "all": [
      "{event_name == 'submitted_for_approval'}",
      "{invoice.counterpart_id in ['398b2748-b255-46da-b8dc-a01219539ec8', '4d0ff737-070b-427a-980c-c8ee7961577d']}"
    ]
  },
  "script": [
    ...
  ]
}
```

## For specific users

Set an approval policy for all invoices from a specific list of entity users:

```json
{
  "name": "Invoices uploaded by specific entity users",
  "trigger": {
    "all": [
      "{event_name == 'submitted_for_approval'}",
      "{invoice.was_created_by_user_id in ['d566f374-463a-4a07-b252-2eb0200d62ce', '398b2748-b255-46da-b8dc-a01219539ec9']}"
    ]
  },
  "script": [
    ...
  ]
}
```

## By amount, currency, tags, AND specific counterpart

Set an approval policy for all invoices worth more than 1000 EUR, from a specific counterpart AND with specific tags:

```json
{
  "name": "By amount, currency, tag, AND specific counterpart",
  "description": "Invoices worth more than 1000 EUR, from a specific counterpart AND with specific tags",
  "trigger": {
    "all": [
      "{event_name == 'submitted_for_approval'}",
      "{invoice.amount > 100000}",
      "{invoice.currency == 'EUR'}",
      "{invoice.counterpart_id == '398b2748-b255-46da-b8dc-a01219539ec8'}",
      "{'d566f374-463a-4a07-b252-2eb0200d62ce' in invoice.tags.id}",
      "{'398b2748-b255-46da-b8dc-a01219539ec9' in invoice.tags.id}"
    ]
  },
  "script": [
    ...
  ]
}
```

## By counterpart, plus amount OR specific tag

Set an approval policy for all invoices from a specific counterpart worth more than \$300 OR with a specific tag:

```json
{
  "name": "By counterpart, plus amount OR specific tag",
  "trigger": {
    "all": [
      "{event_name == 'submitted_for_approval'}",
      "{invoice.counterpart_id == '398b2748-b255-46da-b8dc-a01219539ec8'}",
      {
        "any": [
          "{invoice.amount > 30000}",
          "{'d566f374-463a-4a07-b252-2eb0200d62ce' in invoice.tags.id}"
        ]
      }
    ]
  },
  "script": [
    ...
  ]
}
```