Integration · 2024

NetSuite to OneStream, REST API direct

OneStreamNetSuiteREST API

Quick Facts

  • Industry: Records management / govtech firm
  • Role: Integration Lead
  • Impact: GL feed moved from day-old manual CSV exports to a direct REST API pull, scheduled through the day and available on demand, so consolidation always ran against current NetSuite data.

Overview

The client ran monthly close on OneStream against NetSuite-sourced GL data that came across as manual CSV exports — accurate when it arrived, but often a day behind the live ledger and dependent on someone remembering to run it. I wired the feed straight to the source: a direct NetSuite ↔ OneStream connection over the REST API, automated with an Extensibility rule and driven by the OneStream task scheduler, with an on-demand option for ad-hoc pulls. The data freshness problem went away — finance worked against current data without anyone running an export by hand.

The Problem

  • Staleness was structural. The export was an analyst task that fired once a day at best. Consolidation routinely ran against data written hours or a full day earlier, and reconciliations against the live ledger surfaced drift that took time to investigate.
  • No on-demand path. A fresh number for an ad-hoc review meant asking the analyst to run another export and reload.
  • It depended on a person. If the export didn't get run, close ran on stale data.

The brief: build a direct connection that pulls from NetSuite over its REST API, automate it so it runs without manual intervention, and give finance an on-demand option for when they need a fresh pull.

How It Works

Connector business rule over REST

Because this is a REST API connection rather than a file drop, there's no file in the loop. A connector business rule calls NetSuite's REST API and brings the GL data into OneStream's data-load process directly.

Extensibility rule for automation

The pull is automated with an Extensibility rule, so the whole load runs end-to-end without an operator picking a file or kicking off steps by hand.

Scheduled through the task scheduler

The load is scheduled through OneStream's task scheduler. In normal periods it runs in the morning and at lunchtime, so whenever the team sits down to work they're on the latest data; during the close cycle it runs every two hours.

On-demand option

Alongside the schedule, finance can trigger a fresh pull on demand — built on OneStream's out-of-the-box load functionality, nothing custom. The load also carries OneStream's standard out-of-the-box audit trail.

Results

MetricBeforeAfterChange
Data freshness for consolidationday-old (analyst-driven exports)current at pull timenear-real-time
Manual touchpoints per cycleexport + import by handscheduled, plus optional on-demand pullautomated
Load cadenceonce a day, if rememberedmorning + lunch; every 2 hours at closescheduled
Dependence on an analystclose ran on whoever exported whenruns on scheduleremoved

Learnings

What worked. Driving the pull from a connector business rule over REST and automating it with an Extensibility rule plus the task scheduler — no file, no middleware, no babysitting. Once it was scheduled, the recurring "is this number from a recent export?" conversation stopped.

Skill developed. Treating a REST source as a connector-driven load inside OneStream and letting the platform's own scheduler and out-of-the-box audit do the work, rather than building bespoke orchestration around it.