FlowRunner
PricingContact
Theme
Start Free

Keboola

Database

Operate a Keboola data project from your flows. Agents manage Storage buckets and tables, preview and import CSV data with full or incremental loads, create component configurations, and trigger jobs and orchestrations while polling their status.

15 actions API key available
Keboola website ↗ Platform Documentation ↗ Capability data verified 2026-07-27
The nightly ERP export lands as a CSV at the staging URL
Get Table confirms the target table's columns and primary key still match the incoming file
Import Data to Table loads the file in incremental mode, upserting rows without touching what is already there
Get Job polls the Storage job to completion, and the agent compares post-load row counts against the expected range to catch a silently short file
Job errors and row-count anomalies post to the data channel with the job detail attached
The data engineer decides whether a suspicious load stands, waits for a corrected file, or blocks downstream processing
Run Job triggers the transformation orchestration only once the load is trusted

What This Integration Enables

Data pipelines rarely fail in the transformation logic. They fail at the seams: the file that arrived late so the orchestration ran against yesterday, the load that half-completed, the error that sat unread in a job log while a dashboard quietly served wrong numbers for a week. Keboola runs the pipelines; this connector puts FlowRunner in charge of the seams. Agents verify what arrived, load it with the right semantics, prove the load succeeded, and only then let the downstream machinery run, with a person pulled in the moment the data looks wrong. - Manage Storage buckets and tables across input and output stages, with metadata and size counts - Preview table data with column selection, filtering, ordering, and changed-since queries - Import CSV data from Storage files or public URLs, incrementally or as a full replace - Create component configurations and trigger component or orchestration runs through the Job Queue - Poll every asynchronous job to a verified outcome before anything depends on it The distinction FlowRunner enforces is between loads that add and loads that replace. Incremental imports run at machine speed. Full-mode imports and deletions, the operations that make existing data cease to exist, pass through a [human-in-the-loop](/concepts/human-in-the-loop) gate first.

Without FlowRunner

Orchestrations on faith The 6am run transforms whatever data happened to arrive by 6am
Failures found by dashboard A broken load is discovered when a KPI flatlines and someone works backward
The project in one head Which bucket feeds which config is knowledge, not documentation

With FlowRunner

Loads chained to arrival Imports start when the file lands, and orchestrations start when the load verifies
Failures reach people in minutes An error status becomes a Slack message naming the component and configuration
The project as an inventory Buckets, tables, and configurations are enumerated, previewed, and audited on a schedule

Use Case Scenarios

The load that will not run blind

Each night's export chain works like a relay with a baton check at every handoff: the CSV lands, Import Data to Table loads it incrementally, Get Job confirms success, row counts get sanity-checked against history, and only then does Run Job start the orchestration that feeds the morning dashboards. When any check fails, the chain stops and a person hears about it before breakfast, not after the executive meeting.

Publishing the warehouse to the people who live in spreadsheets

After the weekly revenue orchestration completes, Preview Table Data pulls the summary table's rows, selected columns only, and publishes them to [Google Sheets](/integrations/google-sheets) where the finance team actually works. Failures in the orchestration post to [Slack](/integrations/slack) with the component and configuration named, so the data team debugs the right thing instead of rediscovering which job feeds which report.

Onboarding a new data source as a procedure, not a project

When the analytics team takes on a new client source, the flow scaffolds the plumbing: Create Bucket stands up the input-stage bucket, Create Component Configuration registers the extractor with its parameters and storage mapping, and a first Run Job executes it while Get Job watches. Verify Token runs up front to confirm the token's permissions reach everything the setup touches. What was an afternoon of console clicking becomes a reviewed, repeatable procedure.

Human-in-Loop Highlight

Import Data to Table in full mode replaces the table's entire contents, and Delete Bucket with Force removes a bucket and every table inside it. Neither can be undone, and both look identical to their harmless siblings at the API level: one flag is the difference between appending to production and truncating it. So FlowRunner treats the flag as the gate. Any full-mode import into a table that downstream configurations read, and any forced bucket deletion, stops and presents the blast radius: the table's current row and data-size counts from Get Table, the configurations that reference it, and what the replacement contains. "in.c-main.customers holds 1.4M rows and feeds 3 transformations. This load replaces it with 12K rows. Proceed?" That question has exactly one correct answerer, and it is not an agent. Incremental loads flow freely; the loads that erase history wait for the person who owns it.

Agent processes routinely
Detects exception requiring judgment
Clear match Continues automatically
Ambiguous Routes to human via preferred channel
Human decides
Agent resumes with decision

Agent Capabilities

15 actions

Project

1
  • Verify Token Verifies the configured Storage API token and returns its project, permissions, owner, and features. The connectivity check before any data workflow runs.

Buckets

4
  • List Buckets Lists all storage buckets in the project, the top-level containers in the input and output stages, optionally with metadata and linked-bucket details.
  • Get Bucket Retrieves a single bucket by ID with stage, backend, description, row and data-size counts, and metadata.
  • Create Bucket Creates a new bucket in a specified stage, with the stage and name forming the bucket ID (name "main" in stage "in" yields in.c-main).
  • Delete Bucket Permanently deletes a bucket, requiring it to be empty unless Force also deletes every table it contains. Cannot be undone, and the forced path sits behind this page's human gate.

Tables

5
  • List Tables in Bucket Lists a bucket's tables with IDs, names, primary keys, columns, and row and data-size counts, optionally with table and column metadata.
  • Get Table Retrieves a single table by ID with columns, primary key, counts, backend, and bucket. The schema check before every import.
  • Preview Table Data Returns a preview of a table's rows as JSON, with row limits, column selection, ordering, value filters, and changed-since queries. For inspection and publishing summaries, not bulk export.
  • Import Data to Table Asynchronously imports data into an existing table from a Storage file or public CSV URL. Incremental mode appends and upserts; full mode replaces the table's contents, which is why full mode is gated. Returns a Storage job to poll.
  • Delete Table Permanently deletes a table and all its data by ID. Cannot be undone.

Components and Jobs

5
  • List Components Lists the project's components, the extractors, writers, transformations, and applications, with their configurations, optionally filtered by type.
  • List Component Configurations Lists all configurations for a component with ID, name, description, version, and current state.
  • Create Component Configuration Creates a new configuration for a component with a name, optional description, and the configuration JSON body including parameters and storage mappings.
  • Run Job Triggers an asynchronous run of a component or orchestration configuration through the Job Queue, returning the created job.
  • Get Job Retrieves a job's status by ID: created, waiting, processing, success, or error, with timing, the component and configuration involved, and the result. The verification step every chain depends on.

Frequently Asked Questions

What can FlowRunner do with Keboola?

FlowRunner agents can run Verify Token, List Buckets, and Get Bucket in Keboola, plus 12 more actions.

Does connecting Keboola to FlowRunner require OAuth?

No. Keboola connects to FlowRunner with an API key, no OAuth flow required.

Can Keboola trigger a FlowRunner workflow automatically?

Keboola doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.

Start building with Keboola

$100 in credits. No card required. Connect in minutes.