Salesforce Data Cloud

What is Salesforce Data Cloud?

Salesforce Data Cloud is a data platform that unifies all of your company’s customer 360 data on to Salesforce’s Platform. Marketing teams rely on quality data from Data Cloud to drive personalized marketing campaigns. Missing records, nulls, invalid field values are among common issues in Data Cloud, which can severely impact outcomes of promotional efforts and waste marketing dollars.

Monitor & Lineage Support

Integrating Monte Carlo with Salesforce Data Cloud allows you to monitor your data assets through capabilities listed below, which can be created in either the UI wizard and/or programmatically via monitors as code (API/SDK too). Note that Monte Carlo will add the capabilities below over time. Please reach out to your Monte Carlo representative if you have requirements for additional monitors.

CategoryMonitor / Lineage CapabilitiesSupport
Table MonitorFreshness*
Table MonitorVolume*
Table MonitorSchema Changes
Metric MonitorMetric
Metric MonitorComparison
Validation MonitorSQL Custom
Validation MonitorValidation
Job MonitorQuery performance
LineageLineage

*Freshness and volume are available for Data Lake Objects (DLOs), Data Model Objects (DMOs), and Calculated Insights (CIOs). For DLOs backed by an ingestion data stream, they are collected automatically from Data Cloud metadata (no queries against your data); for everything else they are available via an opt-in row-count monitor that runs a COUNT(*) query per object. See How Monte Carlo represents Data Cloud objects below for the full breakdown.

How Monte Carlo represents Data Cloud objects

Salesforce Data Cloud exposes several kinds of objects. Monte Carlo classifies each one into an asset type, and that classification determines which monitors apply — in particular whether the asset supports freshness and volume.

Data Cloud objectRepresented in Monte Carlo asFreshness & volume
Data Lake Object (DLO)Table — or External table when the data is federated / zero-copy (it physically lives in an upstream warehouse, e.g. Snowflake)✅ Automatic from data-stream metadata when stream-fed; opt-in row-count monitor otherwise
Data Model Object (DMO)View (over one or more DLOs)✅ Via opt-in row-count monitor
Calculated Insight (CIO)View (materialized)✅ Via opt-in row-count monitor

Data Lake Objects (DLOs) are Data Cloud's storage layer, so Monte Carlo represents them as tables. When a DLO's data is materialized (ingested) into Data Cloud it appears as a regular table; when it is federated / zero-copy — the data is read through to an upstream warehouse rather than stored in Data Cloud — it appears as an external table so you can see that the data lives elsewhere. DLOs support freshness and volume.

Data Model Objects (DMOs) are semantic views built on one or more DLOs and hold no data of their own, so Monte Carlo represents them as views. They don't receive the automatic, metadata-based freshness and volume that stream-backed DLOs do, but you can still monitor their freshness and volume by enabling the opt-in row-count monitor (a COUNT(*) query, which reads through to the underlying DLOs). DMOs also appear in your catalog with lineage to their source DLOs.

Calculated Insights (CIOs) are scheduled computations whose results are stored in Data Cloud. Because the output is materialized, Monte Carlo monitors them for freshness and volume like a table, while representing them as views so their defining query can be used for lineage.

How freshness and volume are collected

For a DLO backed by an ingestion data stream, Monte Carlo reads freshness and volume directly from Data Cloud's data-stream metadata — the stream's last successful refresh time (freshness) and its record count (volume) — without running any query against your data. Freshness reflects the last successful refresh, so a table still surfaces as stale when a refresh fails.

For every other case — Data Model Objects, Calculated Insights, federated DLOs, and DLOs with no ingestion data stream (for example, static reference data or a one-time manual load) — freshness and volume are available through an opt-in row-count monitor that runs a COUNT(*) query per object. Because that monitor queries your data and uses Salesforce API calls, you enable it per object where you want it.

Salesforce Data 360 objects

Beyond the storage and semantic layers (DLOs, DMOs, and CIOs), Salesforce Data 360 — the new name for Salesforce Data Cloud — defines a graph of objects that describe how data is ingested, reshaped, enriched for AI, and sent back out. Monte Carlo imports these objects to represent them in lineage — so you can see how data moves through Data Cloud and find and click through each object in the catalog and the lineage graph.

