Skip to main content
Francis connects to your accounting system to import actuals, plus other sources for data that doesn’t live in the ledger. Set up each integration on its own page. Syncing then works the same way across all of them.

Available integrations

Accounting systems:

Microsoft Business Central

Visma e-conomic

QuickBooks Online

Oracle NetSuite

Xero

Non-supported ERP

Other sources:

Google Sheets

Currency

How syncing works

On-demand syncing

Syncing is on-demand. Francis does not auto-sync or run scheduled syncs, but you can sync as often as you want. This applies to every data source you connect, accounting systems, Google Sheets, and currency rates alike. Trigger a sync from either of two places:
  • Integrations page: sync each data source individually.
  • Left sidebar: use the Data source card at the bottom to sync all data sources at once.
The Data source card also shows the last sync date. It turns yellow, then red, as that date ages, so a stale data source is easy to spot from the model.

Global vs delta sync

The first sync is always a global sync: Francis pulls the full history from the connected source, back to its earliest data. This one can take a while. A delta sync pulls only what’s new since the last run, which is much faster. It is currently available for Visma e-conomic and Microsoft Business Central. For those integrations, Francis runs a delta sync after the initial global sync, and falls back to a global sync if it detects system changes to historical data. You don’t have to choose between the two. Francis always routes to the right one. A delta sync cannot leave gaps in your data. Because Francis detects changes to historical data and routes to a global sync automatically, a delta sync is never the reason an entry is missing or a historical figure is stale. If data you expect is missing, the cause sits upstream of syncing: the entry isn’t booked, the account isn’t mapped, or the month falls outside the actuals you’re looking at. Work through the diagnostic steps below rather than re-running syncs. All other sources run a global sync every time you sync.

FAQ

Dimensions are available on Advanced and Mastery plans. Francis automatically detects dimensions in your accounting system, making them available for breakdowns in your model.
Yes. You can connect multiple data sources from the same or different accounting systems. Use Mappings to unify GL accounts across entities.
Yes. To add data sources, upgrade your plan: Core includes 1 and Advanced includes 3, and you can upgrade yourself in Francis. If you’re on Advanced or Mastery and need more data sources than your plan includes, contact support@francis.app.
No. Francis reads data only.
This shows up in two shapes: the entry is genuinely absent, or the entry imported fine but the row total doesn’t reflect it. Steps 1 to 4 cover the first shape, steps 5 and 6 separate the two. Work through them in order.
  1. Is the entry booked? Francis sources posted journal entries. An invoice that exists in your accounting system but hasn’t been booked yet has no journal entry behind it, so there is nothing for Francis to import. Draft entries (in Visma e-conomic, kassekladder) are an optional data type on some integrations, so check whether they’re included for your data source.
  2. Is the GL account mapped? An entry posted to an unmapped account imports but lands nowhere in your model. Open the Mappings view and check the notification count for unmapped active accounts. See Data mappings.
  3. Does the month sit before your forecast start? Months after the forecast start display the forecast layer, not actuals, so a recently booked entry in the current month can be correct in the data and still absent from the column you’re looking at. See Timeline and dates.
  4. Is it the right company? When you connect several companies or entities, confirm the entry sits in the company that data source points at, and that the account is mapped for that entity.
  5. Verify with Inspect. Select the cell for the month in question and open Inspect to see every journal entry behind that value. If the entry isn’t listed, the import is the problem, so work back up this list. If the entry is listed but the cell total doesn’t include it, the import worked and the cell is the problem. Go to step 6.
  6. Has the cell been overridden? A hardcoded value entered over an actuals cell replaces the imported total for that month. Inspect keeps listing the journal entries because it reads the accounts mapped to the row, not the value displayed in the cell, so the entry looks present while the total ignores it. This is the case whenever a new entry never moves the total, no matter how often you sync. Look for the yellow corner indicator on the cell, then clear the override to restore the imported value.
Syncing is rarely the cause. Delta syncs cannot leave gaps, so re-running a sync won’t surface an entry that failed one of the checks above, and it won’t clear an override.
During peak hours, syncs are queued when many workspaces sync at once. The progress bar stays at 0% while queued. If your sync has been stuck for more than 30 minutes, reach out at support@francis.app.