Competitor
A Competitor in Salesforce is a child record on an Opportunity that names another company chasing the same deal, along with optional notes about that company strengths and weaknesses.
Definition
A Competitor in Salesforce is a child record on an Opportunity that names another company chasing the same deal, along with optional notes about that company strengths and weaknesses. The records live on the OpportunityCompetitor object and surface as a related list on the Opportunity page layout.
The point of tracking competitors at the deal level is to give the sales team a snapshot of the bidding field and to feed win/loss analysis once the Opportunity closes. Reports built on OpportunityCompetitor can answer questions like which competitor we lose to most often, which industries trigger which rival, and whether deals with competitor X tend to close at smaller amounts. The structure is simple by design: a free-text Competitor Name plus strengths and weaknesses fields, which is what makes it easy for reps to populate and easy for sales operations to slice.
How the Competitor object fits into Opportunity tracking
The OpportunityCompetitor object and its key fields
OpportunityCompetitor is a Salesforce-managed child of Opportunity. It carries CompetitorName (a free-text 80-character field), Strengths (a long text area), Weaknesses (a long text area), and a system-managed link back to the parent Opportunity. Salesforce does not provide a Competitor table of master companies out of the box; the CompetitorName is just text. That means "Acme" and "Acme, Inc." count as different competitors in reports unless someone enforces a picklist or validation rule.
Adding a Competitor from the Opportunity record
On a Lightning Opportunity page, the Competitors related list ships in the default page layout but is often hidden in custom layouts. To add one, the rep clicks New on the related list, types the competitor name, optionally fills in Strengths and Weaknesses, and saves. There is no required field beyond CompetitorName, and there is no limit on competitors per Opportunity, so a deal with six bidders can hold six records.
Win/loss reporting on OpportunityCompetitor
The Opportunities with Competitors report type joins Opportunity and OpportunityCompetitor and lets you build the win-rate-by-competitor breakdown that sales leaders want. The typical formula is the count of closed-won Opportunities where Competitor X appears, divided by total closed Opportunities (won plus lost) where Competitor X appears. Build this with a custom report type if you want to filter on Won True or False at the join level.
The free-text problem and how teams fix it
Because CompetitorName is free text, "Microsoft", "MSFT", and "MS" all count as different competitors. Teams fix this in three common ways: a global picklist on a custom Competitor lookup field, a validation rule that rejects values not in a master list, or replacing OpportunityCompetitor entirely with a custom many-to-many object that joins Opportunity to a custom Competitor object. The first two are easier; the third is what enterprises with formal CI programs eventually move to.
Difference from the Account industry or Account record
The Competitor object is per-Opportunity, not per-Account. Salesforce does not stop you from creating an Account that represents a competitor, and you can flag it with a custom field like Account Type = Competitor. But the OpportunityCompetitor record on the deal is independent of any Account: it is just a string. If a rival firm becomes a customer down the road, the historical Competitor entries on past Opportunities still reference them by name.
Permissions, visibility, and sharing
OpportunityCompetitor inherits visibility from the parent Opportunity, so anyone who can see the Opportunity can see its competitors. There is no separate sharing model. Field-Level Security on Strengths and Weaknesses is honored per profile, so you can hide sensitive notes from external users while still letting them see CompetitorName.
Replacing Competitors with Competitive Intelligence apps
Most large sales organizations outgrow OpportunityCompetitor and adopt a dedicated competitive intelligence app like Klue, Crayon, or Kompyte that pushes live battle cards, kill sheets, and win-loss research into the Opportunity record through a managed package. Those apps usually create a custom Competitor object plus a many-to-many junction and leave OpportunityCompetitor as a legacy table. New Salesforce orgs sometimes turn the related list off entirely.
How to add and report on Competitors
Adding a Competitor record takes two clicks from the Opportunity page. The harder work is keeping the CompetitorName values clean enough that win/loss reports actually mean something.
- Confirm the Competitors related list is on the layout
From Setup, open Object Manager, Opportunity, Page Layouts, edit the layout used by the sales team. Drag Competitors from the Related Lists palette to the body of the layout if it is not already there. Save.
- Add a Competitor from an Opportunity
Open any Opportunity. In the Competitors related list, click New. Fill in Competitor Name, and optionally Strengths and Weaknesses. Save.
- Standardize CompetitorName values
Pick the canonical spelling for each rival (Acme, not Acme Corp or Acme, Inc.) and put the list in a knowledge article or wiki. Run a periodic Data Loader export of OpportunityCompetitor, normalize the names in a spreadsheet, and re-import with the canonical spelling. This is the lightest-weight fix for the free-text problem.
- Create the Opportunities with Competitors report
Reports, New Report, pick Opportunities with Competitors as the report type. Group by Competitor Name, then add a formula for Win Rate = Won Count divided by Total Count. Save and add to the Sales Operations dashboard.
- Optional: build a master Competitor object
For richer competitive intelligence, build a custom Competitor object with fields like Threat Level, Battle Card URL, and Last Updated. Replace the OpportunityCompetitor related list with a custom many-to-many junction. This is the path enterprise sales operations teams take when free text stops scaling.
- Free-text CompetitorName means minor spelling differences create separate buckets in reports. Standardize names or move to a custom picklist.
- No global Competitor master table out of the box. The string on each Opportunity is the only record of competitors in stock Salesforce.
- FLS on Strengths and Weaknesses is per profile. If external partners can see Opportunities, they can also see your competitive notes unless you hide the fields.
- The Competitors related list is missing from most custom page layouts. Reps cannot add competitors if the related list is not on their layout.
- Deleting an Opportunity hard-deletes all its OpportunityCompetitor children. There is no soft delete.
Trust & references
Cross-checked against the following references.
- OpportunityCompetitor Object ReferenceSalesforce Developers
- Track Competitors on OpportunitiesSalesforce Help
Straight from the source - Salesforce's reference material on Competitor.
- Opportunities OverviewSalesforce Help
- Build Reports in SalesforceSalesforce Help
About the Author
Dipojjal Chakrabarti is a B2C Solution Architect with 29 Salesforce certifications and over 13 years in the Salesforce ecosystem. He runs salesforcedictionary.com to help admins, developers, architects, and cert/interview candidates sharpen their fundamentals. More about Dipojjal.
Test your knowledge
Q1. What is a Competitor in Salesforce?
Q2. Why track Competitors over time?
Q3. What is a useful way to use Competitor data?
Discussion
Loading discussion…