These objects are lineage-first: they are imported to display lineage, not to be monitored. Monte Carlo does not run monitors, anomaly detection, or run-based alerting on any of them today. Where one of these objects materializes a DMO (for example, a segment's membership object, a data graph's output objects, or a search index's chunk and vector objects), that data's health is covered by the existing DMO representation described above — Monte Carlo does not create a separate monitored asset for it.

This is the first step in supporting these object types. We expect to keep enhancing how they're represented and to add more capabilities for them over time.

Objects represented as views (lineage only)

Objects that do not run — they describe or configure data rather than produce it on a schedule — are represented as non-materialized views. They appear as asset nodes in the lineage graph and catalog with lineage to and from their related objects, and they carry no metrics (no freshness or volume).

Data 360 objectWhat it isRepresented in Monte Carlo as
Search IndexChunks and embeds a source DMO so it can be used for RAG / AI groundingView (non-materialized)
SegmentA filtered audience built over a DMO or Calculated Insight (include / exclude criteria)View (non-materialized)
RetrieverA query-time RAG configuration that reads a search index, its vector DMO, and source DMOsView (non-materialized)
Semantic ModelThe semantic / business layer that declares join relationships between DMOs; holds no dataView (non-materialized)
Data GraphA denormalized, pre-joined view over related DMOs (used by Agentforce)View (non-materialized)

Objects represented as jobs (ETL)

Objects that run — they ingest, transform, or export data — are represented as ETL jobs and appear on the Jobs page as well as in the lineage graph, connecting their input and output data assets. As with the views above, these jobs are imported for lineage and are not monitored today: Monte Carlo does not collect run history for them, so there is no run-based alerting on them.

Data 360 objectWhat it isRepresented in Monte Carlo as
Data StreamAn ingestion pipeline that brings a source entity into Data CloudETL job
Data TransformSQL that reshapes DLOs / DMOs into new DLOs / DMOsETL job
ActivationPublishes a segment, or a data model object directly, out to an external destination (e.g. Marketing Cloud, S3)ETL job

In the lineage graph, a job is drawn on the edge between the assets it connects, so it appears there only when both the data it reads and the data it writes are assets Monte Carlo has collected. Where a job's destination isn't something Monte Carlo represents, there is no edge to place the job on: you will see the source asset on its own, without the job that reads from it. Activations are the most common case, since they publish outside Data Cloud. The job is still listed on the Jobs page either way.

Enabling ETL job collection

ETL job collection is not enabled by default. Onboarding a Salesforce Data Cloud connection — or re-testing an existing one — does not turn it on, so the objects in the table above will not appear until it is enabled for that connection. Enabling it also requires a data collector recent enough to support it.

You can use the API to enable ETL job collection on your Data Cloud connection. Once it is enabled, the jobs appear after the next collection cycle. The view objects described above are unaffected — they are collected as part of normal metadata collection and need no additional setup.

Connecting to Salesforce Data Cloud

Now that we know the value connecting Salesforce Data Cloud to Monte Carlo can bring, here are the necessary steps to set up the integration. Connecting to Salesforce Data Cloud requires creating a Salesforce External Client App and using OAuth 2.0 client credentials for authentication.
Follow these step-by-step instructions to create an external client app, configure OAuth, and get the necessary credentials.

Create Salesforce Connected App

  1. Log in to the Salesforce Web UI.

  2. Click the gear icon in upper-right corner and select "Setup".

  3. In the side menu, navigate to PLATFORM TOOLS -> Apps -> External Client Apps -> External Client App Manager

  4. Click the "New External Client App" button in upper right.

  5. Enter required fields in the "Basic Information" section.

    • App Name: Monte Carlo
    • API Name: Monte_Carlo
    • Contact Email
    • Distribution State: Local

  6. Enter required fields in the "API (Enable OAuth Settings)" section.

    • Click checkbox for "Enable OAuth"
    • Callback URL: https://getmontecarlo.com/auth/callback/salesforce
    • OAuth Scopes:
      • "Manage user data via APIs (api)"
      • "Perform ANSI SQL queries on Data Cloud data (cdp_query_api)"
    • Under "Flow Enablement" check "Enable Client Credentials Flow"
  7. Click the "Create" button.

  8. Click the "Edit" button to edit the policies of the new app.

  9. Under OAuth Policies -> OAuth Flows and External Client App Enhancements, check "Enable Client Credentials Flow".

  10. Enter a Salesforce user email (like "[email protected]") for the account that will act as the "execution user". By selecting an execution user, you allow Salesforce to return access tokens on behalf of this user.

  11. Click the "Save" button.

Get the Consumer Key and Secret

  1. Switch to the "Settings" tab (near the top of the current page)

  2. Under "OAuth Settings", click the "Consumer Key and Secret" button.

  3. Copy the values into the appropriate fields in the Monte Carlo UI. You can find the Salesforce Data Cloud setup form under Settings -> Warehouse and lakes, then click on the Salesforce Data Cloud tile.

Get the Domain

  1. In the side menu, navigate to SETTINGS -> Company Settings -> My Domain.

  2. Under "My Domain Details", copy the "Current My Domain URL" value and paste it into the "Domain" field in the Monte Carlo UI. It should look something like: <MyDomainName>.my.salesforce.com.

How can I validate Monte Carlo has access to my assets?

After completing the Salesforce Data Cloud integration setup, your Salesforce Data Cloud assets should appear in the Monte Carlo Assets page between a few minutes and one hour. If you don't see your assets after this time period, you can run a validation test to troubleshoot the connection:

  1. Navigate to Settings → Integrations
  2. Find your Salesforce Data Cloud integration and click on it
  3. Select the specific connection you want to test
  4. Click the Test button from the connection menu

This validation test will help identify any configuration issues that might be preventing your assets from appearing.

When running the validation test, you should see all green checkmarks. If any errors are encountered, the system will provide specific steps to resolve them.


Did this page help you?