Infor CloudSuite Industrial (SyteLine) Integration Guide
Connect Infor CloudSuite Industrial (SyteLine) to MachineMetrics for bidirectional work order and labor tracking synchronization.
| Section | Description |
|---|---|
| Overview | Integration type and data flow summary |
| How It Works | End-to-end data flow explanation |
| Requirements | Prerequisites before setup |
| Step-by-Step Setup Guide | ION API, credentials, permissions, and configuration |
| After Setup | Verification steps |
| Troubleshooting | Authentication, API, and labor errors |
Overview
The MachineMetrics and Infor CloudSuite Industrial (SyteLine) integration enables bidirectional data flow between your ERP system and the shop floor, synchronizing work orders, labor tickets, and production data in real time.
Integration Type
| Attribute | Value |
|---|---|
| Direction | Bidirectional |
| Data Flow (Inbound) | Work orders, employees, operations, and parts from SyteLine → MachineMetrics |
| Data Flow (Outbound) | Labor tickets from MachineMetrics → SyteLine |
| Runs On | MachineMetrics Edge Device (physical or virtual) |
| Connection Method | Infor ION API Gateway (REST/OAuth 2.0) |
How It Works
1. Management — Work Order Transmission
Active work orders are automatically transmitted from SyteLine to MachineMetrics via the Infor ION API Gateway, making them available for operators in real-time. The connector uses a sliding time window to discover recently-active jobs — including recently closed work orders — ensuring MachineMetrics always has an accurate view of recent job data.
2. Tracking — Labor and Progress Reporting
As operators work on orders within MachineMetrics via ShopPulse:
- Labor inputs generate labor tickets
- Work order progress updates in real-time
- Accurate records are maintained automatically
3. Synchronization — Real-Time Updates
When an operator closes a labor ticket (clocks out with final quantities recorded), the connector writes a new job transaction (SLJobtrans) to SyteLine. Only closed tickets are written — open tickets are held until the operator clocks out, ensuring SyteLine always receives complete, postable records.
4. Scheduling — Dynamic Visibility
Shop floor managers and production planners gain instant visibility into:
- Work in progress status
- Schedule adherence
- Required adjustments
Changes to the schedule are immediately communicated to operators.
Requirements
Prerequisites
| Requirement | Details |
|---|---|
| MachineMetrics Edge | Physical or Virtual Edge Device |
| Infor CloudSuite Industrial | Hosted in Infor Cloud |
| ION API Gateway | Must be provisioned for the tenant |
| Automation Module License | Required for programmatic API access |
| Infor OS Portal Access | Tenant administrator access required during setup |
| Network Access | Edge device must have outbound internet access to the Infor ION API Gateway. See Network Requirements Guide for Edge connectivity requirements. |
Step-by-Step Setup Guide
Setup requires an Infor OS administrator to complete the Infor-side steps.
Step 1: Verify the SyteLine IDO REST API Is Registered
The SyteLine IDO REST API must be registered as an Available API in the ION API Gateway before any external application can access it.
Infor Admin action:
- Sign in to the Infor OS Portal
- Navigate to ION API → Available APIs
- Look for an entry named "Infor SyteLine" or "CloudSuite Industrial"
- Click into it and confirm an endpoint named CSI/IDORequestService/ido exists
If the SyteLine API is missing, the customer must contact Infor Cloud support to provision the CSI IDO REST API suite for their tenant. This is a blocking prerequisite — nothing else can proceed without it.
The API suite name in Available APIs provides the suite_context URL segment used in every request. In most deployments this is CSI, but confirm from the endpoint list.
Step 2: Create the Backend Service App and .ionapi Credentials
MachineMetrics authenticates via OAuth 2.0 using a service account. The customer's Infor OS admin creates this.
Infor Admin action:
- In the Infor OS Portal, go to ION API → Authorized Apps
- Click Add (+ icon) and select Backend Service
- Enter a name (e.g.,
MachineMetrics) and a description - Click Save
- Click Download Credentials
- In the credentials dialog:
- Enable "Create Service Account"
- Select a SyteLine user to associate with the service account — this user's authorization group controls what data the API can access
- Click Download to save the
.ionapifile - Send the
.ionapifile to MachineMetrics via SnapPass — do not send credentials via email
Verify the .ionapi file contains both saak and sask fields. If these are missing, the file was generated without "Create Service Account" enabled and must be regenerated. Without them, authentication will fail.
The ti (tenant ID) in the .ionapi file must match the environment being targeted. A file generated from a production tenant will not authenticate against a training or sandbox tenant.
Step 3: Grant IDO Permissions to the Service Account User
The SyteLine user associated with the service account needs read (and selective write) permissions on the IDOs the connector accesses. Without these permissions, API requests will return: User requires [Read] privilege for {IDO} IDO to perform this action.
Infor Admin action:
- In SyteLine, open the Authorization Groups form
- Find the authorization group assigned to the service account user
- Grant Read access to the following IDOs:
| IDO Name | Description | Purpose |
|---|---|---|
SLWcs | Work Centers | Resources / machines |
SLEmployees | Employees | Operators |
SLReasons | Reason Codes | Scrap / downtime codes |
SLItems | Items | Part master |
SLItemRoutes | Item Routing | Standard part operations |
SLJobs | Jobs | Work orders |
SLJobRoutes | Job Routing | Work order operations |
SLJobtrans | Job Transactions | Labor ticket history |
SLCoItems | Customer Order Lines | Due date lookup |
SLCustomers | Customers | Customer name lookup |
- Grant Read + Insert + Update access to:
| IDO Name | Description | Purpose |
|---|---|---|
SLJobtrans | Job Transactions | Labor ticket write-back from ShopPulse |
If SLReasons doesn't appear in the customer's IDO list, try SLRcReasons — the IDO name varies by SyteLine version.
Step 4: Configure Scopes (If Required)
Scopes are optional in most environments — Backend Service apps are exempt from scope checks by default. This step is only needed if the tenant has global scope enforcement enabled.
How to check if scopes are enforced:
- In Infor OS Portal, go to ION API → Configuration (or Settings)
- Look for the Scopes setting
- If set to "Enforced," proceed below; if "Not Enforced," skip this step
If scope enforcement is enabled:
- Go to ION API → Authorized Apps
- Open the MachineMetrics Backend Service app
- Edit the service account
- Add the Infor SyteLine (or CSI) scope to the service account's allowed scopes
- Save
Step 5: Provide the SyteLine Configuration Name
MachineMetrics needs the SyteLine site configuration name to include in every API request (the X-Infor-MongooseConfig HTTP header). Without it, all API calls will fail with InvalidConfiguration.
Option A — From the SyteLine login screen:
Open SyteLine in the browser. If there is a configuration dropdown on the login screen, the value shown there is what MachineMetrics needs.
Option B — From a running SyteLine session:
- Open SyteLine and navigate to any form (e.g., Job Orders)
- Press F12 to open browser Developer Tools
- Click the Network tab
- Type
IDORequestServicein the filter box - Click around in SyteLine to trigger data loading
- Click any request that appears in the Network list
- In the Request Headers section, find
X-Infor-MongooseConfig - Send MachineMetrics the value shown next to that header
Send all collected credentials and configuration values to your MachineMetrics implementation team via SnapPass.
Step 6: Confirm Job Transaction Posting
The connector writes labor tickets to SyteLine in an unposted state — the same state SyteLine uses for labor entered through its own forms. The connector does not post transactions. Posting is a SyteLine-side responsibility and is what triggers material consumption (backflush), quantity roll-up on operations and jobs, cost roll-up to WIP, and the corresponding general ledger entries. Until a transaction is posted, none of these effects happen.
Before going live, confirm how posting is handled in this environment:
| Posting Pattern | Description |
|---|---|
| Scheduled background task | Posts unposted records on a recurring interval (most common production setup) |
| Manual posting | A clerk runs Post Job Transactions at end of shift or end of day |
| Trigger-based or workflow posting | A custom workflow posts on a specific event such as job close |
| No automated posting | Transactions accumulate as unposted records until period close |
After Setup
Once the integration is configured:
- Work orders from SyteLine appear in MachineMetrics
- Operators select and start jobs via ShopPulse
- Labor data syncs back to SyteLine when tickets are closed
- Production Schedule Intelligence displays accurate job status
Verifying the Integration
- Go to Production → Schedule in MachineMetrics
- Confirm work orders from SyteLine are visible
- Have an operator start and close a job on their tablet
- Verify the labor ticket appears in SyteLine
Troubleshooting
Authentication Errors
| Error | Cause | Solution |
|---|---|---|
invalid_grant: Username does not match request tenant | Wrong saak value | Use saak from .ionapi as username, sask as password |
400 Bad Request on token endpoint | Wrong client_id, client_secret, saak, or sask | Double-check all four values from the .ionapi file |
404 on token URL | Wrong token URL | Should be {pu}{ot} concatenated (pu has a trailing slash) |
API Errors
| Error | Cause | Solution |
|---|---|---|
No such proxy endpoint (404) | Wrong suite_context in URL | Verify from Available APIs in ION API Gateway (typically CSI) |
No such deployment details (404) | Wrong tenant in URL | Confirm ti from .ionapi matches the target environment |
InvalidConfiguration | Wrong X-Infor-MongooseConfig header | Get correct value from customer (Step 5) |
User requires [Read] privilege for {IDO} | Service account lacks permissions | Grant IDO access in SyteLine (Step 3) |
| SyteLine API not in Available APIs | IDO REST API not provisioned for this tenant | Customer must contact Infor Cloud support to provision it |
Work Orders and Labor
| Issue | Possible Cause | Solution |
|---|---|---|
| Work orders not appearing | API credentials invalid or IDO permissions missing | Verify .ionapi credentials and IDO read permissions (Steps 2–3) |
| Missing operations | IDO permissions incomplete | Ensure SLJobRoutes has read access |
| Labor not syncing back | Ticket not yet closed | Confirm operator has clocked out and the ticket is in closed state |
| Labor rejected by SyteLine | Job not in Released/Scheduled status, operation already complete, or inactive employee | Check SyteLine for validation errors on the transaction |
| Unposted tickets not being processed | No automated posting configured | Review posting setup with customer (Step 6) |
Related Articles
- ERP Integration Guide — General ERP integration overview
- Machine Settings — Mapping work centers
- Production Schedule Intelligence — Using the schedule view
- ShopPulse Interface Guide — How operators interact with jobs
Getting Help
- Setup Assistance: Contact your MachineMetrics Solution Delivery Manager (SDM)
- Technical Issues: Email support@machinemetrics.com
- Infor Configuration: Consult your Infor OS administrator or Infor partner