With the advent of Software as a Service (Saas) and Salesforce’s commitment to this technology, a rich API is available to enable integration between CRM and other client applications. And one of the client applications that can be Manufacturing Cloud integrated is the LMS system.
General considerations
First, there are two primary (and competing) factors to consider to optimize CRM transaction times:
- Batching data
Stacking as much data as possible in an APEX API call can reduce cross-network traffic.
- Reducing the size of data requests
The more data is sent to the CRM, the longer it takes to process. It is best to only transmit the data that is currently necessary to the CRM. Sending superfluous data only increases the size (and processing times) of APEX API calls.
Of course, these factors are in conflict with each other. And users often have to balance transaction speeds with other business needs to determine just how optimal CRM transactions can really be.
Another factor to note is that SalesForce enforces a daily limit on the number of APEX API calls. This is done to balance server processing across multiple concurrent users.
From users to business leads
There can also be good business reasons for converting LMS student data into business contacts via the CRM application. This is especially true in situations where companies are selling training to customers, vendors, or partners.
An automated process can turn a newly registered learner into a CRM business lead in the LMS. With the SalesForce APEX API WSDL (Web Service Definition Language), lead objects can be generated and added directly to the leads database. And the person used to authenticate the application becomes the owner of the newly generated lead.
And if your registration process collects data that is not native to the CRM application, custom data objects can be created to represent that application-specific data. When these objects are created, a new APEX API WSDL must be generated to make them available to your application interface.
From SalesForce to LMS
The next question is, “How can I access my SalesFoce.com LMS data as seamlessly as possible?” Given the nature of SaaS, CRM offers the opportunity to create your own application within the CRM structure. You can create custom tabs visible to your SalesForce users. These tabs can use custom HTM, URL, or Snippet s-controls. You can use whatever is appropriate for your LMS integration and acceptable as a UI element for your users. With this setup you can easily connect to your LMS.
A related task is logging into the LMS. If your LMS supports single sign-on, you may want to use the same user IDs in both the CRM application and the LMS. In this case, the user can click a link in the SalesForce application, is automatically logged into the LMS and gets its home page. Of course, you have to consider user password security here. And that again depends on the LMS. It can use a generic password for all users connecting via a single sign-on procedure, or an MD5 hash (or similar encryption technique) of pre-agreed data, combined with each user’s specific LMS data for authentication could be verified.
From LMS to CRM
Communication in the other direction – from the LMS to SalesForce – depends on the data that needs to be stored in the application. Some examples of data that could be passed from the LMS to a CRM application are training purchases and course results. (Educational purchases assume that the LMS uses an e-commerce module where web or education-based courses can be purchased.)
Again, an important consideration becomes whether this data should be transferred in real time or via scheduled batch jobs.
- The real-time option requires the LMS to support calls to the SalesForce interface when updating user results or making an LMS purchase. These calls would be made through a web service that would submit the data to the website. Any data properties that the CRM does not inherently support can be created as custom objects, so no data needs to be left out.
The advantages of this are that the application is always up-to-date when an administrator or notifier queries its data. The downside is the overhead for each invocation of the application. The number of calls made through the APEX API can be estimated but not predicted as they occur as events occur.
- Batching data does not use real-time callouts from the LMS code, but instead pulls data directly from the LMS database at scheduled intervals.
This lends itself naturally to the recommended batching of data on SalesForce’s servers, and the number of calls required to do this is both predictable and small. However, there is a time delay between the actual activities in the LMS Manufacturing Cloud and the transfer of the resulting data to the CRM application.
The decision between using a real-time interface or a batch process depends on, but is definitely not limited to:
- The timeliness with which the company must achieve SalesForce.
- The ability of the LMS to support real-time data collection and communication.
- The estimated volume of data transferred to the CRM system (bearing in mind that it enforces a daily limit on API calls).