How to Connect Salesforce to FTP Server In 4 Ways

Integrating legacy systems with Salesforce that won’t support SFTP can be a pain. But if it accepts files through Salesforce FTP integration and exchanges won’t happen over the internet or public network, security may not be a big deal.

FTP provides an accessible way to move data between Salesforce and other systems. While SFTP is the gold standard for data exchanges from and to Salesforce, FTP has its place where security is not so much of a concern, and other means exist to protect the transfer.

This article will discuss 4 ways to use FTP in Salesforce integration. Rest assured that the basics are not so challenging, and you have more than one way to choose from.

Table of Content

  1. What is FTP, and How Does it Compare to SFTP?
  2. What is Salesforce FTP Integration?
  3. Use Cases for FTP Integration with Salesforce
  4. Advantages of Connecting an FTP Server to Salesforce
  5. Considerations Before Data Integration
  6. Overview of the Methods to Connect FTP with Salesforce
  7. Native Methods to Connect FTP and Salesforce
  8. Custom Code Integration FTP with Salesforce
  9. Integrating FTP and Salesforce Using No Coding Approach
  10. Conclusion

Let’s dive in.

What is FTP, and How Does it Compare to SFTP?

FTP stands for File Transfer Protocol. It allows file transfers from your computer to an FTP server and vice versa. It is built on a client-server model and data transmission is in clear text. So, if someone is skilled enough to pry on your network, files like CSV are readable.

FTP can be secured using Transport Layer Security (TLS) or Secured Sockets Layer (SSL) protocols. Thus, this will become FTPS or File Transfer Protocol Secure.

SFTP stands for Secure File Transfer Protocol. Since it’s secured, file transmissions are encrypted. Encrypting data transmission adds overhead to the file transfer process. So, if you’re transmitting non-confidential files to internal networks or VPNs, FTP is a faster option.

Below is a table of differences between FTP, FTPS, and SFTP:

FeatureFTP (File Transfer Protocol)SFTP (SSH File Transfer Protocol)FTPS (FTP Secure)
SecurityNo encryption (data sent in plain text)Encrypted via SSHEncrypted via SSL/TLS
AuthenticationInternal network transfers (not secure for Internet use)Username/password + SSH keyUsername/password + SSL/TLS certificate
PortUses ports 21 (command) and 20 (data)Uses port 22Uses ports 21 (command) and random ports (data)
Firewall CompatibilityHarder to configure (uses multiple ports)Easy (single port 22)Complex (requires opening multiple ports)
PerformanceFast but insecureSlightly slower due to encryptionSlower than FTP but secure
Use CaseInternal network transfers (not secure for internet use)Secure file transfers over the internetSecure transfers where SSL/TLS is required (e.g., banking, compliance needs)

If secured file transfer is a must, consult our guide for Salesforce SFTP integration.

What is Salesforce FTP Integration?

Salesforce FTP integration is the process of linking Salesforce with an FTP server to send and receive files. It works by uploading or downloading files like CSV or JSON to an FTP server to update Salesforce records or store the data externally. This way, Salesforce, and other systems can share and exchange data.

In the absence of SFTP, FTP can be a good choice when transferring files within:

  • Local Area Networks (LANs)
  • Wide Area Networks (WANs)
  • Virtual Private Networks (VPNs)
  • Virtual Private Clouds (VPCs)

Use Cases for FTP Integration with Salesforce

You should know when to work on files to understand Salesforce FTP integration. Below are the use cases when this integration applies.

Data Recovery and Backup

You can store historical data as backup and prevent data loss by storing them in files within an FTP server. This can be scheduled daily or weekly to archive records for compliance. But remember that to pass compliance, the FTP server should be secured through a VPN or other means.

Example: Create copies of sales transactions in CSV files as external backups.

Management of Documents

Salesforce can manage documents that relate to Salesforce objects. It can generate PDFs for reports and CSVs for report data. You can back up these documents in an FTP server.

Example: Syncing customer-uploaded documents between Salesforce and FTP.

Migration of Data from Legacy Systems

