Allowing Integrate.io ETL access to Google Sheets

Integrate.io ETL can read data from and write data to Google Sheets spreadsheets. This article details how to set up the Google Sheets connection in Integrate.io ETL.

This connector uses a Google Service Account for authentication.

Step 1: Create a GCP Project

  1. Access your Google Cloud Console.
  2. Click the project dropdown at the top of the page and select existing project or create a New Project.
  3. If a new project is created, enter a project name (e.g. my-sheets-connector) and click Create. Make sure the newly created project is selected in the project dropdown before proceeding.

Step 2: Enable the Google Sheets API and Google Drive API

  1. In the left sidebar, navigate to APIs & Services → Library.
  2. Search for Google Sheets API.
  3. Click the Google Sheets API result and click Enable.
  4. Return to the API Library and search for Google Drive API.
  5. Click the Google Drive API result and click Enable.

Step 3: Create a Service Account

  1. In the left sidebar, navigate to IAM & Admin → Service Accounts.
  2. Click + Create Service Account.
  3. Fill in the service account details:
    • Name: e.g. sheets-connector
    • Description: e.g. Service account for Integrate.io Google Sheets connector
  4. Click Create and Continue.
  5. Skip the optional role grant steps — spreadsheet access is controlled by sharing individual spreadsheets with the service account (see Step 5).
  6. Click Done.

Step 4: Download the JSON Key

  1. From the Service Accounts list, click the service account you just created.
  2. Go to the Keys tab.
  3. Click **Add Key → Create new key**.
  4. Select **JSON** and click **Create**.
  5. A `.json` key file will be automatically downloaded to your machine. Keep this file secure — it contains the private key used to authenticate the service account.
    The JSON file will contain a structure similar to:

    json
    {
    "type": "service_account",
    "project_id": "your-project",
    "private_key_id": "...",
    "private_key": "-----BEGIN RSA PRIVATE KEY-----\n...",
    "client_email": "sheets-connector@your-project.iam.gserviceaccount.com",
    "client_id": "118304762983475829341",
    ...
    }

    Note the `client_email` field — you will need this in Step 5.

Step 5: Share Spreadsheets with the Service Account

For the connector to access a spreadsheet, the spreadsheet must be shared with the service account's email address.
  1. Open the Google Sheets spreadsheet you want to connect.
  2. Click the **Share** button in the top-right corner.
  3. In the "Add people and groups" field, paste the service account's `client_email` address (e.g. `sheets-connector@your-project.iam.gserviceaccount.com`).
  4. Set the permission level:
    - **Viewer** — if the spreadsheet will only be used as a source (read-only)
    - **Editor** — if the spreadsheet will be used as a destination (write)
  5. Uncheck "Notify people" (the service account cannot receive emails) and click **Share**.
💡 Repeat this step for each spreadsheet you want to use with Integrate.io. Only spreadsheets explicitly shared with the service account will appear in the spreadsheet picker.

Step 6: Create Google Sheets Connection on Integrate.io ETL

  1. Navigate to the Connections tab and click Google Sheets.
  2. Fill in the Connection Name
  3. Upload the JSON key file you downloaded in Step 4.
  4. Click Test Connection and then Create Connection.
⚠️ If the connection test fails, verify that:
- The Google Sheets API and Google Drive API are both enabled in your GCP project (Step 2).
- The JSON key file is valid and belongs to the correct project.
- The service account has not been deleted or disabled.