Cross-Provider Workflow

Google Sheets Row to Airtable Record

Version 1.0.0

Read values from a Google Sheet, then create an Airtable record.

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

Providers Orchestrated

google-sheets airtable

Workflows

sheet-row-to-record
Read a Google Sheet range, then create an Airtable record from it.
Reads values from a Google Sheet range and creates an Airtable record using the retrieved cell values.
2 steps inputs: baseId, range, spreadsheetId, tableIdOrName outputs: firstCell, recordId
1
read-values
$sourceDescriptions.googleSheetsApi.getValues
Read a range of values from the Google Sheet.
2
create-record
$sourceDescriptions.airtableApi.createRecords
Create an Airtable record from the sheet values.

Source API Descriptions

Arazzo Workflow Specification

prod-sheet-row-to-airtable-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Google Sheets Row to Airtable Record
  summary: Read values from a Google Sheet, then create an Airtable record.
  description: >-
    A productivity and internal-ops workflow that reads a range of values from a
    Google Sheet and creates a corresponding Airtable record, migrating data
    from a spreadsheet into a structured database. Demonstrates chaining a
    spreadsheet provider and a database provider in a single Arazzo workflow.
  version: 1.0.0
sourceDescriptions:
  - name: googleSheetsApi
    url: https://raw.githubusercontent.com/api-evangelist/google-sheets/refs/heads/main/openapi/google-sheets-openapi.yml
    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: sheet-row-to-record
    summary: Read a Google Sheet range, then create an Airtable record from it.
    description: >-
      Reads values from a Google Sheet range and creates an Airtable record
      using the retrieved cell values.
    inputs:
      type: object
      properties:
        spreadsheetId:
          type: string
        range:
          type: string
        baseId:
          type: string
        tableIdOrName:
          type: string
    steps:
      - stepId: read-values
        description: Read a range of values from the Google Sheet.
        operationId: $sourceDescriptions.googleSheetsApi.getValues
        parameters:
          - name: spreadsheetId
            in: path
            value: $inputs.spreadsheetId
          - name: range
            in: path
            value: $inputs.range
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          firstCell: $response.body#/values/0/0
          secondCell: $response.body#/values/0/1
      - stepId: create-record
        description: Create an Airtable record from the sheet values.
        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:
                  Name: $steps.read-values.outputs.firstCell
                  Detail: $steps.read-values.outputs.secondCell
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          recordId: $response.body#/records/0/id
    outputs:
      firstCell: $steps.read-values.outputs.firstCell
      recordId: $steps.create-record.outputs.recordId