How to Set Up Snowflake Notebooks in Workspaces
Last updated Apr 29, 2026

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.
- Open Snowsight and navigate to Projects > Workspaces.
- Click + Workspace in the top right.
- Name the workspace to match the project:
sales-analytics,revenue-model, or similar. - Under Sharing, choose private or invite team members. Shared Workspaces support multiple users editing files simultaneously, with version history tracked through Git.
- 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:
- Right-click the notebook file inside the workspace.
- Select Create Notebook Project Object.
- 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.


