PluginBench
Skill
Pass
Audit score 90

data360-connect

forcedotcom/sf-skills

Manage Salesforce Data Cloud connections, connectors, and source system setup.

What is data360-connect?

This skill handles the connection phase of Data Cloud work: creating, testing, and inspecting connectors to external sources like Snowflake, Redshift, SharePoint, and Ingestion APIs. Use it when setting up new source connections, managing connector metadata, or browsing source objects and schemas.

  • Discover and list available connector types and existing connections
  • Create, test, update, and delete Data Cloud connections
  • Inspect source objects, fields, databases, and schemas from connected sources
  • Browse connector catalogs and connection metadata
  • Set up connector definitions for Snowflake, SharePoint Unstructured, Heroku Postgres, Redshift, and Ingestion API sources
  • Validate connections before downstream data stream or harmonization work

How to install data360-connect

npx skills add https://github.com/forcedotcom/sf-skills --skill data360-connect
Prerequisites
  • Salesforce CLI (sf) version 2.0.0 or later
  • Node.js version 18.0.0 or later
  • Access to target Salesforce org with Data Cloud enabled
  • External source system credentials (if creating new connections)
  • Data360 Orchestrate plugin installed and configured
Claude Code
Cursor
Windsurf
Cline

How to use data360-connect

  1. 1.Run the readiness classifier: node ../data360-orchestrate/scripts/diagnose-org.mjs -o <org> --phase connect --json
  2. 2.Discover available connector types: sf data360 connection connector-list -o <org>
  3. 3.List existing connections by type: sf data360 connection list -o <org> --connector-type <type>
  4. 4.Inspect a specific connection: sf data360 connection get -o <org> --name <connection>
  5. 5.Browse source objects and fields: sf data360 connection objects -o <org> --name <connection>
  6. 6.Test a connection: sf data360 connection test -o <org> --name <connection> --connector-type <type>
  7. 7.Create a new connection from curated example: sf data360 connection create -o <org> -f examples/connections/<connector-type>.json
  8. 8.For Ingestion API, upload schema after creation: sf data360 connection schema-upsert -o <org> --name <connector-id> -f examples/connections/ingest-api-schema.json

Use cases

Good for
  • Setting up a new Snowflake or Redshift connection to ingest data into Data Cloud
  • Testing an existing connection to verify credentials and source accessibility
  • Discovering available objects and fields from a connected database or API
  • Inspecting connector types already in use across the org
  • Uploading schema definitions for Ingestion API connectors
Who it's for
  • Data Cloud administrators managing source connections
  • Data engineers setting up new connector integrations
  • Salesforce architects designing data ingestion pipelines
  • Developers automating connector discovery and validation

data360-connect FAQ

When should I use data360-connect vs. data360-prepare?

Use data360-connect for managing connections, connectors, and source discovery. Use data360-prepare when creating data streams or DLOs (Data Lake Objects) after the connection is ready.

How do I discover what connector types are available in my org?

Run sf data360 connection connector-list -o <org> to see the catalog, or inspect existing streams with sf data360 data-stream list -o <org> to see which connectors are already in use.

What should I do if connection list returns empty?

An empty list usually means the feature is enabled but no connections are configured yet, not that the feature is disabled. Try querying by a specific connector type: sf data360 connection list -o <org> --connector-type SNOWFLAKE.

Can I create connections for all connector types via the API?

Most external connectors (Snowflake, Redshift, SharePoint Unstructured, Ingestion API) can be created via API using curated example payloads. Some may still require external system permissions or UI-side credential setup.

What is the typical workflow for Ingestion API connectors?

Create the connection with ingest-api-connection.json, then upload the schema with schema-upsert using ingest-api-schema.json, then verify with schema-get.

Full instructions (SKILL.md)

Source of truth, from forcedotcom/sf-skills.


name: data360-connect description: "Salesforce Data Cloud Connect phase. Use this skill when the user manages Data Cloud connections, connectors, or sets up a new source system. TRIGGER when: user manages Data Cloud connections, connectors, connector metadata, tests a connection, browses source objects or databases, or sets up a new source system. DO NOT TRIGGER when: the task is about data streams or DLOs (use data360-prepare), DMOs or identity resolution (use data360-harmonize), retrieval/search (use data360-query), or STDM telemetry (use agentforce-observe)." metadata: cliTools: - tool: ["node"] semver: ">=18.0.0" - tool: ["sf"] semver: ">=2.0.0" relatedSkills: - "agentforce-observe" - "data360-harmonize" - "data360-orchestrate" - "data360-prepare" - "data360-query" version: "1.0" domains: ["Data 360"]

data360-connect: Data Cloud Connect Phase

Use this skill when the user needs source connection work: connector discovery, connection metadata, connection testing, source-object browsing, connector schema inspection, or connector-specific setup payloads for external sources.

When This Skill Owns the Task