Legacy systems may only integrate through flat files like CSVs in an FTP server. They lack modern APIs and other modern integration capabilities. When moving from the legacy system to Salesforce, you can dump the records in CSV files stored in an FTP server. Then, Salesforce can migrate these files into its internal storage.

Example: You can migrate a legacy customer and sales system to Salesforce by transferring data in bulk using FTP file imports.

Advantages of Connecting an FTP Server to Salesforce

Using FTP as storage of data imports and exports has merits to your business processes. Below are the three most common ones:

Improved Data Administration

Having a centralized storage for Salesforce-generated reports, customer records, and logs can simplify data management and administration. Managing security, backups, imports, and exports will only come from one central point (the FTP server and designated folder(s)). Securing this location is easier for the administrator.

Improved Data Security

Although FTP lacks encryption, your company can implement security measures such as VPNs or FTPS to safeguard your data from unauthorized access. This allows you to control who can access the files, when they can access them, and the specific folders where the files are stored.

Streamlined Workflows

Automation of data imports/exports reduces manual work and ensures real-time updates. Human errors are also avoided and data consistency is ensured.

Considerations Before Data Integration

Salesforce FTP integration is not a walk in the park, though it’s very doable. To make sure your integration will not go haywire, consider the following considerations.

Data Compatibility

Salesforce data is structured. Incoming data within CSV, JSON, or XML should match the data types and sizes of Salesforce object columns. Use proper column mapping to tell Salesforce that a CSV column goes to the correct object and column.

Security Measures

Since data flowing in networks are clear texts through FTP, it’s advisable to integrate inside a private network or use FTPS. Then, limit the IP addresses that can get through the private network using IP Whitelisting. Deny traffic coming from unused ports and other security criteria using the Access Control List (ACL).

Compliance Requirements

If handling personal data, consider GDPR, HIPAA, or other regulations that might require SFTP over FTP. Remember that FTP has no encryption, so do not push FTP in exchange for expensive penalties and lawsuits.

Performance Impact

Large file transfers can slow down systems, especially when done during office hours. So, schedule the imports/exports during off-peak hours when there is less operational load on Salesforce and the FTP server.

Data Quality

Some data columns in the target system whether Salesforce or otherwise require valid data. Make sure the source column is not empty and that the value fits the data type and size of the target column. In other words, the data should be complete as expected by the target system. Avoid duplicates in the source by making sure the source query returns unique rows.

Overview of the Methods to Connect FTP with Salesforce

We will classify the methods as native, custom coding, or no coding. There are pros and cons for each method. Here’s a comparison table based on the groups, methods, and key factors for Salesforce FTP integration:

GroupMethodBest ForSkill Level RequiredCustomizability
NativeSalesforce Data Loader + FTP tools/workaroundsSimple CSV uploads/downloadsLow (basic configuration)Low
Custom-CodingApex DevelopmentFull control over file processing and automationHigh (requires coding skills)High
API-Based IntegrationAdvanced automation with external servicesHigh (requires API and middleware knowledge)High
No-CodingUse no-coding tools (e.g. Skyvia, Hevo, Talend)Business users or teams needing quick setupLow (UI-based setup)Medium to High (depends on platform)

Let’s examine each in the following sections.

Native Methods to Connect FTP and Salesforce

Native methods use tools made by Salesforce. We will examine the Salesforce Data Loader for native Salesforce integration.

Method 1: Salesforce Data Loader for FTP Integration

Salesforce Data Loader is a free desktop app for bulk imports and exports. It supports large CSV files with up to 5 million records in Bulk API 1.0 and 150 million in Bulk API 2.0. You can download and install this app on Windows or Mac.

FTP isn’t supported in Salesforce Data Loader. But you will learn a simple workaround later in this section. Get your installer from the Salesforce Setup page in Integrations -> Data Loader -> Downloads, or use this link. This will take you to the Salesforce Downloads page.

The installer is wizard-based, so just follow the simple instructions to install the app. Then, run the app. You should see a similar screen below:

Salesforce Data Loader

