ml-connector
Sage IntacctAnaplan

Sage Intacct and Anaplan integration

Sage Intacct runs accounting and financial operations. Anaplan builds planning models for budgets, forecasts, and variance analysis. Connecting them lets you pull GL accounts, vendors, and AP transactions from Intacct into Anaplan models without manual extract-and-load. Your financial data flows from Intacct's XML gateway into Anaplan's planning modules on your schedule, keeping your budgets and forecasts in sync with actual posted transactions.

How Sage Intacct works

Sage Intacct is a cloud ERP accessed via a single XML gateway endpoint at https://api.intacct.com/ia/xml/xmlgw.phtml. It uses session-based authentication, where a senderId, senderPassword, companyId, userId, and userPassword are exchanged for a sessionid cached for 50 minutes. Key entities include vendors, AP bills, AP payments, GL accounts, and dimensions. Intacct does not push webhooks; all data is retrieved by polling. HTTP 200 responses must be parsed for embedded XML error messages and status codes, and sessions are automatically refreshed on the next call when they expire.

How Anaplan works

Anaplan is a cloud planning platform exposing workspaces, models, modules, lists, and line items via REST API at https://api.anaplan.com/2/0/. It supports Basic Authentication, Certificate-Based Authentication, or OAuth2, with 35-minute token expiry. Anaplan has no native finance objects; instead, data maps into workspace models via pre-created named Import and Export actions. Anaplan is poll-only, with a pattern of POST to trigger an action (returning taskId), then polling GET status until complete before downloading the result. The tenant-wide rate limit is 600 requests per minute, and model locking occurs during bulk import/export.

What moves between them

GL accounts, vendors, AP bills, and AP payments poll from Sage Intacct via its XML gateway and load into Anaplan models as list items and line items. The flow is unidirectional from Intacct to Anaplan on a schedule tied to your accounting close calendar. Reference dimensions such as cost centers and departments can also be synced to populate Anaplan lookup lists, providing the valid dimension values for planning modules. Anaplan models are read-only from the integration perspective; data moves in to fuel planning and analysis but does not flow back to Intacct.

How ml-connector handles it

ml-connector manages the Intacct XML session lifecycle, caching the sessionid per company and user pair and refreshing it before the 50-minute window expires. On the Intacct side, all operations serialize through the single XML gateway endpoint, and responses are parsed for application-level error tags in addition to HTTP status. For Anaplan, ml-connector POST-triggers the pre-created Import action in your model, polls the task status at a rate respecting the 600-request-per-minute tenant limit, and waits for completion before processing the next batch. Data is mapped from Intacct's dimension and account structures into Anaplan's list and module hierarchy; cost centers and GL account codes become List Items in Anaplan lookup lists, and transactions become line items in planning modules. Retries handle transient failures and account for Anaplan's model-locking behavior during import. Every record carries an audit trail so failed imports can be inspected and replayed.

A real-world example

A mid-sized manufacturing company runs Sage Intacct for accounting and uses Anaplan for financial planning and budgeting. Finance teams previously exported GL account balances and AP aged reports from Intacct once a month and manually keyed them into Anaplan's budget and forecast models. With the integration, Intacct GL accounts and AP transactions flow directly into Anaplan on a weekly schedule, updating the data foundation used for rolling forecasts and variance reports. The planning team no longer waits for manual extracts, and budget vs. actual analysis starts with current posted data rather than month-old spreadsheets.

What you can do

  • Pull GL accounts, cost centers, and dimensions from Sage Intacct and load them as lookup lists in Anaplan models.
  • Sync AP bills, payments, and aging data from Intacct into Anaplan transaction modules for variance analysis and cash planning.
  • Manage Intacct's XML session lifecycle, caching tokens and refreshing before the 50-minute expiry to avoid authentication failures.
  • Respect Anaplan's 600-request-per-minute rate limit and model-locking behavior during bulk import operations.
  • Audit every record pulled from Intacct and every action triggered in Anaplan, with full replay capability if an import fails.

Questions

Why does data only flow from Sage Intacct to Anaplan and not both directions?
Anaplan is a planning and modeling platform, not a transactional accounting system. GL transactions, vendors, and AP bills originate in Intacct and are pulled into Anaplan to fuel planning models, variance analysis, and forecasting. Anaplan has no native invoicing or GL posting capability, so data does not flow back. Changes to plans and budgets in Anaplan are tracked within Anaplan's models and exported as needed for reporting.
What happens when Sage Intacct's 50-minute session expires?
ml-connector caches the sessionid and automatically refreshes it on the next API call before it expires. The session is keyed on the senderId, companyId, and userId, so separate company or user authentication contexts maintain separate cached sessions. If a session does expire between calls, the next request triggers a new getAPISession call transparently.
How does ml-connector handle Anaplan's 600-request-per-minute rate limit?
ml-connector tracks the request count per tenant and backs off before hitting the limit, spacing requests to stay under 600/min. If a call returns HTTP 429 Too Many Requests, ml-connector retries with exponential backoff. Because Intacct data is pulled on a schedule rather than on-demand, import tasks are queued and processed at a rate that respects Anaplan's governance.

Related integrations

Connect Sage Intacct and Anaplan

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started