Standard vs. Custom Objects
By the end of this lesson, you'll be able to:
- Explain when to extend a standard object versus creating a custom object
- Identify the tradeoffs of each approach
Prerequisites: Many-to-Many Relationships with Junction Objects
Extending a standard object
Adding custom fields to Account, Contact, or Opportunity is quick, and you inherit standard functionality — page layouts, reports, integrations, mobile support — for free. A good fit when the data genuinely is an attribute of that Account, Contact, or Opportunity.
When a custom object is the better fit
If the concept doesn't map onto an existing standard object's identity — e.g. "Warranty Claims" or "Equipment Assets" — it deserves its own object. Stuffing unrelated data onto Account as 40 extra custom fields makes the object bloated, slow to load, and confusing for every process that touches it.
A genuine attribute vs. a distinct entity
-- Reasonable: a custom field genuinely describing the Account itself
SELECT Id, Name, Preferred_Contact_Method__c FROM Account
-- Better as its own object: warranty claims aren't an Account attribute
SELECT Id, Account__c, ClaimDate__c, Status__c FROM Warranty_Claim__c
Preferred_Contact_Method__c genuinely describes the Account; a warranty claim is its own business entity with its own lifecycle, and belongs in its own custom object related back to Account.
Exercise
A company wants to track customer support tickets, each with a status, priority, and resolution notes, related to an Account. Should this be custom fields on Account, or a new custom object? Explain.
Show hint
Think about whether tickets are an attribute of the Account or their own independent business entity with a lifecycle.
Standard vs. Custom Objects — Quick Check
My Notes
Log in to keep private notes on this lesson.
Questions about this lesson
No questions yet — be the first to ask.
Log in to ask a question about this lesson.
Summary
Standard objects (Account, Contact, Opportunity) come with built-in features and integrations, but adding custom fields to them is sometimes the wrong fit — a genuinely new business concept usually deserves its own custom object rather than being bolted onto a standard one.