You can choose between insert, update, upsert, delete, undelete, and export. This tool is best for large-scale, periodic data transfers from and to Salesforce.

Install the Workaround to Map the FTP Folder as a Local Drive

Before importing or exporting data using Salesforce Data Loader, you need to install this workaround. Note that this will work on Windows only. You can use the open-source SSHFS-WinRaidrive, or a similar tool to map the FTP folder as a local drive. Below is an example of mapping an FTP folder using Raidrive:

RailDrive

The above maps the FTP server ftp.dlptest.com to drive Z. After a successful mapping, you can save exported CSV files to drive Z, as you would in the local drive C. You can use the File Explorer in Windows to see the files within drive Z. See a sample below:

RailDrive Import

Drive Z is labeled as FTP because it’s an FTP path. It has an import folder with a customer.csv file inside it. At this point, we are ready to integrate Salesforce into FTP. Let’s start importing CSV data to Salesforce.

How to Import Data from FTP to Salesforce Using Data Loader

Using Salesforce Data Loader with a mapped drive for the FTP folder is nothing extraordinary. The process is still the same as working in a local drive C. Check out the steps below:

  1. Run Salesforce Data Loader.
  2. Click Upsert. Log in to Salesforce if this is your first time.
  3. Select the Salesforce Object you want the data to be imported (e.g. Contact, Account).
  4. Choose the CSV file from the mapped FTP folder (Z:\import\customer.csv).
Select Salesforce object
  1. Click Next, then a small window will appear showing the number of rows in the CSV, API usage, etc. Click OK.
  2. Choose the column to use for matching existing rows, then click Next.
  3. (Optional) Relate using look-up key to other Salesforce objects.
  4. Click Next, and map the CSV columns to Salesforce columns. See below:
Mapping data in Salesforce
  1. Choose a results folder where Salesforce will dump data rows in CSV format. Click Finish.
  2. You can choose between View successesView errors, or OK. Choose OK to close the wizard.

How to Export Data from Salesforce to SFTP Using Data Loader

The export process is the same as working in a local drive. Check out the following steps:

  1. Click Export, then select the Salesforce object you want to export. In this case, Contacts. Then, provide the path to the CSV file in the mapped FTP drive (Z:\exports\contact.csv).
  1. Click Next, then choose the columns to include in the CSV file. 
edit Data Query
  1. Click Finish, then click Yes when a prompt appears if you want to proceed.

Then, you will see how many records were processed. Check it out below:

Export finished

Using Salesforce Data Loader in imports and exports provides a basic way to integrate Salesforce with other systems. Consider the pros and cons of this approach in the next sections.

Pros

The following are the benefits of Salesforce Data Loader:

  • No coding required.
  • Works well for scheduled batch processing and ad hoc integrations with Salesforce and FTP.
  • Easy to use.

Cons

Salesforce Data Loader has the following disadvantages:

  • No real-time integration.
  • Requires external FTP tools or workarounds.
  • For simple integrations only.

Custom Code Integration FTP with Salesforce

Custom code integration means you will use a programming language to achieve integration. We have 2 methods under custom coding.

Method 2: Custom Apex Development

Using Apex development offers a flexible way to integrate Salesforce to FTP. Use Apex if you have a developer team skilled in Apex development and you want full control of how the integration will happen.

Apex doesn’t have native support for FTP. But if your FTP server has an API service (like CurlFTPfs, AnyClient, or a middleware proxy that exposes an FTP service as HTTP), you can use this to make HTTP callouts. If your FTP server doesn’t support an API service, you can use a middleware (e.g., AWS Lambda, Azure Functions, or Node.js server) to accept Salesforce HTTP requests and forward the files via FTP.

We will use Visual Studio Code and the Salesforce CLI to prepare the Apex Class.

How to Integrate Salesforce and FTP Using Apex

Follow the steps below to use Apex development with Visual Studio Code.

1. Install Visual Studio Code & Salesforce CLI

If you don’t have VS Code and/or Salesforce CLI, download and install Salesforce CLI. Then, install VS Code and the Salesforce Extension Pack from the marketplace. You can skip this step if you already have these on your computer.

