Skip to main content

External Data Sources

Lido can pull live data from external APIs, databases, and cloud services directly into your spreadsheet as a native table.

Connecting a Data Source

  1. Go to File → "Connect real-time data"
  2. Select a source (CRM, database, API, cloud service, etc.) and authenticate
  3. Configure which columns and filters to use
  4. Lido inserts the table into your sheet automatically
  5. The table refreshes on a schedule or when you trigger a refresh

That's it — you now have a live table that stays in sync with your external data. You can add computed, linked, or plain columns to it just like any other table (see Column Types).

How It Works Under the Hood

When you connect a data source through the UI, Lido generates a formula like:

=MAKETABLE(DATASET('~datasource_name'!$A$1:$D$10), "my_table")
  • DATASET fetches data from the configured external source. Its configuration is stored in a hidden sheet (prefixed with ~) that Lido manages automatically — you should not edit these sheets manually.
  • MAKETABLE registers the fetched data as a named table in your spreadsheet.

You typically don't need to write these formulas yourself — the UI handles it. But understanding the structure is helpful if you want to inspect or debug a connection.

DATASET Configuration

The hidden configuration sheet stores:

  • dsId — Which service to connect to
  • auth — Authentication credentials
  • params — Query parameters (filters, date ranges, etc.)
  • columns — Which columns to fetch and how to map them
  • filters — Active filters on the data

MAKETABLE

MAKETABLE takes a 2D array (typically from DATASET) and a table name, and renders it as a named table in your spreadsheet. It can optionally take a third argument to override column names:

=MAKETABLE(array, name)
=MAKETABLE(array, name, column_names)

Error States

ErrorCause
needs_oauthAuthentication credentials need to be refreshed
needs_paymentData row limit exceeded for your current plan
Configuration errorThe data source is missing or misconfigured

Tips

  • External data respects your plan's row limits; large datasets may be truncated
  • Refresh frequency depends on your plan and the data source's API rate limits
  • Configuration sheets (prefixed with ~) should not be edited manually
  • To add derived columns on top of external data, see Column Types