It is important for every person and organization to learn from own and other’s experience. This emphasis on the need for effective implementation of Knowledge management system and practice.

I want to share my learnings from implementing Knowledge management using Salesforce to leverage Salesforce Partner & customer community.

Want to migrate to Salesforce Knowledge base, here are few tips from my own experience:

1. Must maintain Legacy Id. That is a key

External Id is a key information and shouldn’t be missed. It helps to synchronize data between systems.

2. Capture other legacy information

It is always important to capture who and when posted a knowledge article for reporting purpose. Generally, such system fields are not writable in Salesforce, but Salesforce provides an ability to make then writable for migration activity after contacting. However, when it comes to the knowledge base, you will notice that you can’t really set value for CreatedDate, LastModifiedDate, LastModifiedBy, FirstPublishedDate and LastPublishedDate, FirstPublishedDate and LastPublishedDate.

3. Importing multi-language articles

Data loader saved a good amount of time in importing an article, but when it comes to multi-language article import, we cannot really do that using data loader. The only option is to use the standard way of SFDC to import articles with translations: Find it here

Now, what if you have a multi-language article with RTF field? Well, we don’t have a concrete solution for now, but this is what can be done. You can import multi-language article using SFDC standard approach with just few placeholder fields. Make sure you do not include RTF field. It will create articles and their translations. Once done, extract those article and translations using data loader. Once extracted, map those exported articles and translation with their RTF body using VLOOKUP using Legacy ID. Once a CSV is ready with SFDC article/translation ID mapped with HTML content mapped to text area field, utilize approach mentioned at point 4 to update article/translation.

4. Migrating HTML content

When your articles have HTML content, here is what Salesforce suggests. Above approach works well, when you do not have HTML content OR have just a few articles with HTML content. For HTML content, you need to create an HTML file and store it in a specific folder. And when you are importing articles, ZIP all the necessary files and upload using Import wizard provided by SFDC. It takes a significant amount of time and effort for creating HTML file manually.

We got a workaround for it. You can store HTML content in Long text area rather than storing it in RTF field. You can use data loader for migrating articles. Once articles are imported, convert that field to RTF field. It will ask for a certain question as if the existing data holds any HTML data? Select yes and you should be all good.

5. Handle special characters

Follow instructions from Salesforce here to handle the special character.

6. ALERT – CreatedDate and LastModifiedDate are not available in Formula field

If you are data modeling your knowledge base which refers CreatedDate OR LastModifiedDate in formula field. Hold there, as these fields aren’t available in formula field for Knowledge base. You have to opt for some custom way here.

7. Publishing Service class – Life savior

We cannot update knowledge article if they are published. You first need to bring it to draft mode, make updates and publish it again. This can be done from UI. But what if you have a bunch of articles. Doing it from UI will be time-consuming. In order to save the effort, you can automate this process to bring the article to draft mode and publish it. I would suggest you can write a small piece of code OR batch which will utilize methods from Publishing Service class make your life easier. Check out this detail for this class.

Be mindful of DML limits as every method, which updates something in backend count against DML.

Feel free to contact us, if you are looking for any assistance.