A Custom Object in Salesforce is a database table you create to store data unique to your organization, beyond what standard objects (Account, Contact, Opportunity, Lead, etc.) cover. Custom objects behave like standard objects: they support fields, relationships, validation rules, page layouts, reports, sharing, and field history tracking when enabled. In the API, custom object names get a __c suffix automatically (a custom object labeled “Issue” becomes Issue__c).
You’ll meet this term whenever you need to track something that doesn’t fit into existing Salesforce objects: Job Applications, Inventory Items, Membership Records, Asset Tracking, Properties.
PRACTICAL EXAMPLE
A professional association tracks member subscriptions across multiple membership tiers. They create a Custom Object called “Membership” with fields for membership tier, start date, renewal date, and payment status. The object links to Contact via Lookup, so each member can have multiple active or expired memberships over time. Membership coordinators see all active memberships on each Contact record and run renewal reports across the entire member base.
Quick facts
-
Available in most editions: Contact Manager, Group, Professional, Enterprise, Performance, Unlimited, and Developer editions. Edition determines how many custom objects you can create.
-
Edition limits on number of custom objects: By default, Professional Edition supports 50 custom objects, Enterprise Edition 200, Developer Edition 400, and Unlimited and Performance Editions 2,000. Contact Manager supports 5 custom objects, while Group Edition supports 50.
-
API name auto-appends __c: label “Issue” becomes Issue__c in API, SOQL, formulas. Relationship fields get __r suffix (e.g., Account__r.Name).
-
Audit fields are auto-created: CreatedById, CreatedDate, LastModifiedById, and LastModifiedDate. SystemModstamp is also auto-created and maintained by Salesforce.
-
Visibility requires 3 settings: To make a custom object available in the Salesforce UI, create a tab for the object, add the tab to an app, and configure tab visibility in user profiles. Users must also have the required object permissions. Without these settings, they may not be able to access the object through the UI.
-
Search disabled by default for new custom objects.Enable Allow Search in the object settings if records should appear in Global Search.
-
Relationship limits per object:By default, an object can have up to 2 master-detail relationships and 40 total custom relationships (lookup and master-detail combined). The total relationship limit can be increased to 50 in eligible orgs, but the master-detail limit remains.
-
Cannot be on the detail side of master-detail: Standard objects such as Lead, Task, and Event have relationship restrictions and cannot be used as the detail object in a custom object master-detail relationship.
Note
The object only appears in the App Launcher and navigation when a custom tab is created for it, the tab is added to at least one App, appropriate object permissions are granted, and the tab visibility is configured in user Profiles or Permission Sets. Without these settings, the object exists in the data model but may not be accessible through the Salesforce UI.
FAQ
What is the difference between Standard and Custom Objects in Salesforce?
Standard Objects (Account, Contact, Opportunity, Lead, Case, Campaign, and others) come with Salesforce out of the box and provide predefined fields and functionality. The objects themselves cannot be deleted. Custom Objects are created by admins to track data that standard objects don't cover. In the API, Custom Object names have a __c suffix; Standard Objects do not. Custom Objects can be deleted; Standard Objects cannot. Both support custom fields, relationships, validation rules, automation, reports, and security controls.
How to mass delete custom object records in Salesforce?
Salesforce does not have a built-in mass delete tool for custom object records in the UI. Common approaches: Data Loader (export the records, then run a delete operation against the IDs), XL-Connector (delete from Excel by ID or by SOQL filter), Anonymous Apex (run a delete [SELECT Id FROM Object__c WHERE ...] for small batches), or Workbench (run a SOQL query and bulk-delete the results). For large volumes (>10,000 records), use Bulk API or Data Loader's Bulk API option.
How to deploy custom object in Salesforce?
Three common methods: Change Sets (Setup > Outbound Change Sets, add the Custom Object and its dependencies, send to a connected org), Salesforce CLI / Visual Studio Code (retrieve the object metadata from source, deploy to target org), or Managed/Unmanaged Packages (for distribution across multiple orgs). Always test in Sandbox before production. The object's dependencies (custom fields, validation rules, page layouts, list views) should be included in the deployment to avoid broken references.