Skip to main content
Rules

Output rules and testing rules

Shape what an account sends to destinations, SimpleFIN apps, webhooks, AI assistants and other apps without changing your stored data, see which destinations a transfer rule works with, and test any rule on real transactions.

Written By Matias

Last updated About 1 hour ago

Output rules let you shape what an account sends out of Synci, to budgeting apps, SimpleFIN apps, webhooks, AI assistants and other apps, without touching the transactions stored in Synci. This article also covers which destinations a transfer rule works with, and how to test any rule on real transactions before it runs.

New to rules? Start with Creating rules.

Two ways a rule can apply

When you create a rule for a bank account, Synci asks How the rule applies:

  • Change my data in Synci: permanently updates the transaction across Synci and everywhere it is sent. Turning the rule off later does not undo changes it has already made.

  • Only on the way out: shapes outgoing data for destinations, the API and webhooks. Your stored transactions stay unchanged.

"Only on the way out" rules are transfer rules. Where you attach one decides what it shapes:

  • On a linked account: it shapes the transactions sent to that one destination.

  • On a bank account: it becomes an output rule and shapes everything that account sends out.

Rules aren't available for brokerage or crypto accounts.

Where output rules apply

Where the data goes

Output rules apply?

Destinations the account is linked to (YNAB, Lunch Money, Google Sheets, Notion)

Yes. The account's output rules run first, then the linked account's own rules, so a linked account's rules can override them.

SimpleFIN apps, including Actual Budget

Yes

Webhooks, including Zapier and n8n

Yes

AI assistants connected through MCP

Yes

Third-party apps you've allowed to access your data

Yes

The Synci dashboard and your own API tokens

No. These always show your transactions as they are stored.

A Stop transfer action on an output rule hides matching transactions from all of these: they are not transferred to destinations and don't appear in the API, SimpleFIN apps, webhooks or AI assistants.

Because output rules are applied every time an app, assistant or webhook reads the data, those reads don't add entries to Rule logs. Use Test to check what a rule does. Turning an output rule off or detaching it changes what is sent from then on; anything already delivered stays as it was.

For developers: output rules can remove transactions, so an API page may contain fewer transactions than you asked for. Platform apps that use client credentials receive rule-shaped data by default, and can ask for the stored data with disable_rules=true.

Creating an output rule

  1. Open the account, go to its Rules tab and click Add rule. Or, on the Rules page, click Create rule, choose Bank accounts and pick the account.

  2. Under How the rule applies, choose Only on the way out.

  3. Give the rule a name and click Create rule. The rule builder opens, ready for your conditions and actions.

You can also attach an existing transfer rule to a bank account: open the rule and click Attach. A rule can only work as an output rule when all of its actions work on account outputs. The rule's About tab tells you which: Also works on account outputs, including API access and webhooks. or Applies to linked-account transfers only.

Which destinations a transfer rule works with

When you add an action to a transfer rule, the fields are grouped by where they reach. Each group in the builder shows its destinations, plus API and webhooks or Destination transfers only.

Group

Fields

Reaches

Works with all destinations

Payee, Description, Date and Amount

Every destination. As an output rule, also the API, SimpleFIN apps, webhooks and AI assistants.

Spreadsheet & API output

Raw transaction fields, such as counterparty names, remittance info and bank codes

Google Sheets and Notion. As an output rule, also the API, SimpleFIN apps, webhooks and AI assistants.

YNAB only

YNAB's own fields, such as memo, flag color, cleared and approved

Linked accounts that send to YNAB

Lunch Money only

Lunch Money's own fields, such as notes and tags

Linked accounts that send to Lunch Money

YNAB & Lunch Money

Fields both apps share, such as the category

Linked accounts that send to YNAB or Lunch Money

Stop transfer

Excludes the transaction entirely

Everywhere the rule is attached

A rule works with the destinations that all of its actions work with. For example, a rule that sets a YNAB field can only be attached to linked accounts that send to YNAB, and it can't be an output rule. A rule that mixes a YNAB-only field with a Lunch Money-only field works with nothing, so Synci won't save it. The rule's About tab lists its Compatible destinations.

When a rule is attached to a bank account as an output rule, the builder only offers the groups that work on account outputs: Works with all destinations, Spreadsheet & API output and Stop transfer.

Values can use field references and Liquid ({{ }}). See Rule configuration.

Testing a rule

Every rule can be tested on your real transactions before it runs. Testing is a dry run: it doesn't save changes or transfer anything.

  1. Open the rule and click Test.

  2. Choose up to 10 transactions from the list.

  3. Click Run test.

The results show how many transactions matched, and for each one, a before and after of every field the rule would change. For a transfer rule, you see the outgoing copy for the destination; for a rule that changes your data, you see the stored transaction in Synci. If the rule stops transfers, matching transactions are marked Transfer would stop. Click Test again to try other transactions, or Back to rule to keep editing.

Testing changes you haven't saved

If you click Test while the rule has unsaved changes, Synci asks how you want to test:

  • Test without saving: tests your draft. The saved rule stays exactly as it was, and your draft is waiting for you when you go back to the rule.

  • Save and test: saves your changes first, then tests the saved rule.

Testing a draft keeps it in your browser for a moment. If your browser blocks local storage, save the rule before testing.

Was this helpful?

Still need help? Ask the team