Fortnox ↔ GHL CRM Integration

Automated end-to-end data sync between GHL CRM and Fortnox accounting, powering 1,000+ subaccounts.

Role Backend Developer
Tech Stack
PythonSQLDockerFortnox APIGHL CRM APIHetzner Cloud

Overview

The client needed their sales system (GHL CRM) and accounting system (Fortnox) to work seamlessly together. Previously, sales and accounting teams had to manually re-enter data between platforms, leading to duplicate customer records, inconsistent invoices, lost discounts, incorrect taxes, and hours of wasted effort.

I built a custom integration that automated the entire process — customers, invoices, orders, and products now sync automatically between both platforms.

Key Business Benefits

Technical Details

My Role

Designed and implemented the full integration logic, error handling, and deployment.

Core Features

Multi-Account Support

The integration supports 1,000+ GHL subaccounts, each mapped to its own Fortnox account. Scalable architecture ensures data isolation per account while sharing the same infrastructure.

Company & Contact Sync

Private vs. company customers are handled differently to avoid duplicates. Conversion between private and company customer types is supported without data loss.

Invoice & Order Sync

Draft invoices from GHL CRM sync in real time to Fortnox. A later upgrade added order sync flexibility — clients choose order-first or direct invoice. Discounts are consolidated into a single line item for compatibility; shipping, rounding, and invoice charges sync reliably.

Product Sync

Real-time sync of products from GHL CRM to Fortnox, with optional article number prefixing for easier search.

Error Handling & Resilience

Failed API requests are logged in the database and retried automatically. Local DB token storage handles Fortnox downtime and network issues. Staged invoice sync (6 → 20 → all invoices) prevents notification spam on large accounts.

Outcomes

← Back to Case Studies Start a Similar Project