Integrations / ERP / Visma L7
Visma L7 APS Integration Guide for Production Scheduling
This Visma L7 integration guide shows partners and IT teams how to connect Visma L7 to SkyPlanner APS. SkyPlanner integrates with Visma L7 in both directions over the Visma L7 REST API:
- Work numbers (työnumero), work stages (työnvaihe), resources, product structures, parts, materials, stock balances, sales rows and purchase rows flow in.
- Each work card gets its resource, start date, priority, person and day-by-day hours back with
PUT /manufphases/. - Resource calendar capacity is kept in step with
POST /resourceupdates/. - Production events posted in L7 work queues are read back with
GET /manufevents/. - SkyPlanner webhooks push schedule changes as they happen.
The SkyPlanner team configures the integration to your L7 setup during onboarding and supports it after go-live. Partners and developers can also build on SkyPlanner’s documented REST API (API reference).
Visma L7’s REST API
The API is Visma L7 – REST API, documented as OpenAPI 3.0.3 with a changelog (documentation). It runs on Visma LTR.
- Base path is
/ltrws/REST/L7on your own LTR host, on premises or in Visma’s hosted application service. - Licensing. Each endpoint is licensed on its own. Writing the schedule needs the L7RMFPP licence for
PUT /manufphases/, and capacity updates need L7RMCAP. Read endpoints carry their own licences. - Paging. Lists page with
pageSizeandrecAfter, and filter withqueryKey1,queryKey2andqueryString.
Authentication
Two tokens go with every L7 call:
- hash selects the database and company.
- token identifies the API user.
Your LTR administrator creates the API user in Visma LTR, connects it to the L7 company, grants profiles and creates the user token (get started). Use a dedicated integration user with only the rights the integration needs.
On the SkyPlanner side, the REST API authenticates with an API token sent in the Authorization-Token header. You create it under Settings > API. The integration tutorial walks through the first calls.
Change detection: modifiedAfter
The L7 REST API has no webhooks. Changes are read by polling:
- Turn on change logging (DBLOG) in L7 file maintenance (Tiedostohuolto) for the tables the integration reads, such as the work cards and parts.
- Call the read endpoints with
modifiedAfterset to the last run. Deleted records come back marked as deleted, so cancelled work leaves the schedule. - Poll every few minutes. SkyPlanner sends webhooks when state or the schedule changes, so the write-back side is event-driven.
Data mapping
| Visma L7 object (endpoint) | SkyPlanner object | Direction | Frequency |
|---|---|---|---|
Tuote (GET /products/) | Products and materials | L7 → SkyPlanner | Initial load, then on change |
Parts of a work number (GET /manufcomponents/) | Subproducts | L7 → SkyPlanner | Polling with modifiedAfter |
Material needs (GET /manufmaterials/) | Material requirements per job | L7 → SkyPlanner | Polling with modifiedAfter |
Resource (KRYH) tree with machine count (GET /manufresources/) | Workstations and workstation groups | L7 → SkyPlanner | Initial load, rarely after |
Work card (TSUUNR) per stage (GET /manufphases/) | Jobs (process steps) per workstation | L7 → SkyPlanner | Polling every few minutes |
Stock balances (GET /stockbalances/) | Stock | L7 → SkyPlanner | Polling |
Purchase rows (GET /purchaserows/) | Purchase orders with delivery dates | L7 → SkyPlanner | Polling |
Sales orders and rows (GET /salesorders/, GET /salesrows/) | Due dates, customer priority | L7 → SkyPlanner | Polling |
Production events (GET /manufevents/) | Progress per job | L7 → SkyPlanner | Polling |
Work card resource, startDate, priority, person, schedulingDays (PUT /manufphases/) | Planned workstation, start, order and day hours | SkyPlanner → L7 | On schedule change, via SkyPlanner webhook |
Resource calendar capacity (POST /resourceupdates/) | Shift capacity | SkyPlanner → L7 | When shifts change |
| Scheduling rules set in SkyPlanner | Allowed workstations, setting time matrix, tools, people | Maintained in SkyPlanner | Set up during onboarding |
Integration patterns
1. Initial master data load. Read the resource tree and map each machine to its own SkyPlanner workstation. Where one L7 resource has several machines, create one workstation per machine and a workstation group for the resource. Read products and the product structures with their work stages.
2. Work number sync. Read open work cards with GET /manufphases/, then keep them current with modifiedAfter. Read parts and material needs for each work number, and stock balances and purchase rows, so a stage waits for the delivery date of its purchase row.
3. Schedule write-back. For every stage the engine placed or moved, SkyPlanner calls PUT /manufphases/. The body carries one workSheet entry per work card with:
number, the work card, andresource, the chosen resourcestartDateandpriority, so L7 work queues show SkyPlanner’s orderperson, when a named operator is plannedschedulingDays, the planned hours per date
L7 keeps a priority set by an external system as it is (source), so the order holds in the work queues.
4. Capacity sync. When shifts, holidays or overtime change in SkyPlanner, POST /resourceupdates/ writes the new capacity to the L7 resource calendar. L7 load views then match the plan.
5. Shop-floor progress. Operators keep posting in L7 work queues and Visma LTR, and SkyPlanner reads the events with GET /manufevents/. Operators can also confirm work in SkyPlanner Mobile Confirmations. Autopilot replans from either source and the next write-back carries the new times.
6. Ownership and conflict rules. Write them down before go-live:
| Data | Owner |
|---|---|
| Products, structures, work stages, quantities, work number state | Visma L7 |
| Stage sequence, start dates, day hours, resource choice | SkyPlanner |
| Allowed workstations, setting time matrix, tools, people | SkyPlanner |
| Shifts and absences | SkyPlanner, written to the L7 resource calendar |
| Production events and stock postings | Visma L7 work queues and LTR |
The main conflict source is L7’s own planning. Requirement calculation and fine planning can place unlocked stages again. Run them for material and reservations only, and do not re-plan the stages SkyPlanner owns.
Typical project steps
Implementation is normally completed within weeks after onboarding starts. Before that, the 30-day free trial runs on your own data from an Excel export of work numbers, stages and resources.
- Scoping. Fix the mapping table, ownership rules and polling interval.
- Access and licences. License the REST endpoints in scope. The LTR administrator creates the API user, hash and token, ideally in a test company first.
- Change logging. Turn on DBLOG for the tables you read.
- Initial load. Resources, products, structures and work stages.
- Work number sync. Polling with modifiedAfter, deletions and paging.
- Constraint setup in SkyPlanner. Allowed workstations, the setting time matrix, tools and people.
- Write-back.
PUT /manufphases/andPOST /resourceupdates/, tested in the test company. - Parallel run and go-live. Compare with the current plan, fix master data, then switch on write-back in production.
What to plan for in a Visma L7 integration
- Per-endpoint licences. List every endpoint early and license them before testing.
- Machine count. A resource with several machines divides the work in L7 (source). Split it into workstations in SkyPlanner and write back the resource L7 expects.
- Day hours. L7 stores the plan as hours per date. SkyPlanner sends
schedulingDaysthat add up to the stage’s duration. - Factory calendar. Keep it complete, because gaps push stages into the past (source).
- Stock orders.
mainNumber,subNumber,rowNumberandnewQuantityare used only to change the quantity of a stock order. Leave them out for customer work. - The next ERP. Visma has ended new L7 development, and use of the product ends at the end of 2028 (Visma notice). Keep scheduling rules in SkyPlanner, not in L7 fields, so they carry over when you change ERP.
The Visma L7 integration: who configures and supports it
The work covers mapping to your resources, work stages and L7 setup. It also covers the scheduling rules you keep in SkyPlanner: allowed workstations, the setting time matrix, tools and people.
- The SkyPlanner team configures it during onboarding and supports it after go-live. Every plant runs L7 differently, and this is where that know-how goes.
- Your Visma partner can take part. The partner knows your L7 and LTR setup and can handle the API user, licences and test company. SkyPlanner provides the REST API, Swagger/OpenAPI documentation and webhooks.
- Your own developers can build on it against the same documented REST API with an API token. An API token is enough to start, and the SkyPlanner team assists when needed.
When you replace L7, the same SkyPlanner setup connects to the new ERP. See the pages for Business Central, Visma Net, Lemonsoft, Monitor ERP and Odoo.
SkyPlanner starts from 199 € per month with 5 workstations included, billed monthly. The integration is quoted up front for your process and needs, together with your plan, so you see the full cost before you start.
See how L7’s own planning compares in Does Visma L7 have finite capacity scheduling? The overview is on the Visma L7 page, and other systems are in the ERP integrations hub.
SkyPlanner reviews from manufacturers
1,000swork orders scheduled automatically
“Production is under control in a different way, and our understanding of capacity is on a completely different level.”
Hannu Ryynänen, CEO
Mamec · Industrial mixers, pumps and high-tech contract manufacturing
Thousands of work orders are scheduled automatically, with a real-time view of production for the whole organization.
98%delivery reliability, up from about 50%
“SkyPlanner plays a decisive role in maintaining our delivery reliability.”
Hannu Lahtinen, Managing Director
KJH-Comp · Sheet-metal mechanics and contract manufacturing
Delivery reliability rose from around 50% to as high as 98%, and scheduling now needs one supervisor instead of two.
2 hsaved every week
“SkyPlanner has taken our production planning from Excel spreadsheets to real-time production optimization.”
Kalle Kalliomäki, Supply Chain Specialist
UTU · Electrical switchboards and switchgear
Production planning saves 2 hours of working time every week, and a new work queue reaches the line in seconds.
+90%production efficiency
“Efficiency has gone up 90% in production.”
Abdul Rucyinga, Head of IT
Laboratory & Allied · Pharmaceutical manufacturing
Production efficiency is up 90%, and a three-month optimized plan across all workstations takes under 30 minutes.
FAQ
Does Visma L7 have an API for production data?
Yes. The Visma L7 REST API on Visma LTR exposes work stages, resources, parts, materials, production events, products, stock balances, sales rows and purchase rows. Each endpoint is licensed separately, and the LTR administrator creates the API user and tokens.
How is the schedule written back to Visma L7?
With PUT /manufphases/, which updates each work card’s resource, start date, priority, person and planned hours per date. POST /resourceupdates/ writes resource calendar capacity. L7 keeps the external priority, so the work queues follow SkyPlanner’s order.
Does Visma L7 support webhooks?
No webhooks are documented. Turn on change logging for the tables in scope and poll with modifiedAfter. SkyPlanner’s own webhooks push schedule changes as they happen.
What scheduling software integrates with Visma L7?
SkyPlanner APS integrates with Visma L7 in both directions over the L7 REST API, and Visma lists Skycode with SkyPlanner on its L7 integrations page. The SkyPlanner team configures it during onboarding.
Who builds the Visma L7 integration?
The SkyPlanner team configures the two-way integration to your L7 setup during onboarding and supports it after go-live. Your Visma partner or your own developers can also build on SkyPlanner’s documented REST API, and an API token is enough to start.
Can we test SkyPlanner before building the integration?
Yes. The 30-day free trial supports up to 20 workstations with Excel or CSV imports from L7, no credit card needed. Start the trial, or talk to sales to scope the integration.