All integrations
Lakehouse integration

Factory Labs + Snowflake Integration: Iceberg REST + MCP, No Connector

How Factory Labs integrates with Snowflake. Federated queries via Snowflake's MCP server, outbound data sharing via Apache Iceberg REST catalog conformance, and federated semantic search. No Fivetran, no Coalesce ETL.

Updated 2026-05-17 Β· Official Snowflake site

Factory Labs integrates with Snowflake the same way it integrates with Databricks: live, bidirectional, no connector. The Factory Assistant queries Snowflake via the Model Context Protocol, and Factory's own data is exposed back to Snowflake as Apache Iceberg tables that Snowflake reads natively.

What we support

The Factory Labs Snowflake integration covers:

  • Snowflake on AWS, Azure, and GCP. All three deployment surfaces.
  • Snowpark MCP server. Snowflake's MCP surface for AI-driven SQL.
  • Apache Iceberg REST catalog. Factory exposes CRM tables via Iceberg REST, which Snowflake reads natively without a sync.
  • Snowflake Cortex. Optional integration for federated semantic search and LLM-driven analytics using Snowflake's own model serving.

What the integration does

Three live, sync-free surfaces:

1. Federated read via MCP (Snowpark MCP β†’ Factory Assistant)

The Factory Assistant connects to Snowflake's MCP server outbound. When a user asks a question that needs warehouse data, the Assistant generates a SQL query against the appropriate Snowflake schema, runs it federated through the Snowpark MCP endpoint, and renders the result in the CRM.

The Assistant respects Snowflake's role-based access control. The MCP service account is a real Snowflake role with the permissions you grant; queries run with that role's scope.

2. Outbound via Iceberg REST (Factory CRM β†’ Snowflake)

Factory exposes CRM data (Accounts, Contacts, Opportunities, Activities, Conversations, Cases) as Apache Iceberg tables through the Iceberg REST catalog standard. Snowflake mounts the catalog as an external Iceberg catalog and queries the tables natively, no Snowpipe needed.

See Lakehouse overview for the catalog details.

3. Snowflake Cortex (optional)

For deployments using Snowflake Cortex for embeddings and LLM serving, the Factory Assistant can route semantic search and inference through Cortex instead of (or alongside) Mosaic AI / OpenAI. Useful for shops that have standardized on Snowflake-resident AI workloads.

How it works

Architecturally:

  1. MCP outbound from Factory. The Assistant's tool catalog includes the Snowpark MCP server. Queries pass through Factory's guardrail layer (single-SELECT enforcement, column allow-list, row-filter SQL, LIMIT clamp) before submission.
  2. Iceberg REST outbound. Factory's data plane writes CRM facts as Iceberg-format Parquet files in object storage; the REST catalog endpoint advertises the schema and snapshots to Snowflake.
  3. Encryption and credentials. Iceberg REST uses bearer-token auth with per-tenant scoping. Underlying file storage is AES-256-GCM encrypted with HKDF-derived per-tenant keys.
  4. Snapshots and time-travel. Iceberg snapshots are emitted on a configurable cadence (default 5 minutes). Snowflake's time-travel queries work against the snapshot timeline.

How to set it up

For federated read (MCP):

  1. Enable Snowpark MCP. Standard Snowflake MCP server configuration.
  2. Create a service role and user in Snowflake. Grant SELECT on the schemas you want the Assistant to query.
  3. Register the MCP server in Factory. Settings β†’ Integrations β†’ MCP β†’ Add Server. Paste the Snowpark MCP endpoint and credentials.
  4. Test. Use the Assistant to query a Snowflake table; verify the SQL runs and rendering works.

For outbound Iceberg REST:

  1. Generate an Iceberg share in Factory. Settings β†’ Integrations β†’ Lakehouse β†’ Iceberg Catalog β†’ New Share. Pick the entities.
  2. Get the catalog credential. Factory returns the REST catalog URL and a bearer token.
  3. Mount in Snowflake. CREATE CATALOG INTEGRATION factorylabs_iceberg ... TYPE = ICEBERG ... CATALOG_TYPE = REST .... Then CREATE EXTERNAL VOLUME pointing at the underlying storage prefix.
  4. Query. SELECT * FROM factorylabs_iceberg.crm.accounts LIMIT 10.

End to end: 30 minutes for MCP, 30-60 minutes for Iceberg setup depending on Snowflake account permissions.

What this means for your team

  • Analytics team queries CRM data in Snowflake without operating a Fivetran connector.
  • Data engineering stops the CRM-to-warehouse pipeline maintenance.
  • Sales reps ask the Assistant questions that require Snowflake data and get answers inline.
  • Finance runs revenue and pipeline reporting from Snowflake against live CRM data.

Pricing notes

The Snowflake integration is part of Factory Labs Growth ($45/user/month) and up. No per-query fee from Factory, no per-row Iceberg fee.

Snowflake charges for the warehouse compute used by federated queries and the storage / compute used by Iceberg external table reads. Factory surfaces per-query cost estimates and per-tenant budget caps so spend is visible.

For comparison: a typical Fivetran-to-Snowflake CRM sync for a mid-market distributor runs $800-2,500/month plus the per-row MAR fee. Factory's outbound Iceberg REST replaces this entirely with no recurring cost from Factory.

Frequently asked questions

We use Snowflake, not Databricks. Does Factory still work for us? Yes. Snowflake is fully supported via Snowpark MCP and Iceberg REST. The federated read and outbound share patterns are identical to the Databricks integration, just running against Snowflake's protocol surface.

Can we use both Snowflake and Databricks? Yes. Factory supports multiple lakehouse connections concurrently. Some customers have Snowflake for finance / BI and Databricks for data science; both can read Factory's data via their preferred catalog.

Does the Assistant write to Snowflake? By default no. The query-guard enforces single-SELECT execution. Write-back is possible through an explicitly-configured separate MCP tool with a different auth scope.

What about Snowflake Native Apps? We do not ship a Native App today. If there is demand for a Snowflake Marketplace-listed Factory Labs Native App we will build one; in the meantime the Iceberg REST + MCP pattern covers the same use cases.

How does the integration handle row-level security? Iceberg REST + Snowflake supports row-access policies on the consumer side; Factory's outbound share can also be column-filtered at share creation. The two are complementary; pick the layer that matches your governance model.