Skip to content

How Muvia works, from the source to Monday's PDF.

Muvia copies data from the systems you already run, organises it in a model, lets you analyse it in SQL or with the assistant, and puts it in front of the people who decide. The analytics engine is built on ClickHouse and runs in the cloud, in the AWS Milan region.

The platform, layer by layer.

Six layers on one analytics engine, one per company. Every product leads to its detail.

Ask

Act

Analyse

Model

Connect

Govern

One analytics engine per company, in the cloud on AWS Milan

Explore the platform, layer by layer.

Pick a layer: the products that make it up and where to read more.

Connect

Files, databases and applications become tables in your company's analytics engine: copied incrementally, never queried live.

Go to the detail
Live Ingest4 active
  • ERP · SQL Serverincremental · 07:00
  • CRM · Salesforcehourly · 06:30
  • Budget 2026 · Exceluploaded yesterday
  • Marketing · HubSpothourly · 06:45

1Connect

Your data stays in your systems. Muvia keeps an up-to-date copy.

With Live Ingest, every source becomes a table and a query in your company's own database. Dashboards, reports and alarms work on that copy, so your ERP does not take a query every time someone opens a chart.

FilesUpload the file and it becomes a table, ready to query.
  • CSV
  • Excel
DatabasesCopied on a schedule, incrementally, over an encrypted TLS connection. Never queried live.
  • Microsoft SQL Server
  • PostgreSQL
  • MySQL and MariaDB
  • Oracle
ApplicationsReady-made connectors for the common services, plus a generic one for anything that exposes a REST API.
  • Salesforce
  • HubSpot
  • Microsoft Dynamics 365
  • Google Sheets
  • SharePoint
  • OneDrive
  • SFTP
  • Generic REST API
MachinesWith Muvia Industrial, an edge node on the shop floor reads the PLCs and sends the data to Muvia.
  • Siemens S7
  • OPC UA
  • Modbus TCP
How machines are read

How a copy works

One table and one query per source
The table holds the copied data; the query is where analyses and dashboards start from.
On a schedule
Copies run on their own, as often as you set for each source.
Incremental
With a date or counter column, after the first copy Muvia brings over only new or changed rows. For files and apps, the source decides the mode.
If a copy fails
Muvia removes the rows it had written; a failed replacement leaves the table as it was.

Three ways to write a copy

For each source you choose what happens to the data already copied when new data arrives.

ModeWhat happens
ReplaceThe table is rewritten with the contents of the latest copy.For example: the price list or the supplier master data.
AppendNew rows are added to the ones already there.For example: stock movements or meter readings.
UpdateExisting rows are updated and new ones added.For example: orders, which change status until they ship.

2Model

Numbers with a contract, from source to report.

Every dataset declares its fields, with role, type and unit, and the query column each one reads. Dashboards and reports point at the fields, not at columns: when the source changes, they do not need rebuilding.

Datasets with stable fields
Every field has an identifier that never changes. Dashboards and reports point at the field, not at a column name: when the source changes, you do not rebuild them.
Certified Datasets
A dataset moves from draft to certified, or is retired. Certified ones are offered first, and Athena prefers them.
Project Map
From a number in a report, trace back to the field, the query and the source it comes from. Before changing something, see what depends on it.
A margin figure in Monday's report, followed back to the table it starts from.
  1. SourceSQL Server, ORDER_LINES
  2. Querysales_lines
  3. DatasetSales.margin
  4. DashboardMargin by customer
  5. ReportMonday PDF

3Analyse

Ask in SQL. Save the answers. Print them.

Queries run on a read-only login against your company's database, so you can explore as much as you like without any risk of changing a record.

SQL editorread-only
SELECT c.company_name,
       sum(l.amount - l.cost) AS margin
FROM sales_lines AS l
JOIN customers AS c ON c.code = l.customer_code
WHERE l.date >= toStartOfYear(today())
GROUP BY c.company_name
ORDER BY margin DESC
LIMIT 10
The ten customers with the highest margin year to date, joining sales lines with the customer master.
SQL editor
The query workshop: write, run, look at the result, save. Every copied source is already a table you can query.
Saved queries
The queries you use often stay saved in the SQL editor, ready to reopen and run again when you need them.
Notebooks you can print to PDF
Text, query, table and function cells in sequence, evaluated over the chosen period. The result is a document you read on screen and print to PDF.
Python functions and machine-learning models
When SQL isn't enough, write a Python function with pandas, scipy and scikit-learn, or upload an ONNX or joblib model your team trained, and put it in a flow that runs on a schedule.
Data science and machine learning in Muvia

Try it first, with no side effects

A flow in trial mode really runs on the data, but its effects are recorded instead of carried out. You see what would happen, then decide.

  • No writes to the database
  • No commands sent to PLCs
  • No emails sent

4Act

The numbers reach the people who act on them, in the form they will use.

Some people watch a screen on the floor, some read a PDF on Monday morning, some only want to hear about it when something goes out of bounds. Muvia covers all three from the same data.

  • Dashboards

    Charts and indicators on one page, opened in the browser or left running on a wall screen in kiosk mode.

    The logistics manager has today's shipments on the warehouse screen.

  • Scheduled PDF reports

    A notebook becomes a PDF at the time you choose. Every copy is archived and emailed to the people who should get it.

    Every Monday at 8, management gets the week's sales and margins.

  • Alarms

    Thresholds on your data that open an episode when they are crossed. Every episode goes into a register, where it is acknowledged, classified and annotated. When late data arrives, the outcome is recomputed.

    An item's stock drops below its minimum: an episode opens and the warehouse acknowledges it.

  • Flows

    Chains of catalogue functions or your own Python functions, running in the cloud on the platform's data.

    An indicator that combines sales with quality rejects, computed by a Python function.

  • Notification channels

    Set up once where alerts should go, and every alarm reuses them.

    Production alarms to the shift supervisor, warehouse alarms to logistics.

If you would rather ask than write SQL, there is Athena.

Meet Athena

Athena answers questions on your project's data, writes, fixes and explains queries, builds charts and widgets, and searches the documents you upload. It always shows you the query it ran, so you can check the answer.

The assistants, one per job

  • Athena
  • SQL assistant
  • Script assistant
  • Chart assistant

Each assistant is a module your company chooses whether to switch on. The assistants use language models from third-party providers.

For developers: Muvia's data inside your own systems.

When another program needs the numbers you built in Muvia, there is no need to export files.

Read-only REST API
Projects, datasets with their rows, and edge nodes, read with an API key. The API reads; it does not change anything.
Signed webhooks
Muvia calls your systems when something happens. Every call is signed so you can verify where it came from, and every delivery is kept in a log.
Developer documentation
Some of the public API's paths
  • GET/v1/company
  • GET/v1/projects
  • GET/v1/projects/{project_id}/datasets
  • GET/v1/projects/{project_id}/datasets/{dataset_id}/rows
  • GET/v1/projects/{project_id}/nodes

Muvia Industrial

Machines to read as well?

Muvia Industrial adds an edge node that reads the PLCs on the shop floor and brings line data into the same engine as sales, purchasing and quality.

Explore Muvia Industrial

Bring us a question you can't answer today.

We start from a real question your business has and walk the path from source to dashboard with your systems, not a demo dataset.