Integration of Salesforce with other systems in the company
Nowadays, we have become accustomed to the presence of many specialized systems in our companies. We use dedicated software to support the processes of sales, customer service, marketing, production management, warehouse operation, recruitment, human resources management and many others. Most of the aforementioned business processes are completely different from each other, which is why they are most often handled by people characterized by different sets of knowledge and skills (e.g., both an accountant and a high-voltage electrician work with large numbers, and yet they are not the same thing).
These differences also apply to the software supporting the company's processes, as they most often differ dramatically in the functionalities provided. Of course, the described diversity is completely expected, however, the greatest benefits will be achieved when the systems we use are properly integrated with each other, i.e. are able to communicate and cooperate efficiently with each other (e.g., a customer portal that allows self-management of purchased products; a marketing system that sends e-mail correspondence to a group defined in our CRM system; transmission of invoice information from the CRM system to the accounting system).
The following article aims to introduce the integration capabilities of the Salesforce platform with other systems in the company. Salesforce CRM is very often used to handle a company's most important processes (sales, customer support, marketing), so it most often also serves as a central system in the organization.
What is integration?
Imagine that we have purchased a new gaming console. All we have to do now is to directly(P2P) connect(integrate) the device to the TV with an HDMI cable(interface) and turn on the power supply. It turns out that the power supply has a UK Plug not compatible with EU type sockets(interface incompatibility), but fortunately we have an adapter(middleware). The last thing is to connect the console to the WiFi network (router - middleware) and we can start downloading 100 GB of trendy game. Just, in a very strange way, was described the integration of four systems (game console, TV, power network and computer network), through different interfaces. The devices provide unique resources and functionalities, additionally expecting specific behaviors from the integration, e.g. a device connected to the power supply will receive 230V current, not data in JSON format.
Generalizing, information systems integration is the process of connecting systems so that they can use each other's resources and functionality. Systems can be integrated with each other through interfaces (APIs) in a number of ways, and special attention should be paid to the purpose and scope of the integration, as well as the limitations of the systems being integrated. Therefore, a very important activity that should be carried out before starting integration is business and technical analysis. Through it, we will be able to better understand the expectations and limitations of the integration, which will protect us from limping processes, endless data fixes and skyrocketing costs.
Looking at integration from the side of its application, we can distinguish 3 basic types:
- Data integration - occurring when we need to synchronize information between systems used in a company. The biggest challenge of this type of integration is to ensure that different systems contain compatible data (data reconciliation). Example: a marketing automation system pulls customer data from a CRM to run a marketing campaign.
- Process integration - this is the ability to use the functionality of one system by others. Example: the process of online payment is most often delegated, since we are usually only interested in the status of the transaction.
- Virtualization - occurring when one system is able to affect data residing in another system without having to replicate the data in the first system. This means, for example, that in a multi-application environment, it is possible to make the majority of users able, through one main system (e.g., CRM), to work on other systems as well without knowing of their existence.
In terms of technical architecture, we can divide integration into:
- Point to Point (P2P) - integration between systems can be achieved by connecting systems directly. Such integrations, most often, are fairly simple to implement (so they are also fairly inexpensive). Unfortunately, they are often poorly scalable and, by being able to access the system directly, exhibit greater vulnerability to attacks. In addition, the potential for changes in transmitted data structures, as well as the difficulty of maintenance, increases significantly as the number of connected systems increases. Suppose we noticed differences in synchronized data in two P2P-connected systems - in such a case, finding errors should be quite easy, unfortunately, the situation will be completely different when these systems are seven. A badly used P2P approach can lead to integration spaghetti.
- Middleware - consists in introducing an additional tool between the integrated systems, for example, when we need additional mechanisms that are not provided by the combined systems. Tools of this type most often allow the addition of new systems in a very simple way and provide the possibility of transformation and redirection of data without the need for direct changes to the integrated systems. This type of integration solves most of the problems found in P2P integrations, but more often than not, this approach is also associated with increased costs.
Once we know what the scope of integration is, the next step we should understand is the capabilities and limitations of the systems being integrated:
- What interfaces (APIs) do we have available?
- How much data maximum can be processed?
- How many requests can be processed?
- How long at most can a request last?
- What is the average request time?
- Authentication and authorization methods available?
- What options do we have for monitoring the API?
and plot them against expectations of integration:
- How many and how often do we want to send requests?
- How much data and how often do we want to transmit?
- What level of security do we need to provide?
What is Salesforce?
Salesforce.com has been a leader among CRM-class systems for many years. The company has been providing its software as a cloud service since 1999. Salesforce's CRM is a fully cloud-embedded product, so that once deployed, we are no longer affected by the problems and costs associated with maintaining the physical server infrastructure, which is usually a very big plus. This approach also forces Salesforce to have very strong integration capabilities. The most popular Salesforce solutions are:
- Sales Cloud - system supporting sales processes
- Service Cloud - System organizing customer support processes, (e.g. Call Center).
- Marketing Cloud - a platform used to automate marketing campaigns
- Commerce Cloud - e-commerce platform
- Tableau - one of the most popular platforms for data analysis
- Mulesoft - a very popular integration platform (middleware) with huge integration capabilities.
I encourage you to read my previous article "How Salesforce allows you to increase your company's performance?", in which I described the platform in much greater detail.
Salesforce is a company with many of its own products and services. In addition, there are many solutions built directly on the platform, which are available through the store's App Exchange. Of course, as you would expect, all Salesforce products integrate perfectly with each other. As I mentioned, they are fully embedded in the cloud, which forces the platform to have very strong integration capabilities. Among other things, Salesforce acquired Mulesoft in 2020 to further simplify integration with other systems. Mulesoft is an integration platform with hundreds of ready-to-use, reusable "connectors," enabling very fast integration of systems such as Salesforce, Oracle, SAP, Workday, Box, AWS, Azure and many others. Additionally, a very positive aspect of Salesforce is that most, and certainly all, of the most popular integration tools support integration with this platform.
What APIs does Salesforce offer?
Most often, the more APIs a system offers, the more integration capabilities one has. Imagine, for example, a 30-year-old "legacy system" that, for integration purposes, only provides the ability to generate and consume files in CSV format. As you can guess, integrating this type of system will be quite difficult, and doing it in close to real time will be extremely impossible. Therefore, we will look at the API that Salesforce offers:
- REST API/SOAP API - a very simple synchronous interface based on REST or SOAP protocol for manipulating data stored on the Salesforce platform. Salesforce, for each object (table), automatically creates an API to search, create, modify and delete records (CRUD - create, read, update, delete). This type of API is optimized for fast processing of small amounts of data. It is most often used when we expect real-time results, such as when building UIs, integrating with mobile applications,
- Apex REST API/Apex SOAP API - Salesforce allows you to build your own custom REST and SOAP-based APIs using Apex code,
- Bulk API - an asynchronous API for processing millions of CRUD operations. Often used for data migration and replication,
- Streaming API - an interface based on the Bayeux protocol, which allows to retrieve from Salesforce, in real time, a stream describing changes made to data in Salesforce. This API can be used to implement a very fast data replication process. In addition, lately it's been one of my favorite features, as it enables the implementation of Event-Driven Architecture (EDA) to reduce dependencies between systems and help increase system performance and speed through better scalable processes and better load distribution capabilities,
- Metadata API/ Tooling API - all configuration and code are stored in Salesforce as metadata, and it is the Metadata and Tooling APIs that are used to modify them. The API can also be used for CD/CI processes and metadata synchronization with other systems.
As you can see, Salesforce has very strong integration capabilities. More detailed information can be found in the Salesforce documentation.
In addition, using low-level APIs and platform abstractions, Salesforce has introduced some very interesting and unique solutions:
- Salesforce Hyperforce - in late 2020. Salesforce has made it possible to move parts of the platform to the infrastructure of public clouds such as AWS or Azure, so you can build scalable solutions that integrate even better with the infrastructure of multiple companies (currently only available as a pilot version in India).
- Salesforce Private Connect - which allows you to very easily create a private and secure connection to services embedded on the AWS platform, (currently only available in AWS Regions us-east-1 and us-west-2).
- Heroku Connect - which enables easily configurable, bi-directional data synchronization between Salesforce and a database hosted on the Heroku platform. This type of solution is used when we need highly scalable services for hundreds of thousands or millions of users. The Heroku platform is one of the Salesforce platforms on which you can really do a lot of things, e.g. Gen25 has created an extension to Social25 that uses Heroku to enable communication via WeChat, WhatsApp, Messenger and others, directly from Salesforce.
- Salesforce File Connect - offers the ability to access files stored on external systems directly in Salesforce. Often used to integrate with GDrive, Sharepoint, Box, Quip, DropBox and other similar systems. This is a great solution when our organization needs to store a great many documents.
- Salesforce Connect - is a functionality that allows you to present data from external sources in Salesforce without replicating the data. It is a very powerful tool that is able to present and modify data from another system through the interface of OData. Users are not even aware that the data is not in the system, as it is displayed using the Salesforce UI. In addition, the integration is done through configuration.
- CTI Computer-Telephony Integration) - allows you to make phone calls directly from Salesforce from a web browser, which of course is an indispensable part of any Call Center.
- IoT (Internet of Things) - a platform that enables the collection and analysis of data sent by various devices (smartphones, sensors, detectors) and allows to respond to a specific event. The platform makes it possible, among other things, to create a system that monitors the state of crop irrigation or the condition of machinery in a factory.
Most of the functionalities described above offer us tools that enable tremendous integration capabilities and significantly reduce integration implementation time (for example, integration with GDrive comes down to a dozen clicks).
Examples of Salesforce integrations:
I've already described Salesforce's integration capabilities, let's now focus on a few example integrations that often appear in various organizations.
Integrations to facilitate communication within companies:
- Gmail - The integration gives you the ability to create Salesforce records (Lead, Account, Contact) directly from within Gmail. It also allows you to synchronize contact and calendar data.
- Microsoft Outlook - like Gmail integration, allows us to synchronize calendars and create data in Salesforce from within Outlook.
- Slack - with customizable notifications sent automatically by Salesforce and the ability to query Salesforce data directly from within the messenger, significantly improves communication within teams.
- Quip - a tool that allows teams to collaborate in real time on documents, spreadsheets and presentations.
- Jira - is a popular platform for project management and progress tracking.
Integrations to facilitate communication with customers:
- LinkedIn - allows you to view information from this portal (recent activities, relationships, messages) directly in your CRM.
- Zoom - allows you to create and manage Zoom meetings, automatically synchronizes Zoom Webinar attendee information.
- Social25 - enables communication with customers via Facebook Messenger, WhatsApp, Twitter and others, as well as directly from the Salesforce platform.
- DocuSign - offers the ability to digitally sign documents.
Integrations to support Marketing Automation:
- Marketing Cloud - A powerful tool for automating B2C marketing.
- Pardot - B2B marketing automation tool.
- MailChimp - allows you to send emails to your CRM contacts.
- Marketo - another tool for B2B marketing automation.
Other interesting tools:
- Mulesoft (Anypoint Platform) - allows integration with multiple systems via APIs.
- Zapier - an integration platform offering more than 3,000 different integrations for Salesforce with more than 350 different systems (including PayPal, WordPress, monday.com, Twilio).
- Conga Grid - simplifies data management by displaying data in a spreadsheet-like manner.
- Avenir - A tool that enables the generation of documents.
- Conga Composer - another tool that enables the generation of documents.
Salesforce has tremendous integration capabilities, allowing us to expand the system with new functionality very quickly. Well-designed and implemented integrations save time while increasing company efficiency and productivity. Integrations that allow us to gather knowledge about contractors, allow access to this information from one place, which significantly improves sales and support processes. Any integration that reduces the amount of wasted time on manual operations is worth considering (i.e., making adjustments or deduplicating data, collecting information and reporting across multiple systems). As 2020 has shown, the potential to rapidly implement new integrations gives organizations the ability to instantly adapt and even gain an edge in a changing market.