Automating Data 360 — what can be scripted with the Connect API, what moves between orgs with data kits, which metadata types exist, what stays manual in Setup, capture-and-replay of definitions, idempotence, credit gates, and the order of operations

The automation map for Data 360: the Connect API builds and runs components in one org; data kits move them to another org through POST /ssot/data-kits/{name} with documented per-component payloads; metadata types describe kits and streams; provisioning and some access settings stay manual. Covers capture and replay for undocumented bodies, idempotence, credit-consuming steps and dependency order.

markdownreferencev1SW40-MKQFstage: deploytrust: officialservice: data360interface: restinterface: metadataautomate Data 360Data 360 CI/CDdata kitPOST /ssot/data-kits/{dataKitDevName}data kit deploy payload componentsDataStreamBundle CRMIdentityResolution component templateDevNameCalculatedInsight component publishIntervalDataSemanticSearch component searchIndexNameAI Retriever componentDataPackageKitDefinitionDataKitObjectTemplatedata kit manifestdata kit undeployavailable-componentscomponent deployment-statuscapture and replayidempotent pipelinebillable stepsorder of operations Data 360what cannot be automatedcommunity sf data360 plugin

Created 23 Oct 2026 · Modified 23 Oct 2026 · 1 version

Automating Data 360

Three routes

RouteUse it toCovers
Connect API (/services/data/v66.0/ssot/...)Build and run inside one org, from a script or CIConnections, data streams and their runs, DLOs, DMOs, mappings, data spaces, identity resolution and runs, calculated insights and runs, search indexes, data graphs and refreshes, segments, query-sql, data kits
Data kitsMove a working configuration to another orgStream bundles (CRM and others), DLOs, transforms, calculated insights, identity resolution, search (DataSemanticSearch), AI retrievers, segments, data actions, semantic models and more
Metadata API (sf project deploy)Version and deploy what a kit packagesDataPackageKitDefinition, DataPackageKitObject, DataKitObjectTemplate, DataStreamDefinition, DataSrcDataModelFieldMap, ObjectSourceTargetMap, MktCalcInsightObjectDef, DataObjectSearchIndexConf, MarketSegmentDefinition

There is no metadata type for an identity resolution ruleset or a retriever in Salesforce's registry. Those move through a data kit, or through the Connect API with a captured body.

Data kits

  1. In the source org, add the components to a data kit. A kit is metadata (DataPackageKitDefinition): retrieve it, commit it and deploy it.
  2. In the target org, deploy the kit's components with POST /services/data/v66.0/ssot/data-kits/{dataKitDevName} and a components array of { "type", "config" } objects. Configs from Salesforce's payload guide:
typeconfig fields
DataStreamBundle (CRM)bundleName, forceNoRefresh, bundleConfig.orgId
DataLakeObjectdataSourceObjectDevName, apiName, label, dataSpaceName
IdentityResolutiondataSpaceName, templateDevName, dataKitDevName
CalculatedInsightapiName, apiNameOverride, label, publishInterval
DataTransform (batch)dataTransformDevName, apiName, label, dataSpaceName, overrides
DataSemanticSearchdataSpaceName, searchIndexName, dataKitName
MarketSegmentname, dataKitName

AI Retriever, Activation, Data Custom Code and others are supported too, but the guide gives no example payload for them.

Related endpoints:

  • GET /ssot/data-kits and /ssot/data-kits/available-components;
  • GET /ssot/datakit/{name}/manifest (note the singular datakit);
  • POST …/data-kits/{name}/undeploy;
  • per-component …/components/{component}/dependencies and …/deployment-status.

Per a community audit of Salesforce's v67 spec, there is no get-single-kit or deploy-job status resource: poll component status instead. That audit also found that deploying a kit into the org that built it was rejected. Deploy to a different org.

Capture and replay

The nested request bodies for identity resolution, search indexes and data graphs didn't render for the hub in Salesforce's Connect API reference. The reference page itself (developer.salesforce.com/docs/data/connectapi/references/spec) has the OpenAPI document, about 201 operations at v67 per the community audit; download it there. For a script that must not guess:

  1. Build the component once in a development org, in the UI or by API.
  2. GET it and remove server-owned fields: IDs, status, run times, created and modified stamps.
  3. Commit the JSON next to the pipeline.
  4. In other orgs, look it up by name, and POST it if it's absent or PATCH it if it differs.

guides/data360/automate-the-golden-record-pipeline.md implements this.

Order of operations

  1. Manual and Setup:
  • Data 360 provisioned;
  • Einstein and Agentforce on (guides/agentforce/build-agent-with-agentforce-dx.md);
  • the integration user's Data 360 permission sets;
  • the CRM connection;
  • the agent user's Data 360 access and data space scope.
  1. Streams for Account, Contact, Order, OrderItem and Product2 → wait for the first refresh.
  2. Mappings, including Order → Sales Order and OrderItem → Sales Order Product.
  3. Identity resolution rulesets → run → wait (up to 30 minutes).
  4. Calculated insights → run.
  5. Narrative DMO and its transform → run. Then the search index → Ready, the data graph → refresh, and the retriever → active.
  6. Data Library (sf agent adl create) → agent publish and activate → agent tests.

Rules for the scripts

  • Idempotent: every step reads before it writes, and the script can be re-run after any failure.
  • Gate the credit-consuming steps behind an explicit flag: stream runs, identity resolution runs, insight runs, index builds and data graph refreshes all consume Data 360 credits (family 10).
  • Respect run limits: identity resolution on-demand runs are limited per day (reference/data360/identity-resolution.md).
  • Verify with SQL after each stage: counts in the DLO, DMO, unified, CIO and chunk objects, through query-sql.
  • Tools: no official sf plugin manages Data 360 setup. A community plugin, @anushdsouza/sf-plugin-data360, wraps 135 operations and is an experimental beta, not a Salesforce product. Its source is a useful map of endpoint paths.

Read this document as markdown — the same bytes an agent receives.