Thoughts on Managing Job Titles in Salesforce

Shaun VanWeelden
4 min readDec 26, 2018

Data Management and Data Quality are two things I’ve become very passionate about as I’ve dived into Salesforce.

One of the earliest and most consistent pain points for us was managing job titles. We have more than a handful of “title” related fields in our Salesforce instance, some examples would be

  • The default “Title” field
  • Title derived from Outsourced Work (UpWork, etc.)
  • 2 LinkedIn Title fields from two different apps
  • 4–5 Data Vendors fields (Clearbit, Leadspace, Reachforce, etc.)

The Problem

Most people and applications only look at and use the default “Title” field.

Not touching the Title field when augmenting data seems like a waste of potentially viable data. This weekend, I found over 15% of our leads had a job title in some field, but nothing in the default Title field everyone uses in their reports and our app leverages for segmentation. That sucks.

On the other hand, I trust some of these sources significantly more than others. If an SDR goes through and populates a bunch of job titles manually, but I overwrite their changes in the next weekly import from a 3rd party, I will have a frustrated team that doesn’t trust the data and doesn’t want to make updates.

The last problem today is that many platforms and integrations do update the default title field with their debatably trustworthy information. In a perfect world, I’d trust data we manually updated on a lead or contact or paid someone to look up on LinkedIn over a tradeshow upload that populates the title field. Forget about other fields, even the title field itself isn’t always trustworthy.

What we do Today

To partially solve this, we have came up with a “Best Title” formula field in Salesforce that is simply a rank ordered precedence of title fields. If the top trusted field is blank, go to the next. Our key marketing programs and Salesforce flows use this Best Title field for segmentation.

This solves the second part of the problem above, trusting the data, but leaves the first part of the problem woefully unsolved. Other applications have no idea we have a custom title field, and for better or worse, the field is read-only as it’s a formula field. It’s not even on our page layouts currently, it’s just used by those “in the know” behind the scenes.

A Potentially Better Way

To solve this problem well, you seemingly would need to be able to establish a “title source” precedence and then capture any update to a title-related field and see if the default “Title” field should be updated or not based on that precedence.

I think someone (including myself) could build exactly this in Salesforce today.

We could create a trigger to intercept any lead or contact update that contains a title field we’re tracking. Instead of simply letting the title field update go through, we look at what field updates have been made in the past and see if the update that’s being pushed through should take precedence on the title field. If so, update the “title” field, if not, leave the “title” field alone and either drop the update or let it update the 3rd party title field.

An Example —

Our field precedence may look something like this:
1. UpWork / manual field
2. Title field
3. DiscoverOrg field
4. Clearbit field
5. Leadspace field

DiscoverOrg creates a new lead and populates their DiscoverOrg Job Title field with the title it came up with. The trigger would then note that the DiscoverOrg title was populated with the initial value, and then it would populate the default “Title” field with the DiscoverOrg Value.

2 Months later, this lead is at a trade show and our marketing team does a list upload and updates this person’s “title” field to be what they found at the trade show. Because the update was to the default “Title” field, we know that takes higher precedence than the DiscoverOrg field and so we populate the “Title” field with the tradeshow value.

The next month, we get Clearbit to augment job titles. They populate their job title field with the value they came up with. Since we know this lead has had it’s “title” populated by the default “title” field in the past from our behind the scenes tracking, we leave the default “title” field alone.

Quick notes on Logistics as they are in my head now
The behind the scenes historical tracking would be done in a hidden textarea field on the lead/contact that is populated and managed by the trigger.

An app with a VisualForce component to set the field precedence would be helpful so no one needs to write code.

If someone manually updated the “title” field, that should always take the highest precedence. An easy, not foolproof, way to determine this case vs. a list upload using the default “title” field is by looking at how many records are included in the change. If it’s just 1, it’s likely a manual change from someone. If more than 1, it’s a bulk import/update.

Do you have this problem too?

If so, I’d love to hear if the above solution resonates with you and if you’d be interested in such a Salesforce application? See any holes, let me know!

Email: shaun.t.vanweelden [at] gmail.com
LinkedIn: Shaun VanWeelden

--

--

Shaun VanWeelden

Director of Computer Vision Engagements and Field Engineering at Scale AI | At the intersection between Customers and Code