Skip to main content
Web Applications & Integrations

Field-to-finance ETL for a construction company

An Apache Airflow pipeline that moves the hours, machine usage and materials logged in SmartDok into Duett for payroll, timesheets and invoicing, with no manual re-entry.

  • Sector Construction, Finance operations
  • Client Norwegian construction company
Field data reaches payroll without manual re-entry
Automated
Unmapped or invalid records are held back and logged
Validated
Every sync logged with its state and ID mappings
Auditable
The starting point

The challenge

Field workers logged project hours, machine usage and materials in SmartDok, while finance ran payroll and invoicing in Duett. Exporting and re-entering the data by hand caused delays, bottlenecks and payroll errors.

The solution

What we built

  • Extracted project hours, machine usage and materials from the SmartDok REST API, in both JSON and XML.

  • Normalised the hierarchical payloads, and mapped employee IDs, cost codes and project identifiers between the two systems.

  • Validated every record against field rules and the ID mappings, isolating discrepancies in error logs instead of passing them to payroll.

  • Loaded verified records through the Duett REST API to update payroll, timesheets and invoicing.

  • Orchestrated scheduled syncs and retries with Apache Airflow DAGs, with PostgreSQL storing sync state, ID mappings and audit logs.

Architecture

How the system works

ETL pipeline: SmartDok data extraction, data parsing and identifier mapping, consistency and anomaly checks, Duett accounting sync, and orchestration with persistence and audit logging

Orchestrated by Apache Airflow, with sync state and audit logs in PostgreSQL, running in Docker on AWS.

Engineering

How it was engineered

  • Kept invalid or unmapped records out of payroll: they are isolated and logged for review.

  • Logged every sync in PostgreSQL, so each record can be traced from SmartDok to Duett.

  • Containerised the pipeline with Docker and deployed it on AWS.

Scope

What was delivered

01

SmartDok extraction

02

Parsing and identifier mapping

03

Validation and anomaly checks

04

Duett loading

05

Airflow orchestration and audit logging

Technology

Stack

PythonApache AirflowREST APIsJSON/XML parsingPostgreSQLDockerAWS

Need something similar?

We can scope and build a system with comparable capabilities, shaped around your own workflows, data and integrations.