Snowflake connector for ChatGPT

Use Porter’s Snowflake connector for ChatGPT to ask about the tables you choose through a read-only role, then compare them with your ad data.

  • Map a new table’s columns, metrics and months of data
  • Track revenue and orders week by week
  • Find which channel or region moved a number
  • Compare warehouse revenue with Google Ads spend by week
G2★★★★★Rated 4.6/5 on G2 (288 reviews, October 2026)

By Porter Metrics team · Last updated October 20, 2026

ChatGPTPorter connected
Using my table SALES.PUBLIC.ORDERS, show total REVENUE and ORDERS by week of ORDER_DATE for the last 8 weeks.
Porter / Snowflake / Trailgear Demo✓ 4 rows
Revenue peaked the week of Sep 28 at $212K. The last 4 weeks are 9% above the 4 before.
WeekRevenueOrders
Sep 14$184K2,310
Sep 21$196K2,402
Sep 28$212K2,588
Oct 5$203K2,471
Demo data, Trailgear Demo account
Any table you pick
01Setup

How to connect Snowflake to ChatGPT

Porter’s Snowflake connector for ChatGPT takes 3 steps, with no code and no MCP server object to create in Snowflake. Connect a Snowflake user in Porter whose role can read the tables. Add Porter’s MCP URL to ChatGPT as a custom MCP server and ask. MCP (Model Context Protocol) is the open standard ChatGPT uses to connect to tools.

Before you start

  • You need a Snowflake user whose role has USAGE on a warehouse, the database and the schema, plus SELECT on the tables ChatGPT should read. You also need a free Porter account and a ChatGPT plan that supports custom MCP servers.
  • Custom MCP servers are in beta in ChatGPT on the web, so set up Porter and ask your questions from a browser. On Business, Enterprise or Edu, an admin or owner turns on developer mode; on Pro, you turn on developer mode yourself (OpenAI’s guide to custom MCP apps).
  • Works in ChatGPT on the web (chatgpt.com, custom MCP servers in beta) and in Codex, with the same Porter MCP URL.
  1. Step 1: Connect Snowflake in Porter

    Sign up free at Porter, pick Snowflake as the source, then fill in the connection details. Porter then lists every table that role can see, named as database, schema and table, and you pick ChatGPT as the destination.

  2. Step 2: Add the connector to ChatGPT

    In ChatGPT, open Customize › Plugins, click Add and choose Add custom MCP server. On Business, an admin does this from Workspace settings › Apps › Create. Name it Porter Metrics, paste this URL as the Server URL and keep OAuth as the authentication:

    MCP URL
    https://mcp.portermetrics.com/mcp

    Tick “I understand and want to continue”, then select Create as a plugin.

  3. Step 3: Ask ChatGPT about Snowflake

    Next, select Continue to Porter Metrics, sign in to Porter and click Allow Access. Then select Try in chat and paste this prompt:

    Prompt
    Using my Snowflake table SALES.PUBLIC.ORDERS, show total REVENUE and ORDERS by week of ORDER_DATE for the last 8 weeks.

Guides and videos

Connect Snowflake to ChatGPT free

app.portermetrics.com / create

Create: Snowflake to ChatGPT

Sign in: Snowflake

Select the accounts ChatGPT can use.

ChatGPT / Customize / Plugins / Add / Add custom MCP server

Remote MCP server URL

https://mcp.portermetrics.com/mcp

ChatGPT

Using Porter / Snowflake …

Demo data
02Use cases and prompts

What you can ask ChatGPT

Each use case comes with a prompt to copy, the columns it uses and who it’s for. Your columns are your own, so each prompt uses example tables and uppercase column names, the way Snowflake stores them. Name one table and its date column in each prompt, then swap in yours.

Can ChatGPT explain what's in a table?

The problemA new table shows up in the MARKETING schema with a wall of columns, but the one person who knows them is on vacation.

What ChatGPT doesChatGPT reads the table’s columns as metrics and dimensions, then totals each metric by month. It also points out which months hold data and which metrics stay at zero.

What you getOne prompt gives you a working map of the table, instead of scrolling SELECT * results in Snowsight column by column.

Prompt
Using my Snowflake table ANALYTICS.MARKETING.DAILY_CAMPAIGNS, list its columns as metrics or dimensions, then total each metric by month of DATE. Which months have data, and which metrics stay at zero?

For: marketing ops onboarding a table · marketing analysts · agencies

Fields used: the table's own columns

Can ChatGPT track a metric week by week?

The problemThe weekly business review needs revenue by week, but the numbers sit in a table only one analyst can query.

What ChatGPT doesChatGPT totals a metric column by week from one table, compares each week with the one before, then names the weeks that moved most.

What you getThe review opens with the weekly table already built instead of a ticket asking for it.

Prompt
Using SALES.PUBLIC.ORDERS, show REVENUE and ORDERS by week of ORDER_DATE for the last 12 weeks, with the change versus the previous week. Name the 2 weeks that moved most.

For: marketing analysts · growth marketers · founders

Fields used: example columns ORDER_DATEREVENUEORDERS

