When should you create a custom object in Attio?
You should create a custom object when the thing you're tracking has its own lifecycle, its own attributes, and its own relationships to other records. If it doesn't, a list on an existing object is almost always the better choice.
Create a custom object when existing objects can't cleanly represent the entity.
The distinction matters because custom objects add real structural weight to your workspace. A custom object gets its own attributes, its own relationship attributes linking it to People, Companies, or other objects, and its own activity timeline. Records in a custom object show up across the workspace: in relationship fields, in reporting, in automations. That's powerful, but it's also complexity you'll need to maintain.
Lists, by contrast, are lightweight. A list pulls records from an existing object and lets you layer on list-specific attributes and status tracking without touching the underlying records. A recruiting pipeline is a classic example: the people already exist in your People object, and the list adds context like "role applied for" and "interview stage" that only matters in that workflow.
The test I use with clients is straightforward: does this thing need its own record page? If you're tracking deals, each deal probably has its own value, its own contacts, its own stage progression, and its own notes and emails. That's a custom object. Same goes for funds, portfolio companies, or projects, anything where you'd want to pull up a dedicated record and see a full timeline of activity.
But if you're just segmenting records that already exist (grouping companies into a "Q1 outreach" bucket, or tracking which people attended an event), that's a list. The records are People or Companies. You're just adding workflow context on top.
A few practical signals that you need a custom object: you keep wanting to add attributes to Companies or People that only apply to some records. You need a status attribute with pipeline stages that don't make sense on your existing objects. You want relationship attributes that connect two concepts, like linking a Deal to both a Company and a Person with different roles.
The mistake I see most often is creating custom objects too early, before the process is stable. Lists are cheap to experiment with. Custom objects require more planning around attributes and relationships, and renaming or restructuring them later means updating every view, automation, and report that references them. Start with a list, and when you find yourself fighting its limitations, that's when you know it's time to create the object.