Integrations / ERP / Fulcrum
Fulcrum Integration Guide for Production Scheduling with SkyPlanner APS
This Fulcrum integration guide shows consultants and IT teams how to connect Fulcrum (Fulcrum Pro) to SkyPlanner APS. SkyPlanner integrates with Fulcrum in both directions over the Fulcrum Public API:
- Jobs with their items to make and operations, item routings, work centers, equipment, department shifts, downtimes, inventory and purchase orders flow in.
- Planned start, planned finish and workstation are written to custom fields on each job operation.
- Operator time and completed quantities post back as Fulcrum timers and quantity updates.
- SkyPlanner webhooks push schedule changes as they happen.
The SkyPlanner team configures the integration to your Fulcrum setup during onboarding and supports it after go-live. This guide is for consultants and developers who want to take part, or to build on SkyPlanner’s documented REST API (API reference) themselves.
The Fulcrum Public API
Fulcrum is one multi-tenant cloud product, so every customer runs the same API. The developer hub describes it as a public API for “REST API calls directly into your Fulcrum site.”
- Spec. OpenAPI “Fulcrum PublicAPI” v1, downloadable at
https://api.fulcrumpro.com/swagger/v1/swagger.json. Fulcrum suggests generating a typed client from it. A dated History page lists every change. - Hosts.
https://api.fulcrumpro.comfor standard sites. ITAR sites useapi.fulcrumpro.us, and ITAR tokens receive a 401 on the .com host. - Style. Lists are
POST .../listwith a filter body,SkipandTakepaging andSort.Field/Sort.Dir. Many objects accept PUT, and jobs also accept JSON Patch.
The endpoints a scheduling integration uses:
| Area | Endpoints |
|---|---|
| Items and routings | /api/items, /api/items/{itemId}/routing, /routing/operations, /routing/input-items, /routing/input-materials |
| Shop setup | /api/work-centers, /api/equipment, /api/operations, /api/department-shifts, /api/equipment-downtimes |
| Jobs | /api/jobs, /api/jobs/{jobId}/items-to-make/{itemToMakeId}/operations, /api/work-orders |
| Material | /api/inventory, /api/materials, /api/purchase-orders, /api/reporting/material-requirements/list |
| Shop floor | /api/job-tracking-timers/start and /stop, /api/timers, .../operations/{operationId}/add-quantity-completed, .../complete |
Fulcrum’s own integrations page is direct about the work: “Every system is a little bit different and requires some configuration.” The SkyPlanner team takes on exactly that configuration during onboarding.
Authentication
Fulcrum uses a Bearer token in the Authorization header. “A public API token can be generated within your fulcrum site via Business Setup -> System Data -> Public Api.” Each token has a name, description and expiration date. You can create as many as you need and revoke one by deleting it. Give the SkyPlanner integration its own token, and set a reminder before it expires.
On the SkyPlanner side, the REST API authenticates with an API token in the Authorization-Token header (SkyPlanner Settings > API) and is documented in Swagger/OpenAPI. The integration tutorial walks through the first calls.
Events and polling
Fulcrum supports webhooks, configured by an admin. Since September 2026, failing webhooks pause and are re-tested daily instead of retrying forever. The API History names events such as PurchaseOrderUpdated and ItemUpdated.
The integration reads Fulcrum like this:
- Open jobs filtered to
scheduledandinProgresswithhasIncompleteOperations: true, polled every few minutes. This is the filter Fulcrum itself gives for matching its schedule page. - Purchase orders and inventory before each schedule run, or on a
PurchaseOrderUpdatedwebhook where it is configured. - Items, routings, equipment and shifts on change, or nightly.
In the other direction, SkyPlanner’s own webhooks push schedule changes as they happen, so the write-back side is event-driven.
Data mapping
| Fulcrum object (endpoint) | SkyPlanner object | Direction | Frequency |
|---|---|---|---|
Item, Materials (/api/items, /api/materials) | Products and materials | Fulcrum → SkyPlanner | Initial load, then nightly |
Routing input items and materials (/routing/input-items, /input-materials) | Product structure, subproducts, materials per product | Fulcrum → SkyPlanner | Initial load, then on change |
Routing operations (/routing/operations): setupTime, laborTime, machineTime (fixed or per unit), selectedEquipmentIds | Process steps, setup times, durations, allowed workstations | Fulcrum → SkyPlanner | Initial load, then on change |
Work Center (/api/work-centers) | Workstation group | Fulcrum → SkyPlanner | Initial load, rarely after |
Equipment (/api/equipment): unlimitedCapacity, canRunUnattended, status | Workstations, batch jobs, unattended running | Fulcrum → SkyPlanner | Initial load, daily for status |
Department Shifts (/api/department-shifts), Equipment Downtimes | Shifts and absences | Fulcrum → SkyPlanner | Initial load, daily |
Job and job operations (/api/jobs, .../items-to-make/{id}/operations): priority, productionDueDate, earliestStartDate, estimates | Orders and jobs | Fulcrum → SkyPlanner | Polling every few minutes |
| Inventory, Purchase Orders with Expected Receive dates | Stock and incoming material | Fulcrum → SkyPlanner | Before each schedule run |
Job operation customFields (POST .../operations/{operationId}) | Planned start, planned finish, workstation | SkyPlanner → Fulcrum | On schedule change, via SkyPlanner webhook |
Job customFields (PUT /api/jobs/{jobId}/custom-fields) | Planned job finish | SkyPlanner → Fulcrum | On schedule change |
Job tracking timers, /api/timers, add-quantity-completed, complete | Timelogs, completed and scrap quantities | SkyPlanner → Fulcrum | As operators log work |
| Not in Fulcrum | Named operators, setting time matrix, finite tools, alternative workstations | Maintained in SkyPlanner | Set up during onboarding |
Integration patterns
1. Initial master data load. Pull items, materials, routings, work centers and equipment, then department shifts and downtimes. Each Fulcrum work center becomes a SkyPlanner workstation group with its equipment as members, and each routing operation’s selected equipment becomes its allowed workstations. Unlimited Capacity equipment such as ovens and paint booths becomes batch jobs.
2. Order sync. Read open jobs with their items to make and operations, plus open purchase orders and inventory. SkyPlanner treats ordered material as available on the PO delivery date and updates stock when the PO is marked Delivered. The schedule checks stock and incoming purchases on every replan.
3. Schedule write-back. Fulcrum computes scheduledStartUtc, scheduledEndUtc and scheduledEquipmentId itself and returns them read-only. The operation update accepts customFields. SkyPlanner writes planned start, planned finish and workstation to custom fields on each job operation, and the planned finish to a job custom field. Sales and purchasing see SkyPlanner’s dates on the job in Fulcrum.
4. Shop-floor confirmations. Operators log work in SkyPlanner with Mobile Confirmations, Production Timer or Quick Log Mode. SkyPlanner posts the time to Fulcrum through /api/job-tracking-timers/start and /stop, or as a completed block through /api/timers. Quantities go through add-quantity-completed, and the final count with scrap through complete. Job costing in Fulcrum stays live.
5. Ownership and conflict rules. Fulcrum’s scheduler “dictates the order of operations in Job Tracking.” So pick one dispatch channel per operation: SkyPlanner’s operator queue or Fulcrum Job Tracking. Write the rules down before go-live:
| Data | Owner |
|---|---|
| Items, routings, estimates, inventory, purchasing, costing | Fulcrum |
| Operation sequence, start and end times, workstation assignment | SkyPlanner |
| Operators, setting time matrix, tools, alternative resources | SkyPlanner |
| Shifts and downtimes | One system, chosen in scoping |
| Logged time and completed quantities | SkyPlanner, posted to Fulcrum |
Typical project steps
Implementation is normally completed within weeks after onboarding starts. Before that, the 30-day free trial runs on your own data. Export items, routings and open jobs from Fulcrum grids to CSV, import them and validate the schedule.
The project itself contains:
- Token and scope. Create a Public API token and agree on the custom fields for write-back.
- Mapping. Fix the mapping table, ownership rules and the dispatch channel.
- Initial load. Items, materials, routings, work centers, equipment, shifts, downtimes.
- Order and purchase order sync. Incremental job polling, plus purchase orders and inventory.
- Constraint setup in SkyPlanner. Operators and their shifts, setting time matrix, tools and alternative workstations.
- Write-back. Custom fields on job operations and jobs.
- Shop-floor posting. Timers and quantities into Fulcrum.
- Parallel testing and go-live. Run SkyPlanner beside Fulcrum’s schedule, compare dates, fix master data, then switch dispatch.
What to plan for in a Fulcrum integration
- Labor lives in shift counts. Fulcrum’s Max Equipment per shift “is usually determined by how many people you have working in a certain area at that time.” Named operators and their shifts are set up in SkyPlanner. Users in
/api/usersgive the names. - Scheduling is to equipment. Fulcrum work centers are groups of interchangeable equipment. Keep the routing’s selected equipment accurate, because it becomes the alternatives the engine chooses between.
- Work orders group jobs. A work order groups operations of several jobs, for example a nest. A timer started on a grouped operation starts the work order timer instead, and it covers every job operation in the group.
- Timer limits. Retroactive
/api/timersblocks “may not be in the future, older than 30 days, or longer than 7 days.” Post time as operators log it. - Time formats differ. Shifts use local HHmm values, downtimes and scheduled dates are UTC, and operation estimates come in seconds.
- Equipment updates replace the whole record. An equipment PUT clears any field it omits. SkyPlanner reads equipment and never writes it.
- ITAR sites. Use the
.ushost and an ITAR token.
The Fulcrum integration: who configures and supports it
The work covers mapping your departments, work centers, equipment and routings, plus the constraints Fulcrum does not hold: named operators, setting time matrix, tools and alternative resources.
- The SkyPlanner team configures it during onboarding and supports it after go-live. Every shop runs Fulcrum differently, and this is where that know-how goes.
- Your Fulcrum consultant or integration partner can build it. SkyPlanner provides the REST API, Swagger/OpenAPI documentation and webhooks.
- Your own developers can build on it. An API token is enough to start, and the SkyPlanner team assists when needed. Product documentation, including purchase orders and the products and materials API, is in the SkyPlanner docs.
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 pricing, features and how Fulcrum’s own scheduler compares in Fulcrum finite capacity scheduling. The overview is on the Fulcrum page, and other ERPs are in the ERP integrations hub.
SkyPlanner reviews from manufacturers
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.
99.2%delivery reliability
“SkyPlanner has brought visibility to identifying bottlenecks and clarified production management.”
Toni Tuori, Production Manager
Piristeel · Roof safety and rainwater systems
Delivery reliability reached 99.2% this year, and scheduling saves up to four hours of working time per day.
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.
FAQ
Does Fulcrum have an API?
Yes. The Fulcrum Public API is a REST API with an OpenAPI v1 spec. It authenticates with a Bearer token generated under Business Setup > System Data > Public Api. ITAR sites use a separate .us host.
Can SkyPlanner write the schedule back into Fulcrum?
Yes. Fulcrum keeps its own scheduled dates read-only, so SkyPlanner writes planned start, planned finish and workstation to custom fields on each job operation, and the planned finish to the job. Operator time and completed quantities post back as timers and quantity updates.
Does Fulcrum push changes in real time?
Fulcrum has admin-configured webhooks, with events such as PurchaseOrderUpdated. Open jobs are polled every few minutes with the same filter Fulcrum uses for its schedule page. SkyPlanner’s own webhooks push schedule changes as they happen.
Who builds the Fulcrum integration?
The SkyPlanner team configures the two-way integration during onboarding and supports it after go-live. Your Fulcrum consultant, an integration partner or your developers can also build on SkyPlanner’s documented REST API.
Can we test SkyPlanner before building the integration?
Yes. The 30-day free trial supports up to 20 workstations with CSV imports from Fulcrum, no credit card needed. Start the trial, or talk to sales to scope the integration.