Keboola
DatabaseOperate 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.
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
With FlowRunner
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 Capabilities
15 actionsProject
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.