- Expression: A pattern matching expression using the
match(pattern, field)function that is evaluated against each transaction to determine whether it satisfies the criteria of the rule. - Priority: If multiple rules match a transaction, the rule with the highest priority will be implemented first.
- Destination Ledger: This is the name of the ledger into which the transaction will be categorized if the rule conditions are met. If the specified ledger name doesn’t exist in an instance’s chart of accounts, the system will disregard the rule.
Expressions
Expressions are written using thematch(pattern, field) function, which checks if a field of the Transaction object matches a pattern.
The Transaction object
The entireTransaction object is accessed via the symbol t and references specific fields using ., for example, t.description or t.amount.
metadata was added to the Transaction, you can reference it through t.metadata. See submitting transactions for more information on adding metadata to your transactions.
Using match()
Use match(pattern, field) to check if a field of the Transaction object matches a pattern. The pattern must be a string and supports regular expression syntax for writing complex rules.
You can learn more about regular expressions and their syntax here.
Examples
Payments to a specific vendor
A rule that checks if the Transaction’s description contains “Slack”, preceded by any number of any characters:Case-insensitive matching
Use(?i) in the pattern to make the match case-insensitive:
Transactions with certain metadata
A rule that looks for transactions with acounterparty attribute in the metadata matching “Sophie’s Contracting LLC”: