Guides

How to Set Up Snowflake Notebooks in Workspaces

Arkzero ResearchApr 29, 20266 min read

Last updated Apr 29, 2026

Snowflake Notebooks in Workspaces, generally available as of February 2026, replaces the original Legacy Notebooks product. The new version runs on Snowpark Container Services, supports native Git integration, and lets teams collaborate in shared workspace folders. It also introduces Notebook Project Objects, versioned units that Snowflake Tasks can schedule for automated runs. This guide walks through creating a workspace, launching a notebook, connecting to Snowflake data, and writing your first SQL and Python analysis cells.
Snowflake logo displayed in a professional editorial setting representing the Notebooks in Workspaces product

Snowflake Notebooks in Workspaces reached general availability on February 5, 2026 and became the default new-notebook experience on March 16, 2026. If you opened Snowsight today to create a notebook, you landed in the Workspaces product, not the legacy one. The two experiences share a name in casual usage but are architecturally distinct. This guide covers the new product specifically.

What Changed and Why It Matters

The original version, now called Legacy Snowflake Notebooks, ran inside a virtual warehouse. Fast for SQL, but limited for Python-heavy work. Notebooks in Workspaces run on Snowpark Container Services: a dedicated container per session with pre-installed ML libraries, optional GPU compute, and isolated package management. That runtime shift opens up workloads that were impractical in the warehouse model.

The second key change is how notebooks are stored. Legacy notebooks were schema-level database objects, awkward to version and hard to move between environments. In Workspaces, a notebook is just a file in a folder. Commit it, branch it, review it like any other piece of code.

In Q1 2026, Snowflake added Notebook Project Objects (NPOs), which let you package a notebook into an immutable, versioned unit that Snowflake Tasks can execute on a schedule. That closes the gap between ad hoc analysis and production pipelines without requiring external orchestration.

Step 1: Verify Your Account Eligibility

Notebooks in Workspaces require Snowpark Container Services, available on Business Critical or Enterprise edition accounts with external network access enabled. Standard edition accounts can create Workspaces for file storage but cannot run notebooks with the Container Runtime.

To check: in Snowsight, go to Admin > Accounts and confirm the edition shown. If you see Legacy Notebooks rather than Workspaces in the Projects menu, your account has not yet been migrated or is on Standard edition.

Snowflake will issue a Behavior Change Request before any mandatory migration from legacy notebooks. As of April 2026, voluntary migration is open and the import tool is available under Projects > Notebooks in Snowsight.

Step 2: Create a Workspace

A Workspace is a shared project folder that holds notebooks, Python scripts, and data files. It is not a database object.

  1. Open Snowsight and navigate to Projects > Workspaces.
  2. Click + Workspace in the top right.
  3. Name the workspace to match the project: sales-analytics, revenue-model, or similar.
  4. Under Sharing, choose private or invite team members. Shared Workspaces support multiple users editing files simultaneously, with version history tracked through Git.
  5. Click Create.

For team workspaces, connect a Git repository at creation time. Authenticate via a Snowflake secret under Settings > Git Integration in the workspace. GitHub and GitLab are both supported.

Step 3: Create a Notebook

Inside your workspace, click + New File > Notebook. Snowsight creates a .ipynb file and opens the editor.

Three cell types are available:

  • Python runs in the Container Runtime with pandas, scikit-learn, Snowpark Python, and any pip-installable package.
  • SQL runs against your active warehouse; the result is a dataframe available in subsequent Python cells.
  • Markdown is for documentation and commentary.

The first time you run a cell, Snowflake provisions a container. Expect 30 to 60 seconds on the first run. Subsequent cells in the same session start immediately.

Set the active warehouse for SQL cells using the toolbar selector. Configure the Container Runtime separately under Compute > Configure Container Runtime.

Step 4: Connect to Your Data

SQL cells connect to your Snowflake account without extra configuration. Set the database and schema with a USE statement or pick them from the left-panel object explorer.

USE DATABASE sales_db;
USE SCHEMA public;

SELECT
  region,
  SUM(revenue)            AS total_revenue,
  COUNT(DISTINCT order_id) AS order_count
FROM orders
WHERE order_date >= '2026-01-01'
GROUP BY region
ORDER BY total_revenue DESC;

The result of any SQL cell is available in the next Python cell as a dataframe. If your SQL cell is named cell1, reference it as cell1.to_pandas().

For large tables where pulling rows to the container is wasteful, use the Snowpark Python library included in the runtime:

from snowflake.snowpark.context import get_active_session

session = get_active_session()
df = session.table("sales_db.public.orders") \
            .filter("order_date >= '2026-01-01'")
df.show()

This keeps data processing inside Snowflake and avoids moving unnecessary rows to the container.

Step 5: Install Additional Packages

The Container Runtime ships with pandas, numpy, matplotlib, scikit-learn, and Snowpark Python pre-installed. To add packages for the current session:

import subprocess
subprocess.run(["pip", "install", "plotly", "statsmodels"], check=True)

For a persistent package list tied to the workspace, create a requirements.txt file in the workspace root and configure the notebook to load it at startup under Notebook Settings > Environment. Conda environments are supported as of Q1 2026 for teams needing reproducible dependency stacks across sessions.

Step 6: Visualize and Share Results

