Skip to main content
Use the @bijection/connectors/salesforce-crm-analytics entrypoint to declare Salesforce CRM Analytics resources.

Availability

This page describes the pinned source package. Published availability is unestablished for this artifact. Source build and package availability.

Resources and modes

Declare a resource in application code, then bind deployment-specific settings and credentials. See typed resources, connections and source inspection.

Datasets

pull: The datasets the user can see, walked by nextPageUrl

The following example matches configuration standard.

Configuration: standard

Case: salesforce-crm-analytics/datasets/pull/standard. Connection and resource configuration are declared by this exact case. Credential kind: salesforce. Keep credential material in the private credential inventory.
Native admission analysis is available for this exact declaration. Collection: datasets
Recorded checks Hosted qualification: unestablished for this catalog configuration. Installed connections report their own identity, authority and current status.

Dataset versions

pull: One dataset’s versions, versioned by lastModifiedDate

The following example matches configuration standard.

Configuration: standard

Case: salesforce-crm-analytics/versions/pull/standard. Connection and resource configuration are declared by this exact case. Credential kind: salesforce. Keep credential material in the private credential inventory.
Native admission analysis is available for this exact declaration. Collection: versions
Recorded checks Hosted qualification: unestablished for this catalog configuration. Installed connections report their own identity, authority and current status.

Dataflow and recipe runs

pull: Dataflow job runs with their documented status

The following example matches configuration recipes.

Configuration: standard

Case: salesforce-crm-analytics/jobs/pull/standard. Connection and resource configuration are declared by this exact case. Credential kind: salesforce. Keep credential material in the private credential inventory.
Native admission analysis is available for this exact declaration. Collection: jobs
Recorded checks Hosted qualification: unestablished for this catalog configuration. Installed connections report their own identity, authority and current status.

Configuration: recipes

Case: salesforce-crm-analytics/jobs/pull/recipes. Connection and resource configuration are declared by this exact case. Credential kind: salesforce. Keep credential material in the private credential inventory.
Native admission analysis is available for this exact declaration. Collection: jobs
Recorded checks Hosted qualification: unestablished for this catalog configuration. Installed connections report their own identity, authority and current status.

SAQL query

saql: One fixed SAQL query over pinned dataset versions, paged by offset

The following example matches configuration standard.

Configuration: standard

Case: salesforce-crm-analytics/query/saql/standard. Connection and resource configuration are declared by this exact case. Credential kind: salesforce. Keep credential material in the private credential inventory.
Native admission analysis is available for this exact declaration. Collection: rows
Recorded checks Hosted qualification: unestablished for this catalog configuration. Installed connections report their own identity, authority and current status.

Provider guidance

Compiled declaration examples and configuration details are published in the connector reference. CRM Analytics (formerly Tableau CRM and Einstein Analytics) through the CRM Analytics REST API (/services/data/v67.0/wave/...). It is licensed and documented apart from the core org, like Marketing Cloud Engagement and Account Engagement (Pardot), so it is its own connector. Unlike those, the org itself serves it, so every resource binds the same salesforce connection as @bijection/connectors/salesforce: the org’s My Domain (instance) and crmAnalytics.credential(name) (the same salesforce credential kind, holding the OAuth access_token). The identity is the org’s organization_id from userinfo. The integration user needs the REST API (API Enabled) and a CRM Analytics permission set license with the Use CRM Analytics user permission. The datasets listing returns only the datasets that user can see (“The list of datasets available to the current user”), so share the apps or folders holding them. Seeing dataflow and recipe runs in Data Manager normally takes Manage CRM Analytics or Edit CRM Analytics Dataflows. These permission names come from Salesforce Help and Trailhead, not the REST guide, and have not been checked against an org. A request without the license or permission is refused 403. Nothing here writes: no dataflow, recipe or data sync is started, stopped or scheduled, and no dataset is created or changed.

Datasets and versions

datasets.pull walks GET wave/datasets 50 at a time by the page token in each answer’s nextPageUrl. It reads only that token: a nextPageUrl naming another resource, or any other parameter, is refused. It publishes id, name, label, datasetType, folderId, currentVersionId, currentVersionTotalRowCount, createdDate, lastModifiedDate, lastQueriedDate and dataRefreshDate. Records are unversioned observations, because lastQueriedDate changes with every query while lastModifiedDate stays the same. versions.pull({ dataset }) reads one dataset’s versions by id or API name (GET wave/datasets/{dataset}/versions, unpaged). Each version is versioned by its lastModifiedDate, and a version without one is refused. Archived versions are not requested.

Dataflow and recipe runs

jobs.pull walks GET wave/dataflowjobs by nextPageUrl. You can filter by dataflow (a 02K id; for a recipe, its targetDataflowId) or by documented jobTypes. The walk always sends pageSize: without it the API returns only the last 7 days of runs. Each run publishes its status and an outcome: A status the guide does not document refuses the page; it is never mapped to an outcome.

SAQL query

query.saql sends one fixed SAQL text to POST wave/query and publishes one record per row of results.records, keyed by the declared key columns. SAQL is synchronous, not a provider job. The guide documents the query resource as a POST that runs the query and returns the rows in the response (Query Resource, Query CRM Analytics Data with the Query API). The query is read a page at a time. The host appends <stream> = offset <stream> <n>; <stream> = limit <stream> <pageSize>; to the declared statements (SAQL requires offset after order and before limit). The declaration must:
  • load every dataset as "<datasetId>/<versionId>", as the REST API requires;
  • order the paged stream (order by the key);
  • leave offset and limit to the page.
Because each load names a fixed dataset version, offsets stay stable across pages, but the result does not follow new dataset versions until the declaration is updated. A page that answers warnings, or more rows than its limit, is refused rather than published in part. A page shorter than pageSize (1 to 128, 100 by default) ends the pass. The host bounds one response at 512 KiB, so wide rows need a smaller pageSize. number columns are JSON doubles. No coverage is claimed, and a row missing from a later pass is not withdrawn.

Not built

  • Starting a dataflow or recipe as a provider job. The only asynchronous operation in the guide is POST wave/dataflowjobs &#123;dataflowId, command: "start"&#125;, polled at GET wave/dataflowjobs/&#123;id&#125;. Starting a run is a business write:
    • it rebuilds the datasets the org’s dashboards read;
    • it runs the data sync of the objects the dataflow extracts;
    • it spends the org’s run allowance.
    A job collection kicks off a run at the start of every pass, as a read step. It has no command’s single-attempt custody, governing rule or idempotency. It would therefore start the recipe on the collection’s cadence, and a lost reply could start a second run. The run’s output is datasets, not records the job names. jobs.pull observes the runs the org’s own schedule starts instead.
  • SQL for CRM Analytics (queryLanguage: "SQL"), dashboards, lenses, XMD, data connectors and dataset file downloads.
Nothing here has run against a Salesforce org; it is declared from the guide.

Provider references

Provider references and prerequisites are maintained in the connector guidance above. No separate provider-documentation review date is recorded.

Source and evidence

Canonical connector source, native analysis and check receipts. Connector artifact: 905888ea276a2a28e36981a79e8142b2547ea451c3e63162cb6915ad4a7d1305. The resource declaration examples above are compiled and compared with exact catalog declarations. Recorded checks apply only to their source, declaration and runtime identities. Configure a connection and inspect its status to establish deployment-specific readiness.