Editor's note (August 2026): This tutorial was written in 2014 for Talend Open Studio, which Qlik retired on January 31, 2024. The same components exist in the commercial Talend Studio and Qlik Talend Cloud, so the steps still apply there with minor UI differences. If you are still running Open Studio, see our Talend Open Studio migration service and the 2026 survival guide.
Updated August 2026: Salesforce has required multi-factor authentication for all users since February 2022 and steers API integrations toward OAuth 2.0 connected apps. The username + password + security token login shown in the original steps is a legacy method that many orgs now disable. See the authentication note in Step 1 before following the screenshots, and note that the product is simply "Salesforce" now; the ".com" branding was retired years ago. The component names below are unchanged in current Talend Studio.
In this tutorial, we’ll be doing a simple upload to a Salesforce environment to let you get a look on how easy Salesforce integration is in Talend. Though Talend has multiple component options in how to perform your Salesforce loads and Transformations, we’ll stick with simply uploading a .csv file with a few columns of data into Salesforce Accounts.
Step 1: Create Salesforce Metadata
The first requirement of this job is to create a reusable Salesforce connection. The best way to do this is right click on the red Salesforce icon in the Repository and select “Create Salesforce Connection”. If you have a different version of the service, be sure to change the URL to accommodate it.
Authentication in 2026. The connection wizard (and the tSalesforceConnection component) offers more than one Connection type:
- OAuth – the recommended option. Create a Connected App in Salesforce Setup (App Manager > New Connected App), enable OAuth settings, and grant it the API scopes you need. Talend then authenticates with the app's consumer key and secret (client-credentials style for a service integration) or with a refresh token obtained once through the browser. No user password is stored in the job.
- Basic – username, password, and security token appended to the password. This is the legacy flow the original tutorial used. It still appears in the wizard but requires an org that has not disabled password-based API login, and the user must satisfy MFA policy through an API-only permission or an exemption. Expect it to be unavailable in new orgs.
Whichever you pick, store the secret in a context variable of type Password and load it at run time; do not save production credentials in the repository metadata. Talend's current options are documented in the Salesforce component reference.
Note that you must have API access enabled for your user (a Developer Edition org includes it), and the administrator must have granted the API Enabled permission.
Click the “Check Login” button to be sure everything works before saving it.
After this done, Talend will ask which Salesforce elements you’d like you import the metadata of, and for this example, I simply brought in Account and Contact.
After clicking finish, this Metadata can be found by expanding the Salesforce icon in the Repository.
Step 2: Choose your input data
I generated a text document consisting of a Name, Street, City, and State. It has 100 rows of randomly mixed data (you can probably guess the few possible values I used) but it will make do for this particular exercise. The same can be done with any input, such as a MySQL or PostgreSQL database, and it’s quite simple to do the same transformations and load into Salesforce.
Step 3: Create File Delimited Metadata
Under the “Repository” right click “File delimited” and select “Create file delimited”. Then select a name for this metadata.
Next, you are going to want to choose the location of the file on your hard drive, so click the “Browse…” button and select it. Then move to the next page and click “Finish”. The metadata will now be saved in your Repository.
Step 4: Create Input
Drag the tFileInputDelimited component from the metadata in Repository. You’ll then want to select the component and be sure to name all the fields in the schema, since they didn’t have names in the original file. Just head down to where it says “Schema” and then click “…” by “Edit Schema” at the end of the line.
Step 5: Map your data
Back in your canvas, drag a tMap from the Palette menu, and lastly drag the “Account” Salesforce metadata from the Repository that we created earlier into the canvas (this creates a tSalesforceOutput component). Then connect all the rows by right clicking each precursory component and selecting Row–>Main and connect it to the next component, as such:
All that is left to do is map the values to the items they are associated to in Salesforce. Do this by double-clicking your tMap component and opening the Map view. Drag the fields from right to left to match the appropriate output field.
A quick note that sometimes having NULL fields is not accepted in a Salesforce upload. IsDeleted needs a value to be passed, or to have one set by default.
To force it to a default value, go to the bottom of the tMap Editor and select the IsDeleted Column and click the red “X” to delete it. That way you aren’t trying to overwrite a value that cannot be NULL.
A better way to accomplish this may be to simply set IsDeleted to “false” by going to the mapping and manually typing false into its output field.
For loads larger than a few thousand rows, switch tSalesforceOutput to the Bulk API (or use tSalesforceOutputBulkExec), which batches records server-side and is far faster and kinder to your API call limits than row-by-row SOAP inserts.
You’re now ready to run your job.
Step 6: View your data in Salesforce
After opening the run tab and executing your job, head to your Salesforce accounts to view the changes. The Accounts field should be filled up with the information you added.
This is only the tip of the iceberg for you Salesforce users who may be interested in more, so try it out for yourself.