M4S Overview

MongoDB for Salesforce.com  -  Super Caching for Salesforce

The MongoDB for Salesforce ("M4S") connector localizes Salesforce data for use with Sitecore CMS software. M4S can act as an advanced super cache, reducing the API calls to Salesforce to as little as you decide, or as a data store that serves both as a gateway to Salesforce and an emergency backup of data should Salesforce become unavailable.

M4S uses FuseIT's proven S4S connection engine to pass data to and from Salesforce in a secure and efficient way.

M4S

What can I do with M4S?

  • Create, read, edit and delete Salesforce.com records from ASP.NET applications

  • Pull Salesforce records and attachments to ASP.NET applications

  • Significantly reduce the number of API calls to Salesforce

  • Significantly increase the access speed to Salesforce data

  • Access data locally when Salesforce is offline

  • Bulk process Salesforce data from .NET applications

  • Transparently handle Salesforce custom objects and fields

  • Use MongoDB toolsets to extract business intelligence

  • View Salesforce data with MongoDB client interfaces

  • Configure data access for real-time or scheduled synchronisation

  • Easily develop extended features using the professional .NET interfaces


M4S can be extended to auto-generate a web portal that surfaces Salesforce records so internal users can access key information if Salesforce goes offline (data source is MongoDB).

One Way Synching from Salesforce

Scheduled synching is recommended but is not always necessary. It is possible to run M4S without synching because the records get added to MongoDB as they are retrieved from Salesforce. When synching is chosen, M4S ensures data integrity by making Salesforce the "master" and only pulling information down to the local instance of MongoDB.

  1. A scheduled task on a local server fires an M4S synch method every, say, 5 minutes
  2. M4S looks at its config file and finds the first Salesforce schema object (e.g. Contacts) that requires synchronisation to MongoDB
  3. M4S gets all records from the Salesforce schema object that have changed since the last sync
  4. M4S inserts or updates the records into MongoDB
  5. M4S looks at its config file and finds the next Salesforce schema object (e.g. Accounts) that requires synchronisation to MongoDB
  6. Process repeats until MongoDB is fully up to date for the subset of Salesforce schema objects

ASP.NET Read from Salesforce – Record found

  1. ASP.NET requests M4S to get data from a Salesforce record (e.g. a contact)
  2. M4S looks in the cache (which has been configured to use MongoDB) and finds the record
  3. M4S returns the record to the requesting ASP.NET code

ASP.NET Read from Salesforce - Record not found

  1. ASP.NET requests M4S to get data from a Salesforce record (e.g. a contact)
  2. M4S looks in the cache (which has been configured to use MongoDB) and cannot find the record
  3. M4S uses S4S to call Salesforce and return the object to the requesting ASP.NET code
  4. M4S inserts the object into MongoDB so it is locally available in the future

ASP.NET Create/Update to Salesforce

  1. ASP.NET code passes a new or updated record to M4S
  2. M4S uses S4S to insert or update a record in Salesforce. The record id is returned in the Save Result
  3. M4S inserts or updates the record in MongoDB (with the Salesforce object id)

ASP.NET Create/Update to Salesforce when Salesforce is Offline (in development)

  1. ASP.NET code passes a new or updated record to M4S
  2. M4S uses S4S to insert or update a record in Salesforce. Save Result will detect failure
  3. M4S inserts or updates the record in MongoDB (and flags it for "Action required")
  4. When the scheduler runs, it checks Salesforce is available, then looks for flagged records. M4S then uses S4S to insert or update the flagged records in Salesforce and updates MongoDB with the record ids from the Save Result

ASP.NET Delete to Salesforce

  1. ASP.NET code makes a delete request to M4S
  2. M4S uses S4S to delete the data from Salesforce then deletes it from MongoDB depending upon the Delete Save Result.

FuseIT have several enterprise integrations between Sitecore, Salesforce and HPE Records Manager (HP TRIM) that let you selectively share data and documents internally or to the public.