Integrations / ERP / Lemonsoft
Lemonsoft Integration Guide for Production Scheduling with SkyPlanner APS
This Lemonsoft integration guide shows partners and IT teams how to connect Lemonsoft ERP to SkyPlanner APS. SkyPlanner integrates with Lemonsoft in both directions over Lemonsoft’s REST API:
- Work numbers (työnumero), work stages (työvaihe), machines, product structures, materials and planned shifts flow in.
- Planned start and end times and the chosen machine go back to the work stages.
- Operator confirmations post back as completion entries.
- SkyPlanner webhooks push schedule changes as they happen.
Kaskea Group runs SkyPlanner with a two-way Lemonsoft integration. The SkyPlanner team configures the integration to your Lemonsoft setup during onboarding and supports it after go-live. Partners and developers can also build on SkyPlanner’s documented REST API (API reference).
Lemonsoft’s REST API
Lemonsoft’s integration API is LemonRest, documented as Swagger 2.0, version v1. Build “LemonRest 2026.10 release-2026.10.2” lists 422 paths. (Swagger)
- Base URL is per environment. You find it in user management, under environment management and service addresses, in the field Rest API. On Lemonsoft’s Azure platform the base is
https://rest.lemon.fi. - Availability. For Lemonsoft platform service (Alustapalvelu) customers, the REST APIs are preinstalled and only need user rights. (source)
- Test environment. The end customer orders it from Lemonsoft Service Desk.
The separate Kellokortti time tracking API is not needed for scheduling.
Authentication
LemonRest uses a session:
POST /api/auth/loginwith UserName, Password, Database and ApiKey returns asession_id.- Send it in the
Session-Idheader on every call. - Renew with
POST /api/auth/renew.GET /api/auth/aliveis the health check.
POST /api/auth/login/token takes a Token instead of user name and password. Create a dedicated integration user with an API key and only the rights the integration needs. (source)
On the SkyPlanner side, the REST API authenticates with an API token (SkyPlanner Settings > API) and is documented in Swagger/OpenAPI. The integration tutorial walks through the first calls.
Change detection: delta queries
LemonRest has no webhook or subscription endpoints. Changes are read with a delta query:
GET /api/production/main_ws/changed?updated_after=...returns jobs changed since the last run.- Add
optimization=true. Release 2026.6.3 added it to remove the log dependency and speed up the query. (release notes) GET /api/log/deletion_eventscatches deleted jobs, 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
| Lemonsoft object (endpoint) | SkyPlanner object | Direction | Frequency |
|---|---|---|---|
Tuote, product_code (/api/products) | Products and materials | Lemonsoft → SkyPlanner | Initial load, then on change |
Tuoterakenne with Työvaiheet rows (/api/products/structure, all_levels) | Product structure, subproducts, process steps with setup times | Lemonsoft → SkyPlanner | Initial load, then on change |
Kone, Koneryhmä (/api/production/machines, /api/settings/machine_groups) | Workstations, workstation groups | Lemonsoft → SkyPlanner | Initial load, rarely after |
Työnumero as ProductMainWorkStage (/api/production/workstage, main_ws/changed) | Orders with due dates and priority | Lemonsoft → SkyPlanner | Delta polling every few minutes |
Työvaihe as ProductSubWorkStage (main_ws/sub_ws): machine, setting_time, duration, work_amount_left | Jobs (process steps) per workstation | Lemonsoft → SkyPlanner | Delta polling every few minutes |
Component need (main_ws/{worknumber}/materials) | Material requirements per job | Lemonsoft → SkyPlanner | With each job |
Planned shifts (/api/persons/plannedshifts) | Shifts, personnel | Lemonsoft → SkyPlanner | Daily, or shifts kept in SkyPlanner |
Sales order behind a work number (/api/orders/work/{work_number}) | Customer and priority context | Lemonsoft → SkyPlanner | With each job |
Työvaihe start_time, end_time, machine_id (PUT /api/production/workstage) | Planned start, end and workstation | SkyPlanner → Lemonsoft | On schedule change, via SkyPlanner webhook |
Completion entry (POST main_ws/sub_ws/completion_entry) | Confirmations: done and failed quantity, hours, person | SkyPlanner → Lemonsoft | Per confirmation |
| Scheduling rules set in SkyPlanner | Allowed workstations per job, setting time matrix, tools | Maintained in SkyPlanner | Set up during onboarding |
Integration patterns
1. Initial master data load. Read machines and machine groups, product structures with their work stages, and standard work phases. Map each concrete machine to a SkyPlanner workstation. Use parent machines (Isäkone) only as grouping, because they sum their children’s capacity.
2. Work number sync. Read open work numbers with their stages from /api/production/workstage or main_ws/sub_ws, filtered by state and paged. Then keep them current with main_ws/changed. Map work_amount_left, not work_amount, because Lemonsoft schedules on the remaining quantity. Purchase orders feed SkyPlanner’s material-driven scheduling, so a stage waits for the PO delivery date.
3. Schedule write-back. For every stage the engine placed or moved, SkyPlanner sends PUT /api/production/workstage with the job and its sub_workstages. Each stage carries start_time, end_time and machine_id when it moved to an alternative machine.
4. Shop-floor confirmations. Operators confirm work with SkyPlanner Mobile Confirmations or the Production Timer. Each confirmation posts to completion_entry with sub_workstage_id, person_number, done_amount, hours, failed_amount and job_done. Send material_consumptions with it when the stage consumes material, and Lemonsoft books a normal completion posting (valmistuskirjaus).
5. Ownership and conflict rules. Write them down before go-live:
| Data | Owner |
|---|---|
| Products, structures, work stages, quantities, job state | Lemonsoft |
| Stage sequence, start and end times, machine choice | SkyPlanner |
| Allowed workstations per job, setting time matrix, tools | SkyPlanner |
| Shifts and absences | One system, chosen in scoping |
| Completions and stock postings | Lemonsoft, posted from SkyPlanner confirmations |
The main conflict source is Lemonsoft’s own automatic scheduling and the refresh action: both re-place unlocked stages. Keep AUTOTIMING at 0 while SkyPlanner owns the schedule. If you keep it on, set the schedule lock on each written work number; it fixes every stage of that number. Koneiden kapasiteetin lukitus alone is not enough, because automatic scheduling moves unlocked jobs off a locked day. (source)
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 machines.
- Scoping. Fix the mapping table, ownership rules and polling interval.
- Access. The end customer orders a test environment from Lemonsoft Service Desk and creates the integration user and API key.
- Initial load. Machines, groups, product structures and work stages.
- Work number sync. Delta polling, deletion events and session renewal.
- Constraint setup in SkyPlanner. Allowed workstations per job, the setting time matrix, and tools.
- Write-back. Stage times and completion entries, tested in the test environment.
- Parallel run and go-live. Compare with the current Gantt, fix master data, then switch on write-back in production.
What to plan for in a Lemonsoft integration
- One machine per stage. A Lemonsoft stage carries one machine. Product-specific machine eligibility comes from a list or product properties during onboarding, and SkyPlanner then picks among the alternatives.
- Daily capacity. Fixed capacity is a daily amount, and deviations have no clock time. Model real shifts in SkyPlanner or read planned shifts.
- Remaining quantity. Map
work_amount_left. Settings STARTJOB_AUTOTIMENOW and JOBDONE_AUTOTIMENOW also move Lemonsoft’s own load. - Sessions expire. Renew the session before long syncs and handle a forced re-login.
- Confirmation rules. Validate each confirmation against the stage state before posting, and pace bursts of calls.
- Two clients. LemonOnline and the Windows version share one database, so the integration serves both.
- Large structures. Use
/api/async/product/structurewith/api/async/status/{jobId}for big imports.
The Lemonsoft integration: who configures and supports it
The work covers mapping to your machines, work stages and Lemonsoft setup. It also covers the scheduling rules you keep in SkyPlanner: allowed workstations per job, the setting time matrix, and tools.
- The SkyPlanner team configures it during onboarding and supports it after go-live. Every plant runs Lemonsoft differently, and this is where that know-how goes.
- Your Lemonsoft partner can take part. The partner knows your setup and can handle the API user, rights and test environment. 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.
Once connected, the Arcturus engine schedules from live Lemonsoft work numbers, and planned times land on the work stages. 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 Lemonsoft’s own planning compares in Lemonsoft finite capacity scheduling. The overview is on the Lemonsoft page, and other systems are in the ERP integrations hub.
SkyPlanner reviews from manufacturers
Lemonsofttwo-way integration with SkyPlanner
Kaskea Group
Contract manufacturing: CNC machining, steel structures and assembly
Production is planned in SkyPlanner, with a two-way integration to Lemonsoft.
Fewerstoppages from material shortages
“The value SkyPlanner brings us is that it is a tool that works in daily use, especially for setting delivery dates.”
Tommi Männistö, Production Planning Manager
Eskomatic · Contract machining
Automatic load scheduling gives more accurate delivery dates, and production stoppages caused by material shortages have fallen sharply.
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 Lemonsoft have an API for production data?
Yes. LemonRest exposes production jobs and work stages, machines, product structures, materials, shifts and completion posting. It is preinstalled for Alustapalvelu customers and needs an API key and user rights.
Does Lemonsoft support webhooks?
No webhook endpoints are listed in LemonRest. Changes are read with the main_ws/changed delta query and deletion events, polled every few minutes. SkyPlanner’s own webhooks push schedule changes as they happen.
How are planned times written back to Lemonsoft?
With PUT /api/production/workstage, which updates a job and its work stages with start time, end time and machine. Keep Lemonsoft’s automatic scheduling off while SkyPlanner owns the schedule, or set the schedule lock on each written work number, so the times stay where SkyPlanner put them.
Can operator confirmations from SkyPlanner post to Lemonsoft?
Yes. Each confirmation posts as a completion entry with done and failed quantity, hours and person. Customer projects run this daily.
Who builds the Lemonsoft integration?
The SkyPlanner team configures the two-way integration to your Lemonsoft setup during onboarding and supports it after go-live. Your Lemonsoft 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 Lemonsoft, no credit card needed. Start the trial, or talk to sales to scope the integration.