M4S is a module that works with S4S and sits between Sitecore and Salesforce. M4S and its associated M4S database improves transaction speed, allows the volume of calls to Salesforce to be controlled, and ensures key Salesforce data, like login credentials, is available to Sitecore, even if Salesforce is not.
M4S replicates Salesforce records in an out-of-the-cloud MongoDB database (same technology as Sitecore xDB). Used with S4S, it can act as a highly configurable super-cache.
When S4S is used to push data to Salesforce, M4S simultaneously replicates the data in the M4S database. If Salesforce is unavailable, the data in the M4S database is flagged for sync when Salesforce returns. Data being pulled from Salesforce to Sitecore with S4S is sourced from the M4S database so no Salesforce API calls are consumed.
To keep the systems in sync, a Sitecore scheduled task updates the M4S database with recent changes in Salesforce (based on date/time stamps) and, in the other direction, updates Salesforce with any flagged changes in the M4S database. Because pushes to Salesforce are bulkified by S4S, the overall API count is significantly reduced.
In most cases, you will not need M4S but if you have critical concerns around the following then M4S is ideal:
The M4S database contains copies of Salesforce records so is it a backup and restore solution? The answer is yes, and no. M4S is an excellent backup solution but has constraints around restore. M4S stores Salesforce object fields, including the Salesforce relationship data with other objects, but M4S does not have mechanisms to connect them together. This means all new records created in the M4S database will be unrelated. If a relationship is required, this needs to be created in Salesforce.
What M4S can do!
Users with access to the Sitecore Launch Pad can log in and view Salesforce records in M4S (those that have been chosen to sync). A record list is visible and the field data is available by clicking into each record. The list is currently read-only. Sitecore access permissions can be granted to allow the Salesforce team to access this data if Salesforce became unavailable.
Records in the M4S database can be created, read, updated or deleted by purpose-built Sitecore functionality and these changes will be reflected into Salesforce when the next sync occurs.
What M4S can't do!
There is no out-of-the-box support for relationship handling. New records created in the M4S database with relationships to other records (like account and contacts) will require the relationship to be created in Salesforce.
The dashboard provides an insight into the M4S database and lets you configure your sync settings. It is also where you go to view Salesforce records if you cannot access Salesforce. You can open the dashboard from the Sitecore Launch Pad.
The cached records are stored in the M4S database, typically on the same network as the Sitecore server. Because the data store is local to Sitecore it is not impacted by the delays and API constraints of cloud stored data.
M4S Cached Records
Selecting a record opens a page with a list of Salesforce fields (including custom fields) that relate to the chosen object. The data, stored in the M4S database, and is as up-to-date as the timestamp indicates.
Result: In each scenario, Salesforce may be hit with a large number of API calls within a 24 hour period. If the API count is exceeded, Salesforce will close the API for 24 hours, which will adversely impact the website.
Solution: With M4S installed, Sitecore uses the M4S database, so very few Salesforce API calls are consumed (explicit calls can bypass M4S). Independently the scheduler bulk updates Salesforce and then updates the M4S database with any changes in Salesforce.
Result: With Salesforce unavailable, these important web form submissions would be lost.
Solution: M4S handles this situation transparently so the website visitor will be unaware of a problem. Under normal circumstances, the form data is pushed to both Salesforce and the M4S database but with Salesforce unavailable, the data is only captured in M4S. When Salesforce comes online, M4S will automatically update Salesforce with the new data.
Result: With Salesforce unavailable, these website visitors would not be able to log in.
Solution: Again, M4S handles this situation transparently so the website visitor will be unaware of a problem. The login credentials are available in the M4S database so login is possible.
Result: Interactions slower than ideal adversely impact user experience and may cause loss of business.
Solution: The M4S database is adjacent to the Sitecore server so information access is extremely fast. Where multiple calls to Salesforce are required, these occur locally, with only the final updated data pushed to Salesforce during the next synchronization.
Ready to join the integration revolution?
Get started and enjoy the benefits sooner