Portal Community

Output Ports

PortTriggerDescription
successGoogle Sheets API returned 2xxOperation completed successfully. Response data is available in the node output object.
errorAPI error or network failureThe Sheets API returned an error, the OAuth2 token was invalid or expired, the spreadsheet was not found, or a permission error occurred.

sheet/get Output

Returns an array of row objects. Each object is keyed by column header name. If ReturnFirstMatch is true, a single row object is returned instead of an array.

FieldTypeDescription
rowsarrayArray of row objects. Each row is a flat object with one key per column header. Values are strings (or typed values when ValueRender is UNFORMATTED_VALUE).
rowCountintegerNumber of rows returned after applying filters.

Example: sheet/get Output

Sheet with headers: Order ID, Customer, Amount, Status, Date

{
  "rows": [
    {
      "Order ID": "ORD-2025-001",
      "Customer": "Acme Corp",
      "Amount": "1250.00",
      "Status": "Pending",
      "Date": "2025-05-20"
    },
    {
      "Order ID": "ORD-2025-007",
      "Customer": "Beta Ltd",
      "Amount": "340.00",
      "Status": "Pending",
      "Date": "2025-05-22"
    }
  ],
  "rowCount": 2
}
Accessing row data downstream: If the node is named getPendingOrders, access the first row's customer name with {{ nodes.getPendingOrders.output.rows[0]["Customer"] }}. When using a Loop node to iterate over the rows array, each iteration provides the row object directly as the loop variable.

sheet/append Output

FieldTypeDescription
updatedRangestringThe A1-notation range that was updated (e.g. Orders!A15:E15). Indicates which row was written.
updatedRowsintegerNumber of rows appended. Typically 1 for a single append operation.
updatedColumnsintegerNumber of columns written in the appended row.
updatedCellsintegerTotal number of cells written.

Example: sheet/append Output

{
  "updatedRange": "Orders!A15:E15",
  "updatedRows": 1,
  "updatedColumns": 5,
  "updatedCells": 5
}

sheet/appendOrUpdate Output

FieldTypeDescription
actionstring"appended" if no matching row was found and a new row was added; "updated" if an existing row was found and updated in place.
updatedRangestringA1-notation range of the row that was written or updated.
updatedRowsintegerNumber of rows affected.

Example: sheet/appendOrUpdate Output

{
  "action": "updated",
  "updatedRange": "Customers!A8:F8",
  "updatedRows": 1
}

spreadsheet/create Output

FieldTypeDescription
spreadsheetIdstringThe newly created spreadsheet's file ID. Store this in a workflow variable to use in subsequent sheet operations.
spreadsheetUrlstringFull URL to open the spreadsheet in Google Sheets.
titlestringTitle of the created spreadsheet (echoes the input Title).
sheetsarrayArray of sheet tab objects, each with sheetId (integer), title, and index.

Example: spreadsheet/create Output

{
  "spreadsheetId": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms",
  "spreadsheetUrl": "https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms/edit",
  "title": "Sales Report — May 2025",
  "sheets": [
    { "sheetId": 0, "title": "Summary", "index": 0 },
    { "sheetId": 123456789, "title": "Raw Data", "index": 1 }
  ]
}

sheet/create Output

FieldTypeDescription
sheetIdintegerThe integer ID of the newly created sheet tab within the spreadsheet.
titlestringTitle of the created tab.
indexinteger0-based position of the new tab in the spreadsheet.

Delete / Clear Operations Output

spreadsheet/delete, sheet/delete, sheet/clear, and sheet/deleteRowsOrColumns return a minimal confirmation object on success:

{
  "success": true
}

sheet/update Output

FieldTypeDescription
updatedRowsintegerNumber of rows that matched the lookup filters and were updated.
updatedRangestringA1-notation of the last updated range. When multiple rows are updated, this reflects the last batch.
sheet/update updates ALL matching rows: Unlike appendOrUpdate, sheet/update applies changes to every row that matches the LookupFilters. If multiple rows share the same lookup value, all are updated. Use a unique key column (such as an ID or email) in your filters to target a single row precisely.