Connects with ERP & MES systems like

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.
SkyPlanner APS Gantt timeline with jobs scheduled across workstations and an order list below.

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:

  1. POST /api/auth/login with UserName, Password, Database and ApiKey returns a session_id.
  2. Send it in the Session-Id header on every call.
  3. Renew with POST /api/auth/renew. GET /api/auth/alive is 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_events catches 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 objectDirectionFrequency
Tuote, product_code (/api/products)Products and materialsLemonsoft → SkyPlannerInitial load, then on change
Tuoterakenne with Työvaiheet rows (/api/products/structure, all_levels)Product structure, subproducts, process steps with setup timesLemonsoft → SkyPlannerInitial load, then on change
Kone, Koneryhmä (/api/production/machines, /api/settings/machine_groups)Workstations, workstation groupsLemonsoft → SkyPlannerInitial load, rarely after
Työnumero as ProductMainWorkStage (/api/production/workstage, main_ws/changed)Orders with due dates and priorityLemonsoft → SkyPlannerDelta polling every few minutes
Työvaihe as ProductSubWorkStage (main_ws/sub_ws): machine, setting_time, duration, work_amount_leftJobs (process steps) per workstationLemonsoft → SkyPlannerDelta polling every few minutes
Component need (main_ws/{worknumber}/materials)Material requirements per jobLemonsoft → SkyPlannerWith each job
Planned shifts (/api/persons/plannedshifts)Shifts, personnelLemonsoft → SkyPlannerDaily, or shifts kept in SkyPlanner
Sales order behind a work number (/api/orders/work/{work_number})Customer and priority contextLemonsoft → SkyPlannerWith each job
Työvaihe start_time, end_time, machine_id (PUT /api/production/workstage)Planned start, end and workstationSkyPlanner → LemonsoftOn schedule change, via SkyPlanner webhook
Completion entry (POST main_ws/sub_ws/completion_entry)Confirmations: done and failed quantity, hours, personSkyPlanner → LemonsoftPer confirmation
Scheduling rules set in SkyPlannerAllowed workstations per job, setting time matrix, toolsMaintained in SkyPlannerSet 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:

DataOwner
Products, structures, work stages, quantities, job stateLemonsoft
Stage sequence, start and end times, machine choiceSkyPlanner
Allowed workstations per job, setting time matrix, toolsSkyPlanner
Shifts and absencesOne system, chosen in scoping
Completions and stock postingsLemonsoft, 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.

  1. Scoping. Fix the mapping table, ownership rules and polling interval.
  2. Access. The end customer orders a test environment from Lemonsoft Service Desk and creates the integration user and API key.
  3. Initial load. Machines, groups, product structures and work stages.
  4. Work number sync. Delta polling, deletion events and session renewal.
  5. Constraint setup in SkyPlanner. Allowed workstations per job, the setting time matrix, and tools.
  6. Write-back. Stage times and completion entries, tested in the test environment.
  7. 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/structure with /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.

  1. 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.
  2. 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.
  3. 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.

Read the Eskomatic review

Kalle Kalliomäki, Supply Chain Specialist at UTU, on the switchboard production floor in Ulvila

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.

Read the UTU review

Operators in cleanroom suits at a bottle-filling line in Laboratory & Allied's pharmaceutical plant in Nairobi

+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.

Read the Laboratory & Allied review

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.