Connecting Your Data
Step-by-step instructions for connecting QuickBooks, Xero, Puzzle.io, or uploading CSV files to James Analytics.
Overview
Supported Integrations
James Analytics connects directly to the accounting platforms your business already uses. We support three native integrations — QuickBooks Online, Xero, and Puzzle.io — plus a flexible CSV upload option for any other data source. Each integration uses secure OAuth authentication, meaning James never stores your accounting login credentials.
You can connect multiple data sources to a single James account. This is useful if you manage finances across different entities or if you’re transitioning between accounting platforms. James will consolidate the data and flag any overlaps so your statements remain accurate.
QuickBooks Online
The most popular integration. Full two-way sync of your chart of accounts, transactions, invoices, and bills. Initial sync takes 2-5 minutes for most companies.
Xero
Complete integration with Xero's accounting data including bank transactions, invoices, contacts, and manual journals. Supports multi-currency Xero organizations.
Puzzle.io
Purpose-built for startups using Puzzle as their accounting layer. Syncs transaction data, categorizations, and account balances with minimal configuration.
CSV Upload
Import data from any source using our standardized CSV template. Ideal for bank exports, legacy accounting systems, or supplemental data that isn't in your primary platform.
Integration Guide
Connecting QuickBooks
QuickBooks Online is the most common integration for James Analytics users. The connection uses Intuit’s official OAuth 2.0 flow, which means you authorize James to read your QuickBooks data without ever sharing your QuickBooks password. The entire process takes under two minutes.
Once connected, James pulls in your full chart of accounts, all transactions dating back to the start of your QuickBooks history, and ongoing updates every four hours. Your Income Statement, Balance Sheet, and Cash Flow Statement are generated automatically from this data.
Open Settings
Navigate to Settings → Integrations in the James Analytics sidebar. You'll see a list of available data source connections.
Click Connect QuickBooks
Click the "Connect" button next to QuickBooks Online. This opens a new window with Intuit's authorization page.
Authorize Access
Sign into your QuickBooks account if prompted, then click "Connect" to grant James read access. James requests read-only permissions — we never modify your QuickBooks data.
Select Your Company
If you have multiple QuickBooks companies, select the one you want to connect. You can connect additional companies later from the same Integrations page.
Wait for Initial Sync
The initial sync takes 2-5 minutes depending on your transaction volume. You'll see a progress indicator on the Integrations page. Once complete, head to Financials to see your statements.
Integration Guide
Connecting Xero
The Xero integration follows a similar OAuth flow to QuickBooks. James connects to your Xero organization and pulls in bank transactions, invoices, bills, manual journals, and your complete chart of accounts. If your Xero organization uses multiple currencies, James handles the conversion automatically using your configured base currency.
Xero connections are refreshed automatically every four hours. You can also trigger a manual sync from the Integrations page at any time if you’ve just entered new data in Xero and want to see it reflected immediately in James.
Open Integrations
Go to Settings → Integrations and find Xero in the list of available connections.
Authorize with Xero
Click "Connect" next to Xero. You'll be redirected to Xero's login page. Sign in and authorize James to access your organization's data.
Select Organization
If you manage multiple Xero organizations, choose the one you want to connect. Each organization requires a separate connection.
Confirm Permissions
James requests read-only access to your accounting data. Review the permissions and confirm. No write access is required.
Sync Complete
The initial sync for Xero typically takes 2-4 minutes. Once finished, your financial statements and dashboards will populate automatically.
Integration Guide
Connecting Puzzle.io
Puzzle.io is a modern accounting platform built for startups, and James Analytics integrates with it natively. If you use Puzzle to manage your books, connecting to James gives you the FP&A layer — budgeting, forecasting, scenario modeling, and AI insights — that Puzzle doesn’t provide on its own.
The Puzzle integration syncs your categorized transactions, account balances, and chart of accounts. Because Puzzle already handles smart categorization, the data that flows into James is typically cleaner and requires less manual adjustment than CSV uploads.
Navigate to Integrations
From the James sidebar, open Settings → Integrations and locate Puzzle.io in the connections list.
Connect Your Account
Click "Connect" and sign into your Puzzle.io account. Authorize James to access your financial data through Puzzle's OAuth flow.
Select Workspace
Choose the Puzzle workspace you want to connect. If you run multiple companies through Puzzle, each workspace is connected separately.
Initial Data Pull
James pulls your complete transaction history and account structure from Puzzle. This typically takes 1-3 minutes for early-stage startups with moderate transaction volume.
Manual Upload
Uploading CSV Files
If your accounting data lives outside of QuickBooks, Xero, or Puzzle, you can upload it directly using CSV files. This is also a good option for importing historical data from a previous accounting system, supplemental bank data, or transaction exports from fintech tools.
James provides a standardized CSV template that you can download from the Integrations page. The template includes four required columns: date, description, amount, and category. You can also include optional columns for account name, reference number, and notes.
After uploading, James validates your file and highlights any rows with errors — missing dates, invalid amounts, or unrecognized categories. You can fix these inline in the upload preview screen or correct your CSV and re-upload. Once all rows pass validation, confirm the import and James will process the data into your financial statements.
Required CSV Columns
dateYYYY-MM-DDThe transaction date. Must be in ISO format (e.g., 2026-03-15).
descriptionTextA description of the transaction (e.g., "Office rent payment").
amountNumberThe transaction amount. Use negative values for expenses, positive for income.
categoryTextThe account category (e.g., "Revenue", "Rent", "Payroll"). James maps these to your chart of accounts.
Upload Process
Download Template
Get the CSV template from Settings → Integrations → CSV Upload. Fill it with your transaction data.
Upload & Validate
Drag and drop your file or click to browse. James validates every row and highlights errors for you to fix.
Confirm Import
Review the preview, resolve any flagged issues, and confirm. Your data appears in Financials within seconds.
Maintenance
Sync & Troubleshooting
Once connected, you can sync your data at any time using the Sync button on the Settings → Integrations page. Syncs typically complete in under a minute, pulling in all new or modified transactions from your accounting platform. You’ll see the last sync timestamp next to each connected integration.
Common Issues
Expired Authorization
OAuth tokens can expire if you change your accounting platform password or revoke access. If you see an "Authorization expired" message, click "Reconnect" on the Integrations page to re-authenticate. No data is lost — James picks up where it left off.
Rate Limit Errors
QuickBooks and Xero impose API rate limits. If James hits a rate limit during sync, it automatically retries after a short delay. You may see a temporary "Sync in progress" status that resolves on its own within 15-30 minutes.
Missing Transactions
If recently entered transactions aren't appearing, first try a manual sync. If they still don't show, check that the transactions are fully posted (not in draft status) in your accounting platform. James only syncs finalized transactions.
Duplicate Data
James de-duplicates transactions using unique identifiers from your accounting platform. If you see duplicates after connecting multiple data sources, review your connections in Settings to ensure you haven't linked the same accounts twice.
Pro Tip
Start with just one integration. Get comfortable with how your data flows into James and verify that your financial statements look correct before adding additional data sources. This makes it much easier to identify and resolve any mapping issues early, rather than debugging across multiple connected platforms.
Connect Your Data Now
Link your accounting software in under two minutes and see your financial statements instantly.