Salesforce to MySQL Integration: 2 Easy Methods

on Data Integration, CRM, Database, ETL, Hevo, MySQL, Salesforce • December 3rd, 2019 • Write for Hevo

Are you trying to integrate Salesforce to MySQL? If yes, then you are in the right place. Salesforce is a Cloud-based Customer Relationship Management (CRM) software that enables organizations to have a full-fledged CRM experience without having the trouble of hosting and managing servers. Salesforce is offered based on a Software-as-a-Service (SaaS) model. It can handle all aspects of Customer Relationship Management, including product ordering, accounting, invoicing, and customer support.

Even though Salesforce provides its own set of analytics and reporting suites, in many cases, organizations will require Salesforce data to be pulled to a separate Database or Data Warehouse. It is because most organizations will have data coming in from a variety of sources, and they would need to have all the data in one place for meaningful analysis. One of the typical requirements in this space is to have Salesforce data loaded into a relational Database for analysis. In this post, we will deal with methods to load data from Salesforce to MySQL, one of the most popular Relational Databases.

This article will give you a brief introduction to Salesforce and MySQL and will also explain their key features. It will then discuss the 2 methods using which you can easily set up your Salesforce to MySQL Integration. Furthermore, the article will explain the limitations and benefits of these methods to provide you a more clear picture. Read along to know more about these 2 technologies and decide which method suits you the best for setting up your Salesforce to MySQL Integration.

Table of Contents

Introduction to Salesforce

Slaesforce Logo
Image Source

Salesforce is a popular Cloud-based Customer Relationship Management (CRM) software. It is designed to support an organization in managing its customer and sales-related data. Moreover, it has tools that can customize its inbuilt features like its Data Structures and User Interface to suit the business needs. Since it is Cloud-based, it offers immense flexibility and scalability to the user. Furthermore, Salesforce acts as a major data source for analytical tools or Data Warehouses like Redshift and Snowflake.

Key Features of Salesforce

Salesforce is one of the most popular CRM in the current business scenario and it is due to its various features. Some of these key features are:

  • Easy Setup: Unlike most CRMs, which usually take up to a year to completely get installed and deployed, Salesforce can be easily set up from scratch within few weeks only.
  • Ease of Use: Businesses usually have to spend more time putting it to use and comparatively much lesser time in understanding how Salesforce works.
  • Effective: Salesforce is convenient to use and can also be customized by businesses to meet their requirements. Due to this feature, users find the tool very beneficial.
  • Account Planning: Salesforce provides you with enough data about each Lead that your Sales Team can customize their approach for every potential Lead. This will increase their chance of success and the customer will also get a personalized experience.
  • Accessibility: Salesforce is a Cloud-based software, hence it is accessible from any remote location if you have an internet connection. Moreover, Salesforce has an application for mobile phones which makes it super convenient to use.

To learn more about Salesforce, visit here.

Introduction to MySQL

MySQL Logo
Image Source

Meanwhile, MySQL is an open-source Relational Database Management System or RDMS, and it is managed using Structured Query Language or SQL, hence its name. MySQL was originally developed and owned by Swedish company MySQL AB, but MySQL AB was acquired by Sun Microsystems in 2008. In turn, Sun Microsystems was then bought by Oracle two years later, making them the present owners of MySQL.

MySQL is a very popular Database program that is used in several equally popular systems such as the LAMP stack (Linux, Apache, MySQL, Perl/PHP/Python), Drupal, and WordPress, just to name a few and is used by many of the largest and most popular websites, including Facebook, Flickr, Twitter, and Youtube. MySQL is also incredibly versatile as it works on a variety of operating systems and system platforms, from Microsoft Windows to Apple MacOS.

Migrating data from Salesforce to MySQL Database allows users to benefit from the additional power and capabilities of MySQL in gaining insights from said data. MySQL provides greater capacity in bulk editing, the volume of data, as well as ease in creating custom data sets that answer specific questions using SQL.

To learn more about MySQL, visit here.

Methods to Set up Salesforce to MySQL Integration

Method 1: Using Custom Code to Set Up Salesforce to MySQL Integration

You can follow the step-by-step guide for connecting Salesforce to MySQL using custom codes. This approach uses Salesforce APIs to achieve this data transfer. Additionally, it will also highlight the limitations and challenges of this approach.

Method 2: Using Hevo Data to Set Up Salesforce to MySQL Integration