2. Authorize Salesforce Org

Open Visual Studio Code, then type the following command in the Terminal:

sfdx force:auth:web:login -a MyDevOrg

This will log you to your Salesforce Org. Replace MyDevOrg with any alias name you want for your Salesforce Org. This will open your browser so you can log in to your org.

3. Create a New Apex Class

Again, from the Terminal, type this command:

sfdx force:apex:class:create -n FTPContactUploader -d force-app/main/default/classes

This will create a new Apex class named FTPContactUploader. Below is a sample code you can follow as a pattern for the class. This will query the Salesforce Contacts and place the CSV file in an FTP location. You need to replace the FTP_URL, FTP_USERNAME, and FTP_PASSWORD with your own FTP URL and credentials.

public class FTPContactUploader {
    
    private static final String FTP_URL = 'https://your-ftp-server.com/upload'; // Replace with actual FTP API endpoint
    private static final String FTP_USERNAME = 'your-username';
    private static final String FTP_PASSWORD = 'your-password';
    
    @future(callout=true)
    public static void uploadContactsToFTP() {
        // Step 1: Query Contacts
        List<Contact> contacts = [SELECT FirstName, LastName, Email FROM Contact LIMIT 100];

        // Step 2: Convert Contacts to CSV Format
        String csvContent = 'First Name,Last Name,Email\n';
        for (Contact c : contacts) {
            csvContent += c.FirstName + ',' + c.LastName + ',' + c.Email + '\n';
        }

        // Step 3: Encode CSV as Blob
        Blob csvBlob = Blob.valueOf(csvContent);
        String csvBase64 = EncodingUtil.base64Encode(csvBlob);
        
        // Step 4: Create HTTP Request
        HttpRequest req = new HttpRequest();
        req.setEndpoint(FTP_URL);
        req.setMethod('POST');
        req.setHeader('Content-Type', 'application/json');
        req.setHeader('Authorization', 'Basic ' + EncodingUtil.base64Encode(Blob.valueOf(FTP_USERNAME + ':' + FTP_PASSWORD)));
        
        // Step 5: Send File in Body
        String requestBody = JSON.serializePretty(new Map<String, String>{
            'fileName' => 'Contacts.csv',
            'fileData' => csvBase64
        });
        req.setBody(requestBody);

        // Step 6: Send Request
        Http http = new Http();
        HttpResponse res = http.send(req);

        // Step 7: Handle Response
        if (res.getStatusCode() == 200) {
            System.debug('Upload Successful: ' + res.getBody());
        } else {
            System.debug('Upload Failed: ' + res.getStatusCode() + ' - ' + res.getBody());
        }
    }
}
Breakdown of Key Sections
  • Query Contacts from Salesforce:
    • Fetches FirstName, LastName, and Email fields from Contact records.
    • The LIMIT 100 will only process 100 rows. This can be adjusted as needed.
  • Convert Data to CSV Format:
    • Creates a String containing CSV-formatted data.
  • Encode CSV as Blob & Base64:
    • Converts the string to Blob and encodes it in Base64 to safely send over HTTP.
  • Create HTTP Request for FTP Upload:
    • Uses a POST request to an FTP API endpoint.
    • Adds Authorization header with Base64-encoded credentials.
    • Formats the request body with fileName and fileData.
  • Send the Request & Handle Response:
    • Sends data using an HTTP callout.
    • Logs success or failure.
4. Deploy to Salesforce

You need to deploy your code to Salesforce to run it. Type the following command in the Terminal.

sfdx force:source:push -u MyDevOrg
5. Test the Apex Callout

Log on to your Salesforce Org in your browser and open the Developer Console → Execute Anonymous window. Then, run

FTPContactUploader.uploadContactsToFTP();

Finally, check logs for success or failure.

Pros

The following are the advantages of this approach:

  • Flexible to any type of Salesforce integration requirement.
  • Can integrate into Salesforce automation.

Cons

Using Apex has the following disadvantages:

  • Requires development effort.
  • Apex governor limits may restrict large file transfers.
  • May take longer to develop compared to no-coding solutions.

