> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ai2fin.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Outbound Destinations — push transactions to Sheets, Excel, Notion or Airtable

> Connect your own Google Sheets, Microsoft Excel, Notion or Airtable account and AI2Fin pushes your categorised transactions into it — scheduled daily or on demand. Bank-feed data never leaves this way.

## What Destinations solves

Your books live in AI2Fin, but the rest of your workflow doesn't — a bookkeeper who wants a shared Sheet, a Notion workspace you already run your business from, an Airtable base wired into other tools. Without Destinations, keeping any of those current means exporting a CSV by hand and re-uploading it, every time.

**Destinations closes that loop.** Connect a Google Sheet, an Excel workbook, a Notion database, or an Airtable table you own, and AI2Fin writes your categorised transactions into it automatically — once a day, or on demand whenever you want the latest.

<Card title="Open Destinations" icon="sync" href="https://app.ai2fin.com/#/destinations" horizontal>
  Connect a provider and start pushing transactions from the Destinations page.
</Card>

<Info>
  Outbound Destinations is available on **Elite+ and Auto+** plans. [Explore plans](/subscriptions) to unlock it.
</Info>

## The mental model in 30 seconds

Connect a provider → point it at a destination → AI2Fin writes rows into it. That's the whole shape.

What "point it at a destination" means differs by provider, because each API allows something different. Google Sheets can create a new sheet or reuse one you've already opened with AI2Fin; **Excel always creates a new workbook in its own folder — there is no picker**; Notion and Airtable create inside a page or base you've authorised. The table below is the precise version.

Every provider call — signing in, listing your files, creating a destination, writing rows — happens **server-side**. Your Google, Microsoft, Notion, or Airtable access token is never sent to your browser, and never touches AI2Fin's mobile app either.

## The four providers

Each provider has a genuinely different write model, not just a different logo. AI2Fin works within what each one actually allows rather than papering over the differences:

| Provider            | Can create new                | Where it can write                                 | Row model                   |
| ------------------- | ----------------------------- | -------------------------------------------------- | --------------------------- |
| **Google Sheets**   | Yes — a new sheet             | Files it created, or files you've opened with it   | Range append                |
| **Microsoft Excel** | Always (no picker)            | Its own app folder in your OneDrive                | Table row via Graph         |
| **Notion**          | Yes — inside a page you share | Databases inside pages shared with the integration | One page per transaction    |
| **Airtable**        | A table, not a base           | A base you've already authorised                   | Batches of up to 10 records |

<CardGroup cols={2}>
  <Card title="Google Sheets" icon="table">
    Connects with Google's narrow `drive.file` scope — access to only the files AI2Fin created, or a file you've explicitly opened with it, never your whole Drive. That means AI2Fin can create a brand-new sheet for you at any time, but it can't browse or write to a spreadsheet it didn't create and you haven't opened with it — there's no picker for an arbitrary existing file.
  </Card>

  <Card title="Microsoft Excel" icon="file-invoice">
    Scoped to a single app-managed folder in your OneDrive (`Files.ReadWrite.AppFolder`), not a file picker. Every Excel destination is a new workbook AI2Fin creates inside that folder — there's currently no way to point it at a workbook stored elsewhere in your OneDrive.
  </Card>

  <Card title="Notion" icon="layer-group">
    You share a page with the AI2Fin integration first, from Notion's own consent screen — AI2Fin can only see pages you've explicitly shared. From there it creates a database inside that page, or writes into one you already have. Notion has no bulk-insert endpoint, so each transaction lands as its own page, one at a time.
  </Card>

  <Card title="Airtable" icon="database">
    AI2Fin can create a new **table** inside a base you've already authorised, but not a new base — Airtable's API has no endpoint that lists your workspaces, so there's no safe place to create one. Amount is stored as a real, typed number field, deliberately not Airtable's "currency" type, which carries one fixed symbol for the whole column — your transactions can span more than one currency.
  </Card>
</CardGroup>

## Your bank feed never leaves this way

<Info>
  **Only your own data is ever pushed.** A transaction is eligible only if you entered it manually, imported it by CSV, created it through the API, or captured it from a receipt. Anything synced from a connected bank feed is excluded automatically, before a single row is selected — the same exclusion rule already protecting outbound webhooks and the MCP server's responses to external AI clients. It's enforced in code, in one shared place, not a policy note repeated per feature.
