Data Model
Build a clean Attio data structure that scales as your team grows.
⏱️ En bref : Attio's data model is more flexible than Pipedrive or HubSpot: you can create custom objects, custom attribute types (currency, status, references), and complex relationships. Power comes with responsibility: a poorly designed model makes everything else harder. Spend time on objects and relations before opening Attio to your team.
Standard objects in Attio
Out of the box, Attio provides 4 standard objects (similar to most CRMs):
- People: individuals (contacts, prospects, customers)
- Companies: organizations
- Deals: sales opportunities, with pipeline stages
- Workspaces: internal teams (mostly for B2B SaaS use cases)
Each comes pre-configured with sensible attributes (name, email, domain, ARR, stage...). You'd typically extend them with custom attributes rather than recreate from scratch.
Custom objects: when and how
Where Attio shines is custom objects. Unlike Pipedrive, you're not limited to a fixed structure. Common custom objects I create for clients:
- Projects: for agencies tracking client engagements separately from deals
- Subscriptions: for SaaS tracking active subscriptions, MRR, renewal dates
- Properties: for real estate, listing all properties as records
- Investments: for VC funds tracking portfolio companies
- Partners: for ecosystem-driven businesses tracking partnerships separately
To create: Settings → Objects → New object. Define the API slug (technical name), display name, icon, and primary attribute. Then add attributes one by one.
Attribute types
Attio supports 12+ attribute types. The most useful:
- Text / Long text: short and long strings
- Number / Currency: numeric values, currency-aware (auto formats with symbol)
- Date / Datetime: dates with optional time
- Status: enum-like with colored options (e.g., "New", "Qualified", "Won")
- Select / Multi-select: predefined options, single or multiple
- Reference: link to another object (e.g., a Deal references a Person)
- Email / Phone / URL: typed fields with validation
- Checkbox: boolean
- Rating: 1-5 stars
- User: reference to a workspace member (for assignments)
💡 Use Status for pipelines
For anything that moves through stages (lead status, deal stage, project phase), use Status (not Select). Status fields appear as visual pipeline boards in list views, with drag-and-drop. Much better UX than dropdown selects.
References: the heart of the model
References are typed relationships between objects. A Deal can reference a Person (the buyer), a Company (the account), a User (the owner). References are what make Attio feel relational, like a database, rather than flat like a spreadsheet.
Two flavors:
- Single reference: one record points to one other (e.g., a Deal has one primary Owner)
- Multi-reference: a record points to many (e.g., a Deal has many Stakeholders)
References are bidirectional by default: if Deal X references Person Y, then Person Y has a "Deals" tab showing X.
Lists: views, not data
Lists in Attio are saved views of records, with filters, sorts, and grouping. They are not separate tables. A Person can appear in 10 different Lists without duplication.
Common Lists:
- "Top 50 ICP accounts" (filter Companies by industry + headcount + funding)
- "Hot leads this week" (filter People by last_activity_date)
- "Stalled deals" (filter Deals by no_activity > 14 days AND stage != closed)
- "Renewal in next 60 days" (filter Subscriptions by renewal_date)
Lists also support manual entry: you can curate a list of records by hand (no filter), useful for ABM target accounts or campaign cohorts.
Designing the model: principles
- Don't over-customize too early: use standard objects first, add custom attributes only when a real need emerges
- Prefer references over duplicate text: if you find yourself typing the same company name in multiple Person records, you need a Company reference, not a text attribute
- Status > Select for anything that "moves": pipelines, statuses, lifecycle stages
- Naming consistency: stick to a convention (snake_case in API, Title Case in display)
- Document the model: a Notion page describing each object, its purpose, and key attributes. Saves hours when onboarding new team members
⚠️ Don't replicate Salesforce complexity
I've seen teams come from Salesforce and try to recreate 30 custom objects with 200 attributes each in Attio. Don't. Attio's beauty is its simplicity. If you need that level of complexity, you probably need a dedicated database or Salesforce. Most B2B teams thrive with 4-7 objects total.
Once your model is set, structure your team's daily work using Lists and Views, and automate with Workflows.