elsa-workflows / elsa-workflows/elsa-extensions

Add Google Sheets Integration

Open
#17 0 comments 0 reactions 0 assignees View on GitHub
triaged
Dominant language
C#
Stars
49
Forks
48
Avg merge
21h 35m
Merged PRs (30d)
20

Description

This issue tracks the implementation of an integration for **Google Sheets** in Elsa Workflows. The module should allow workflows to interact with Google Sheets, supporting spreadsheet management, data manipulation, and event monitoring.

## **Tasks**
- [ ] Create a new module: `Elsa.Integrations.GoogleSheets`
- [ ] Implement **Workflow Activities**:
- [ ] **AddConditionalFormatRule** - Creates a new conditional format rule at the given index, shifting subsequent rules.
- [ ] **AddRow** - Appends a new row to the bottom of the table.
- [ ] **AddSheet** - Adds a new sheet.
- [ ] **BulkAddRowsAdvanced** - Appends multiple rows to the bottom of the table.
- [ ] **BulkUpdateRowsAdvanced** - Updates multiple rows.
- [ ] **ClearValuesFromRange** - Clears values from a specified range in a spreadsheet.
- [ ] **ClearCell** - Clears a specific cell.
- [ ] **ClearRow** - Clears values from a specific row.
- [ ] **CopySheet** - Copies a sheet to another spreadsheet.
- [ ] **CreateSpreadsheet** - Creates a new spreadsheet.
- [ ] **CreateSpreadsheetFromTemplate** - Creates a new spreadsheet from a template sheet.
- [ ] **DeleteConditionalFormatRule** - Deletes a conditional format rule at a given index, shifting subsequent rules.
- [ ] **DeleteRow** - Deletes a specific row.
- [ ] **DeleteSheet** - Deletes a specific sheet.
- [ ] **GetRangeValues** - Retrieves a sheet’s content based on range values.
- [ ] **GetCell** - Retrieves the value of a specific cell.
- [ ] **ListSheets** - Retrieves a list of all sheets in a spreadsheet.
- [ ] **MakeAPICall** - Performs an arbitrary authorized API call.
- [ ] **PerformFunction** - Receives data from the MAKE_FUNCTION or INTEGROMAT functions used in a sheet (requires Sheets Add-On).
- [ ] **PerformFunctionResponder** - Returns processed data in response to the MAKE_FUNCTION or INTEGROMAT function (requires Sheets Add-On).
- [ ] **RenameSheet** - Renames a specific sheet.
- [ ] **SearchRows** - Returns rows matching the given criteria.
- [ ] **SearchRowsAdvanced** - Returns rows matching the given criteria but without returning a row number.
- [ ] **UpdateCell** - Updates a specific cell.
- [ ] **UpdateRow** - Updates a row.
- [ ] **WatchChanges** - Triggers when a cell is updated (requires Sheets Add-On, only watches changes made in Google Sheets app).
- [ ] **WatchNewRows** - Triggers when a new row is added.

- [ ] Add Unit Tests
- [ ] Add Documentation (`README.md`)

## **References**
- 📖 [Google Sheets API Docs](https://developers.google.com/sheets/api)
- 🛠️ [Google Sheets Developer Resources](https://developers.google.com/sheets)

## **Notes**
- This should follow the standard structure used for Elsa Integrations.
- The integration should support authentication via OAuth 2.0.

## **Contributor Guidelines**
If you're interested in working on this issue:

1. Comment below to claim it.
2. Follow the [CONTRIBUTING.md](https://github.com/elsa-workflows/elsa-integrations/blob/main/CONTRIBUTING.md) guide.
3. Submit a PR referencing this issue.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.