Use data360-connect when the work involves:

  • sf data360 connection *
  • connector catalog inspection
  • connection creation, update, test, or delete
  • browsing source objects, fields, databases, or schemas
  • identifying connector types already in use
  • preparing connector definitions for Snowflake, SharePoint Unstructured, or Ingestion API sources

Delegate elsewhere when the user is:

  • creating data streams or DLOs → data360-prepare
  • creating DMOs, mappings, IR rulesets, or data graphs → data360-harmonize
  • writing Data Cloud SQL or search-index workflows → data360-query

Required Context to Gather First

Ask for or infer:

  • target org alias
  • connector type or source system
  • whether the user wants inspection only or live mutation
  • connection name or ID if one already exists
  • whether credentials are already configured outside the CLI
  • whether the user also expects stream creation right after connection setup
  • whether the source is a database, an unstructured document source, or an Ingestion API feed

Core Operating Rules

  • Verify the plugin runtime first; see ../data360-orchestrate/references/plugin-setup.md.
  • Run the shared readiness classifier before mutating connections: node ../data360-orchestrate/scripts/diagnose-org.mjs -o <org> --phase connect --json.
  • Prefer read-only discovery before connection creation.
  • Suppress linked-plugin warning noise with 2>/dev/null for standard usage.
  • Remember that connection list requires --connector-type.
  • For connection test, pass --connector-type when resolving a non-Salesforce connection by name.
  • Discover existing connector types from streams first when the org is unfamiliar.
  • Use curated example payloads before inventing connector-specific credentials or parameters.
  • For connector types outside the curated examples, inspect a known-good UI-created connection via REST before building JSON.
  • Do not promise API-based stream creation for every connector type just because connection creation succeeds.

Recommended Workflow

1. Classify readiness for connect work

node ../data360-orchestrate/scripts/diagnose-org.mjs -o <org> --phase connect --json

2. Discover connector types

sf data360 connection connector-list -o <org> 2>/dev/null
sf data360 data-stream list -o <org> 2>/dev/null

3. Inspect connections by type

sf data360 connection list -o <org> --connector-type SalesforceDotCom 2>/dev/null
sf data360 connection list -o <org> --connector-type REDSHIFT 2>/dev/null
sf data360 connection list -o <org> --connector-type SNOWFLAKE 2>/dev/null

4. Inspect a specific connection or uploaded schema

sf data360 connection get -o <org> --name <connection> 2>/dev/null
sf data360 connection objects -o <org> --name <connection> 2>/dev/null
sf data360 connection fields -o <org> --name <connection> 2>/dev/null
sf data360 connection schema-get -o <org> --name <connection-id> 2>/dev/null

5. Test or create only after discovery

sf data360 connection test -o <org> --name <connection> --connector-type <type> 2>/dev/null
sf data360 connection create -o <org> -f connection.json 2>/dev/null

6. Start from curated example payloads for external connectors

Use the phase-owned examples before inventing a payload from scratch:

  • examples/connections/heroku-postgres.json
  • examples/connections/redshift.json
  • examples/connections/sharepoint-unstructured.json
  • examples/connections/snowflake-connection.json
  • examples/connections/ingest-api-connection.json
  • examples/connections/ingest-api-schema.json

Typical Ingestion API setup flow:

sf data360 connection create -o <org> -f examples/connections/ingest-api-connection.json 2>/dev/null
sf data360 connection schema-upsert -o <org> --name <connector-id> -f examples/connections/ingest-api-schema.json 2>/dev/null
sf data360 connection schema-get -o <org> --name <connector-id> 2>/dev/null

7. Discover payload fields for unknown connector types

Create one in the UI, then inspect it directly:

sf api request rest "/services/data/v66.0/ssot/connections/<id>" -o <org>

High-Signal Gotchas

  • connection list has no true global "list all" mode; query by connector type.
  • The connector catalog name and connection connector type are not always the same label.
  • connection test may need --connector-type for name resolution when the source is not a default Salesforce connector.
  • An empty connection list usually means "enabled but not configured yet", not "feature disabled".
  • Heroku Postgres, Redshift, Snowflake, SharePoint Unstructured, and Ingestion API all use different credential and parameter shapes; reuse the curated examples instead of guessing.
  • SharePoint Unstructured uses clientId, clientSecret, and tokenEndpoint in the credentials array and does not require a parameters array.
  • Snowflake uses key-pair auth and can often be created through the API, but downstream stream creation can still remain UI-only.
  • Ingestion API connector setup is incomplete until connection schema-upsert has uploaded the object schema.
  • Some external connector credential setup still depends on UI-side configuration or external-system permissions.

Output Format

Connect task: <inspect / create / test / update>
Connector type: <SalesforceDotCom / REDSHIFT / SNOWFLAKE / SPUnstructuredDocument / IngestApi / ...>
Target org: <alias>
Commands: <key commands run>
Verification: <passed / partial / blocked>
Next step: <prepare phase or connector follow-up>

References