Portfolio note: This is an anonymized version of an onboarding guide I wrote for a data and analytics team. Company names, people, and internal resources have been replaced with placeholders.
Work through this guide in order during your first week. Each section builds on the last.
Don’t try to memorize everything — your goal is orientation and access, not mastery.
| Section | What You’ll Get | Time |
|---|---|---|
| 1. The Big Picture | Understand how our data stack fits together | 15 min |
| 2. Your Tools & Access | Log in to every system you’ll need | 30 min |
| 3. How Data Moves | Understand the pipeline from source to dashboard | 20 min |
| 4. Snowflake — First Queries | Run your first queries against real data | 30 min |
| 5. Tableau — Dashboards | Navigate dashboards and published data sources | 20 min |
| 6. dbt & Pipelines (Conceptual) | Understand how data gets transformed without needing to build yet | 15 min |
| 7. Ways of Working | Processes, norms, who to ask for what | 15 min |
| 8. First Week Checklist | Verify you’re fully set up | — |
Section 1 — The Big Picture
By the end of this section: You’ll understand what our data stack is, why it’s built the way it is, and how the pieces connect.
What We’re Building
Our job is to make sure the right data gets to the right people in a reliable, trustworthy, and timely way. That means:
- Pulling data from every system the business runs on
- Storing and organizing it in one central place
- Transforming it into clean, meaningful models
- Making it available for analysis, reporting, and operational use
The Stack at a Glance
Our data stack has five layers. Data flows left to right:
| Layer | Tool | What It Does |
|---|---|---|
| 1. Source Data | MySQL, DynamoDB, Zendesk, GA4, Zoho CRM, and more | Where business data originates |
| 2. Ingestion | Fivetran | Automatically syncs source data into Snowflake on a schedule |
| 3. Storage | Snowflake | Central data warehouse — the single source of truth |
| 4. Transformation | dbt Cloud | Cleans, joins, and models raw data into analytics-ready tables |
| 5. Consumption | Tableau / Hightouch / Dot.ai | Visualization (Tableau), sending data back to ops tools (Hightouch), and natural language querying via Dot.ai (Slack AI agent) |
Think of it this way: Fivetran brings data IN to Snowflake. dbt organizes it inside Snowflake. Tableau and Hightouch take data back OUT for people to use.
A Note on Our Stack’s History
- Snowflake has always been our data warehouse. BigQuery is used specifically for GA4 data export staging — it is not and was not our primary warehouse.
- We moved from Hevo Data to Fivetran for ingestion.
- We migrated our CRM from HubSpot to Zoho CRM — but many pipeline
names and table names still say ‘HubSpot’ (e.g.,
hubspot_contacts). This is legacy naming. When you see HubSpot in a table or pipeline name, it refers to Zoho CRM data. - A previous data engineer built much of the dbt infrastructure. His pipeline training video (recorded with the analytics team) is foundational context — ask the Head of Data for the link.
Section 2 — Your Tools & Access
By the end of this section: You’ll be logged in to every tool you need and know who to contact if something isn’t working.
the Head of Data owns access for all data platform tools. If you’re missing anything below, reach out to the Head of Data on Slack — not IT, not Engineering.
| Tool | How to Access | Who Grants Access |
|---|---|---|
| Snowflake | Web browser — URL provided by the Head of Data. Use your Company Google account + MFA. | Head of Data |
| Tableau Cloud | Invitation to your Company email. Use for viewing and exploring dashboards. | Head of Data |
| Tableau Desktop | License provided separately. Required for creating/editing dashboards. | Head of Data |
| dbt Cloud | Web browser — invitation from the Head of Data. Read access initially. | Head of Data |
| Fivetran | Web browser — invitation from the Head of Data. View connector list. | Head of Data |
| Hightouch | Web browser — invitation from the Head of Data. | Head of Data |
| GitHub | Ensure your account is added to the data team repo for dbt version control. | Head of Data |
| Slack | Join #data-analytics and relevant team channels. | IT / Head of Data |
| Dot.ai | AI analytics agent accessible in Slack. Ask data questions in natural language, backed by the dbt semantic layer. | Head of Data |
| Google Drive | Company Google Workspace account. Data team docs shared by the Head of Data. | IT / Head of Data |
Always use your Company email (not personal) to log in to all data tools. MFA is required for Snowflake.
Your Snowflake Environment
- Your dev schema will be named
dbt_[yourname](e.g.,dbt_jordan,dbt_sam) - Production analytics data lives in the Data Warehouse database — this is what Tableau connects to
- Raw ingested data lives in the Stage database — you generally won’t query this directly
Section 3 — How Data Moves
By the end of this section: You’ll be able to describe how data flows from a source system all the way to a Tableau dashboard or Zoho CRM field.
The Standard Pipeline
- A source system (e.g., MySQL, Zendesk, GA4) generates or updates data
- Fivetran detects the change and syncs it to Snowflake on an hourly schedule
- The raw data lands in Snowflake’s Stage database (a loading dock — unprocessed)
- dbt runs on a schedule (every 3 hours intraday, plus a full daily job) and transforms Stage data into clean, joined models in the Data Warehouse database
- Tableau connects to the Data Warehouse and refreshes dashboards from the clean data
- Hightouch reads from the Data Warehouse and syncs enriched data back to Zoho CRM
A Few Things to Know About Fivetran
- Soft deletes: When a record is deleted in a source
system, it’s not removed from Snowflake. Instead, a column called
fivetran_deletedis set toTRUE. Our dbt models filter these out automatically. - New tables don’t auto-sync. Enabling a new source table requires a manual step — ask the Head of Data. This is intentional cost control.
- Fivetran costs are based on Monthly Active Rows (MAR). We actively manage which tables sync to stay within budget.
The GA4 Exception
Google Analytics 4 doesn’t flow through Fivetran. It has its own custom pipeline because GA4 natively exports to BigQuery:
GA4 → Google BigQuery → dbt → Google Cloud Storage → dbt → Snowflake
The end result is the same — queryable GA4 data in Snowflake — it just takes a different route to get there.
Reverse ETL: What Hightouch Does
Most data flows into Snowflake. Hightouch does the opposite — it takes data from Snowflake and pushes it back into operational tools. Today, it syncs contact-level metrics (like GMV last 30 days) from Snowflake into Zoho CRM.
Note on naming: The Hightouch sync source table is called
hubspot_contacts. This was built originally for HubSpot before we migrated to Zoho CRM. The table name hasn’t been updated yet — this is expected and known.
Section 4 — Snowflake: Your First Queries
By the end of this section: You’ll be logged in to Snowflake, oriented to the key databases, and able to run your first queries.
Navigating Snowflake
| Database | What’s In It | When to Use It |
|---|---|---|
| Stage DB | Raw data as Fivetran loaded it. Includes
fivetran_deleted flags and internal metadata. |
Rarely — mainly for debugging ingestion issues |
| Data Warehouse DB | Clean, transformed tables built by dbt. Your go-to for analysis. | Most of the time |
| Your Dev Schema | dbt_[yourname] inside the Data Warehouse. Your personal
sandbox. |
When testing or exploring |
Key Tables to Know First
order_line_items— the primary orders table. Use this for all order and GMV analysis.super_orders— DEPRECATED. Do not use. Data was migrated toorder_line_items~2 years ago.hubspot_contacts— contact-level data synced to Zoho CRM via Hightouch. Despite the name, this is Zoho CRM data.
Your First Queries
-- Preview the main orders table
SELECT * FROM order_line_items LIMIT 100;
-- Check record count
SELECT COUNT(*) FROM order_line_items;
-- Write to your dev schema (safe -- won't affect production)
CREATE OR REPLACE VIEW dbt_[yourname].my_first_test AS
SELECT * FROM order_line_items LIMIT 1000;
Best practice: Always add a
LIMITclause when exploring large tables. Avoid expensive full-table scans without aWHEREclause. When in doubt, write to your dev schema first.
Section 5 — Tableau: Finding & Using Dashboards
By the end of this section: You’ll be able to find, navigate, and filter dashboards in Tableau Cloud and understand how our published data sources work.
Tableau Cloud vs. Tableau Desktop
- Tableau Cloud (browser) — for viewing, exploring, and sharing dashboards. Most people use only this.
- Tableau Desktop (app) — for creating and editing dashboards. Requires a separate license from the Head of Data.
How Our Dashboards Are Built
Our setup uses published data sources:
- Each dashboard connects to a published data source — a shared, named connection to a specific Snowflake table
- Multiple dashboards share the same published source, so a single data refresh updates all of them
- All transformation logic lives in dbt — not inside Tableau. If something looks wrong in a dashboard, the fix is almost always upstream in dbt.
If you’re building a new dashboard: connect to an existing published data source rather than writing custom SQL inside Tableau. If the data you need doesn’t exist as a published source, build a dbt model first, then connect Tableau to it.
Section 6 — dbt & Pipelines (Conceptual)
By the end of this section: You’ll understand what dbt is, why we use it, and how it fits in — without needing to make any changes yet.
What dbt Is
dbt (data build tool) is where our data transformation logic lives. If Fivetran brings raw data into Snowflake, dbt turns that raw data into the clean, meaningful tables you actually query. Think of dbt models as SQL files that each define a table or view.
Key Concepts Glossary
| Term | What It Means |
|---|---|
| Model | A SQL file in dbt that defines a table or view in Snowflake |
| Staging model | Cleans raw Fivetran data — filters soft deletes, renames columns. First step in the pipeline. |
| Mart / final model | Built for analytics — joined, aggregated, and ready to query or connect to Tableau |
| Lineage | Visual map of how data flows from source tables through dbt models to final outputs |
| Job | A scheduled dbt run (intraday, daily, or GA4 import) |
| Soft delete | A record flagged as deleted (fivetran_deleted = TRUE)
rather than physically removed |
| MAR | Monthly Active Rows — how Fivetran charges us. New rows cost money; updates don’t. |
You don’t need to write or modify dbt models right now. Browse dbt Cloud to see existing models and their lineage — read-only and safe to explore. A dedicated dbt deep-dive guide will be available when you’re ready to start contributing.
Section 7 — Ways of Working
By the end of this section: You’ll know our team norms, who owns what, and how to get help.
Team & Ownership
| Person | Role | Go To Them For |
|---|---|---|
| Head of Data | Head of Data & Analytics | All data platform access, Snowflake, Tableau licenses, IT escalations, strategic questions |
| Analytics Engineer | D&A | Event tagging, partner data pipeline, dbt questions |
| Data Engineer | D&A | Product feed pipelines, Snowflake queries |
| Onboarding Buddy | Data Analyst | Onboarding questions |
| IT Lead | Head of IT | Non-data-platform IT issues only — not Snowflake, Tableau, or dbt |
Key Norms & Gotchas
- GMV not GMB — always Gross Merchandise Value
super_ordersis deprecated — always useorder_line_items- HubSpot references = Zoho CRM — our CRM migrated but pipeline names haven’t all caught up yet
- The Head of Data owns all data platform tooling — not IT, not Engineering
- Don’t make changes to production dbt models without a pull request and review
Section 8 — Your First Week Checklist
Use this to confirm you’re fully set up by end of week one. Check in with the Head of Data on anything you can’t complete.
Access & Accounts
Orientation
Hands-On
Questions & Next Steps
References & Further Reading
| Resource | Where to Find It | What It Covers |
|---|---|---|
| D&A Knowledge Base | Ask the Head of Data for access | Table notes, metric definitions, tribal knowledge, ownership |
| Data Architecture Documentation | This Confluence space → Architecture & Infrastructure | Current state stack, open items, upcoming changes |
| Pipeline Training Video | Ask the Head of Data for link | End-to-end pipeline walkthrough — foundational context |
| dbt Documentation | docs.getdbt.com (free) | Full dbt reference — recommended for self-study |
| Tool Deep Dive Guides | Coming soon — ask the Head of Data | In-depth guides per tool: Snowflake, dbt, Tableau, Fivetran |
| Architecture Diagram (Miro) | Ask the Head of Data for link | Oct 2024 architecture diagram. For current state use the architecture doc above. |
Welcome to the team. When in doubt, ask. We’d rather answer a question than have you guess.