Module 3 — Setting Up dbt-nexus
Land raw source data via os-nexus, install the dbt-nexus package, wire up Gmail / Google Calendar / Notion, let identity resolution do its job, and turn the result into a family contacts list and a Christmas card list.
This is where the warehouse starts to pay off. The module starts with a prerequisite on landing raw data into BigQuery via os-nexus, then walks through installing dbt-nexus, shaping three real sources (Gmail, Google Calendar, Notion) into the standard nexus format, watching identity resolution unify a contact who shows up multiple ways across them, and building the two headline outputs that motivated the whole project: a family contacts list and a Christmas card list.
Prerequisites:
- Module 1 — Setting Up dbt — a working dbt project on BigQuery
- Module 2 — dbt Basics — comfort with refs, materializations, Jinja, and macros
What you'll learn
- How to land raw Gmail / Calendar / Notion data into BigQuery via the standard os-nexus ingestion pipeline (or an alternative)
- What dbt-nexus is, the four required outputs per source, and the
north-star tables (
nexus_events,nexus_entities,nexus_relationships) - How to install and configure the dbt-nexus package
- How to build the four required source models for any new source, walked through three times (Gmail, Calendar, Notion)
- How identity resolution unifies multiple identifiers into a single resolved entity — conceptually, not via SQL deep dive
- How to build a self-maintaining family contacts list on top of resolved entities
- How to turn the contacts list into a Christmas card list — and how the same pattern generalizes to many other personal-warehouse outputs
Lessons
- Prerequisite: Ingesting source data with os-nexus — the standard ingestion path; Convex + Nango under the hood
- Introduction to dbt-nexus — what nexus is, the four required outputs, the north-star tables
- Installing and configuring —
packages.yml,vars.nexusconfig, routing output to its own dataset - Setting up sources — the meatiest lesson; Gmail, Calendar, and Notion source models end-to-end
- Identity resolution — told through Grandma JoAnne's two emails + phone; how nexus collapses them into one entity
- The family contacts list — the headline output; a self-updating contacts table
- The Christmas card list — worked capstone; contacts + a recency/frequency rule + a hand-curated address seed
When you're done
You'll have a working personal data warehouse with a unified event log, resolved entities, a maintainable contacts list, and the generalizable pattern (resolved contacts + filter rule + optional curated data) for building every output that comes after.
Start with 3.1 Prerequisite: Ingesting source data with os-nexus.