Today’s guest blogger is Ross Talbot, a Development Principal at Sonoma Partners
While both Microsoft Dynamics CRM and Salesforce.com are both top-ranked CRM applications…sometimes customers migrate from one tool to the other. The reasons to migrate vary by customer, but pretty much all of them say something like “Hey it’s not you, it’s me”.
As part of some recent Microsoft Dynamics CRM deployments for Sonoma Partners customers, we also migrated the customer’s Chatter data to Microsoft’s Yammer app. While The customer obviously wanted to save their years of Chatter history and posts, and they didn’t want to start with a blank Yammer app. Since Yammer and Chatter offer very similar capabilities and use comparable data models, the customer asked if we could help migrate all of their Chatter data to Yammer?
At first blush, this might seem like a pretty straight-forward request. Both Chatter and Yammer have API’s…we should be able to migrate the historical Chatter data to Yammer pretty easily right? Unfortunately there are some constraints in the Yammer API that increased the level of difficulty. Having completed multiple Chatter to Yammer migrations, we have learned a lot of tips and tricks to make this process go more smoothly each time. Let’s consider some high level information about our most recent Chatter to Yammer migration:
- Large enterprise customer – 5,000+ users
- More than 3 years of Chatter data including:
- 175,000+ posts
- 300,000+ comments
- 125+ GB of files/documents
Getting the data out of Chatter was no problem using their API, and we were able to migrate the following types of data into Yammer using their API:
- Posts and comments (along with user impersonation so that it preserved which users previously made the comments)
- Files (including both Chatter Files and Salesforce Content)
- Images (interesting to note that Yammer supports up to 25 images per post, while Chatter only supports one image per post…the customer liked that)
- Private messages (being very careful to respect the security model so that the private Chatter messages stayed private in Yammer!)
- Topics and hashtags (like #chatterMigration)
- User profile information, including manager info
- @ mentions of users in posts
- Deep CRM linking (linking Yammer posts to the appropriate CRM case, account, contact, opportunity, etc.). Maintaining this deep CRM linking proved key to the customer because more than 90% of their old Chatter posts were directly linked to CRM records.
- Likes – the customer didn’t ask us to do this in the end, but this was supported if someone wanted it in the future
With that said, there were a few areas that we had to “get creative” on importing the data into Yammer. These areas included:
- There is no supported way in the Yammer API to import group memberships (which users belong to which groups). We can’t reveal our secret sauce here, but the hint is Fiddler trace. :)
- The Yammer API throttles imports to 10 posts per user every 30 seconds. With 175,000 posts and 300,000 comments for 5,000 users…we had to leverage multi-threading to get the data import done in a reasonable amount of time.
- There’s no such thing as Yammer sandboxes, so during UAT and production migration we had to employ a bunch of tricks to prevent 500,000 @mention notification emails going out to users! We also developed some scripts and utilities to bulk delete the Yammer test records from the org (we needed the Yammer org empty for the final import!). Again not all of delete actions we needed were not supported in the Yammer API so we developed our own processes.
- Sadly, there was no supported way (and no creative workaround that we found) to maintain the original Chatter post date in Yammer. So all of the imported posts have the same posted on date and we simply appended an “Originally posted on xx/xx/xxxx” line into the Yammer post so that users knew how old the original post was.
Generally speaking Sonoma Partners avoids unsupported techniques at all costs, but we tested these scenarios very thoroughly and received approval from the customer to move forward knowing some of these areas were unsupported. Since these were just one-time unsupported techniques for the data migration (versus being used ongoing in production), everyone felt the reward was worth the risk.
In summary, if you’re looking to migrate from Chatter to Yammer… and you’re bumping into some of these issues please give us a ring, we can help you out! We have the kinks worked out, the data mapping documents done, and the migration scripts pre-built.
(Likewise if you want to go from Yammer to Chatter, we bet we can help you out there too)