Establishing a connection between leads and accounts can give you insight into what customers are coming in as leads and tighten sales and marketing alignment. Salesforce Flow can be used to automatically match leads to existing accounts based on different criteria. In this post, I’ll show you how to match leads to accounts based on domain a well as company/account name.
Note: This is a follow up post to ‘How to Set Up Lead-to-Account Matching in Salesforce Using Process Builder and Flow’. There have been new features and capabilities added to Salesforce Flow since the original post was published on May 26, 2020. You can now achieve lead to account matching in Salesforce using Flow only. |
The lead to account matching process
The goal is to populate a related list on the accounts with the matched leads.
The matched account will also be shown as a lookup field on the lead.
Here’s a high-level look at what needs to happen to setup lead to account matching:
- Lead is matched to an account based on email domain.
- If the lead email domain does not match an account email domain, the match will be based on lead company = account name.
- A Flow is used to identify the matched leads and update them accordingly.
Create lead fields
Create a new lookup field on the lead to the account called “Account”.
Create a new formula field on the lead called “domain”, using the following formula:
SUBSTITUTE(Email, LEFT(Email, FIND("@", Email)), NULL)
Create account field
Create a text field on the account called “domain”. This is the field we will use to match the account domain to the lead domain. You will need to populate the account with the domain. This tutorial will not cover how to populate the domain on the account level.
Create the flow
Navigate to Setup > Process Automation > Flows and select new flow. Select Record-Triggered Flow from the wizard.
Configure Start
Configure the start conditions to occur when a record is created or updated and optimize the flow for Actions and Related Records.
Set the trigger to run on the lead object if email is not empty or if company name is not empty.
Create variables
Create a variable called AccountId
Add a Get Records element to the flow
Drag and drop a Get Records element to the page. This element will look for a domain match based on the domain on the account and the domain on the lead.
Connect the start of the flow to the new element.
Add a Decision element to the flow
Drag and drop a decision element on to the page. This will check to see if there is a domain match or not.
The default outcome should just be left empty.
Save and connect the get records element to the decision element.
Add a Update Records element to the flow
Now add an update records element to the flow. This will update the matched Account lookup on the lead if there is a domain match.
Add a Get Records element to the flow
Next, add another get records element to the flow to check to see if there is a company/account match.
Save and connect the element to the decision element (default outcome).
Add an update records element to the flow
Lastly, add another update records element to the flow to update the account lookup on the lead if there is a company name -> account name match.
Save and connect the last element to the flow. Your final flow should look something like this:
Activate the flow
Save and activate your flow!
Test, test, test
Make sure you test! Here is what my testing process looks like:
- Make sure all the new fields are added to the page layout (at least for now)
- Find an account to use to test (ex. Burlington Textiles Corp of America)
- Populate the domain field on the account (ex. burlington.com)
- Create a new lead using that domain as part the email address (ex. [email protected])
- Ensure the domain field on the lead is populated with the correct domain from the email address you entered (ex. burlington.com)
- Look at the lead to see if the account lookup is populated with the correct account
- Look at the account to ensure the lead is populating in the related list
- Create a new lead where the company name = the account name from your test account (ex. Burlington Textiles Corp of America). The email address for the lead should use a invalid domain name (ex. [email protected])
- Look at the lead to see if the account lookup is populated with the correct account
- Look at the account to ensure the lead is populating in the related list
If you have it set up so your process will run when a lead is created and updated, repeat the steps to test an updated lead. You will also want to test different lead scenarios based on the filters you specified in your process builder. For example, if you have a filter to exclude all @gmail.com email addresses, try updating or creating a lead with an @gmail.com email address to ensure the lead updates as expected.
Questions?
Send me a tweet @jennamolby, or contact the Sercante team for help.