Run your data operations on a single, unified platform.

  • Easy setup, no data storage required
  • Free forever for core features
  • Simple expansion with additional credits
cross-icon
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Join our newsletter
Subscribe
27 000+ people already joined
How To
March 24, 2026
Updated on
30 min read

Build a Data Input App with Kai

No items found.
Download for Free
First Name *
Last Name *
Business Email *
Phone Number *
Company Name *
Job Title *
By submitting this contact form you are asking Keboola Czech s.r.o. to get in touch with you and you agree with Privacy policy.
Fields marked with * are mandatory

Thank you for your submission. You can access it here:

Oops! Something went wrong while submitting the form. Try it again please.

This is a Data App that collects structured product submissions from a team, validates them, queues them for approval, and writes approved entries directly to a Keboola table. I built it with Kai in one conversation.

No Google Sheets. No broken column headers. No emailing CSVs.

If you've ever needed your team to submit structured data - new products, budget inputs, campaign briefs, vendor details - and the spreadsheet approach keeps falling apart, keep reading.

The part you might not know: Data Apps can collect data too

You probably think of Data Apps as dashboards (if you think about them at all) - charts, filters, tables. But here's what most users didn't use them yet: Data Apps can also collect structured data and write it back to your Keboola project.

Here's what you can built:

Tab 1: Submission Form. A simple form layout for submitting a new Shopify product. I required basic info (name, description, category, vendor from a dropdown menu). On the right: pricing input, quantities, and image URL. Every required field is validated before the submission goes through. I can add a small info note for each field to explain what's expected from user.

Tab 2: Approval Queue. This tab is for a manager. You can set up authorization so only a specific email can access it. Once a submitted item lands here, the user has two options: Approve or Reject the product. Only approved products are pushed to a storage table in Keboola.

Tab 3: Saved Data. I wanted to see how the submitted data looks, so I added a view of everything that's been written to Keboola Storage, pulled directly from the table. Below you can also see how it looks in Keboola Storage itself.

And this is how the table looks in Keboola Storage:

The key part: when you approve an item, it writes directly to a Keboola table using the Storage API. From there, a flow can pick it up and push it anywhere - Shopify, your ERP, a data warehouse, wherever your pipeline goes.

Sharing with your team

The app is password-protected by default. Share the URL and password with your team. They submit, you approve, data flows into Keboola.

You can also change authentication to SSO (requires Keboola login) if you want to control access by user. This is useful when you need to know who approved what.

What else can you build?

The form-validate-approve-write-back pattern works for anything where you need structured input from people who shouldn't be touching your data pipeline directly:

  • Budget submissions: departments enter their numbers, finance approves, data flows into planning models
  • Campaign audience: marketing fills in a form, approved form triggers creation of audience for emailing
  • Vendor onboarding: procurement submits new vendors, compliance approves, data writes to master tables
  • Inventory adjustments: warehouse team submits corrections, someone from operations approves, updates flow to ERP

Same pattern every time: Kai builds the form, you define the fields, approval adds governance, write-back connects it to your pipeline.

How to built it

You always have the option to write code on your own, but why do it when there's a quicker way - Kai. Our AI engineer can build a Data App from scratch in a minute or two. To be fair, it took me probably 2 prompts to create the app interface, deploy it, and check that the table is writing the right inputs into Storage. From there, probably 25 minutes to figure out how I can submit inventory levels to Shopify (I needed to find out which field the Shopify API requires). Still, all you need to do is open the side panel with Kai and explain what you want.

Check out more: Build an Interactive Dashboard in 5 Minutes with Kai

Kai, build me the form

Based on first prompt, Kai created the full Streamlit app: two-column form, dropdown menus populated with brand names, European price format enforcement (comma as decimal separator, rejects dots), minimum character counts, and required field checks.

Check the inputs

This is where Data Apps are so much better than a CSV file. For each input field, I predefined what's accepted - only numbers in the price field, comma format enforced, dots rejected. Kai normalizes prices into format I want before writing to Storage, so the transformation downstream always receives clean data. No more failed transformations because someone typed a price wrong.

Human approval workflow

You probably don't want everyone writing products directly into Shopify. So this step lets responsible human to check what matters before anything gets written to Storage. All products get reviewed first.

For each product, app shows up as a card with summary. Your user can Approve or Reject. Rejected items are tracked separately.

Write to Keboola Storage

This is the step that connects your Data App to the rest of your pipeline. I asked Kai to connect the "Approve" button to a Keboola Storage table. When user approves a product, the data writes directly to a table using the Storage API.

Kai can set this up automatically: it creates the output bucket if it doesn't exist, formats the data, and uses incremental loading so new products get added without overwriting existing ones. I also asked for a third tab that shows a live view of everything already saved - pulled straight from Storage.

From the storage table, any flow in Keboola can pick up the data and push it downstream - in this example to Shopify, but it can be an ERP, a data warehouse, or wherever your pipeline goes.

Try it

Open Kai in your project and try something like:

Build a Data App with a form where my team can submit [what you need].
Include validation for number input, an approval queue, and write approved entries
to a Keboola table.

Kai will handle the code for you.

Data Apps documentation | Kai documentation

Subscribe to our newsletter
Have our newsletter delivered to your inbox.
By subscribing to our newsletter you agree with Keboola Czech s.r.o. Privacy Policy.
green check icon
You are now subscribed to Keboola newsletter
Oops! Something went wrong while submitting the form.
Download for Free
First Name *
Last Name *
Business Email *
Phone Number *
Company Name *
Job Title *
By submitting this contact form you are asking Keboola to get in touch with you and you agree with Privacy policy.
Fields marked with * are mandatory

Thank you for your submission. You can access it here:

Oops! Something went wrong while submitting the form. Try it again please.

FAQs