Tracking Competitors Blog Post

Tracking Competitors

How are you tracking your competitors in Salesforce? Are you? If you aren’t, you need to. Not you should, you must. If you already are tracking competitors by opportunity, is it working for you? Are you getting the value you want? If not, it is time for a change. If it isn’t working now, it won’t magically start working because you keep doing it. Insanity is doing the same thing over and over expecting a different outcome, it’s time to make a move for the better.

Now, there are plenty of ways to track competitors in Salesforce, selecting which one is what causes problems. Salesforce knows we need to track competitors, in fact, they have a pseudo-object for just that called Opportunity Competitors. You can access the object at Your Name – Setup – Customize – Opportunities – Competitors. Here you can enter the names of each of your competitors, like when setting up a picklist, then add the Opportunity Competitors related list to your Opportunity page layouts.

Now that’s all fine and dandy, but if you take a look at a new record, go ahead create one, you see the competitor name is that bazaar-o optional picklist, like the subject of an activity, which can lead to some funky reporting. You see, someone isn’t going to find the one they want, or they won’t click on the square pop out button at the end of the field, and they enter the competitor misspelled, enter “fake-o,” or the same competitor twice. Now, not only is your reporting pulling the same competitor spelled different ways, but you think you are competing against Competitor A 15 times in 12 deals.  That’s not going to help you with your strategy.

Next, you create a multi-slect picklist, stop right there. It is a BAD idea, have you ever reported on a multi-select picklist? The data looks like this:


  • Each grouping of your values is a different row in your matrix.  Yes, you can get the right numbers, but you are going to need to go to a hell of a lot of work to get there.  You can either parse the data it in Excel or, as Salesforce recommends in their Knowledge Article, create a formula field for each value in your MSP to show 1 if the value is included, allowing you to make a report, it’s weird and funky, but it’s a report. You can find more information about the evils of MSP here.  In addition, this option, just like the Opportunity Competitors related list, has no real benefit to the Sales team on how to crush ‘em. Little secret for you, the sales team doesn’t want to have extra clicks and probably won’t always remember to do it if they have no benefit. So that is where it become obvious we need some sort of junction object.

Now, some companies want to use Account to track their competitors.  Personally I don’t want to remember to filter them out of my prospect reports, and I want to know different information about my competitors than my prospects and customers, so I go for a custom object. On my custom object I have fields for general information about my competitor, their Name, Location, CEO, Number of Customers, and then I start to narrow in on them being a competitor. You can find a full list for fields available here.


Then to relate the competitor to the opportunity, there is a junction object, Competitor2Opportunity__c.  Also known as Opportunity Competitor on Opportunities and Opportunities on the Competitor layout. This allows for the sales rep to put in notes about the competitor, specific to that deal, that the competitive intelligence team can later review.  On the page layout there are also 2 inline Visualforce pages, displaying the competitor company data and competitor specific sales tips.


Easy peasy.  There is a task created on each competitor the record is updated updated to have another update 90 days from the “Last Update” date, and an email alert 7 days prior, day of, and 7 days after the update due-date for the owner. There is also an “Add to Opp” button on the competitor directly so users can relate the competitor to their existing opps without having to look them up.  

You can take a look at the whole sha-bang on my GitHub profile under “Competitors” (I’m very clever at naming things, as you can tell).  If you would prefer to install as an unmanaged packaged (installs just like apps off the AppExchange), you can do so into your sandbox here.  To install into your developer/admin org or into production, you can use this link.  PLEASE do not install directly into production without testing in the sandbox. You can also find more details, including end user documentation on my Competitors App project page.  

If you have any recommendations or ideas on improving let me know, I love hearing additional ways to help end users.  You can use the comments below, or the contact form in the sidebar.

Icon pack by Icons8


3 thoughts on “Tracking Competitors

  1. Rajesh Parikh says:

    Hi Meighan,

    When I try to deploy I am getting Error message as below:

    Deployment Started
    Status: Queued
    Status: InProgress
    Status: InProgress
    Status: InProgress
    Status: InProgress
    Status: InProgress
    Status: InProgress
    Status: Completed
    Deployment Complete
    objects/Competitor2Opportunity__c.object(67,16):AvailableFields in FieldSet is not editable for your organization.
    objects/Competitor2Opportunity__c.object(182,16):AvailableFields in FieldSet is not editable for your organization.
    objects/Competitor__c.object(57,16):AvailableFields in FieldSet is not editable for your organization.
    objects/Competitor__c.object(122,16):AvailableFields in FieldSet is not editable for your organization.
    objects/Competitor2Opportunity__c.object(127,16):AvailableFields in FieldSet is not editable for your organization.
    reportTypes/Opportunities_with_or_without_Competitors.reportType(369,18):In field: field – no CustomField named Account.SLA__c found
    workflows/Competitor__c.workflow(73,12):The Default Workflow User must be set before activating this workflow rule.

    Any ideas to fix these messages?


  2. Reg L says:

    Hi Meighan,

    This looks like a great custom object to use on our organization’s platform. However, the app is not downloading successfully… Just wondering if this is still available to install?


What are your thoughts? Seriously, comment.

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s