
How a Nordic Facility Provider Cut Contractor Response to 6 Hours
Contractor management across 18 buildings meant 18 WhatsApp groups and 4-day response times. Here's how one Nordic FM company fixed it.
Ovidiu Pica
Author
25 Mar 2026
Published
0
Views
A 350-person facility service provider in Denmark was managing 18 commercial properties. Their contractor coordination involved 23 active WhatsApp groups, 4 different email threads per building, and a Technical Facility Manager who spent 3 hours daily just figuring out which contractor was supposed to be where.
Average time from tenant request to technician arrival: 4.2 days. For a lightbulb.
The Situation Before: Organized Chaos
The company had grown from 6 buildings to 18 over four years. Each building came with its own contractor relationships, its own communication habits, and its own "system" (usually meaning the previous facility manager's personal phone).
Their stack looked familiar:
- Planon for space management and lease tracking (underutilized)
- Excel for preventive maintenance schedules (12 separate files, one per building cluster)
- WhatsApp for contractor communication (23 groups, some dormant, some hyperactive)
- Email for tenant requests (forwarded an average of 3.4 times before reaching someone who could act)
- Paper checklists for compliance inspections (scanned monthly, filed in SharePoint, rarely referenced)
The Director of Operations put it bluntly: "We have systems. What we don't have is a system."
Their Planon instance held good data about spaces and contracts, but nothing about what was actually happening in those spaces day to day. Contractor management in facility operations was essentially tribal knowledge held by three people, two of whom were approaching retirement.
The Problem: Three Handoffs to Change a Lightbulb
When a tenant in Building 7 reported a broken ceiling light, here's what happened:
- Tenant emails building reception
- Reception forwards to the regional coordinator
- Regional coordinator checks which electrical contractor covers Building 7 (consults Excel)
- Coordinator messages contractor via WhatsApp
- Contractor responds (sometimes same day, sometimes 48 hours later)
- Coordinator confirms with tenant
- Contractor visits, discovers they need a specific fixture
- Contractor messages coordinator about the part
- Coordinator approves purchase
- Contractor returns to complete work
- Coordinator manually updates the Excel maintenance log
Eleven steps. Three people in the loop who never see the lightbulb. Average elapsed time: 4.2 days.
flowchart TD
A[Tenant reports issue via email] --> B[Reception forwards to Regional Coordinator]
B --> C[Coordinator checks Excel for contractor assignment]
C --> D[Coordinator messages contractor on WhatsApp]
D --> E{Contractor responds?}
E -->|24-48 hours| F[Coordinator confirms schedule with tenant]
F --> G[Contractor visits site]
G --> H{Parts needed?}
H -->|Yes| I[Contractor messages coordinator]
I --> J[Coordinator approves via WhatsApp]
J --> K[Contractor returns]
K --> L[Work completed]
H -->|No| L
L --> M[Coordinator updates Excel manually]
style A fill:#ffcccc
style C fill:#ffcccc
style D fill:#ffcccc
style M fill:#ffcccc
The red nodes represent manual coordination overhead. Four of eleven steps exist only because systems don't talk to each other.
The costs were concrete:
- Regional coordinators: 2.5 FTE spent on contractor coordination (not facility management, just message relay)
- Missed SLAs: 34% of tenant requests exceeded the 48-hour target response time
- Compliance gaps: 3 buildings had expired fire safety certifications because renewal requests got lost in email
- Contractor invoicing: Monthly reconciliation took 40 hours because nobody could match WhatsApp approvals to invoices
The Technical Facility Manager told us: "I know every contractor personally. I know who's good, who's slow, who overcharges. But that's all in my head. When I'm on vacation, everything takes twice as long."
What We Built: A Contractor Coordination Layer
We didn't replace Planon. The company had invested in it, and it held valuable data. Instead, we built a coordination layer that connected what they already had.
For tenants: A simple web form (no app download required) linked to each building's QR code in common areas. Tenant submits request with photo, location auto-detected from QR code, request timestamped and logged.
For coordinators: A dashboard pulling from Planon (building and space data), the contractor database we migrated from their 12 Excel files, and live request status. One view showing all 18 buildings, filterable by urgency, contractor, request type.
For contractors: A mobile interface (works in any browser, no app) showing their assigned jobs, building access codes, parts approval workflow, and job completion confirmation with photo upload.
The technical depth: Their 12 Excel files had evolved independently over 4 years. Column names varied ("Contractor," "Vendor," "Service Provider"). Date formats varied (DD.MM.YYYY, MM/DD/YY, written months). Phone numbers had inconsistent formatting. We built a normalization parser that mapped 47 different column header variations to a unified schema, flagged 23 duplicate contractor entries, and identified 8 contractors listed for buildings they no longer serviced.
The data migration took 3 days. The platform build took 5 weeks.
sequenceDiagram
participant T as Tenant
participant S as System
participant C as Coordinator Dashboard
participant CO as Contractor Mobile
participant P as Planon
T->>S: Submit request via QR form
S->>P: Pull building/space data
S->>S: Auto-assign contractor based on rules
S->>CO: Push notification with job details
S->>C: Update dashboard (new request)
CO->>S: Contractor accepts (ETA)
S->>T: Auto-notify tenant of ETA
CO->>S: Job complete + photo
S->>C: Update dashboard (resolved)
S->>P: Sync maintenance record
Contractor assignment logic: The system uses rules the coordinators defined. Building 7 electrical goes to Contractor A unless the request mentions "emergency lighting," which goes to Contractor B (they hold the certification). If Contractor A hasn't responded in 4 hours, escalate to coordinator. If the request mentions "water" or "leak," flag as priority and notify building manager directly.
This wasn't machine learning. It was their existing decision tree, extracted from the heads of three coordinators during a 2-hour workshop, codified into routing rules. The value isn't sophistication. The value is that it works at 2 AM when nobody's awake to forward emails.
Integration: What Stays, What Changes
We kept their existing tools in place:
- Planon remains the system of record for spaces, leases, and assets
- SharePoint still stores compliance documents
- Their accounting system still processes invoices
What changed:
- WhatsApp is no longer the coordination backbone (contractors can still use it for questions, but job status lives in the system)
- Excel maintenance files replaced by the unified contractor database (with export to Excel for anyone who wants it)
- Email forwarding chains replaced by direct request routing
The coordinator dashboard shows what we've written about before regarding field service: technicians (and contractors) deserve to know what they're walking into before they arrive. Job details, building access, previous work history at that location, parts that have been pre-approved.
The Results: Six Months Later
| Metric | Before | After | Calculation |
|---|---|---|---|
| Average request-to-resolution | 4.2 days | 6.4 hours | Measured from submission timestamp to completion photo |
| Coordinator time on contractor coordination | 2.5 FTE | 0.6 FTE | Time tracking over 4-week period |
| Missed 48-hour SLA | 34% | 4% | Requests exceeding 48 hours / total requests |
| Compliance certificate renewals missed | 3 in prior year | 0 in 6 months | Fire safety, electrical inspection, elevator certification |
| Invoice reconciliation time | 40 hours/month | 4 hours/month | Finance team tracked over 3 months |
Annual savings calculation:
Coordinator time recovered: 1.9 FTE × EUR 52,000 average loaded cost = EUR 98,800
SLA penalty avoidance: Their contracts included penalties for chronic SLA misses. Two tenants had been threatening lease non-renewal. Estimated retention value: EUR 180,000 over 3 years (conservative, using 1-year lease value)
Invoice reconciliation: 36 hours/month × 12 months × EUR 45/hour = EUR 19,440
Compliance fine avoidance: Fire safety certificate lapse had triggered a EUR 8,000 fine the prior year. Assume similar avoided: EUR 8,000
First-year measurable savings: EUR 126,240 (excluding tenant retention)
The platform cost EUR 47,000 to build and deploy. Ongoing costs are hosting (EUR 200/month) and our support retainer (EUR 1,500/month for the first year, optional renewal).
Payback period: 4.5 months.
What Made This Work
Three factors:
1. We didn't try to replace everything. Planon stayed. SharePoint stayed. The accounting system stayed. We connected what existed rather than demanding a full platform migration. Status meetings exist because systems don't talk to each other. Fix the integration, and the meetings (and the manual coordination) become unnecessary.
2. Contractors actually adopted it. Because it was a browser link, not an app. Because it showed them useful information (access codes, contact for the building manager, history of similar jobs). Because the approval workflow for parts was faster than WhatsApp back-and-forth. Contractor adoption hit 89% within 6 weeks.
3. The routing rules came from the coordinators, not from us. We didn't impose a new process. We documented their existing mental model and automated it. They could modify rules themselves through a simple interface. When Contractor A changed their emergency availability, the coordinator updated it in 2 minutes.
flowchart LR
subgraph Before
A1[12 Excel files] --> B1[Manual lookup]
A2[23 WhatsApp groups] --> B1
A3[Email chains] --> B1
B1 --> C1[Coordinator decides]
C1 --> D1[Manual dispatch]
end
subgraph After
A4[Unified contractor database] --> B2[Rule-based routing]
A5[Tenant request form] --> B2
A6[Planon building data] --> B2
B2 --> C2[Auto-dispatch to contractor]
C2 --> D2[Coordinator monitors exceptions]
end
style B1 fill:#ffcccc
style D1 fill:#ffcccc
style B2 fill:#ccffcc
style D2 fill:#ccffcc
Is This Your Situation?
If your contractor management in facility operations looks like the "before" picture:
- Multiple WhatsApp groups per building
- Excel files that only one person really understands
- Tenant requests that pass through 3+ people before reaching someone who fixes them
- Compliance deadlines tracked in calendars (or not tracked at all)
- Coordinators spending more time on message relay than actual facility management
We can show you what the "after" looks like in your specific environment. Working prototype in 7 days. Full platform build typically 6-8 weeks depending on integration complexity.
POC cost: EUR 3,500. You keep the prototype regardless of whether you proceed.
Tags
Thanks for reading!
Be the first to react