On this page

Your first analysis

One log from import to dashboard: import it, monitor the jobs, open a module, and build a board.

1. Import a log#

  1. Open Processes and click Import event log.

  2. Drop a file: .xes, .xes.gz, .csv, .xml, .json, .jsonocel, .xmlocel, .sqlite, and .gz/.bz2/.xz/.zip variants.

  3. The upload stages, then the server probes a few hundred events and proposes column roles.

  4. Confirm the mapping — the only step where a wrong answer costs a re-import.

  5. Submit. The wizard switches to a live checklist: reading, processing, saving. The process is ready the moment it is saved.

RoleRequiredUnlocks
case_idyesCases, variants, everything case-scoped.
activityyesActivities, DFGs, models, complexity.
timestampyesOrdering, time bounds, trends.
end_timestampnoDurations, waiting times, most performance metrics.
resourcenoActor analyses; actor_performance requires it.

Each row shows how the proposal was made — user → Your choice, exact → Matched, fuzzy → Guessed, fallback → Inferred from data — and low-confidence guesses are flagged. When a provider is configured, the wizard re-proposes those rows automatically and marks them AI. XES and OCEL files carry their own schema and skip this step.

2. Watch the jobs#

The checklist ends when the file is saved, and the process is ready from that moment — nothing waits on modules. They compute lazily: each runs the first time you open it. The few marked eager (Discovery) also warm up in the background right after the import, and show in the jobs drawer; a module that fails never affects the log.

StatusMeaning
importingThe file is parsed and normalised.
readySaved and open. Each module computes the first time you open it.
failedThe import failed; the row shows why, with a retry.

3. Open the process#

Click the row. The process page opens on the module grid, grouped by category.

Card stateMeaning
AvailableEverything the module needs is present — shown without a badge.
LimitedAn optional module dependency is missing; the module runs with less context.
UnavailableThe log model, a required column, a minimum count, or a hard dependency does not match; the tooltip names the reason.
DisabledTurned off for your account.
ComputingIts job is running right now. The card stays openable and shows the progress.
FailedIts last run failed. Open it to see why and retry.

4. Read a module#

Open Discovery for the process as a directly-follows graph (and Petri net, process tree, heuristics net, or BPMN), Performance for throughput and bottlenecks, Complexity v2 for a metric suite. The first time you open a module for a log it computes: you see live progress with a Cancel, and the page appears when it finishes. Later opens are instant, and the result refreshes by itself after the log's data changes. Each page is the module's own panel inside the platform's frame: breadcrumb, version, Configure (a form generated from the module's schema, saved per user), and an info hint explaining the view.

5. Compose a dashboard#

  1. Open Dashboards and create a board, or start from a template.

  2. In edit mode, drag cards from the palette: widgets modules ship, and datasets the platform renders.

  3. Select a card to set its options; the board's filter bar scopes every card at once.

  4. Share the board read-only with a user or a team.

6. Ask the assistant#

The MATE AI panel attaches context from the current view — process, open module, page — and answers with links that navigate the app. If no provider is configured it says so and links to Settings → AI.

Recap#

ActionWhat the platform did
Dropped a fileStaged, probed, parsed, normalised, written as Parquet under data/users/{uid}/event_logs/{log_id}/.
Confirmed a mappingColumn roles stored on the log; a log.imported event dispatched.
Watched a checklistThe file was saved and the process became ready; only eager modules (Discovery) started in the background.
Opened a moduleThe first time, the platform ran its job (and any module it depends on) with live progress, then mounted its panel on the cached result.
Filtered the logThe filter was committed and the modules you had already opened re-ran, so results match what you see; the rest compute when opened.