</Info>

If most of your account is bank-feed data, that's most of your transactions held back — by design. Before your first push, Destinations shows a preview: exactly how many rows are ready to send and how many are being withheld by the bank-feed exclusion, using the same real values that would land in your sheet. You see the honest picture up front instead of connecting a sheet and getting back something that looks broken.

## Scheduled sync vs. manual push

* **First push** sends everything currently eligible, up to 2,000 rows. If you have more than that waiting, the rest follow on the next sync.
* **After that, AI2Fin syncs automatically about once a day**, sending only what's new since the last successful push — you don't have to remember to come back.
* **Push now** on the Destinations page triggers an on-demand push immediately, instead of waiting for the daily cycle.
* Pushing when nothing is new simply reports zero rows — it's not an error.
* A connection that fails five pushes in a row pauses itself rather than retrying a dead connection forever. Reconnect from the Destinations page to pick up where it left off.

## How to connect a destination

<Steps>
  <Step title="Open Destinations">
    From the sidebar, go to **4. Reports and Trends → Destinations**, or open [app.ai2fin.com/#/destinations](https://app.ai2fin.com/#/destinations) directly.
  </Step>

  <Step title="Connect a provider">
    Pick Google Sheets, Microsoft Excel, Notion, or Airtable and sign in. Each provider's own consent screen governs exactly what AI2Fin can see — for Notion, that's the point where you pick which page to share.
  </Step>

  <Step title="Choose or create a destination">
    What you'll see here depends on the provider. **Google Sheets** lets you create a new sheet or reuse one you've previously opened with AI2Fin. **Excel** skips this choice entirely — it always creates a new workbook in its own OneDrive folder. **Notion** and **Airtable** ask which shared page or authorised base to create inside, since there's no default AI2Fin can pick on your behalf.
  </Step>

  <Step title="Push">
    Press **Push now** for an immediate push, or leave it — the daily sync picks up new transactions on its own from here.
  </Step>
</Steps>

## What Destinations does not do

* It does not send bank-feed data, ever — see above.
* It does not let the Google Sheets or Excel adapters browse your whole Drive or OneDrive — only what each one created, or what you explicitly opened with it.
* It does not create a new Airtable base or a new Notion workspace — only a table inside a base, or a database inside a page, that you've already authorised.
* It does not relay your data onward to other apps the way an automation platform would. A destination is the final stop for a row, not a hop to somewhere else. Zapier is shown on the connect screen but is deliberately not available yet — routing data through a relay AI2Fin can't see the end of needs its own review first. For automations that do forward data onward, see [Integrations & webhooks](/data-sources/ipaas-middlewares).

## FAQ

<AccordionGroup>
  <Accordion title="I connected a destination but it's empty">
    Check the preview shown before you push — if your account is mostly bank-feed transactions, there may be nothing eligible yet. Add a manual transaction, import a CSV, or capture a receipt, and it will appear on the next push.
  </Accordion>

  <Accordion title="My destination stopped syncing">
    This usually means five pushes failed in a row — most often a revoked or expired connection at the provider's end. Reconnect from the Destinations page to resume the daily sync.
  </Accordion>

  <Accordion title="Can I connect more than one destination?">
    Yes. Connect the same provider again for a second file, or connect all four providers at once — each connection keeps its own sync progress independently.
  </Accordion>

  <Accordion title="Could pushing the same rows twice create duplicates?">
    Occasionally, yes — and that's the deliberate trade-off. AI2Fin only marks a row as sent once the provider confirms it landed, so a push that partially fails is retried rather than silently skipped. A duplicate row you can see and delete is preferable to a missing one you'd never notice.
  </Accordion>
</AccordionGroup>

## Related

<Columns cols={2}>
  <Card title="Tax Export" icon="file-export" href="/features/tax-export">
    A one-off, filing-ready export instead of an ongoing sync.
  </Card>

  <Card title="Integrations & webhooks" icon="plug" href="/data-sources/ipaas-middlewares">
    Forward events onward to Zapier, Make, or your own endpoint as they happen.
  </Card>
</Columns>

***

**Ready to connect a destination?** Open [Destinations](https://app.ai2fin.com/#/destinations) and connect Google Sheets, Excel, Notion, or Airtable in a couple of clicks.

*Outbound Destinations — your categorised transactions, live in the tool you already use.*
