Not available in Community Designer

Short Description
SalesforceWaveWriter Attributes
Best Practices
See also

Short Description

SalesforceWaveWriter writes data to Salesforce Einstein Analytics data sets.

Component Data output Input ports Output ports Transformation Transf. req. Java CTL Auto-propagated metadata



Port typeNumberRequiredDescriptionMetadata
For records to be insertedInput 0
Successful load informationOutput 0
Unsuccessful load informationOutput 1


SalesforceWaveWriter does not propagate metadata.

SalesforceWaveWriter has metadata templates on its output ports.

Table 56.8. SalesforceWaveWriter_Wave_Success - Output port 0

Field numberField nameData typeDescription
1StatusstringStatus of successfully finished load

Table 56.9. SalesforceWaveWriter_Wave_Error - Output port 1

Field numberField nameData typeDescription
1StatusstringStatus of an unsuccessfully finished load.
2StatusMessagestringA more descriptive message.

SalesforceWaveWriter Attributes

AttributeReqDescriptionPossible values
ConnectionyesSalesforce connection. 
Dataset Nameyes

Name of the data set.

The Dataset Name should contain only alpha-numeric characters and underscore, and it should start with a letter.

E.g. flowers
Dataset Label 

Label of data set to be displayed in Einstein platform. This property is only used when a dataset is initially created.

E.g. Nice flowers
Operation Operation to be performed on data setOverwrite (default) | Append | Delete | Upsert
Unique ID field(yes)

An input field that is considered as a unique identifier. It will be used to match records in the Upsert operation or select records to delete in the Delete operation. Mandatory for Delete and Upsert operations. Forbidden for Append operation.

Metadata JSON JSON specifying structure of the loaded dataset. 
Metadata JSON File URL An external file with the JSON metadata of the dataset. 
Metadata JSON File URL Charset Character set of Metadata JSON File.E.g. UTF-8
Result polling interval (seconds) The time between two checks of result of data upload. 


SalesforceWaveWriter loads records into Einstein Analytics (formerly known as Wave). See Explore Data and Take Action with Einstein Analytics

Supported Operations

Overwrite - creates a new dataset or overwrites an existing one.

Append - appends records into an existing dataset.

Delete - deletes records from an existing dataset. The records to be deleted are selected using the Unique ID field property.

Upsert - inserts or updates records in an existing dataset. The records are matched using the Unique ID field property to decide whether to update or insert.


Writing records to Salesforce Einstein

This example shows the basic use case of writing records to Salesforce Einstein. A new data set in Einstein Analytics will be created.

Insert data records containing properties on different car types into Einstein Analytics as "car properties" data set.


In SalesforceWaveWriter set Connection, Dataset Name and Dataset Label.

ConnectionA Salesforce Connection
Dataset Namecar_properties
Dataset Labelcar properties

Note that Dataset name contains an underscore character as it should not contain a space character.

Best Practices

If you use Metadata JSON File URL attribute, explicitly specify Metadata JSON File URL Charset.

Insert all date fields in UTC timezone. If the timezone of the input fields is different, the values are automatically converted to UTC before upload. This is necessary to ensure correct upload.

You can specify format of date fields inserted to Einstein by changing Format property on the input metadata field. For a list of supported date formats, see External Data Metadata Format Reference

Notes and Limitations

Metadata JSON is generated automatically based on Clover metadata on input edge. You can override this behavior by specifying the JSON yourself. Documentation on all possible properties usable in the JSON metadata is available here: External Data Metadata Format Reference

Usage of API calls

The component uses several Salesforce API calls during its run:

  1. Login

  2. Start the upload job.

  3. Upload the data. A single API call is necessary for every 10MB of data.

  4. Close the upload job.

  5. Get job completion status. This call is repeated in interval specified by the Result polling interval attribute until the job is completed.



SalesforceWaveWriter is available since CloverETL 4.5.0-M1. It uses Salesforce SOAP API version 37.0.


Since CloverETL 4.5.0-M2, SalesforceWaveWriter uses Salesforce SOAP API version 39.0.

See also

Common Properties of Components
Specific Attribute Types
Common Properties of Writers
Writers Comparison
Salesforce connection