In Salesforce, lead management allows your marketing and sales teams to market, qualify, and build your sales pipeline with prospective customers. Once qualified then a lead can be converted into a formal Account, Contact and (optionally) an Opportunity.
The big question addressed in this post with lead conversion is what data comes over during conversion and, more importantly, what data isn’t and how do we fix that?
What Comes Over – Standard & Custom Fields
Many of the standard lead fields are mapped during conversion to the new account and contact records, and as the administrator you can configure which custom fields from the lead are mapped (or not) to the account and contact too.
What Comes Over – Standard Related Lists
Likewise, some of the standard related lists are carried over, such as Campaigns, Activities, and Notes and Attachments, to the new account and contact.
What is left behind?
However, if your team has been using Chatter or custom related lists or using Salesforce Files (and you really should!) then, unfortunately, that data is not brought over to the account or contact upon lead conversion! So sad…
This has been a point of frustration for many users over the years and multiple ideas have been raised and questions asked on the community forums looking for workarounds:
- Lead Conversion – Allow mapping of all Lead Related Lists
- Keep Old Records in Leads to Contact Conversion
- When converting Leads, allow custom Object records to be converted to the Contact
- How to convert a related list object from a lead to a contact?
- Chatter Feed Should Follow Converted Lead onto New Contact
- Attaching documents thru Chatter on the Lead doesn’t flow onto Opportunity
- Lead to Account conversion & data migration
- Can you convert a lead custom related list upon conversion?
- Moving custom object with data to contact after lead to contact conversion?
Solutions – Chatter
John Kucera’s free app Lead Convert Chatter lets you choose which objects the lead’s chatter posts should be copied to upon conversion. By default they go to the contact. There are a few limitations: comments on posts or some types of posts like file posts are not copied over. No silver bullet here, but better than nothing!
Solutions – Custom Related Lists
Kevin Willemse responded on the Answers Community about how to use Process Builder to update the lead’s related records and populate a Contact lookup field so that the records would now show on the newly converted contact.
The gist of the solution is that in addition to the Lead object lookup field on the custom related object, add a Contact (or Account or Opportunity) lookup field as well then create a process using Process Builder that will update the lead’s related records by setting the Contact (or Account or Opportunity) lookup field equal to the lead’s converted contact id when the lead becomes converted.
- On the custom object, add a new lookup field to Contact object. As long as the record is being used on a Lead then this field will be null. It will be updated via process builder once the lead is converted into a contact.
- Create process named “Lead Conversion” on Lead object and start the process when a record is created or edited.
- Add a criteria that checks if the lead is converted. In the field chooser, it may be listed as Converted and once chosen display as [Lead].IsConverted:
- Add an action to update records and choose the custom object’s name that has __r suffix (e.g. My_Objects__r) then configure field assignment where the custom object’s contact lookup field is assigned the value of the lead’s converted contact id:
A real-life example where I’ve used this trick is when using Survey Force (or other survey tool) that is capturing responses at the lead level but we want to carry that data over to the contact on conversion. Just as described above, I added a contact lookup field to the survey response object and used Process Builder to populate it with the lead’s converted contact id when the lead was converted. Voila, related list data follows the lead through conversion!
Solutions – Salesforce Files
UPDATE: Summer ’17 release now preserves Salesforce Files during Lead Conversion.
As of this writing, Salesforce does not preserve related Files during conversion operation, although it does bring over Enhanced Notes to the converted Account and Contact. The Files are left orphaned.
Inspired by Gorav Seth‘s realization of this on Success Community, and by Matthew Souther‘s comment of suggested solution, I developed a simple trigger to demonstrate how to preserve and carry over the Files to the converted Account, Contact, and Opportunity. You can get a copy of the code from my GitHub repo https://github.com/DouglasCAyers/sfdc-preserve-chatter-files-on-lead-conversion.
Conclusion
There is a need to improve the lead conversion experience in Salesforce to bring over all history including Chatter posts, Files, and other related and contextual data. There is no single silver bullet solution that I know of, but there are workarounds with varying degrees of success.
Please share in the comments how you are addressing this issue and any potential solutions I may have overlooked. Thanks!
This is fantastic! Glad I came across this post. Thanks!
LikeLiked by 1 person
Hi Bailey, thanks for the kind feedback!
LikeLike
Great post! Thanks, very useful moving forward. Now to find the “lost things” …Any suggestions on retrieving chatter data on converted leads in some kind of csv? I’ve tried the data loader info shared here, but it isn’t exporting posts on converted leads. https://help.salesforce.com/apex/HTViewSolution?id=000232269&language=en_US
LikeLiked by 1 person
I went with enabling these permissions http://docs.releasenotes.salesforce.com/en-us/spring16/release-notes/rn_sales_leads_edit_converted_leads.htm. I didn’t test if the permissions would allow me to export the data I needed, but at least I was able to go back into the leads and review them. As a note, I don’t want to be working in converted leads ongoing, so I built a permission set with the access and then removed myself once I was done.
LikeLiked by 1 person
Hi Jessica,
Thanks for the kind feedback and for sharing your steps! Which specific Chatter data are you trying to obtain that isn’t coming over in the Lead Conversion process?
As far as exporting the data, there are multiple objects that contain Chatter data depending on the type of “post” that is made and their names are prefixed with
Feed
:* FeedAttachment
* FeedComment
* FeedItem
* FeedLike
* FeedPollChoice
* FeedPollVote
* FeedRevision
* FeedTrackedChange
The core object to start with is
FeedItem
(which represents the post) and the other objects have aFeedItemId
field that relates back to this object.Thanks,
Doug
LikeLike
Great solutions, Doug! Carrying chatter through conversion is key to collaboration in the onboarding process. I’m surprised related lists can’t map over natively yet, too. I tried building the process to update the account id on a contract related to a lead that gets converted (when lead.isconverted = true, update contract.accountid to lead.convertedaccountid), but for the life of me I can’t get it to work in my sandbox. I’ve got it configured just as you describe and active but the contract’s account doesn’t get updated on lead conversion. I know process builder has many caveats, limitations and known issues…any idea why this seemingly simple solution won’t work for me? Thanks and keep up the inspiring work!
LikeLiked by 1 person
I got the PB to work in my dev sandbox this morning. Thanks again Doug.
LikeLiked by 1 person
Doug,
Need help.
I created process and followed the same steps but cannot see the related list records on contact object upon conversion of lead.
My custom object has 2 lookup fields one to lead and one to contact. I am populating lead id at the time of creation of custom object. so on conversion of lead to contact i want all the related lists of this lead record to be carried over to contact.
Any suggestions?
LikeLiked by 1 person
Hi Sravan, we had the same problem and found we were blocked by a system permission called “Use Apex Lead Convert”. If you don’t see “Require Validation for Converted Leads” Lead Setting option, you can ask Salesforce to enable the Apex Convert permission. It’s something you’ll want to shakeout in a test sandbox, as you may have rules or triggers that you don’t want firing during conversion.
LikeLiked by 1 person
Brian , Thank you for your response. i will give a try and let you know. Right now as you mentioned above i cannot see it in my lead settings. I will raise ticket with salesforce as suggested above.
LikeLiked by 1 person
Brian, It worked like a champ after salesforce enable that feature for our org. Thank you for your help.
LikeLiked by 1 person
Awesome! Glad to help.
LikeLiked by 1 person
Thanks for jumping in to help, Brian! Good to know about that feature setting must be enabled. I wonder if that is on for new orgs but perhaps off for older ones?
LikeLike
Totally! My dev org had the lead option out of the box. Apparently it was put out in ’08 so it’s available upon request for older orgs.
LikeLiked by 1 person
Thank you for this idea and post. I am trying to map a custom task related record (connected via a custom LeadID lookup) to the contact upon conversion. I set the process to update related tasks ([Lead].Tasks) where the custom LeadID equals to the ID of the lead being converted and I am updating the custom ContactID lookup with the converted contact ID. My problem is that it is not working and the tasks are not mapped to the contact upon conversion, what am I doing wrong?
LikeLiked by 1 person
Hi Tamar, is your org older than 8 years? Do you see an option on the Lead Settings screen to “Require Validation for Converted Leads”? Process Builder will fail silently if this isn’t enabled.
LikeLiked by 1 person
Hi Brian, yes this setting is enabled and still the process isn’t working.
LikeLiked by 1 person
Hi Tamar, is the process active? Also, could you provide screen shots of your config to help with troubleshooting? Thanks!
LikeLike
Hi Tamar, please try Brian’s suggestion about the Lead Settings and let me know if you’re still having issues. Thanks!
LikeLike
Hi Doug, yes this setting is enabled and still the process isn’t working. I also can’t seem to find the process in the debug log in the developer console after converting a lead. How do I add a screenshot to a comment?
LikeLiked by 1 person
For screen shots, you can either use imgur.com or share a word document in Google Drive or something similar. Thanks
LikeLike
I couldn’t fing a way to share a google doc with you so I shared a screenshot with you on the success community
LikeLiked by 1 person
Thanks Tamar. I’ve posted reply there, and am posting here to close the loop:
I wonder if the issue isn’t related to known issue: https://success.salesforce.com/issues_view?id=a1p3A0000008frjQAA
Either way, since those tasks are ones that already belong to the Lead that the Process is running on, you likely don’t need the filter expression in your action and can choose the option “No criteria – just update the records!”
Thanks,
Doug
LikeLike
Perfect KISS solution for APEX-averse admins!!!! Worked perfectly on first attempt
LikeLiked by 1 person
Great! Thanks for the kind feedback #AwesomeAdmin
LikeLike
Thanks. Great instructions. Quick and easy to get it running and keep my custom object data related.
LikeLiked by 1 person
Great to hear Mig! Thanks for the kind feedback =)
LikeLike
I think I’m having the “Require Validation for Converted Leads” issue and have contacted Salesforce Support. Will let you know if I get this working!
LikeLiked by 1 person
Salesforce enabled that setting and now it works perfectly!! Thank you so much for these instructions – I’d suggest adding this note about this setting to the main article, I’m glad I read through the Comments because I couldn’t figure out why it wasn’t working 🙂
LikeLiked by 1 person
Awesome, thanks for the follow up and kind feedback! Seems more than a few people have hit this, I’ll update the blog post to mention needing the setting enabled.
Thanks!
LikeLike
Hey. I need something similar to be done via meta-API. Push custom lead fields automatically to custom contact fields upon lead conversion. Can this be done.
LikeLiked by 1 person
Yes Mohan, please see this post https://douglascayers.com/2016/06/26/advanced-lead-conversion-with-process-builder/
LikeLike
Hi Doug,
Can you please explain how to show/hide the Contact or Lead lookup field. People should not see a “Contact” lookup on Lead related records, or “Lead” lookup on the Contact related records.
LikeLiked by 1 person
Hi Raj, I’ve posted a follow up answer to https://success.salesforce.com/answers?id=90630000000DIjlAAG
LikeLike
Hi Doug,
Great post!
I’ve noticed that you’ve updated your blog by stating that ”Summer ’17 release now preserves Salesforce Files during Lead Conversion.” I guess this update doesn’t include Chatter because even now when I convert a lead, the Chatter still disappears. Is what you recommend in this blog still the best way to overcome this issue?
LikeLiked by 1 person
Hi Lynn, I know the Salesforce Files team was looking into this. I recommend you reach out to them on Success community in the Files chatter group. I have not updated this app since those changes so this may or may not conflict. You’re welcome to test it out and continue using it if it meets your needs.
Thanks
LikeLike
Hi Doug. Four years later and this solution still works beautifully. I configured the PB to relate Cases to the New Contact upon Lead Conversion. I didn’t see the Case roll up to the Account however. I see the Account Name in the Case but it won’t roll up to the Account “Cases” Related List. Any thoughts/suggestions? Thank you. Keep doing what you do. ; )
LikeLike
Thank you for posting this, i’ve been struggling with something so simple for ages. Every other source i’ve been looking at has been suggesting Triggers or Apex code, but this does everything in one!
LikeLike