Can ChatGPT find which channel or region moved the number?

The problemRevenue dipped last week, and the first message in Slack asks which channel did it.

What ChatGPT doesChatGPT breaks one metric down by a dimension column of the same table for two periods. Then it ranks the segments by how much each one changed.

What you getYou answer the thread with the segment and the size of its drop, before anyone opens a pivot table.

Prompt
Using SALES.PUBLIC.ORDERS, compare REVENUE by CHANNEL and by REGION for the last 7 days of ORDER_DATE versus the 7 days before. Rank the segments by change.

For: marketing analysts · marketing ops · agencies

Fields used: example columns ORDER_DATECHANNELREGIONREVENUE

Can ChatGPT join two tables?

The problemSpend sits in one table and orders in another, so the join is always the step that needs an analyst.

What ChatGPT doesChatGPT queries each table separately and lines up the results on a shared key, such as the date.

What you getAs a result, you get revenue per dollar of spend by day, without anyone writing the JOIN or a new view.

Prompt
Query MARKETING.ADS.DAILY_SPEND and SALES.PUBLIC.ORDERS separately for the last 30 days. Total SPEND by SPEND_DATE and REVENUE by ORDER_DATE, then line them up by day and show revenue per dollar of spend.

For: growth marketers · marketing ops

Fields used: MARKETING.ADS.DAILY_SPEND: SPEND_DATESPEND. SALES.PUBLIC.ORDERS: ORDER_DATEREVENUE

Can ChatGPT tell if more Google Ads spend brought more revenue?

The problemPaid search got more budget, but the revenue the business trusts lives in the warehouse rather than in the Google Ads conversion column.

What ChatGPT doesWith Google Ads also connected in Porter, ChatGPT puts weekly Google Ads Cost next to weekly revenue from your orders table. Then it works out revenue per dollar. You see how spend and revenue move together, week by week.

What you getThe budget talk then moves to the revenue the business already trusts, set against what paid search cost each week.

Prompt
For the last 12 weeks, show Google Ads Cost by Week next to REVENUE by week of ORDER_DATE from SALES.PUBLIC.ORDERS, then revenue per dollar of Cost. Did weeks with more spend bring more revenue?

For: growth and performance marketers · agencies

Fields used: ORDER_DATEREVENUECostWeek
03Why Porter

Why Porter for Snowflake in ChatGPT

Porter brings the Snowflake tables you pick into ChatGPT, next to your ad and CRM data. Need Cortex Agents, Cortex Analyst, Cortex Search or SQL you write? Use Snowflake’s managed MCP server, which needs no extra account. You can run both.

✓

No server object to build

Give Porter a Snowflake user whose role can read the tables, then add one MCP URL to ChatGPT on the web. There’s no MCP server object or OAuth integration to create in Snowflake.

⊞

Safe for your warehouse

ChatGPT reads every table your Porter role can SELECT and tells you what moved, while your Snowflake data stays exactly as you set it. You grant the role and revoke its grants anytime.

⚙

Your tables next to your ads

Ask about warehouse revenue next to Google Ads, HubSpot, GA4 and other Porter sources in one answer, instead of exporting either side into a sheet.

Aa

Every column is a field

Porter reads each table’s columns and offers them to ChatGPT as metrics and dimensions. You ask for REVENUE by week, and ChatGPT builds the query.

↻

Free plan to start

The Snowflake connector comes with every Porter plan, including Free, so your first table costs nothing to try. Snowflake still bills the warehouse credits each query uses.

✓

Live dashboards, not only chat answers

Ask ChatGPT for a dashboard and Porter’s AI dashboards publish it at its own link, synced automatically and ready to share. Official MCP servers answer inside the chat and stop there.

04Dashboard

Dashboard template

Start from a ready-made Snowflake template, or ask ChatGPT to build a live one with AI dashboards.

AI dashboards

Build a live Snowflake dashboard from the chat

Describe the dashboard in one sentence and Porter builds it. A client-ready dashboard in minutes, with no chart dragging and no BI tool to learn. Ask ChatGPT:

Prompt
Build a live Snowflake dashboard for my account with the last 30 days, the main KPIs and a weekly trend.
Live URLEach dashboard at its own link: no login, no app, no download
Auto-syncFresh Snowflake data, nobody re-exports each period
Scheduled deliveryEmail or PDF sends on a set day
White labelYour logo and branding for clients
Sharing permissionsView or edit access per person

Or start from a template

05Pricing

Pricing

You can start free, since Porter’s Snowflake connector for ChatGPT comes with every plan. Use the calculator for your number of accounts, or see Porter pricing for every plan.

What you get

  • Free plan: never expires, with unlimited connected accounts and the last 15 days of data in ChatGPT (30 days in Data Studio and Sheets)
  • Reporting: from $12.50 per account a month billed annually, or $15 month to month for one account
  • Billing: each Snowflake table you query counts as one account, with volume discounts and no per-seat fee; Snowflake still bills warehouse credits separately
  • No credits needed: ChatGPT’s Snowflake questions are reads, so they use no AI credits
  • Trial: 14 days of full access, no card

Price calculator

