From f7727bf1dd0b0f240cba2b139083575cf4cc6f1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Ovejero?= Date: Mon, 6 Jul 2020 10:53:41 -0300 Subject: [PATCH] Add Google Sheets docs --- docs/nodes/credentials/Google/README.md | 22 +++++++++ .../nodes/GoogleSheets/README.md | 45 ++++++++++++++++++ .../nodes/GoogleSheets/workflow.png | Bin 0 -> 36856 bytes 3 files changed, 67 insertions(+) create mode 100644 docs/nodes/nodes-library/nodes/GoogleSheets/README.md create mode 100644 docs/nodes/nodes-library/nodes/GoogleSheets/workflow.png diff --git a/docs/nodes/credentials/Google/README.md b/docs/nodes/credentials/Google/README.md index 580992907..80115e1af 100644 --- a/docs/nodes/credentials/Google/README.md +++ b/docs/nodes/credentials/Google/README.md @@ -63,3 +63,25 @@ It will appear something like this in a text editor: 11. Before entering the private_key in n8n, make sure that you replace all the `\n` with new lines. ![Getting Google credentials](https://i.imgur.com/Q9eFy7B.gif) + +## Using OAuth + +1. Access your [Google cloud console](https://console.cloud.google.com). +2. Click on the hamburger menu button on the top left. +3. Click on *API & Services*. +4. Click on *Credentials*. +5. Click on *Create Credentials*. +6. Select *OAuth client ID*. +7. Select *Web application* in the 'Application type' section. +8. Click on *Add URI* in the 'Authorized redirect URIs' section. +9. Copy your OAuth Callback URL from the 'Create New Credentials' screen in n8n and paste it in your Google cloud console. +10. Click on *Create* in your Google cloud console. +11. Copy the provided Client Secret and Client ID and paste them in the 'Create New Credentials' screen in n8n. +12. Click on the *Connect OAuth Credentials* button in the 'OAuth' section in n8n. +13. If a popup alert shows 'This app isn't verified', click on *Advanced* and then click on *Go to [project]*. +14. Click on *Allow* for every permission request and finally on *Allow* at the confirmation screen. +14. Once the credential has connected, click on *Create* in the 'Create New Credentials' screen in n8n. +13. Return to your Google cloud console and click on *Library* in the menu on the left. +14. Search for 'Sheets', and click on *Google Sheets API*. +15. Click on *Enable*. + diff --git a/docs/nodes/nodes-library/nodes/GoogleSheets/README.md b/docs/nodes/nodes-library/nodes/GoogleSheets/README.md new file mode 100644 index 000000000..2a608adcb --- /dev/null +++ b/docs/nodes/nodes-library/nodes/GoogleSheets/README.md @@ -0,0 +1,45 @@ +--- +permalink: /nodes/n8n-nodes-base.googleSheets +--- + +# Google Sheets + +[Google Sheets](https://www.google.com/sheets) is a web-based spreadsheet program that is part of Google's office software suite within its Google Drive service. + +::: tip 🔑 Credentials +You can find authentication information for this node [here](../../../credentials/Google/README.md). +::: + +## Basic Operations + +- Append data to a sheet +- Clear data from a sheet +- Delete columns and rows from a sheet +- Look up a specific column value in a sheet +- Read data from a sheet +- Update rows in a sheet + +## Example Usage + +This workflow shows you how to read from from a Google Sheets spreadsheet. You can also find the [workflow](https://n8n.io/workflows/449) on this website. This example usage workflow uses the following two nodes. +- [Start](../../core-nodes/Start) +- [GoogleSheets]() + +The final workflow should look like the following image. + +![A workflow with the GoogleSheets node](./workflow.png) + +### 1. Start node + +The Start node exists by default when you create a new workflow. + +### 2. Google Sheets node + +1. First of all, you'll have to enter credentials for the Google Sheets node. You can find out how to do that [here](../../../credentials/Google/README.md), in the section 'Google Drive / Sheets API'. +2. Select *Read* in the *Operation* field. +3. Copy the string of characters located between `/d/` and `/edit` in your spreadsheet URL. Paste that string in the *Sheet ID* field. +4. In the *Range* field, enter the range of columns to be read from your spreadsheet. +5. In the *Data Start Row* field, enter the number of the first row that contains data, excluding the header row. +6. In the *Key Row* field, enter the number of the header row. +7. Click on *Execute Node* to run the workflow. + diff --git a/docs/nodes/nodes-library/nodes/GoogleSheets/workflow.png b/docs/nodes/nodes-library/nodes/GoogleSheets/workflow.png new file mode 100644 index 0000000000000000000000000000000000000000..0f97b302b8d8e675946a0d2ec3fff45b1c36bfca GIT binary patch literal 36856 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 T4A@yK@Y%5~Wb5rOzRCGFzeQD2 literal 0 HcmV?d00001