Portal Community

Node Identity

PropertyValue
Resourcesspreadsheet, sheet
Total Operations10
Auth TypeGoogle OAuth2 (CredentialId Guid)
Output Portssuccess, error

Common Properties (All Operations)

PropertyRequiredDescription
CredentialId Required Guid referencing a Google OAuth2 credential in BizFirst Credentials Manager. The credential must include the https://www.googleapis.com/auth/spreadsheets scope. For spreadsheet/create and spreadsheet/delete, additionally include https://www.googleapis.com/auth/drive.

Key Enumerations

DataMode
CellValueInputOption
ExtraDataHandling
FilterCombineMode
DeleteDimension

spreadsheet Resource

spreadsheet/create

PropertyRequiredDescription
TitleRequiredName of the new spreadsheet file. Supports expressions: {{ vars.report_name }}.
SheetsOptionalArray of sheet tab titles to create initially. Example: ["January", "February", "Summary"]. If omitted, Google creates a single default tab named "Sheet1".
LocaleOptionalLocale for the spreadsheet, affecting date/number formatting. Example: en_US, en_GB, fr_FR.
RecalculationIntervalOptionalHow often volatile functions (e.g. NOW(), RAND()) recalculate. Values: ON_CHANGE, MINUTE, HOUR.

spreadsheet/delete

PropertyRequiredDescription
SpreadsheetIdRequiredThe Google Sheets file ID. Found in the spreadsheet URL: https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit. Supports expressions.
Permanent deletion: spreadsheet/delete permanently removes the file from Google Drive. It bypasses Trash. Ensure the correct SpreadsheetId before executing in a production workflow.

sheet Resource

sheet/append

PropertyRequiredDescription
SpreadsheetIdRequiredGoogle Sheets file ID.
SheetNameRequiredName of the sheet tab (exactly as it appears on the tab). Case-sensitive. Supports expressions.
DataModeRequiredAutoMap, DefineBelow, or Nothing. See DataMode explanation above.
ColumnMappingsOptionalArray of ColumnMapping objects. Required when DataMode is DefineBelow. Each entry: { "Column": "ColumnHeader", "Value": "{{ expression }}" }.
CellFormatOptionalUserEntered or Raw. Controls how values are parsed by Google Sheets. Default: UserEntered.
HeaderRowOptionalInteger row number (1-based) containing column headers. Default: 1.
FirstDataRowOptionalInteger row number (1-based) where data rows begin. Default: 2.
HandlingExtraDataOptionalIgnoreIt, InsertInNewColumn, or Error. Default: IgnoreIt.
UseAppendOptionalBoolean. When true, uses Google's native append API (finds the first empty row after existing data). When false, calculates the next empty row directly. Default: true.

sheet/appendOrUpdate

Searches existing rows using LookupFilters. If a matching row is found, it is updated in place. If no match is found, a new row is appended.

PropertyRequiredDescription
SpreadsheetIdRequiredGoogle Sheets file ID.
SheetNameRequiredSheet tab name.
DataModeRequiredAutoMap, DefineBelow, or Nothing.
ColumnMappingsOptionalColumn-to-value mappings when DataMode is DefineBelow.
LookupFiltersRequiredArray of SheetFilterInfo objects used to find an existing row. Each entry: { "Column": "Email", "Value": "{{ vars.email }}" }. The node scans all data rows for a match.
CombineFiltersOptionalAnd (all filters must match) or Or (any filter matches). Default: And.
CellFormatOptionalUserEntered or Raw. Default: UserEntered.
HeaderRowOptionalHeader row number (1-based). Default: 1.
FirstDataRowOptionalFirst data row number (1-based). Default: 2.
HandlingExtraDataOptionalIgnoreIt, InsertInNewColumn, or Error. Default: IgnoreIt.

sheet/clear

PropertyRequiredDescription
SpreadsheetIdRequiredGoogle Sheets file ID.
SheetNameRequiredSheet tab name.
ClearAllRequiredBoolean. When true, clears the entire sheet (all rows and columns). When false, clears only the range specified by StartRow and EndRow.
StartRowOptionalFirst row to clear (1-based, inclusive). Only used when ClearAll is false.
EndRowOptionalLast row to clear (1-based, inclusive). Only used when ClearAll is false.

