How can you align the contact owner with the account owner in Salesforce, automatically? There are many ways and reasons to do this, and unfortunately, is greater than the scope of this article. These Salesforce support requests below cover some of the use cases for this feature:
We’ll focus primarily on creating a process to update the contact ownership to the account owner when a record is created or updated to match a certain record type. In our scenario, let’s just say that we need to have all of our Customer Contacts be the same owner as the Account Owner – regardless if Support, Finance, Marketing, Sales, Order Operations, or any other members of your organization creates a contact associated with that account record. This process will also trigger if you move account ownership from one user to the next. Here is an example request I’ve received:
How can we create a process to transfer ownership automatically, rather than manually?
Using Process Builder to Update Contact Owner to Account Owner in Salesforce
Using Salesforce Process builder makes this requirement very easy to implement.
NOTE: If you are using several API only integration users that have access across your Org, and have many contacts associated with an Account, you may run into errors such as Too many DML rows, or the ALL_OR_NONE_OPERATION_ROLLED_BACK error. In these scenarios, you can update the Process Builder to exclude the Account IDs of accounts that cause problems, or limit the integration user from access these records.
Starting off, I’ve already created a formula on the Account Object to view the Account Owner Id on the Account Record. If you aren’t familiar with how to do this – create a new formula field on the Account record to pull that ID using “CASESAFEID” similar to the below image:
Got that all set? Perfect, now let’s pull up the Salesforce Process Builder, and click the create a new process. Let’s give it a name and give it a description. (our click path would be Setup->Create->Workflows & Approvals->Process Builder). Click “new” in the top right corner. Give it a name and description. When you get to the drop-down for”The process starts when”, we’ll select whenever a record changes.
What this will do is whenever an account record changes, it will invoke our process. Our second step is to add the Object that will be changed to our process. We’ll select the Account object, and set it to run whenever a record is created or edited.
For the next step of our process, we want to have the criteria condition be that an “Account Becomes A Customer”. To do this, we’ll pull the Account Record Type ID and have it equal to the Customer Record type we’ve set in our Org. Here is where you’ll also want to eliminate accounts that may have too many contacts. You’ll see that in the below as Account ID “does not equal” :
After creating the criteria condition in the above, the next step is to “Update the Contact Ownership”. To do this, we want to filter the criteria to only include Contacts whose ownership is not equal to the account owner. In the below, you’ll see how we set that the Contact Owner ID =! AcctOwner ID. The new field value that we’d update will have the owner ID be a formula, which will pull the account owner ID and set that as the contact owner ID :
The reason we have the contact owner not equal to the account owner id in the filter criteria is so the process does not unnecessarily update contact ownership that already is owned by the current account owner.
Our final step is to activate this process, and use a Customer Record Type to test the process and confirm that it works. Congrats, we’ve successfully created a process to ensure that all contacts are owned by the account owner!
Do you have any issues updating contact ownership with an account? Reach out to me in the comments below!