Hevo Data, a No-code Data Pipeline platform helps you to transfer data from Salesforce (among 100+ Sources) to your desired destination like MySQL in real-time, in an effortless manner, and for free. Hevo with its minimal learning curve can be set up in a matter of minutes making the user ready to perform operations in no time instead of making them repeatedly write the code.

Get Started with Hevo for Free

Check out why Hevo is the Best:

  • Secure: Hevo has a fault-tolerant architecture that ensures that the data is handled in a secure, consistent manner with zero data loss.
  • Schema Management: Hevo takes away the tedious task of schema management & automatically detects the schema of incoming data and maps it to the destination schema.
  • Minimal Learning: Hevo, with its simple and interactive UI, is extremely simple for new customers to work on and perform operations.
  • Hevo Is Built To Scale: As the number of sources and the volume of your data grows, Hevo scales horizontally, handling millions of records per minute with very little latency.
  • Incremental Data Load: Hevo allows the transfer of data that has been modified in real-time. This ensures efficient utilization of bandwidth on both ends.
  • Live Support: The Hevo team is available round the clock to extend exceptional support to its customers through chat, email, and support calls.
  • Live Monitoring: Hevo allows you to monitor the data flow and check where your data is at a particular point in time.
Sign up here for a 14-day Free Trial!

Methods to Set up Salesforce to MySQL Integration

You can easily connect your Salesforce account to your My SQL account using the following 2 methods:

Method 1: Using Custom Code to Set Up Salesforce to MySQL Integration

This method requires you to manually build a custom code using various Salesforce APIs to connect Salesforce to MySQL. It is important to understand these APIs before learning the required steps.

APIs Required to Connect Salesforce to MySQL Using Custom Code

Salesforce provides different types of APIs and utilities to query the data available in the form of Salesforce objects. These APIs help to interact with Salesforce data. An overview of these APIs is as follows:

  • Salesforce Rest APIs: Salesforce REST APIs provide a simple and convenient set of web services to interact with Salesforce objects. These APIs are recommended for implementing mobile and web applications that work with Salesforce objects.
  • Salesforce REST APIs: Salesforce SOAP APIs are to be used when the applications need a stateful API or have strict requirements on transactional reliability. It allows you to establish formal contracts of API behavior through the use of WSDL. 
  • Salesforce BULK APIs: Salesforce BULK APIs are tailor-made for handling a large amount of data and have the ability to download Salesforce data as CSV files. It can handle data ranging from a few thousand records to millions of records. It works asynchronously and is batched. Background operation is also possible with Bulk APIs.
  • Salesforce Data Loader: Salesforce also provides a Data Loader utility with export functionality. Data Loader is capable of selecting required attributes from objects and then export them to a CSV file. It comes with some limitations based on the Salesforce subscription plan to which the user belongs. Internally, Data Loader works based on bulk APIs. 

Steps to Connect Salesforce to MySQL

Use the following steps to achieve Salesforce to MySQL integration:

Step 1: Log in to Salesforce using the SOAP API and get the session id. For logging in first create an XML file named login.txt in the below format.

<?xml version="1.0" encoding="utf-8" ?>

<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">

<env:Body>

<n1:login xmlns:n1="urn:partner.soap.sforce.com">

<n1:username>your_username</n1:username>

<n1:password>your_password</n1:password>

</n1:login>

</env:Body>

</env:Envelope>

Step 2: Execute the below command to login

curl https://login.Salesforce.com/services/Soap/u/47.0 -H "Content-Type: text/xml; 
charset=UTF-8" -H "SOAPAction: login" -d @login.txt

From the result XML, note the session id. This session id is to be used for all subsequent requests.

Step 3: Create a BULK API job. For doing this, create a text file in the folder named job.txt with the following content.

<?xml version="1.0" encoding="UTF-8"?>

<jobInfo xmlns="http://www.force.com/2009/06/asyncapi/dataload">

<operation>insert</operation>

<object>Contact</object>

<contentType>CSV</contentType>

</jobInfo>

Please note that the object attribute in the above XML should correspond to the object for which data is to be loaded. Here we are pulling data from the object called Contact.

Execute the below command after creating the job.txt

curl https://instance.Salesforce.com/services/async/47.0/job -H "X-SFDC-Session: sessionId" -H "Content-Type: application/xml; 
charset=UTF-8" -d @job.txt

From the result, note the job id. This job-id will be used to form the URL for subsequent requests. Please note the URL will change according to the URL of the user’s Salesforce organization.

Step 4: Use CURL again to execute the SQL query and retrieve results.

