Salesforce and Amazon S3 Integration: Implementation Guide

This article will demonstrate two ways to facilitate Salesforce to AWS S3 Integration and discuss the pros and cons of each scenario.

TABLE OF CONTENTS

  1. What is Salesforce?
  2. What is Amazon S3?
  3. The Benefits of Salesforce to Amazon S3 Integration
  4. How to Set Up Salesforce to Amazon S3 Integration
  5. Conclusion

What is Salesforce?

Salesforce is a comprehensive development platform that allows users to create low or no-code applications, or create advanced customizations via custom development. Originally developed as a CRM platform, Salesforce has become one of the world’s largest and most widely used enterprise platforms to date and is leveraged by millions of businesses worldwide every day.

Data stored in Salesforce is contained in a relational database structure, and in fact, Salesforce uses Oracle databases as the backend to their platform. This enables users to create complex relationships between the objects in Salesforce that contain their customer’s data.

What is Amazon S3?

Now that we have an idea about the differences between ETL and ELT concepts, let us understand how can we achieve those with Snowflake. By default, Snowflake offers tools to extract data from source systems, and there are also some third-party tools that allow users to build custom integrations with Snowflake. I have listed below some of the best ETL tools for Snowflake, however, the list is not exhaustive.

Amazon S3 offers several pricing tiers designed to minimize costs associated with data storage. These tiers are based on access frequency and response time to fit any data usage scenario. S3 also provides many security features to keep critical data safe and manage access through IAM and auditing. Ultimately, Amazon S3 offers a convenient and scalable data storage solution for nearly any use case.

The Benefits of Salesforce to Amazon S3 Integration

While Salesforce certainly retains records and data, many Salesforce users will choose to move data from Salesforce to an outside data store such as Amazon S3. There are a few primary reasons why users would want to move data from Salesforce to S3, including better data management, security, and cost.

Data Management

Moving Salesforce data to S3 allows users to more efficiently manage and utilize the data gathered from customers and clients. By using an S3 data lake to store data from Salesforce and other applications, users can easily integrate all of their data in one place to perform analytics, and leverage the data in other applications.

Security

Data security is of utmost importance in today’s world, and this is one of the chief benefits of moving Salesforce data to Amazon S3. By storing their Salesforce data in S3, users are provided with more complete data ownership and access management. Moving data to Amazon S3 also provides the ability to meet regulatory requirements for sensitive data storage and archiving.

Cost

Users of Salesforce with many clients and customers may also benefit from the cost savings in moving Salesforce data to S3. Archiving data and increasing the storage limits within Salesforce can prove prohibitively expensive, so users may choose to migrate data to S3 to take advantage of the low storage costs and intelligent pricing tiers offered by AWS.

How to Set Up Salesforce to Amazon S3 Integration

Using Amazon AppFlow

Amazon Web Services’ native method of transferring data from Salesforce to S3 is Amazon AppFlow, which provides users an integration platform to transfer data from 3rd party applications to Amazon S3. To perform a transfer using AppFlow you will need a Salesforce developer account connected to the organization in which you want to transfer the data. You can then perform the following steps.

  1. Create an S3 bucket to hold the data from Salesforce
  2. Open Amazon AppFlow from the AWS console and create a new flow
  3. Provide the flow details and select your data encryption options and flow tags
  4. Using Amazon AppFlow 1
  5. On the following page, select Salesforce as the data source, then click connect, specify the Salesforce environment type and connection name, and log into your Salesforce developer account to connect
  6. Using Amazon AppFlow 2
    Using Amazon AppFlow 3
  7. Next, choose either Salesforce objects or events and select the desired option from the list
  8. Using Amazon AppFlow 4
  9. Next, select your destination as Amazon S3, specify the destination bucket, and configure additional settings as required
  10. Using Amazon AppFlow 5
  11. Choose your flow trigger, either manual or based on a schedule, then continue to the next page
  12. Using Amazon AppFlow 6
  13. On the next page, configure the mapped data fields by selecting “Map all fields directly”, or by choosing source fields manually in the “Choose source fields” drop-down menu
  14. Using Amazon AppFlow mapping
  15. Specify any data validations and then continue to the next page
  16. Finally, create any necessary filters, then continue to review and create the flow
Using Amazon AppFlow 7

Using Cloud Data Import Tool

The second method of moving data from Salesforce to S3 is using the convenient and user-friendly Cloud Data Import Tool from Skyvia. This tool allows you to easily connect your cloud data sources and destinations with no code, and customize the data flow with the included ETL tools. To integrate Salesforce with Amazon S3 using the Cloud Data Import Tool, perform the following steps.

  1. First create a new Salesforce connection in Skyvia, specifying your environment, choosing OAuth 2.0 as authentication, and cache settings, then click “Sign In with Salesforce” and log in with your developer account credentials
  2. Next, create a new Amazon S3 connection providing your IAM Access keys, which can be found under the IAM Management Console within your AWS Console
  3. Next choose the correct region, type in the name of your destination bucket, and create the connection
  4. Next, we will create the connection between Salesforce and Amazon S3 by creating a new export integration package
  5. Next, we will create the connection between Salesforce and Amazon S3 by creating a new export integration package
  6. Select your Salesforce connector from the connection list
  7. Change the target type to “CSV To storage service”, then select the Amazon S3 connector you created earlier
  8. Specify the desired folder, code page, and options if required, then add a new task
  9. In the Task Editor menu, select the desired object and properties from Salesforce, define a file name, filters, order by rules, and compression settings, then save the task
  10. Finally, save the export packages and run the export as desired or schedule the run times via the package schedule menu

Performing this integration with Skyvia’s Cloud Data Import tool provides two notable advantages in comparison to Amazon AppFlow. First, it provides a user-friendly interface to facilitate the integration of Salesforce data into Amazon S3 and is simple even for users who are not tech-savvy. Secondly, Skyvia’s ETL tools are more robust than those provided by Amazon AppFlow, giving users more options and deeper capability for data transfer customization. The list of capabilities that makes Skyvia’s Cloud Data Import Tool a more robust option over Amazon AppFlow includes the ability to export more than one Salesforce Object using a single export package, a feature-rich task editor which provides comprehensive filter definitions and order by options, the power to create export statements using SQL or Skyvia’s Query Builder in the advanced task editor, the ability to natively specify file compression in the export package, and the potential to re-use saved connections in multiple data transfer packages.

Conclusion

Moving Salesforce data to Amazon S3 can be a difficult and expensive task if a user is not aware of the integration options available to them, however by using Skyvia’s ETL tools this process is made quick and simple.

John McCauley
John McCauley
Data Analyst
10 tip to overcoming Salesforce integration challenges