Before you start
- You need the Admin role in allGood to reach the Snowflake Data Sharing settings.
- You need ACCOUNTADMIN (or another role that can create shares) in the Snowflake account holding the data.
- Your Snowflake account must be in the same cloud region as your allGood account. The settings page names allGood’s region at the top; if yours differs, contact allGood support before you begin.
1
Open the Snowflake Data Sharing settings
In allGood, go to Settings → Snowflake Data Sharing and find the Bring Your Data into allGood card.
2
Copy the script that publishes the share
Click Copy to take the script, which creates a share, grants your data to it, and adds allGood’s account as the consumer.By default it shares everything in one database. To change the database name — or the name of the share itself — click ⚙ Options, or click the underlined values in the script.
3
Run it in your Snowflake account
Paste the script into an SQL console and execute it as Narrow it to a single schema, name individual tables, or grant secure views you’ve built for the purpose — allGood reads exactly what this block gives it and nothing else.The last statement returns your account ID, which the next step needs:
ACCOUNTADMIN.The grant block in the middle is the part to adjust if you don’t want to share a whole database:5
Check what allGood can see
The card now lists every table and view in the share, by schema. If a table you expected is missing, add it to the
grant block and re-run that part of the script; it’ll show up on the next page load without reconnecting.If the list is empty, the share was created but nothing was granted to it — check that the grant statements ran against the right database.Using the data
Connecting a share makes it readable. To act on it, allGood binds a table to a record type in the Marketing Kernel, which keeps a set of records in step with your rows: new rows become records, changed rows update them, and deleted rows are marked as gone. Those records are a copy, held in allGood’s own storage — that’s what lets identity resolution, segments, policies and campaigns work against your data at the speed they need to. allGood re-reads the share on a schedule to keep the copy current, so it trails your warehouse by however often that runs. Contact allGood support to bind synchronized data to a record set in MK. We’ll need to know which table, which column uniquely identifies a row, and which column changes when a row is updated. Once a table is bound, its record type gets a Sync page under Setup → Record Types, showing what it reads, how often, and how many records have changed each day — plus a Sync Now button.What allGood can read
Only what yourgrant statements name. A few properties are worth knowing:
Access is read-only, and stays read-only
Access is read-only, and stays read-only
Snowflake enforces this, not allGood. A database created from a share cannot be written to at all — no inserts, no updates, no new objects.
Adding tables later needs no reconnection
Adding tables later needs no reconnection
Grant them to the existing share and they appear. The setup script’s
grant … on all tables in database covers tables that exist at the time it runs; add grant select on future tables in database … to share … if you want new tables picked up automatically.Disconnecting
Click Disconnect on the card and confirm. allGood immediately stops reading the share, and anything syncing from it stops. Nothing is deleted on your side — the tables stay in your account untouched — and records already synced into allGood stay too, frozen as they were. You can reconnect the same share later. To cut access from your own side instead, drop the share in Snowflake:Outbound Sharing
The other direction. Query allGood’s entities, records and activity from your own warehouse.
Datasets
Load tabular data into allGood without Snowflake sharing.