The built-in chart builder activates when you click the chart icon on any cell output. Axes, groupings, and chart type are configurable without writing visualization code.

Plotly and matplotlib both render inline. Plotly charts are interactive by default.

To share results with someone who does not have Snowflake access: use Share > Export as PDF or HTML from the notebook toolbar. For live read-only sharing, grant view access to the workspace under Sharing and the invited user sees the notebook without needing their own Snowflake setup.

Step 7: Schedule Notebook Runs with NPOs

Notebook Project Objects package a notebook into an immutable, versioned unit that Snowflake Tasks can execute.

To create an NPO:

  1. Right-click the notebook file inside the workspace.
  2. Select Create Notebook Project Object.
  3. Name the NPO and choose the target schema.

Then schedule it with a Snowflake Task:

CREATE TASK run_weekly_revenue
  WAREHOUSE = analytics_wh
  SCHEDULE  = 'USING CRON 0 8 * * 1 America/New_York'
AS
  EXECUTE NOTEBOOK my_schema.weekly_revenue_report;

Run history is visible in Snowsight under Projects > Notebooks > Run History. This removes the need for external orchestration tools in notebook-based reporting workflows.

If you are connecting a data source and want the full pipeline from upload to scheduled output without writing Snowflake Tasks, VSLZ handles that from a file or a connected source without requiring any Snowflake configuration.

Summary

Snowflake Notebooks in Workspaces is the current default notebook product in Snowflake as of 2026. Setup involves creating a workspace, launching a notebook inside it, connecting to Snowflake tables via SQL or Snowpark Python, and optionally packaging the notebook as an NPO for scheduled execution. The Container Runtime handles Python-heavy workloads that did not fit the legacy warehouse model, and Git integration makes collaboration and versioning straightforward for teams.

FAQ

What is the difference between Snowflake Notebooks in Workspaces and Legacy Snowflake Notebooks?

Notebooks in Workspaces, generally available since February 2026, run on Snowpark Container Services and are stored as files in a Workspace folder, enabling Git integration and collaborative editing. Legacy Snowflake Notebooks ran inside a virtual warehouse, were stored as schema-level database objects, and had no native file system or Git integration. Snowflake renamed the original product to Legacy Snowflake Notebooks in March 2026 as part of the transition to the Workspaces experience.

What Snowflake edition is required for Notebooks in Workspaces?

Notebooks in Workspaces require Enterprise or Business Critical edition with external network access enabled, as they rely on Snowpark Container Services. Standard edition accounts can use Workspaces for file storage but cannot run notebooks with the Container Runtime. To check your edition, navigate to Admin > Accounts in Snowsight.

How do I schedule a Snowflake Notebook to run automatically?

Package the notebook as a Notebook Project Object (NPO) by right-clicking the notebook file in the workspace and selecting Create Notebook Project Object. Then create a Snowflake Task that references the NPO using EXECUTE NOTEBOOK syntax. Specify a warehouse and a CRON schedule in the CREATE TASK statement. Run history is visible in Snowsight under Projects > Notebooks > Run History.

Can multiple users edit the same Snowflake Notebook at once?

Yes. Shared Workspaces support multiple users working in the same workspace simultaneously. File-level access is controlled through workspace sharing settings. Git integration provides version history and branch-based collaboration. Real-time co-editing within a single cell is not currently supported, but multiple users can work in different cells or files within the same workspace session.

How do I migrate a Legacy Snowflake Notebook to the Workspaces experience?

As of early 2026, Snowflake provides a voluntary migration tool accessible under Projects > Notebooks in Snowsight. Use the import option to bring a legacy notebook into a Workspace as a .ipynb file. Snowflake will issue a Behavior Change Request before any mandatory migration is enforced, so legacy notebooks continue to work during the transition period. The full migration timeline has not been announced as of April 2026.

Related

OpenMetadata data catalog interface showing database schema discovery
Guides

How to Set Up OpenMetadata for Data Discovery

OpenMetadata is an open-source data catalog that gives teams a single place to discover, document, and govern their data assets. Setting it up takes under 30 minutes using Docker: spin up the containers, log into the UI at localhost:8585, then connect your first data source using one of 90+ pre-built connectors. Once ingestion runs, every table, column, and owner is searchable and lineage-linked across your entire stack.

Arkzero Research · Apr 29, 2026
Streamlit logo on a clean white background
Guides

How to Build a Data Dashboard with Streamlit

Streamlit is an open-source Python library that turns a script into a shareable web dashboard without any front-end code. Install it with pip, write a Python file that loads your CSV with pandas, add sidebar widgets for filtering, and render interactive charts with Plotly. Push the file to GitHub, connect it to Streamlit Community Cloud, and anyone with the URL can view live results. No server configuration required.

Arkzero Research · Apr 29, 2026
Airbyte Cloud data integration platform
Guides

How to Set Up Airbyte Cloud for Data Syncing

Airbyte Cloud is a managed data integration platform that syncs data from SaaS tools, databases, and APIs into a central warehouse without requiring Docker, infrastructure, or engineering resources. A free 30-day trial lets you connect sources like Salesforce, HubSpot, Stripe, or Google Sheets to destinations like BigQuery, Snowflake, or Postgres in minutes. This guide walks through the full setup from account creation to your first automated sync.

Arkzero Research · Apr 29, 2026