Salesforce Account Ingestion

Salesforce Account Ingestion

Data Contract Template

Data Contract Template

Renata Hlavová

Data Engineer at Make

Ensure CRM account data ingested from Salesforce is structurally complete, fresh, and free of duplicates before it enters the transformation layer.

Data contract description

This data contract is used by Make, an AI automation platform, to validate Salesforce Account data at the point of ingestion into Snowflake, before any transformation runs. The ACCOUNTdataset is managed by the Business Processes & Automation (BPnS) team, which owns Salesforce operations. The contract enforces schema stability, data freshness, row count, and column-level checks, with critical failures routed automatically to the relevant Slack channel.

salesforce_account_data_contract.yaml

dataset
checks:
  - schema:
      allow_other_column_order: true
      attributes:
        teams:
          - BPnS
        severity: critical
        notify:
          - '#dq-bpns'
  - row_count:
      name: Row count > 0
      attributes:
        teams:
          - BPnS
        severity: critical
        notify:
          - '#dq-bpns'
  - freshness:
      column: CREATED_AT
      threshold:
        level: warn
        unit: day
        must_be_less_than: 2
      attributes:
        teams:
          - BPnS
        severity

columns:
  - name: ID
    data_type: text
    checks:
      - missing:
          attributes:
            teams:
              - BPnS
            severity: critical
            notify:
              - '#dq-bpns'
      - duplicate:
          attributes:
            teams:
              - BPnS
            severity: critical
            notify:
              - '#dq-bpns'
  - name: IS_DELETED
    data_type: number
    checks:
      - missing:
          attributes:
            teams:
              - BPnS
            severity: minor
  - name: NAME
    data_type: text
    checks:
      - missing:
          attributes:
            teams:
              - BPnS
            severity: major
            notify:
              - '#dq-bpns'
  - name: COMPANY_DOMAIN
    data_type: text
    checks:
      - invalid:
          name: Max character length
          valid_max_length: 255
          attributes:
            teams:
              - BPnS
            severity: minor
  - name: COMPANY_DESCRIPTION
    data_type: text
    checks:
      - invalid:
          name: Max character length
          valid_max_length: 131000
          attributes:
            teams:
              - BPnS
            severity: minor
  - name: CREATED_AT
    data_type: timestamp_tz
    checks:
      - missing:
          attributes:
            teams:
              - BPnS
            severity: critical
            notify:
              - '#dq-bpns'

Data contract description

This data contract is used by Make, an AI automation platform, to validate Salesforce Account data at the point of ingestion into Snowflake, before any transformation runs. The ACCOUNTdataset is managed by the Business Processes & Automation (BPnS) team, which owns Salesforce operations. The contract enforces schema stability, data freshness, row count, and column-level checks, with critical failures routed automatically to the relevant Slack channel.

salesforce_account_data_contract.yaml

dataset
checks:
  - schema:
      allow_other_column_order: true
      attributes:
        teams:
          - BPnS
        severity: critical
        notify:
          - '#dq-bpns'
  - row_count:
      name: Row count > 0
      attributes:
        teams:
          - BPnS
        severity: critical
        notify:
          - '#dq-bpns'
  - freshness:
      column: CREATED_AT
      threshold:
        level: warn
        unit: day
        must_be_less_than: 2
      attributes:
        teams:
          - BPnS
        severity

columns:
  - name: ID
    data_type: text
    checks:
      - missing:
          attributes:
            teams:
              - BPnS
            severity: critical
            notify:
              - '#dq-bpns'
      - duplicate:
          attributes:
            teams:
              - BPnS
            severity: critical
            notify:
              - '#dq-bpns'
  - name: IS_DELETED
    data_type: number
    checks:
      - missing:
          attributes:
            teams:
              - BPnS
            severity: minor
  - name: NAME
    data_type: text
    checks:
      - missing:
          attributes:
            teams:
              - BPnS
            severity: major
            notify:
              - '#dq-bpns'
  - name: COMPANY_DOMAIN
    data_type: text
    checks:
      - invalid:
          name: Max character length
          valid_max_length: 255
          attributes:
            teams:
              - BPnS
            severity: minor
  - name: COMPANY_DESCRIPTION
    data_type: text
    checks:
      - invalid:
          name: Max character length
          valid_max_length: 131000
          attributes:
            teams:
              - BPnS
            severity: minor
  - name: CREATED_AT
    data_type: timestamp_tz
    checks:
      - missing:
          attributes:
            teams:
              - BPnS
            severity: critical
            notify:
              - '#dq-bpns'