Method 3: API-Based Integration

Aside from Apex coding, you can use other programming languages that can make Salesforce REST API calls. For example, the following Python code will query the Salesforce Contacts:

import requests

TOKEN = "your_access_token"
INSTANCE_URL = "https://your-instance.salesforce.com"

headers = {
    "Authorization": f"Bearer {TOKEN}",
    "Content-Type": "application/json"
}

query = "SELECT Id, FirstName, LastName, Email FROM Contact LIMIT 10"
response = requests.get(f"{INSTANCE_URL}/services/data/v59.0/query/?q={query}", headers=headers)

data = response.json()

The above uses your Salesforce Org URL and queries the Salesforce Contacts using requests.get and the query API. But you can use a Python Salesforce library called simple_salesforce to abstract and simplify the code. That way, you don’t need to handle REST API endpoint formatting, headers, and session management.

We’re going to use simple_salesforce in our example.

How to Integrate Salesforce and FTP Using API

Follow the steps below using Visual Studio Code as your development IDE.

1. Install Visual Studio Code, Python, and Simple_Salesforce

If you haven’t done so, download and install Python. Then, install Visual Studio Code and the VS Code Python Extension. Follow other specific instructions from this link depending on your operating system.

Then, install simple_salesforce using the following VS Code Terminal command:

pip install simple-salesforce

csv and ftplib are built into Python, so there is no need to install them.

2. Create the Python Script

Create a folder where you will place the Python script. Then, open the folder in Visual Studio Code, and create the script file salesforce_to_ftp.py. Check out the code below:

import csv
import requests
from simple_salesforce import Salesforce
from ftplib import FTP

# Salesforce credentials
SF_USERNAME = 'your_username'
SF_PASSWORD = 'your_password'
SF_SECURITY_TOKEN = 'your_security_token'

# FTP credentials
FTP_HOST = 'ftp.example.com'
FTP_USERNAME = 'ftp_user'
FTP_PASSWORD = 'ftp_password'
FTP_DIRECTORY = '/uploads/'  # Change this to your desired folder

# CSV file name
CSV_FILE = 'salesforce_contacts.csv'


def fetch_contacts():
    """Fetch contacts from Salesforce API and return as a list of dictionaries."""
    sf = Salesforce(username=SF_USERNAME, password=SF_PASSWORD, security_token=SF_SECURITY_TOKEN)
    
    query = "SELECT Id, FirstName, LastName, Email FROM Contact LIMIT 10"
    records = sf.query_all(query)['records']
    
    contacts = [
        {
            'Id': record['Id'],
            'FirstName': record.get('FirstName', ''),
            'LastName': record.get('LastName', ''),
            'Email': record.get('Email', '')
        }
        for record in records
    ]
    
    return contacts


def write_csv(contacts):
    """Write contacts to a CSV file."""
    with open(CSV_FILE, mode='w', newline='') as file:
        writer = csv.DictWriter(file, fieldnames=['Id', 'FirstName', 'LastName', 'Email'])
        writer.writeheader()
        writer.writerows(contacts)


def upload_to_ftp():
    """Upload the CSV file to an FTP server."""
    ftp = FTP(FTP_HOST)
    ftp.login(FTP_USERNAME, FTP_PASSWORD)
    ftp.cwd(FTP_DIRECTORY)
    
    with open(CSV_FILE, 'rb') as file:
        ftp.storbinary(f'STOR {CSV_FILE}', file)
    
    ftp.quit()


def main():
    """Main function to execute the workflow."""
    print("Fetching contacts from Salesforce...")
    contacts = fetch_contacts()
    
    print("Writing data to CSV...")
    write_csv(contacts)
    
    print("Uploading CSV to FTP...")
    upload_to_ftp()
    
    print("Process completed successfully!")


if __name__ == "__main__":
    main()