curl https://instance_name—api.Salesforce.com/services/async/APIversion/job/jobid/batch

-H "X-SFDC-Session: sessionId" -H "Content-Type: text/csv; 

SELECT name,desc from Contact

Step 5: Close the job. For doing this, create a file called close.txt with the below entry.

<?xml version="1.0" encoding="UTF-8"?>

<jobInfo xmlns="http://www.force.com/2009/06/asyncapi/dataload">

<state>Closed</state>

</jobInfo>

Execute the below command after creating the file to close the job.

curl https://instance.Salesforce.com/services/async/47.0/job/jobId -H "X-SFDC-Session: sessionId" -H "Content-Type: application/xml; 
charset=UTF-8" -d @close_job.txt

Step 6: Retrieve the results id for accessing the URL for results. Execute the below command.

curl -H "X-SFDC-Session: sessionId" https://instance.Salesforce.com/services/async/47.0/job/jobId/batch/batchId/result

Step 7: Retrieve the actual results using the result ID fetched from the above step.

curl -H "X-SFDC-Session: sessionId" https://instance.Salesforce.com/services/async/47.0/job/jobId/batch/batchId/result/resultId

This will provide a CSV file with rows of data. Save the CSV file as contacts.csv.

Step 8: Load data to MySQL using the LOAD DATA INFILE command. Assuming the table is already created this can be done by executing the below command.

LOAD DATA INFILE'contacts.csv' INTO TABLE contacts

FIELDS TERMINATED BY ',' 

ENCLOSED BY '"'

LINES TERMINATED BY 'rn' 

IGNORE 1 LINES;

Alternately, instead of using the bulk API manually, the Salesforce Data Loader utility can be used to export CSV files of objects. The caveat here is that usage of certain Data Loader functionalities is restricted based on the user’s subscription plan. There is also a limit to the frequency in which data loader export operations can be performed or scheduled.

Limitations of Using Custom Code Method

  • As evident from the above steps, loading data from Salesforce to MySQL through the manual method is both a tedious and fragile process with multiple error-prone steps.
  • This works well when you have on-time or a batch need to bring data from Salesforce. In case you need data more frequently or in real-time, you would need to build additional processes to successfully achieve this. 

Method 2: Using Hevo Data to Set Up Salesforce to MySQL Integration

Hevo Data Logo
Image Source

Hevo Data, a No-code Data Pipeline, helps you directly transfer data from Salesforce and 100+ other data sources to Databases such as MySQL, Data Warehouses, BI tools, or a destination of your choice in a completely hassle-free & automated manner. Hevo is fully managed and completely automates the process of not only loading data from your desired source but also enriching the data and transforming it into an analysis-ready form without having to write a single line of code. Its fault-tolerant architecture ensures that the data is handled in a secure, consistent manner with zero data loss.

Sign up here for a 14-Day Free Trial!

Hevo Data takes care of all your data preprocessing needs and lets you focus on key business activities and draw a much powerful insight on how to generate more leads, retain customers, and take your business to new heights of profitability. It provides a consistent & reliable solution to manage data in real-time and always have analysis-ready data in your desired destination. 

Hevo can integrate data from Salesforce to MySQL in just 2 simple steps:

  • Authenticate and configure your Salesforce data source as shown in the below image. To learn more about this step, visit here.
Configuring Salesforce as Data Source
Image Source
  • Configure your MySQL destination where the data needs to be loaded as shown in the below image. To learn more about this step, visit here.
Configuring MySQL as Destination
Image Source

Conclusion

In this blog, you have learned about Salesforce and MySQL. The blog explained their key features and discussed how to achieve Salesforce to MySQL Integration using 2 different approaches. Additionally, it has also highlighted the limitations and challenges of using the custom code method.

Visit our Website to Explore Hevo

A more graceful method to achieve the same outcome would be to use a code-free Data Integration Platform like Hevo Data. Hevo can mask all the ETL complexities and ensure that your data is securely moved to MySQL from Salesforce in just a few minutes and for free.

Hevo’s point and click interface gives you a hassle-free means to easily replicate your Salesforce data to MySQL. Without any coding and maintenance, all your Salesforce data will be ready for analysis within minutes. Additionally, Hevo can also help you move data from 100s of different data sources, making your data integration infrastructure, future-proof. 

Want to give Hevo a spin? Sign Up for a 14-day free trial and experience the feature-rich Hevo suite first hand

Let us know your thoughts on the 2 approaches to move data from Salesforce to MySQL in the comments.

No-code Data Pipeline for your MySQL