Thoughts on Managing Job Titles in Salesforce

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

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

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

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?

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

Field Engineering Manager at Scale AI | At the intersection between Customers and Code

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store