sheet/create

PropertyRequiredDescription
SpreadsheetIdRequiredGoogle Sheets file ID to add the new tab to.
TitleRequiredTab name for the new sheet. Supports expressions: {{ vars.month_name }}.
HiddenOptionalBoolean. When true, the new sheet tab is hidden from view. Default: false.
TabColorOptionalHex color string for the tab (e.g. #4CAF50 for green). Sets the visual tab color in the Sheets UI.

sheet/delete

PropertyRequiredDescription
SpreadsheetIdRequiredGoogle Sheets file ID.
SheetNameRequiredName of the sheet tab to permanently delete. All data in the tab is removed.

sheet/deleteRowsOrColumns

PropertyRequiredDescription
SpreadsheetIdRequiredGoogle Sheets file ID.
SheetNameRequiredSheet tab name.
DimensionRequiredRows or Columns. Specifies whether to delete rows or columns.
StartIndexRequired0-based index of the first row or column to delete. Row 1 (header) = index 0. First data row = index 1.
AmountRequiredNumber of rows or columns to delete starting from StartIndex. Example: StartIndex: 1, Amount: 5 deletes the first 5 data rows (rows 2–6 in the sheet).

sheet/get

PropertyRequiredDescription
SpreadsheetIdRequiredGoogle Sheets file ID.
SheetNameRequiredSheet tab name to read from.
FiltersOptionalArray of SheetFilterInfo objects to filter returned rows. Each entry: { "Column": "Status", "Value": "Pending" }. If omitted, all data rows are returned.
CombineFiltersOptionalAnd or Or. Controls how multiple filters are combined. Default: And.
HeaderRowOptionalRow number of the header row (1-based). Default: 1.
FirstDataRowOptionalRow number where data begins (1-based). Default: 2.
ValueRenderOptionalHow cell values are rendered in the output. FORMATTED_VALUE (as displayed), UNFORMATTED_VALUE (raw number/string), or FORMULA (the formula string if a formula is present). Default: FORMATTED_VALUE.
DateTimeRenderOptionalHow dates and times are represented. SERIAL_NUMBER (Google Sheets numeric serial) or FORMATTED_STRING (locale-formatted date string). Default: FORMATTED_STRING.
ReturnFirstMatchOptionalBoolean. When true, the node returns only the first matching row object instead of an array. Useful when you expect exactly one result. Default: false.

sheet/update

PropertyRequiredDescription
SpreadsheetIdRequiredGoogle Sheets file ID.
SheetNameRequiredSheet tab name.
DataModeRequiredAutoMap, DefineBelow, or Nothing.
ColumnMappingsOptionalColumn-to-value mappings when DataMode is DefineBelow.
LookupFiltersRequiredArray of SheetFilterInfo objects to identify which rows to update. All matching rows are updated.
CombineFiltersOptionalAnd or Or. Default: And.
CellFormatOptionalUserEntered or Raw. Default: UserEntered.
HeaderRowOptionalHeader row number (1-based). Default: 1.
FirstDataRowOptionalFirst data row number (1-based). Default: 2.

ColumnMapping Object Reference

FieldTypeDescription
ColumnstringThe exact column header name as it appears in the sheet's header row. Case-sensitive.
ValuestringThe value to write. Supports BizFirst expressions: {{ vars.order_id }}, {{ nodes.prevNode.output.total }}, static strings, or formula strings when CellFormat is UserEntered.

SheetFilterInfo Object Reference

FieldTypeDescription
ColumnstringThe column header name to filter on.
ValuestringThe value to match. Supports BizFirst expressions. Comparison is an exact string match against the cell value (after applying ValueRender formatting).
HeaderRow and FirstDataRow defaults: If your sheet has a header in row 1 and data starting in row 2 (the most common layout), you can omit both HeaderRow and FirstDataRow. Only override these if your sheet has a different structure, such as a title in row 1, headers in row 2, and data from row 3.