Metabase to Convex: How to Move Your Data

Move Metabase metadata into Convex with Airbyte. Building a dashboard directory app, the session token trade-off, and why an expired token fails silently.

Summarize with AI:

Moving Metabase into Convex is a narrow pairing with one clear use: building an application that displays your BI estate. A dashboard directory, an internal portal listing what reports exist, or a tool that helps people find the right chart without opening Metabase and browsing.

Two things to be clear about before starting. This connector gives you metadata rather than the numbers behind your dashboards, because Metabase sits on top of your databases. And Metabase's authentication has an awkward trade-off that affects how this pipeline behaves in production.

Metabase to Convex at a glance:

CapabilitySupportedWhat it means for this pipeline
What you getMetadataCards, collections, dashboards, users and databases
Query resultsNot includedGo to the underlying database for the numbers themselves
Session tokenExpires in 14 daysSupplying one means rotating it on a schedule
Convex destinationBetaValidate behaviour before a product depends on it
Table namesRestrictedLetters, digits and underscores, with no leading underscore

Why move data from Metabase to Convex?

One situation fits this pairing, and it is worth checking you are in it before building.

It fits an application that surfaces your BI catalogue. Once a Metabase instance holds hundreds of saved questions, finding the right one becomes a real problem, and a portal that searches dashboards and cards by name, owner or collection is a genuinely useful internal tool. Convex serves that kind of lookup well.

It does not fit analysis. If you want to measure BI sprawl, find abandoned collections or identify every card touching a table you plan to change, a warehouse is the better destination because those are aggregate questions. The Metabase to BigQuery guide covers that case.

What do you need before you start?

Short list, and the authentication choice deserves a proper decision rather than a default:

Your Metabase instance API URL. The address Airbyte uses to reach your Metabase API, over HTTPS. On a self-hosted instance this is your own server rather than a vendor domain. The Metabase source documentation covers the fields.

A decision between a session token and a credential pair. Both work and neither is clean. A session token usually expires after fourteen days and needs replacing. Username and password alone means a new session is generated every time an authenticated query runs, which is covered below.

A Convex deployment URL and access key. Both found in your Convex dashboard. Note that the destination is a beta integration, so validate its behaviour on a non-critical table before a product feature depends on it.

An account whose visibility covers what you want. Metabase permissions govern which collections and cards an account can see, so the account behind this pipeline determines what your application can display. An administrator account gives the full picture.

Remember also that Airbyte imports into Convex rather than exporting from it. This is a one-way pipeline into your application's backend.

How do you build a Metabase to Convex pipeline in Airbyte?

Step 1: Settle the authentication approach

Decide whether you will supply a session token and rotate it, or supply credentials and accept the session churn. If you self-host Metabase there is a third option, since session duration is configurable on your own server, which makes the token route considerably more practical for a pipeline feeding a product.

Step 2: Configure the Metabase source

Click Sources in the left navigation, then New Source, and select Metabase, following adding a source. Supply the instance API URL and your chosen credentials. A session token is obtained by posting your username and password to the session endpoint, which returns an object whose identifier is the token value.

Step 3: Configure the Convex destination

Click Destinations, then New Destination, and select Convex, following adding a destination. Supply your deployment URL and access key. Airbyte adds its own metadata fields to each document, so plan for your application code to ignore them or read through a query that strips them.

Step 4: Create the connection and schedule slowly

Click Connections, then New connection, select your streams and a sync mode. Incremental deduped is what you want for an application table, since it maintains current state. Cards, collections, dashboards, users and databases together give your portal the whole catalogue.

Daily or even weekly is plenty, because a BI estate changes at the speed of people creating dashboards. That slow schedule is not just tidiness, for the reason below.

Why is the authentication choice awkward?

Because both routes have a real cost. Supply a session token and it usually expires after fourteen days, at which point the connector raises errors about invalid and expired tokens and requests come back unauthorised. Nothing renews it for you, so the pipeline needs a person on a fortnightly rota.

Supply only a username and password and the connector generates a session token every time an authenticated query runs. Metabase may send an email to the account owner each time a new session is opened, and the documentation warns this might trigger security alerts on the account.

On a pipeline feeding a product that matters more than it would on a reporting one, because an expired token means your portal quietly stops updating while continuing to serve stale content. Nobody sees an error, they just see a dashboard directory that no longer lists anything created this month. Alert on sync failures rather than trusting somebody to notice.

What can your application actually show?

More than the stream list suggests, because the pieces join up. Cards carry their metadata, parameters and the query itself. Collections group them and carry permission settings. Dashboards reference the cards they display. Users tell you who created what, and databases record which connections exist.

For a directory application that is a good foundation: search by card name, filter by collection, show the owner, and link straight through to the card in Metabase. Because Convex serves lookups quickly, a search-as-you-type interface over a few thousand cards is comfortable.

What it cannot show is whether anything is used. This is the catalogue rather than usage, so a card nobody has opened in a year looks identical to one viewed daily. If your portal wants to surface popular dashboards, that needs Metabase's own usage analytics rather than this pipeline.

Frequently asked questions

Does this give me the data behind my dashboards?

No. It gives you metadata about cards, collections, dashboards, users and databases. For the numbers themselves, query the underlying database Metabase connects to.

My portal stopped updating. What happened?

Most likely your session token expired, which usually happens after about fourteen days. Generate a new one and update the connector configuration, and alert on sync failures so it does not happen silently.

Why is Metabase emailing the account owner?

Because supplying only a username and password causes a new session to be opened for each authenticated query, and Metabase may notify the owner each time. Supply a session token instead, or sync less often.

Why was my table name rejected?

Convex table names may contain only letters, digits and underscores, and must not begin with an underscore.

Can I do this without writing code?

The Airbyte setup is UI-driven, apart from one command to generate a session token if you choose that route. Your application code is the rest of the work.

Get your Metabase data into Convex

Confirm this is the catalogue rather than the numbers, choose your authentication route knowing both have a cost, use an account whose visibility covers the whole estate, and alert on sync failures because an expired token leaves your portal serving stale content without complaining.

Airbyte's connector catalog includes 600+ pre-built connectors, so your BI catalogue can feed an application and a warehouse at once. For the analytical version, see Metabase to BigQuery, and for another source feeding the same application backend, MySQL to Convex.

Start syncing now →

Integrate with 700+ apps using Airbyte

Move data from 700+ sources into warehouses, lakes, and beyond. Set up pipelines in minutes with pre-built connectors and the Connector Builder.