Data contract description

This data contract is used by Make, an AI automation platform, to validate Salesforce Account data at the point of ingestion into Snowflake, before any transformation runs. The ACCOUNTdataset is managed by the Business Processes & Automation (BPnS) team, which owns Salesforce operations. The contract enforces schema stability, data freshness, row count, and column-level checks, with critical failures routed automatically to the relevant Slack channel.

salesforce_account_data_contract.yaml

dataset
checks:
  - schema:
      allow_other_column_order: true
      attributes:
        teams:
          - BPnS
        severity: critical
        notify:
          - '#dq-bpns'
  - row_count:
      name: Row count > 0
      attributes:
        teams:
          - BPnS
        severity: critical
        notify:
          - '#dq-bpns'
  - freshness:
      column: CREATED_AT
      threshold:
        level: warn
        unit: day
        must_be_less_than: 2
      attributes:
        teams:
          - BPnS
        severity

columns:
  - name: ID
    data_type: text
    checks:
      - missing:
          attributes:
            teams:
              - BPnS
            severity: critical
            notify:
              - '#dq-bpns'
      - duplicate:
          attributes:
            teams:
              - BPnS
            severity: critical
            notify:
              - '#dq-bpns'
  - name: IS_DELETED
    data_type: number
    checks:
      - missing:
          attributes:
            teams:
              - BPnS
            severity: minor
  - name: NAME
    data_type: text
    checks:
      - missing:
          attributes:
            teams:
              - BPnS
            severity: major
            notify:
              - '#dq-bpns'
  - name: COMPANY_DOMAIN
    data_type: text
    checks:
      - invalid:
          name: Max character length
          valid_max_length: 255
          attributes:
            teams:
              - BPnS
            severity: minor
  - name: COMPANY_DESCRIPTION
    data_type: text
    checks:
      - invalid:
          name: Max character length
          valid_max_length: 131000
          attributes:
            teams:
              - BPnS
            severity: minor
  - name: CREATED_AT
    data_type: timestamp_tz
    checks:
      - missing:
          attributes:
            teams:
              - BPnS
            severity: critical
            notify:
              - '#dq-bpns'

How to Enforce Data Contracts with Soda

Embed data quality through data contracts at any point in your pipeline.

Embed data quality through data contracts at any point in your pipeline.

# pip install soda-{data source} for other data sources

# pip install soda-{data source} for other data sources

pip install soda-postgres

pip install soda-postgres

# verify the contract locally against a data source

# verify the contract locally against a data source

soda contract verify -c contract.yml -ds ds_config.yml

soda contract verify -c contract.yml -ds ds_config.yml

# publish and schedule the contract with Soda Cloud

# publish and schedule the contract with Soda Cloud

soda contract publish -c contract.yml -sc sc_config.yml

soda contract publish -c contract.yml -sc sc_config.yml

Check out the CLI documentation to learn more.

Check out the CLI documentation to learn more.

How to Automatically Create Data Contracts.
In one Click.

Automatically write and publish data contracts using Soda's AI-powered data contract copilot.

Make data contracts work in production

Business knows what good data looks like. Engineering knows how to deliver it at scale. Soda unites both, turning governance expectations into executable contracts.

4.4 of 5

Your data has problems.
Now they fix themselves.

Automated data quality, remediation, and management.

One platform, agents that do the work, you approve.

Trusted by

4.4 of 5

Your data has problems.
Now they fix themselves.

Automated data quality, remediation, and management.

One platform, agents that do the work, you approve.

Trusted by

4.4 of 5

Your data has problems.
Now they fix themselves.

Automated data quality, remediation, and management.

One platform, agents that do the work, you approve.

Trusted by