Three ways data reaches cfo.ai
Integrations and uploads only read from the source, so a number you edit in cfo.ai changes your Model and leaves your books alone. An MCP server or API can also act in its service, such as creating an issue in Linear, but only through the tools you allow Ari to use. Credential values that an MCP server’s tool result carries, such as an authorization header, a cookie, or an API key that a failed call echoes back, are removed before Ari reads, stores, or shows the result; the error numbers and messages that explain the failure stay. This filter covers MCP tool results only; an API endpoint’s response body is outside it.
From a source record to a number on your Page
Take one line of your QuickBooks profit and loss: $4,200 of software subscriptions in September 2026. It travels in three steps.- The sync copies it into the warehouse. cfo.ai keeps a private copy of each source’s tables in its data warehouse, and QuickBooks’ monthly profit and loss lands there as a table, row for row.
- A saved query reads it. A saved query is a SQL statement that selects, cleans, and labels the rows your Model needs. cfo.ai adds standard ones for supported sources, such as QuickBooks Profit & Loss, and Ari writes the rest. This one puts the $4,200 in an Expense column, beside the account name, the Entity, and the date.
- Each column becomes a Variable or a Dimension. Expense becomes a Variable that adds up, segmented by the account Dimension and the Entity Dimension. Its starting formula sums the source column, so September’s software subscriptions read $4,200 on any Table block that shows Expense by account.