Tableau CRM
The Tableau CRM destination writes data to Salesforce Tableau CRM. The destination connects to Tableau CRM to upload external data to a dataset. For information about supported versions, see Supported Systems and Versions in the Data Collector documentation.
When you configure the destination, you define connection information, including the API version and authentication type that the destination uses to connect to Tableau CRM. You can also use a connection to configure the destination.
You specify the edgemart alias or name of the dataset to upload data to. You can also optionally define the name of the edgemart container or app that contains the dataset.
The destination can upload external data to a new dataset or to an existing dataset using an append, delete, overwrite, or upsert operation. Based on the operation type, you define the metadata of the data to be uploaded in JSON format.
The destination performs automatic recovery by default. You can configure the destination to skip recovery.
You can also optionally use an HTTP proxy to connect to Salesforce Tableau CRM. When enabled in Salesforce, you can configure the destination to use mutual authentication to connect.
Changing the API Version
Data Collector ships with version 57.0.0 of the Salesforce Web Services Connector libraries. You can use a different Salesforce API version if you need to access functionality not present in version 57.0.0.
Define the Operation
- Append - Appends data to the dataset, creating the dataset if it doesn’t exist.
- Delete - Deletes rows from the dataset. The rows to delete must contain a single field with a unique identifier.
- Overwrite - Replaces data in the dataset, creating the dataset if it doesn't exist.
- Upsert - Inserts or updates rows in the dataset, creating the dataset if it doesn’t exist. The rows to upsert must contain a single field with a unique identifier.
For more information about unique identifiers, see the Salesforce Developer documentation.
Metadata JSON
- Data file that contains the external data.
- Optional metadata file that describes the schema of the data in JSON format.
The Tableau CRM destination creates the data file based on the incoming record. You define the metadata in JSON format when you configure the destination.
You must define metadata for the append, upsert, and delete operations. For append and upsert, the metadata must match the metadata of the dataset being uploaded to. For delete, the metadata must be a subset of the dataset columns.
You can optionally define metadata for the overwrite operation so that Tableau CRM can correctly interpret the data type of the data. If you do not enter metadata, then Tableau CRM treats every field as text.
For more information about how Tableau CRM handles JSON metadata for uploaded external data, see the Salesforce Developer documentation.
Automatic Recovery
By default, the Tableau CRM destination initiates automatic data recovery after an unexpected stop of the pipeline. When the pipeline restarts, the destination directs Tableau CRM to process all incomplete uploads.
You can configure the destination to skip automatic recovery if you prefer to evaluate the need for recovery and perform manual upload recovery, as needed.
To understand the automatic recovery process, you need to know how the Tableau CRM destination typically writes data to Tableau CRM:
- The destination uses the Salesforce SOAP API to create an
InsightsExternalData record containing the configured edgemart alias, metadata
JSON, operation, and other metadata. Tableau CRM sets the
Action
field on the InsightsExternalData record toNone
. - The destination formats each batch of records as CSV and uses the Salesforce SOAP API to create one or more InsightsExternalDataPart records for each batch of CSV-formatted data. The InsightsExternalDataPart records are associated with the InsightsExternalData record created in the previous step.
- If no additional data arrives before the configured wait time, or if
the pipeline comes to an expected graceful stop, the destination sets the
Action
field of the InsightsExternalData record toProcess
to indicate that the data is ready for processing.
If the pipeline stops unexpectedly before step 3 is complete, data can remain in Tableau CRM in an unprocessed state.
When performing automatic recovery, as the pipeline restarts, the destination
queries Salesforce for InsightsExternalData records with a matching edgemart alias and
an Action
field set to None
.
If the destination is configured to append a timestamp to the edgemart alias, then the destination searches for InsightsExternalData records with the edgemart alias as a prefix. Otherwise, the destination searches for an exact match on the edgemart alias.
The destination then sets the Action
field on matching records
to Process
to indicate that the uploads are ready for processing. After
the destination directs Salesforce to process the incomplete upload, it continues
writing new records to Tableau CRM as described above.
Action
field set to
None
, even if they were not written by the destination. So if
you have other matching InsightsExternalData records, the destination directs
Tableau CRM to process those records as well.Manual Upload Recovery
You can use the Salesforce Developer Console to search for unprocessed data manually, and either process or delete the data. You might perform manual upload recovery when the Tableau CRM destination is configured to skip automatic recovery and the pipeline comes to an unexpected stop.
- Processing unprocessed data
- To process unprocessed data, perform the following steps:
- In the Salesforce Developer Console, select the Query
Editor tab and specify the query that you want to
use.
For example, you can use the following query to select unprocessed data, most recent first:
SELECT Id, EdgemartAlias, Action, CreatedDate FROM InsightsExternalData WHERE Action = 'None' ORDER BY CreatedDate DESC
- For the records that you wish to process, double-click the
Action
field and change the value toProcess
. - Click Save Rows.
- In the Salesforce Developer Console, select the Query
Editor tab and specify the query that you want to
use.
- Deleting unprocessed data
- To delete unprocessed data, perform the following steps:
- In the Salesforce Developer Console, select the Query
Editor tab and specify a query for unprocessed
InsightsExternalDataPart records.
For example, the following query selects unprocessed InsightsExternalDataPart records, most recent first:
SELECT Id, InsightsExternalData.EdgemartAlias, CreatedDate FROM InsightsExternalDataPart WHERE InsightsExternalData.Action = 'None' ORDER BY CreatedDate DESC
- Select the records you wish to delete, and click the Delete Row button.
- Specify a query for the corresponding unprocessed
InsightsExternalData records.
For example, the following query selects unprocessed InsightsExternalData records, most recent first:
SELECT Id, EdgemartAlias, CreatedDate FROM InsightsExternalData WHERE Action = 'None' ORDER BY CreatedDate DESC
- Select the records you wish to delete, and click the Delete Row button.
- In the Salesforce Developer Console, select the Query
Editor tab and specify a query for unprocessed
InsightsExternalDataPart records.