Setu Recipes: reusable workflows across every app.Browse templates

Integrations / Google Sheets

Google Sheets

Read and write spreadsheet data in Google Sheets.

5 actions OAuth 2 2 read3 write Calls sheets.googleapis.com

Connect

TypeScript
const conn = await setu.connections.initiate({ userId: "user_1", toolkit: "googlesheets" });
console.log(conn.connectUrl); // show this to your user
await conn.waitUntilActive();

Permissions requested

ScopeWhy it is requested
https://www.googleapis.com/auth/userinfo.emailSee which Google account you connected
https://www.googleapis.com/auth/spreadsheetsSee, edit, create and delete your Google Sheets spreadsheets

Actions

Append rowswritegooglesheets.append_rowsAdd rows after the last row of data in a sheet.

Needs scope: https://www.googleapis.com/auth/spreadsheets

InputTypeDescription
spreadsheet_idstringRequiredThe long ID in the spreadsheet address
rangestringRequiredA1 notation, for example Sheet1!A1:D20
valuesarray of arrayRequiredRows to add, each a list of cell values
TypeScript
await setu.execute({
  userId: "user_1",
  action: "googlesheets.append_rows",
  input: {
    "spreadsheet_id": "<spreadsheet_id>",
    "range": "<range>",
    "values": []
  },
});
Create spreadsheetwritegooglesheets.create_spreadsheetCreate a new, empty spreadsheet.

Needs scope: https://www.googleapis.com/auth/spreadsheets

InputTypeDescription
titlestringRequiredSpreadsheet title
TypeScript
await setu.execute({
  userId: "user_1",
  action: "googlesheets.create_spreadsheet",
  input: {
    "title": "<title>"
  },
});
Get spreadsheetreadgooglesheets.get_spreadsheetGet a spreadsheet's title and the names of its sheets.

Needs scope: https://www.googleapis.com/auth/spreadsheets

InputTypeDescription
spreadsheet_idstringRequiredThe long ID in the spreadsheet address
TypeScript
await setu.execute({
  userId: "user_1",
  action: "googlesheets.get_spreadsheet",
  input: {
    "spreadsheet_id": "<spreadsheet_id>"
  },
});
Read rangereadgooglesheets.read_rangeRead cell values from a range such as Sheet1!A1:D20.

Needs scope: https://www.googleapis.com/auth/spreadsheets

InputTypeDescription
spreadsheet_idstringRequiredThe long ID in the spreadsheet address
rangestringRequiredA1 notation, for example Sheet1!A1:D20
TypeScript
await setu.execute({
  userId: "user_1",
  action: "googlesheets.read_range",
  input: {
    "spreadsheet_id": "<spreadsheet_id>",
    "range": "<range>"
  },
});
Update rangewritegooglesheets.update_rangeOverwrite the cells in a range with new values.

Needs scope: https://www.googleapis.com/auth/spreadsheets

InputTypeDescription
spreadsheet_idstringRequiredThe long ID in the spreadsheet address
rangestringRequiredA1 notation, for example Sheet1!A1:D20
valuesarray of arrayRequiredRows of cell values
TypeScript
await setu.execute({
  userId: "user_1",
  action: "googlesheets.update_range",
  input: {
    "spreadsheet_id": "<spreadsheet_id>",
    "range": "<range>",
    "values": []
  },
});