Sources
HiBob (HRIS)
Syncs your people: roles, departments, sites, start and end dates, and comp. Powers
headcount actuals and the snapshot your plan builds on.
NetSuite (GL)
Brings in actuals from the general ledger so budget vs actual reconciles to the penny.
Salesforce / HubSpot (CRM)
Feeds revenue pipeline and ARR events into the revenue model.
Snowflake
Pulls actuals or pipeline directly from your warehouse on a query you define.
CSV upload
The universal path. Upload people, GL, ARR, or pipeline and map columns to fields.
How ingestion works
Every source follows the same four-stage path, so a feed behaves the same way whether it arrives from a warehouse, a CRM, or a spreadsheet.1
Connect
Authorize a connector or upload a file in Admin -> Data. Each source carries a system label
(HiBob, NetSuite, Salesforce, HubSpot, Snowflake, CSV) so its rows stay traceable.
2
Map
Map source fields to Novaplan’s canonical fields using a per-source field map. CRM stages,
departments, accounts, and vendors reconcile to your canonical dimensions. Nova can suggest
a mapping from your column headers, which you review and adjust before saving.
3
Curate
The raw payload is preserved exactly as received (the audit trail), then a single
config-driven curation step per domain applies the field map and writes canonical records.
Rows that fail validation are flagged individually with a reason, never silently dropped,
and one bad row never aborts the rest of the batch.
4
Refresh
Curated actuals update headcount, GL, and revenue, which triggers downstream recalculation.
Plans and reports stay current without a manual rebuild.
Canonical fields by domain
Mapping always targets the same canonical shape per domain, regardless of source.Error recovery
A few rows failed to curate
A few rows failed to curate
Open the source in Pipelines to see the per-row error reason (an
unmapped value, a bad date cast, or a missing required field). Fix the value at the source or
add the missing mapping, then re-run curation. The raw payload is retained, so re-running
reprocesses without re-uploading.
I mapped a column wrong
I mapped a column wrong
Curation is idempotent: it replaces the prior rows from the same source batch rather than
appending. Correct the field map and re-run, and the canonical records are rewritten cleanly.
I need to undo an ingestion
I need to undo an ingestion
An ingestion batch can be reverted, which removes the canonical rows it produced while
keeping the lossless raw record for reference.
Each Novaplan tenant is a separate database, so your raw and curated data is never co-mingled
with another customer’s. See Permissions for how field-level masking
layers on top of that isolation.