Breakdown of Key Sections
  • Function fetch_contacts(): Uses simple_salesforce to connect to your org using your username, password, and security token. Then, it uses SOQL to query the records in Salesforce contacts.
  • Function write_csv(contacts): Creates the CSV file with the result set from #1.
  • Function upload_to_ftp(): Uploads the created CSV file to the FTP server and folder.
  • Function main(): Handles the workflow from connecting to Salesforce to uploading to the FTP server.

You should replace the Salesforce and FTP credentials with your access information for Salesforce and the FTP server.

Pros

The following are the plus side of this approach:

  • It will work on Windows, Mac, and Linux distributions like Ubuntu.
  • Very flexible and more scalable.
  • Works with modern cloud platforms.

Cons

This approach has these disadvantages too:

  • Requires coding expertise in a programming language and Salesforce REST API.
  • Changes in Salesforce APIs requires modification in code.
  • Takes more time to develop compared to no-coding methods.

FTP and Salesforce Integration Using No-Coding Approach

The main goal of no-coding integration platforms is to simplify the development processes and minimize the need for an expert developer to do the job. This will significantly lessen the development time of simple integrations from hours to minutes.

Some notable tools that can handle Salesforce FTP integration are Mulesoft (from Salesforce), Jitterbit, Talend, and Skyvia. Then, there’s AppExchange. It’s an enterprise cloud marketplace where you can extend your Salesforce Org with integrations to more than 7000 apps. For example, if you need to extend Salesforce with some finance features, there’s a QuickBooks app for that. There’s even a Salesforce to FTP app in AppExchange with a 14-day trial and an annual subscription.

In this section, we will discuss how it is done in Skyvia.

Data to any destination

Method 4: Integration of Salesforce and FTP Using Skyvia

Skyvia is a 100% cloud data platform with hundreds of connectors to various data sources. Unlike AppExchange which deals with Salesforce integration to other data sources, Skyvia can integrate at least two sources other than Salesforce and another app. Their free tier allows you to test out Salesforce and FTP integration without spending a dime. This is one of the best free alternatives to Salesforce Data Loader.

To integrate, you need 2 connections (one for Salesforce and another for your FTP server). Then, create a Skyvia integration package using the two connections. The simplest of these integrations are the Import and Export integrations.

How to Create the Salesforce and FTP Connection

You don’t need to code to create a Salesforce connection in Skyvia. Assuming you already signed in, here’s how:

  1. Click + Create New from the upper left corner of your Skyvia workspace, then click Connection.
skyvia menu
  1. Choose from the list of connectors. Do that by typing sales or salesforce in the filter box. Then, click Salesforce.
Select connector
  1. Fill out the connection form and sign in to Salesforce to get an OAuth token.
Salesforce connector
  1. Click Test Connection to test the connection to Salesforce. You will see a Connection is successful message in the upper right of the workspace.
  2. Name your connection. You will see Untitled beside the Salesforce icon. Click and change that to your preferred connection name. I named mine as salesforce-developer.
Salesforce connector
  1. Finally, click the Create Connection button to save your new Salesforce connection. You will see Save Connection if you’re editing the connection to make changes.
  2. Repeat the steps from 1 to 6, but this time create an FTP connection. Ready your FTP server credentials and use them to fill out the FTP connection form. Below is mine:
FTP connection

Creating a connection is plain simple. If you’re experiencing connection problems, contact your system administrator.

How to Import Data From FTP to Salesforce Using Skyvia

Please follow the steps to create a Skyvia Import Integration:

  1. Click + Create New and under INTEGRATION, select Import.
  2. From the Import Integration page, change the Source Type to CSV from storage service.
  3. Choose the FTP connection you created earlier as your source.
  4. Then, choose the Salesforce connection you created earlier as your target.
  5. Add a new task by clicking Add New. Then, choose the CSV file you want to import on the next page.
Task editor by Skyvia
  1. On the next page, choose the Salesforce object and the operation to perform (insert, update, upsert, delete). In this example, we will choose Salesforce Contact.
  2. Map the columns of the CSV file to Salesforce Contact.
Task editor by Skyvia
  1. Repeat steps 5 to 7 if you need to insert more tasks that will import another CSV to a Salesforce object.
  2. Name your Import Integration and click Create.