$33.33/mo$6.67 per account

An account is one ad account, Stripe account, store, page or GA4 property. The Free plan never expires and has unlimited accounts, with the last 15 days of data in AI chats.

06Data and actions

Snowflake data ChatGPT can use

The Snowflake connector lets ChatGPT read the rows of the tables you connect, and every column becomes a field it can ask for. There's no fixed field list, because each table brings its own columns. ChatGPT reads one table per question and combines the results itself.

How ChatGPT reads Snowflake

What Porter readsHow it works
TablesEach table is its own account, named as database, schema and table
ColumnsRead from the table and offered to ChatGPT as metrics (numbers) and dimensions (labels and dates)
Column namesAs Snowflake stores them: uppercase unless the column was created in quotes
Not readFiles in stages, Cortex services, two tables in one query

Product stats

WhatSnowflake connector
FieldsNo fixed list; each column of your tables is a metric or dimension
ActionsReads only, so your database stays exactly as you set it
ReadsOne table per question, named as database, schema and table
History30 days on the Free plan, 15 in AI chats
AccessRead-only role: USAGE on a warehouse, database and schema, SELECT on tables
Not readFiles in stages, Cortex services, two tables in one query
Query costsRuns on your warehouse; a resumed warehouse bills at least 60 seconds
07Security

Is it safe?

Yes. ChatGPT sees only the tables that the role you create for Porter can SELECT, and you can revoke its grants anytime. Your tables, views and data stay exactly as you set them.

What the connector needs from Snowflake

Porter needs USAGE on one warehouse, USAGE on the database and schema, and SELECT on each table or view ChatGPT should read (Snowflake's access control privileges). Grant nothing else, especially not OWNERSHIP or write privileges.

Give ChatGPT its own Snowflake warehouse

A dedicated extra-small warehouse keeps ChatGPT's questions apart from your pipelines, so you can see its credit use separately.

08FAQ

FAQ

Marketing ops and analysts usually ask 4 things first: SQL, credits, Claude, and which tables ChatGPT sees. Then come 3 fixes: numbers that don't match Snowsight, a connection Snowflake refuses, and slow answers.

Do I need to know SQL?

No. Porter reads your table's columns and hands them to ChatGPT, so you ask for REVENUE by week and ChatGPT builds the query. Name the table and the date column, and write column names as they appear in Snowflake, so ChatGPT matches them to the fields Porter lists.

Does ChatGPT use Snowflake credits?

Yes. Every question runs on your Snowflake warehouse, and a suspended warehouse that wakes up bills at least 60 seconds, then per second (Snowflake's warehouse billing rules). Snowflake can reuse an identical query's result for 24 hours when the data hasn't changed (Snowflake's result cache).

Can I use Porter in Claude too?

Yes. Porter's MCP URL, the same one behind the Snowflake connector for ChatGPT, also works in Claude as a custom connector. Then Claude reads the same Snowflake tables through Porter, behind the same role. See Porter's Snowflake connector for Claude for the Claude setup and what it covers.

Can ChatGPT see every table in my account?

ChatGPT sees the tables that the role you give Porter can read. Porter lists all of those, and ChatGPT queries only the ones you ask about. Each table ChatGPT queries counts as one Porter account, so a narrow role keeps both the list and the bill short.

Troubleshooting

Why don't the numbers match Snowsight?

Two Snowflake settings can make ChatGPT's numbers different from Snowsight's. TIMESTAMP_LTZ columns show in the session time zone, which defaults to America/Los_Angeles (Snowflake's TIMEZONE parameter), so daily totals can shift. Unquoted column names are uppercase, so "Revenue" and REVENUE are different columns (Snowflake's identifier rules).

Why can't Porter connect to my account?

Check three Snowflake settings first. Snowflake disallows passwords for service users and asks human users with passwords for MFA (Snowflake's MFA and password rollout). A network policy's allowed list refuses every IP missing from it (Snowflake's network policies), and the role needs USAGE on a warehouse.

Why is a question slow?

Ask again once the warehouse is running, or point Porter at a warehouse with room to spare. A Snowflake question is slow while Porter waits for a suspended warehouse to resume, and the first queries after that run on a cold cache. A busy warehouse also queues statements beyond its concurrency limit.

09Next

More ChatGPT connectors

Porter adds other sources to ChatGPT through the same MCP URL, so warehouse tables and live platform data sit in one chat. Browse all ChatGPT connectors or open a related page below:

Not only ChatGPT. Send Snowflake data anywhere

The same Porter account and connection also send Snowflake data to these destinations, at no extra cost.

Try the connector in ChatGPT

As soon as Snowflake is connected, ask ChatGPT which week moved, which channel moved it, and what paid search returned in warehouse revenue. Setting up the Snowflake connector for ChatGPT takes one role and one URL. Since the free plan already includes Porter's MCP, your first table costs nothing to try.

Free plan · 14-day trial · No card needed

Marketing analysts: weekly numbers and the segment behind them instead of a SQL request.

Growth marketers: warehouse revenue together with ad spend, in one answer.

Marketing ops: fewer ad-hoc tickets, behind a role you control.