Google Sheets · Arazzo Workflow

Google Sheets Create and Seed a Spreadsheet

Version 1.0.0

Create a new spreadsheet, append seed rows to it, then read them back.

1 workflow 1 source API 1 provider
View Spec View on GitHub Google WorkspaceProductivitySpreadsheetsArazzoWorkflows

Provider

google-sheets

Workflows

create-and-seed-spreadsheet
Create a spreadsheet, append seed rows, and read them back.
Creates a spreadsheet titled by the caller, appends a block of seed rows to the supplied range, and reads the appended range back so the caller can verify the write.
3 steps inputs: accessToken, range, title, values outputs: readBackValues, seededRange, spreadsheetId, spreadsheetUrl
1
createSpreadsheet
createSpreadsheet
Create a new spreadsheet with the supplied title and capture its generated spreadsheet ID and URL.
2
appendSeedRows
appendValues
Append the supplied two-dimensional value block to the target range, letting the API find the table and write to the next available rows.
3
readBack
getValues
Read the appended range back from the spreadsheet to confirm the seed rows were written.

Source API Descriptions

Arazzo Workflow Specification

google-sheets-create-and-seed-spreadsheet-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Google Sheets Create and Seed a Spreadsheet
  summary: Create a new spreadsheet, append seed rows to it, then read them back.
  description: >-
    A foundational Google Sheets bootstrap flow. The workflow creates a brand
    new spreadsheet with a titled grid, appends an initial block of rows to the
    first tab using append semantics so existing data is never overwritten, and
    then reads the same range back to confirm the values landed. Every step
    spells out its request inline so the flow can be read and executed without
    opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: googleSheetsApi
  url: ../openapi/google-sheets-openapi.yml
  type: openapi
workflows:
- workflowId: create-and-seed-spreadsheet
  summary: Create a spreadsheet, append seed rows, and read them back.
  description: >-
    Creates a spreadsheet titled by the caller, appends a block of seed rows to
    the supplied range, and reads the appended range back so the caller can
    verify the write.
  inputs:
    type: object
    required:
    - accessToken
    - title
    - range
    - values
    properties:
      accessToken:
        type: string
        description: OAuth 2.0 bearer access token with the spreadsheets scope.
      title:
        type: string
        description: The title to give the newly created spreadsheet.
      range:
        type: string
        description: The A1 notation range to append the seed rows to (e.g. Sheet1!A1).
      values:
        type: array
        description: A two-dimensional array of cell values to seed the spreadsheet with.
        items:
          type: array
          items: {}
  steps:
  - stepId: createSpreadsheet
    description: >-
      Create a new spreadsheet with the supplied title and capture its
      generated spreadsheet ID and URL.
    operationId: createSpreadsheet
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    requestBody:
      contentType: application/json
      payload:
        properties:
          title: $inputs.title
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      spreadsheetId: $response.body#/spreadsheetId
      spreadsheetUrl: $response.body#/spreadsheetUrl
  - stepId: appendSeedRows
    description: >-
      Append the supplied two-dimensional value block to the target range,
      letting the API find the table and write to the next available rows.
    operationId: appendValues
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    - name: spreadsheetId
      in: path
      value: $steps.createSpreadsheet.outputs.spreadsheetId
    - name: range
      in: path
      value: $inputs.range
    - name: valueInputOption
      in: query
      value: USER_ENTERED
    - name: insertDataOption
      in: query
      value: INSERT_ROWS
    requestBody:
      contentType: application/json
      payload:
        range: $inputs.range
        majorDimension: ROWS
        values: $inputs.values
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      tableRange: $response.body#/tableRange
      updatedRange: $response.body#/updates/updatedRange
      updatedCells: $response.body#/updates/updatedCells
  - stepId: readBack
    description: >-
      Read the appended range back from the spreadsheet to confirm the seed
      rows were written.
    operationId: getValues
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    - name: spreadsheetId
      in: path
      value: $steps.createSpreadsheet.outputs.spreadsheetId
    - name: range
      in: path
      value: $steps.appendSeedRows.outputs.updatedRange
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      values: $response.body#/values
  outputs:
    spreadsheetId: $steps.createSpreadsheet.outputs.spreadsheetId
    spreadsheetUrl: $steps.createSpreadsheet.outputs.spreadsheetUrl
    seededRange: $steps.appendSeedRows.outputs.updatedRange
    readBackValues: $steps.readBack.outputs.values