Cross-Provider Workflow

Snowflake Query Results to Airtable Records

Version 1.0.0

Run a Snowflake SQL query, then create the rows as records in an Airtable table.

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

Providers Orchestrated

snowflake airtable

Workflows

snowflake-query-to-airtable
Query Snowflake and push the results into an Airtable table.
Submits a Snowflake SQL statement, then creates Airtable records from the returned rows so analysts can collaborate on the query output.
2 steps inputs: baseId, fields, sqlStatement, tableIdOrName, warehouse outputs: createdRecordIds, statementHandle
1
run-query
$sourceDescriptions.snowflakeSqlApi.SubmitStatement
Submit a SQL statement to Snowflake and retrieve the result rows.
2
create-records
$sourceDescriptions.airtableApi.createRecords
Create Airtable records from the Snowflake query results.

Source API Descriptions

Arazzo Workflow Specification

data-snowflake-query-to-airtable-records.yml Raw ↑
arazzo: 1.0.1
info:
  title: Snowflake Query Results to Airtable Records
  summary: Run a Snowflake SQL query, then create the rows as records in an Airtable table.
  description: >-
    A data pipeline workflow that submits a SQL statement to Snowflake and writes the
    returned rows into an Airtable base as new records, making warehouse query output
    available in a collaborative, spreadsheet-style interface. Demonstrates bridging a
    cloud data warehouse with a no-code database provider.
  version: 1.0.0
sourceDescriptions:
  - name: snowflakeSqlApi
    url: https://raw.githubusercontent.com/api-evangelist/snowflake/refs/heads/main/openapi/sqlapi.yaml
    type: openapi
  - name: airtableApi
    url: https://raw.githubusercontent.com/api-evangelist/airtable/refs/heads/main/openapi/airtable-airtable-api-openapi.yml
    type: openapi
workflows:
  - workflowId: snowflake-query-to-airtable
    summary: Query Snowflake and push the results into an Airtable table.
    description: >-
      Submits a Snowflake SQL statement, then creates Airtable records from the
      returned rows so analysts can collaborate on the query output.
    inputs:
      type: object
      properties:
        sqlStatement:
          type: string
        warehouse:
          type: string
        baseId:
          type: string
        tableIdOrName:
          type: string
        fields:
          type: object
    steps:
      - stepId: run-query
        description: Submit a SQL statement to Snowflake and retrieve the result rows.
        operationId: $sourceDescriptions.snowflakeSqlApi.SubmitStatement
        requestBody:
          contentType: application/json
          payload:
            statement: $inputs.sqlStatement
            warehouse: $inputs.warehouse
            timeout: 120
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          statementHandle: $response.body#/statementHandle
          rowCount: $response.body#/resultSetMetaData/numRows
      - stepId: create-records
        description: Create Airtable records from the Snowflake query results.
        operationId: $sourceDescriptions.airtableApi.createRecords
        parameters:
          - name: baseId
            in: path
            value: $inputs.baseId
          - name: tableIdOrName
            in: path
            value: $inputs.tableIdOrName
        requestBody:
          contentType: application/json
          payload:
            records:
              - fields: $inputs.fields
            typecast: true
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          createdRecordIds: $response.body#/records
    outputs:
      statementHandle: $steps.run-query.outputs.statementHandle
      createdRecordIds: $steps.create-records.outputs.createdRecordIds