Cross-Provider Workflow

Airtable Records to Snowflake Table

Version 1.0.0

List records from an Airtable table, then insert them into a Snowflake table.

1 workflow 2 source APIs 2 providers
View Spec View on GitHub ArazzoWorkflowsCross-Provider

Providers Orchestrated

airtable snowflake

Workflows

airtable-to-snowflake
Pull Airtable records and insert them into Snowflake.
Lists records from an Airtable table, then submits a Snowflake INSERT statement binding the record values so the operational data lands in the warehouse.
2 steps inputs: baseId, insertStatement, tableIdOrName, warehouse outputs: records, statementHandle
1
list-records
$sourceDescriptions.airtableApi.listRecords
List the records from the Airtable table.
2
insert-to-snowflake
$sourceDescriptions.snowflakeSqlApi.SubmitStatement
Insert the Airtable records into a Snowflake table.

Source API Descriptions

Arazzo Workflow Specification

data-airtable-records-to-snowflake-table.yml Raw ↑
arazzo: 1.0.1
info:
  title: Airtable Records to Snowflake Table
  summary: List records from an Airtable table, then insert them into a Snowflake table.
  description: >-
    A data pipeline workflow that reads records from an Airtable base and loads them into
    a Snowflake table via a SQL INSERT statement, promoting operational data captured in
    a no-code tool into the analytics warehouse. Demonstrates moving collaborative data
    into a cloud data warehouse.
  version: 1.0.0
sourceDescriptions:
  - name: airtableApi
    url: https://raw.githubusercontent.com/api-evangelist/airtable/refs/heads/main/openapi/airtable-airtable-api-openapi.yml
    type: openapi
  - name: snowflakeSqlApi
    url: https://raw.githubusercontent.com/api-evangelist/snowflake/refs/heads/main/openapi/sqlapi.yaml
    type: openapi
workflows:
  - workflowId: airtable-to-snowflake
    summary: Pull Airtable records and insert them into Snowflake.
    description: >-
      Lists records from an Airtable table, then submits a Snowflake INSERT statement
      binding the record values so the operational data lands in the warehouse.
    inputs:
      type: object
      properties:
        baseId:
          type: string
        tableIdOrName:
          type: string
        insertStatement:
          type: string
        warehouse:
          type: string
    steps:
      - stepId: list-records
        description: List the records from the Airtable table.
        operationId: $sourceDescriptions.airtableApi.listRecords
        parameters:
          - name: baseId
            in: path
            value: $inputs.baseId
          - name: tableIdOrName
            in: path
            value: $inputs.tableIdOrName
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          records: $response.body#/records
      - stepId: insert-to-snowflake
        description: Insert the Airtable records into a Snowflake table.
        operationId: $sourceDescriptions.snowflakeSqlApi.SubmitStatement
        requestBody:
          contentType: application/json
          payload:
            statement: $inputs.insertStatement
            warehouse: $inputs.warehouse
            bindings:
              "1":
                type: TEXT
                value: $steps.list-records.outputs.records
            timeout: 120
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          statementHandle: $response.body#/statementHandle
    outputs:
      records: $steps.list-records.outputs.records
      statementHandle: $steps.insert-to-snowflake.outputs.statementHandle