Skip to content
Keboola Docs

Deliver the Answer

Send the table you just built out of Keboola into a Google Sheet using the Google Sheets data destination connector.

Whoever asked how deep octopuses really go will look in a spreadsheet, not in Keboola. This step delivers the 10,000-row atlas to a Google Sheet — the same mechanism that later sends data to a warehouse, a BI tool, or a CRM. Step 4 of the Getting Started arc.

Two ways to do it, in one order: steps 1–6 below are yours either way — the configuration and the Google authorization. After that, pick a tab in Set it up. Doing it with Kai, the run is part of the prompt; doing it yourself, you run it below the tabs. Checking the result is shared.

  • The table octopus_atlas in Storage, from Transform Data.
  • A Google account you can authorize.

Getting data out is handled by data destination connectors — the mirror image of the data source connectors you loaded with. The pattern is always the same: authorize the target, pick the Storage table, say where it goes, run it. Sending processed data back into the operational systems it came from is often called reverse ETL; in Keboola it is just another component in your flow.

Google Sheets is the easiest destination to try. The full catalogue covers databases, BI tools, and cloud storage.

  1. Open Components and search for Sheets. Five results come back, and the first two are Google Sheets — Data Source and Google Sheets — Data Destination: near-identical names, opposite jobs. Pick the Data Destination one (component ID keboola.wr-google-sheets). Picking the data source by mistake makes the rest of this page impossible.

    Screenshot - Search for the Google Sheets destination

  2. Click Add Component (Create Configuration on the card once the component already has configurations), then Connect To My Data — the only button here, unlike the HTTP connector in step 2, which also offered demo data.

    Screenshot - Connect to my data

  3. Name the configuration [TUTORIAL] Octopus atlas to Sheets, add a description, and click Create Configuration.

    Screenshot - Name the configuration

  1. Authorize the account you want to write into.

    Screenshot - Authorize a Google account

  2. Name the authorization and click Sign in with Google. Use external authorization instead if a colleague — not you — owns the target account; Keboola sends them a link and never sees their credentials.

    Screenshot - Sign in with Google

  3. Click Allow.

    Screenshot - Grant access

The authorization belongs to this configuration. Keboola stores component secrets as encrypted configuration parameters — there is no decryption API, so the credentials are never readable back out of the configuration.

Kai configures data destinations as well as data sources. The configuration and the authorization above are yours either way — that consent screen is in your own Google account, not something an assistant can click through. Everything after it, Kai can do: open Kai Agent in the top bar and hand it over.

In my "[TUTORIAL] Octopus atlas to Sheets" configuration, write
out.c-octopus-atlas.octopus_atlas to a new spreadsheet called
"[TUTORIAL] Octopus atlas", into a sheet named octopus_atlas, set to update rows rather
than append. Then run it.

Naming all three matters: step 5 puts this on a daily schedule, so an appending sheet grows by 10,000 rows a day, and the check at the end of this tab looks for that spreadsheet name. The whole exchange, condensed to twenty seconds:

Check: the sheet holds every row of octopus_atlas, joined columns included, exactly as in Run it and check the result. If it does not, switch to the Do it yourself tab and edit the sheet Kai created — its spreadsheet and sheet settings, steps 9 and 10 — since everything Kai set is editable there.

Coming from the Kai tab? The run already happened — the prompt asked for it. Start at step 12.

  1. Click Run Component.

  2. When the job finishes, click the spreadsheet name — [TUTORIAL] Octopus atlas — to open it in Google Drive.

    Screenshot - Open the spreadsheet

The sheet should hold every row of octopus_atlas, with the joined columns — display_name, depth_zone, basin — that did not exist in any of the four CSVs you started with. Sort it by depth_m descending and Grimpoteuthis challengeri — a dumbo octopus, though the data only knows its Latin name — sits at the top, 4,838 meters down. That is the whole pipeline, end to end.

  • The job fails with a permission error. The authorization expired or was revoked in the Google account. Re-authorize the configuration; the sheet selection survives.
  • The spreadsheet stays empty. The table was saved in the configuration but the component has not run since — click Run Component. If it did run, check in Jobs whether the source table had any rows.
  • Only some columns arrive. The sheet was created against an older version of the table. Delete the sheet from the configuration and add it again so the column list is rebuilt.
  • You cannot open the spreadsheet. It lives in the authorized Google account, not yours — if you authorized a colleague’s account, ask them to share it.
  • You want the delivery checked against the source. Kai can read both sides: Read the last Google Sheets destination job, tell me whether it succeeded, and compare what it wrote with the row count of out.c-octopus-atlas.octopus_atlas.

Next: Automate it with a flow →

Ask Kai

Hi, I'm Kai — Keboola's AI assistant for the docs. Ask me anything and I'll answer from the documentation and cite the pages I use.

Kai is an AI and can make mistakes. Check the sources it links.