That’s it. Below is the final setup of my Import Integration:

How to Export Data From Salesforce to FTP Using Skyvia

This portion will discuss exporting data from Salesforce to a CSV file in an FTP location. Below are the steps:

  1. Click + Create New and under INTEGRATION, click Export.
  2. In the Export Integration page, choose your Salesforce connection as the source.
  3. Then, select the Target Type as CSV to storage service.
  4. Choose the FTP connection you created earlier from the dropdown list.
  5. Select the target folder in the dropdown list.
  6. Then, click Add New to create a new task.
  7. Choose a Salesforce object like Contacts and mark the columns to export. Optionally, set a filter and sort order.
Task Editor by Skyvia
  1. Click the Next step button and set the CSV filename and compression type.
  2. Click Next step, and review the output columns.
  3. Click Save task.
  4. Repeat steps 6 to 10 for more tasks that will use a different CSV file and Salesforce object.
  5. Name your Skyvia Export and click Create to save your export integration. Below is the final setup of the Export integration sample:
Salesforce to FTP integration

How to Set up Scheduling

Every Skyvia integration package can be scheduled to run at a specific time and let it recur every day. From inside the Import or Export integration, click Schedule from the top-left corner of the page. Below is a sample for setting up a schedule in Skyvia. The schedule will run daily at 12 midnight:

schedule by Skyvia

Once saved, Skyvia will note this schedule and let your integration run unattended.

To modify a schedule at a later time, you have to open an integration package. To do that, click Integrations from the upper part of the Skyvia workspace. The list is grouped according to the type of integration. Look for Import or Export groups. Then click the integration package you want. See a sample below where the import and export packages we created earlier are boxed in green:

Integrations in Skyvia

Click one of the integrations to edit. A new page will appear allowing you to change the integration package. Then, click Schedule in the upper-left corner of the page and enter the modified schedule.

Run and Monitor Integration

You can monitor the runtime results of your integration package. Open the integration you want to check the progress. Then, click Monitor. You will see a similar page below when the integration is successful:

Monitor logs in Skyvia

Below is a video tutorial for creating Import and Export:

Pros

The following are the good side of the no-coding approach:

  • No coding or very minimal coding needed.
  • Simple UI for integration. Easy to use.
  • Faster integration development lifecycle.

Cons

These are the disadvantages of this approach:

  • Might have usage limits depending on your tool’s pricing plans.
  • The tool’s pre-built workflows or templates may not be flexible as you need it to be for your requirements.
  • Salesforce API changes may not reflect immediately depending on your tool of choice.

Conclusion

In this article, we discussed what FTP is and its differences to SFTP. FTP is the faster option but compromises security because of its unencrypted nature. To overcome this problem, integrate within a VPN or a similar secured environment.

We also learned about the Salesforce Data Loader, two coding methods in Apex and Python, and a no-coding method using Skyvia. These are the 4 methods to integrate Salesforce with FTP.

Choose the best option for your needs from the methods we discussed.

explore pricing

F.A.Q.

Can Salesforce directly connect to an FTP server?

No, Salesforce lacks built-in FTP support, so integration requires third-party tools or coding.

Is it possible to automate file uploads from Salesforce to an FTP server?

Yes, using middleware, Apex callouts, or external schedulers.

What security measures should I consider when integrating Salesforce with an FTP server?

Use FTPS, limit access permissions, and encrypt sensitive data before transfer.

Can I transfer data from FTP to Salesforce without coding?

Yes, tools like Skyvia, MuleSoft, and Jitterbit offer no-code integrations.

What data can be extracted from Salesforce?

Reports, contacts, opportunities, cases, and any object data in structured formats.

Edwin Sanchez
Edwin Sanchez
Software developer and project manager with a total of 20+ years of software development. His most recent technology preferences include C#, SQL Server BI Stack, Power BI, and Sharepoint. Edwin combines his technical knowledge with his most recent content writing skills to help new breed of technology enthusiasts.

TOPICS

BY CONNECTORS

Skyvia podcast