Run Desk data automation demo

What this demo shows: drop in a messy spreadsheet, click Run, and get a cleaned file, the rejected rows with reasons, and a run log, the pattern that would then run on a schedule without anyone starting it.

This is a prototype with sample data. Everything runs in your browser; nothing is uploaded and no real systems are connected.

1 Choose a file

or

or drag a CSV here. Needs columns: order_id, order_date, customer, qty, unit_price.

No file chosen yet.

2 Cleaning rules

Each rule is explicit and can be switched off. Rejected rows are never silently dropped.

    3 Run

    Choose a file first.

    Results

    Nothing run yet. Choose a file and click Run now.

    Schedule

    The scheduler checks the "watched folder" (the file chosen above) and runs it with nobody clicking.

    Scheduler is off.

    Alerts

    When a run fails, an alert is queued so the owner is told. In a real build this goes to a channel you choose.

      No alerts. Try the broken file to see one.

      Run log

      No runs yet.

      How it is kept maintainable

      Configuration (what the owner edits)
      
          
      Adding a rule takes one small function
      @rule("max_quantity")
      def max_quantity(row, cfg):
          if int(row["qty"]) > 1000:
              raise Reject("quantity above 1000, check with sales")

      Then add max_quantity to the enabled list. The rejected-rows file and run log pick it up automatically.

      What is simulated here

      This page re-creates the cleaning logic in JavaScript with sample data so you can click through it. The Python/SQLite/XLSX version lives in the project files and is not part of this page.

      Prototype built for this brief with sample data. It shows the approach; the full build follows the agreed scope.