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:

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

  1. Prerequisite: Ingesting source data with os-nexus — the standard ingestion path; Convex + Nango under the hood
  2. Introduction to dbt-nexus — what nexus is, the four required outputs, the north-star tables
  3. Installing and configuringpackages.yml, vars.nexus config, routing output to its own dataset
  4. Setting up sources — the meatiest lesson; Gmail, Calendar, and Notion source models end-to-end
  5. Identity resolution — told through Grandma JoAnne's two emails + phone; how nexus collapses them into one entity
  6. The family contacts list — the headline output; a self-updating contacts table
  7. 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.