Skip to main content
This gem runs in .

Overview

The Salesforce gem enables you to read data from Salesforce directly into your Prophecy pipelines. The gem supports both SOQL (Salesforce Object Query Language) for querying standard Salesforce objects and SAQL (Salesforce Analytics Query Language) for accessing analytical datasets.

Create a Salesforce gem

To create a Salesforce Source or Target gem in your pipeline:
1

Add a Source or Target gem to the pipeline

  1. Open your pipeline in the Studio.
  2. Click on Source/Target in the canvas.
  3. Select Source or Target from the dropdown.
  4. Click on the gem to open the configuration.
2

Select Salesforce format

In the Type tab, select Salesforce. Then, click Next.
3

Set location details

In the Location tab, set your connection details and query configuration. To learn more, jump to Source location and Target location.
4

Set table properties

In the Properties tab, set the table properties. To learn more, jump to Source properties and Target properties.
5

Preview data (Source only)

In the Preview tab, load a sample of the data and verify that it looks correct.

Source configuration

Use these settings to configure a Salesforce Source gem for reading data.

Source location

ParameterDescription
Format typeTable format for the source. For Salesforce tables, set to salesforce.
Select or create connectionSelect or create a new Salesforce connection in the Prophecy fabric you will use.
Query ModeSpecify the table you would like to read using a query. Learn more in Query modes.

Query modes

You have three options for retrieving data from Salesforce.

SAQL

Use a SAQL query to access CRM Analytics datasets (formerly known as Wave Analytics). For example:
q = load "Account"; q = foreach q generate 'Id' as 'Id', 'Name' as 'Name'; q = limit q 5;

SOQL

Use a SOQL query to read structured data from Salesforce objects such as Account or Contact tables. For example:
SELECT Id, Name, Industry, CreatedDate FROM Account WHERE CreatedDate >= LAST_N_DAYS:30
When using the FIELDS(ALL) keyword, the response is limited to 200 rows per call.

Salesforce Objects

Retrieve all records from a specific Salesforce object by name, without writing a query. Use this option when the object exceeds the default 200 row limit of FIELDS(ALL).

Source properties

The following properties are available for the Salesforce Source gem. These properties only apply to tables retrieved with the SOQL or Salesforce Object query mode.
PropertyDescription
Enable bulk queryEnable to run the query as a batch job in the background for better performance on large datasets.
Retrieve deleted and archived recordsEnable to include soft-deleted and archived records in the returned table.

Target configuration

Use these settings to configure a Salesforce Target gem for writing data.
The Salesforce Target gem only supports writing to Salesforce Objects. You cannot write to CRM Analytics datasets.

Target location

Use the following parameters to define the write location.
ParameterDescription
Format typeTable format for the source. For Salesforce tables, set to salesforce.
Select or create connectionSelect or create a new Salesforce connection in the Prophecy fabric you will use.
Object NameName of the Salesforce Object to write to. If the object doesn’t exist, it will be created automatically.

Target properties

The following properties are available for the Salesforce Target gem.
PropertyDescriptionDefault
DescriptionText description of the target table. Use this field to document the purpose or content of the data being written.None
Write ModeDefines how records are written to Salesforce.
  • Upsert: Update existing records if a match is found; otherwise, insert new records.
  • Insert: Add new records without modifying existing ones.
  • Update: Update existing records if a match is found.
  • Delete: Remove existing records if a match is found.
Upsert
External ID FieldSpecifies the Salesforce field used as the unique key when performing Upsert or Update operations. The field must be defined as an External ID in Salesforce.None
Use Bulk APIEnable to run write operations using the Salesforce Bulk API.Disabled