Use the CData SSIS Components to Insert New or Update Existing Salesforce Records from SQL Server 
Tags: connectivity, integration, database, data
Published: 2021-10-11 12:17:47

Easily push SQL Server data to Salesforce using the [CData SSIS Components](https://www.cdata.com/ssis/?utm_source=dev.to&utm_medium=kb-article-posting&utm_campaign=use-the-cdata-ssis-components-to-insert-new-or-update-existing-salesforce-records-from-sql-server+). This example uses an SSIS workflow to either insert new records into Salesforce or update existing records with data from a SQL Server database. 

SQL Server databases are commonly used to store enterprise records. It is often necessary to move this data to other locations. The CData SSIS Components for Salesforce allow you to easily transfer data from SQL Server to Salesforce. 

This article demonstrates how to use the CData SSIS Components for Salesforce inside of a SQL Server Integration Services workflow to export data from SQL Server to Salesforce, utilizing a lookup component to find and update any existing records or insert new records. 

# Add the Components 

To get started, add a new OLE DB source, CData Salesforce lookup, and two CData Salesforce destinations (one to handle a lookup with a match and one to handle a lookup without a match) to a new data flow task. 

 ![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oencoac157toj5861sqj.png)

# Configure the OLE DB Source 

Follow the steps below to specify properties required to connect to the SQL Server instance. 

1. Open the OLE DB Source and add a new connection. Enter your server and database information here. 

2. In the Data access mode menu, select "Table or view" and select the table or view to export into Salesforce. 

 ![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3skc8qk2faq7sla5nlyr.png)

3. Close the OLE DB Source wizard and connect it to the CData Salesforce Destination. 

# Create a New Connection Manager for Salesforce 

Follow the steps below to save connection properties in the Connection Manager. 

1. Create a new Connection manager: In the Connection Manager window, right-click and then click New Connection. The Add SSIS Connection Manager dialog is displayed. 

2. In the Connection Manager type menu, select the CData Salesforce Connection Manager. 

3. Configure the connection properties. A typical Salesforce connection requires: 

- User 

- Password 

- AccessToken 

 ![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nc8pvmo8cn8rjjgktum7.png)

# Configure the Salesforce Lookup 

In the lookup component Transform Editor, define mappings from the SQL Server source table into the Salesforce lookup table. 

1. Double-click the Salesforce lookup to open the lookup component editor. 

2. In the Connection tab, select the Connection manager previously created. 

3. On the Connection tab, specify the Connection manager (or create a new one) and the table into which the data will be upserted. In this case, you will transfer Account records. 

 ![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g7rh8ua42b1inv00zhum.png)

4. On the Columns tab, configure the mapping of the primary key from the input columns to the primary key of the lookup columns. 

 ![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/51dxoukbuczg58trsvxh.png)

# Configure the Salesforce Destinations 

Using the lookup component, you know which entries from the data source already exist in Salesforce and which ones are new. Configure two Salesforce components to handle the situation where a match is found and a match is not found. 

## Lookup Match Destination 

If the lookup component returns a match, update the existing record in Salesforce. 

1. Map the Lookup Match Output to a Salesforce destination component. 

2. Double-click the Salesforce destination to open the destination component editor. 

3. In the Connection Manager tab, select the Connection manager previously created. 

4. Specify the table which will be updated and set the Action to "Update." 

 ![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pxmeuadb8dyb3mq9n6uf.png)

On the Column Mappings tab, configure the mappings from the input columns to the destination columns (be sure to map the SQL Server primary key column to the Salesforce primary key column). 

 ![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5jve03vi4tvp6mvklmzo.png)

## Lookup No Match Destination 

If the lookup component does not return a match, add a new record to Salesforce. 

1. Map the Lookup No Match Output to a Salesforce destination component. 

2. Double-click the Salesforce destination to open the destination component editor. 

3. In the Connection Manager tab, select the Connection manager previously created. 

4. Specify the table into which the new record will be inserted and set the Action to "Insert." 

 ![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uggxw3x745xxckwl7t2m.png)

On the Column Mappings tab, configure the mappings from the input columns to the destination columns. 

 ![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zskqs6nol8sbsd14e3za.png)

# Run the Project 

You can now run the project. After the SSIS Task has finished executing, data from your SQL table will be exported to the chosen table. 

 ![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z09i46tqhcahp81m0hli.png)

# More Information 

Companies everywhere are looking to leverage their data to make effective decisions and grow their businesses.  

By providing standard-based data connectivity, CData democratizes Salesforce access, allowing everyone in the organization, from IT professionals & app developers to citizen analysts & data scientists, to work with and find value from the entire Salesforce platform. 

Use the [Salesforce Data Flow Components](https://www.cdata.com/drivers/salesforce/ssis/?utm_source=dev.to&utm_medium=kb-article-posting&utm_campaign=use-the-cdata-ssis-components-to-insert-new-or-update-existing-salesforce-records-from-sql-server+) to synchronize Salesforce Leads, Contacts, Opportunities, Accounts, etc. Perfect for data synchronization, local back-ups, workflow automation, and more.