/** * Google Sheets Node - Version 4.1 * Discriminator: resource=sheet, operation=append */ interface Credentials { googleApi: CredentialReference; googleSheetsOAuth2Api: CredentialReference; } /** Create a new row in a sheet */ export type GoogleSheetsV41SheetAppendParams = { resource: 'sheet'; operation: 'append'; authentication?: 'serviceAccount' | 'oAuth2' | Expression; /** * Document * @builderHint Default to mode: 'list' which is easier for users to set up * @default {"mode":"list","value":""} */ documentId?: { __rl: true; mode: 'list' | 'url' | 'id'; value: string; cachedResultName?: string }; /** * Sheet * @builderHint Default to mode: 'list' which is easier for users to set up * @default {"mode":"list","value":""} */ sheetName?: { __rl: true; mode: 'list' | 'url' | 'id' | 'name'; value: string; cachedResultName?: string }; /** * Columns * @displayOptions.hide { sheetName: [""] } * @default {"mappingMode":"defineBelow","value":null} */ columns?: string; /** * Options * @displayOptions.hide { sheetName: [""] } * @default {} */ options?: { /** Determines how data should be interpreted * @default USER_ENTERED */ cellFormat?: 'USER_ENTERED' | 'RAW' | Expression; /** Data Location on Sheet * @default {"values":{}} */ locationDefine?: { /** Values */ values?: { /** Index of the row which contains the keys. Starts at 1. The incoming node data is matched to the keys for assignment. The matching is case sensitive. * @default 1 */ headerRow?: number | Expression; }; }; /** What do to with fields that don't match any columns in the Google Sheet * @displayOptions.show { /dataMode: ["autoMapInputData"] } * @default insertInNewColumn */ handlingExtraData?: 'insertInNewColumn' | 'ignoreIt' | 'error' | Expression; /** What do to with fields that don't match any columns in the Google Sheet * @displayOptions.show { /columns.mappingMode: ["autoMapInputData"] } * @default insertInNewColumn */ handlingExtraData?: 'insertInNewColumn' | 'ignoreIt' | 'error' | Expression; /** Whether to use append instead of update(default), this is more efficient but in some cases data might be misaligned * @hint Use if your sheet has no gaps between rows or columns * @default false */ useAppend?: boolean | Expression; }; }; export type GoogleSheetsV41SheetAppendNode = { type: 'n8n-nodes-base.googleSheets'; version: 4.1; credentials?: Credentials; config: NodeConfig; };