As I mentioned in my first post in this series, integrating Sitecore and Salesforce can be broken down into three main options: Custom build your integrations (discussed here), use the Sitecore Connect connectors to either Salesforce CRM or Marketing Cloud (additional licensing costs), or pay for and implement the robust FuseIT S4S connector. Understanding which connectors do what, and when they should be used, versus building something from scratch via the Salesforce and Sitecore APIs, is important to understand so you can choose the option best suited for you.
Custom Build Integrations
Custom building your integration between Sitecore and Salesforce is the most flexible and potentially the most expensive and time consuming. You may have to do this if you want to connect to a Salesforce product that is not already supported with another connector. This is why it is important to understand exactly what the other connectors do.
However if what you want to do IS already in either the Sitecore connectors or the FuseIT connector (both licensed options), it may be well worth it to leverage those. It will be faster, preventing you from having to spend a lot of time reviewing API guides and figuring out how to do it. And also it could allow you to avoid pitfalls around Salesforce licensing restrictions, especially in the case of the FuseIT offerings.
If you do find yourself needing to build an integration, here are two great free toolkits to consider. Verndale has experience with both and highly recommends them:
- Force.com Toolkit for .NET: https://github.com/developerforce/Force.com-Toolkit-for-NET
- Salesforce Magic: https://github.com/michael-shattuck/SalesforceMagic
The Force.com Toolkit, per the description on the github repo: "provides an easy way for .NET developers to interact with the Force.com & Chatter REST APIs using native libraries."
As for Salesforce Magic: "This library is intended to be a simple, solid, and small library that encompasses and provides access to the SOAP, REST and Bulk API's for Salesforce. The magic lies in the library's ability to dynamically generate SOQL/SOSL queries based on generic types and also the dynamic generation of the SOAP wsdl. You will never have to replace or update a wsdl again."
At Verndale, we've used these for user authentication, user profile storage, user analytics event storage, submission of lead generation forms data, etc.
That said, when you decide to build your custom Salesforce integration, be very careful with your Salesforce API calls. Salesforce restricts this based on several factors and it could either result in additional licensing requirements (more $$) or access to Salesforce being restricted once you hit your limits (bad user experience!).
If you don't want to deal with figuring that out, or learning the APIs or these toolkits, then consider the FuseIT S4S connector. Also, the Sitecore Connect connectors are continuing to be extended and enhanced. You should definitely read about those in my posts and decide if they cover your needs, as it will be far easier to implement those than write the API integrations from scratch.
I've purposefully left this post on the shorter side to compartmentalize each Salesforce integration option into its own post for easier consumption. The github repos linked above will provide plenty of sample code for using these toolkits. To read more about Sitecore Connect for Salesforce, click here. To read more about FuseIT S4S Connector, click here. For a summary or cheat sheet of what connector option might be right for you, click here.