> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getnovaplan.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Snowflake

> Pull actuals or pipeline directly from your warehouse on a query you define.

The Snowflake connector pulls data directly from your warehouse into Novaplan. It is the right
choice when your numbers already live in Snowflake (modeled actuals, ARR events, or pipeline) and
you want to read them from there rather than from the originating system.

## Set up the sync

<Steps>
  <Step title="Connect Snowflake">
    In Admin -> Integrations, authorize the Snowflake connector with your warehouse credentials.
  </Step>

  <Step title="Choose the domain">
    Set which domain the feed populates (GL actuals, ARR actuals, or pipeline). The domain decides
    which canonical tables the curated rows land in.
  </Step>

  <Step title="Point at your data">
    Define the query or dataset to read. Each row arrives as a lossless raw payload, exactly as
    your warehouse returns it.
  </Step>

  <Step title="Map fields">
    Map the warehouse columns onto Novaplan's canonical fields for that domain. Nova can suggest a
    mapping from your column names, which you review before saving.
  </Step>

  <Step title="Run the first sync">
    Run the sync, then confirm in [Pipelines](/admin/pipelines) that rows landed and curated.
  </Step>
</Steps>

## Field mapping

You map warehouse columns to the same canonical fields as any other source for that domain, so
the curated result is identical regardless of where it came from.

| Domain | Canonical fields to map |
| - | - |
| GL actuals | Account, department, entity / vendor, period, amount, memo |
| ARR actuals | Account, event month, ARR delta, movement component, customer count delta |
| Pipeline | Account, stage, amount, expected close, owner, segment |

<Note>
  Because curation is config-driven and source-agnostic, a Snowflake feed and a CRM feed for the
  same domain produce the same canonical shape. Switching a domain's source does not change how
  the data reads downstream.
</Note>

## Common questions

<AccordionGroup>
  <Accordion title="Can Snowflake feed more than one domain?" icon="database">
    Yes, with a separate feed per domain. Each feed maps its own columns to that domain's canonical
    fields.
  </Accordion>

  <Accordion title="Does Novaplan write back to Snowflake?" icon="cloud">
    No. The connector reads from your warehouse; it does not modify it.
  </Accordion>
</AccordionGroup>

## Troubleshooting

* **Sync fails to connect:** confirm the warehouse is reachable and the credential is valid, then
  re-run. Network egress restrictions are a common cause for a warehouse that is otherwise healthy.
* **A column will not map:** confirm the column is present in the query result, then map it; a
  column absent from the result cannot be mapped.
* **Dates land in the wrong period:** check the date column maps to the canonical period field and
  normalizes to a month.
* **Rows fail curation:** read the per-row reason in [Pipelines](/admin/pipelines), fix the
  mapping or the source value, and re-run.
