> ## Documentation Index
> Fetch the complete documentation index at: https://docs.virtuous.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Data Model Overview

> How all Virtuous CRM domains connect — a conceptual map of the full data model.

The schema organizes around two central hubs — **CONTACTS** and **GIFTS**. Every domain connects back to one or both of them. Use this as your starting point before diving into the detailed reference diagrams.

## Contacts hub

CONTACTS is the giving unit (household or organization). Identity, commitments, and stewardship activity all hang off it. GIFTS connects back to CONTACTS via `CONTACT_KEY`.

```mermaid theme={null}
flowchart TB
  CONTACTS(["CONTACTS"])
  GIFTS(["GIFTS"])

  subgraph Identity["Identity"]
    direction LR
    INDIVIDUALS["Contact Individuals"]
    MEMBERSHIPS["Memberships"]
    TRIBUTES["Tributes"]
  end

  subgraph Commitments["Commitments"]
    direction LR
    GIFT_ASKS["Gift Asks"]
    PLEDGES["Pledges"]
    RECURRING_GIFTS["Recurring Gifts"]
    PLANNED_GIFTS["Planned Gifts"]
  end

  subgraph Stewardship["Stewardship"]
    direction LR
    NOTES["Notes"]
    TASKS["Tasks"]
    RECEIPTS["Receipts"]
  end

  CONTACTS --> Identity
  CONTACTS --> Commitments
  CONTACTS --> Stewardship
  CONTACTS <-->|"CONTACT_KEY"| GIFTS

  classDef hub fill:#00A3E0,color:#ffffff,stroke:#081F2C,font-weight:bold
  classDef entity fill:#CEE7F2,color:#243746,stroke:#41B6E6
  class CONTACTS,GIFTS hub
  class INDIVIDUALS,MEMBERSHIPS,TRIBUTES,GIFT_ASKS,PLEDGES,RECURRING_GIFTS,PLANNED_GIFTS,NOTES,TASKS,RECEIPTS entity
  style Identity fill:#F0F8FF,stroke:#CEE7F2,color:#243746
  style Commitments fill:#F0F8FF,stroke:#CEE7F2,color:#243746
  style Stewardship fill:#F0F8FF,stroke:#CEE7F2,color:#243746
```

## Gifts hub

GIFTS is the central transaction record. Campaigns flow into it via `SEGMENT_KEY`, and giving details flow out through `GIFT_KEY`.

```mermaid theme={null}
flowchart TB
  GIFTS(["GIFTS"])

  subgraph Campaigns["Campaigns"]
    direction LR
    CAMPAIGNS_T["Campaigns"]
    COMMUNICATIONS["Communications"]
    SEGMENTS["Segments"]
  end

  subgraph GivingDetails["Giving Details"]
    direction LR
    GIFT_DESIGNATIONS["Gift Designations"]
    PROJECTS["Projects"]
    GIFT_BATCHES["Gift Batches"]
    PREMIUMS["Premiums"]
  end

  subgraph Outreach["Outreach"]
    direction LR
    EMAILS["Emails"]
    EVENTS["Events"]
    EVENT_TICKETS["Event Tickets"]
  end

  Campaigns -->|"SEGMENT_KEY"| GIFTS
  GIFTS --> GivingDetails
  Campaigns --> Outreach

  classDef hub fill:#00A3E0,color:#ffffff,stroke:#081F2C,font-weight:bold
  classDef entity fill:#CEE7F2,color:#243746,stroke:#41B6E6
  class GIFTS hub
  class CAMPAIGNS_T,COMMUNICATIONS,SEGMENTS,GIFT_DESIGNATIONS,PROJECTS,GIFT_BATCHES,PREMIUMS,EMAILS,EVENTS,EVENT_TICKETS entity
  style Campaigns fill:#F0F8FF,stroke:#CEE7F2,color:#243746
  style GivingDetails fill:#F0F8FF,stroke:#CEE7F2,color:#243746
  style Outreach fill:#F0F8FF,stroke:#CEE7F2,color:#243746
```
