preview_transaction_automation
Dry-run a set of automation conditions against up to the last 1000 eligible existing transactions and return { matchedCount, scannedCount, matches } where matches is capped at 5 sample transactions. Nothing is modified. Use it to sanity-check conditions before create_transaction_automation or update_transaction_automation. Note that a live automation fires on its own only for newly synced or imported bank transactions that are not transfers and not planned; existing transactions change only when the user runs "Apply to past transactions" for a saved rule in the app.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| conditions | Yes | Condition tree: { match: "all" | "any", items: [...] }. 1-10 items, at most one transactionType item. Item shapes by field: - note | merchant (merchant is the bank-provided merchant/description text): { field, operator, value }. operator: contains_any | not_contains_any | starts_with_any | ends_with_any | equals_any | is_empty. value: 1-20 case-insensitive keywords, max 64 chars each; required unless operator is is_empty. Example: { "field": "merchant", "operator": "contains_any", "value": ["uber", "bolt"] } - payee | account | accountGroup | bankConnection: { field, operator, value }. operator: in | not_in. value: 1-20 UUIDs of that entity, all owned by the user. Example: { "field": "account", "operator": "in", "value": ["<accountId>"] } - amount: { field, operator, value: { min?, max? }, currency }. operator: gte | lte | between | equals. gte and equals take min only, lte takes max only, between takes both. Bounds are decimals (e.g. 12.50). currency: { "mode": "transaction" } compares in the currency of the transaction itself, { "mode": "base" } in the user base currency, { "mode": "specific", "code": "USD" } in a fixed currency. Example: { "field": "amount", "operator": "gte", "value": { "min": 100 }, "currency": { "mode": "base" } } - transactionType: { "field": "transactionType", "operator": "equals", "value": "income" | "expense" } - dayOfMonth: { "field": "dayOfMonth", "operator": "between", "value": { "min": 1, "max": 31 } } |