Infor CloudSuite Industrial (SyteLine) Integration Guide
Overview
The connector imports work orders and related records from Infor CloudSuite Industrial (SyteLine) and sends supported labor data back to the ERP.
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) |
Requirements and Permissions
Prerequisites
| Requirement | Details |
|---|---|
| MachineMetrics Edge | Physical or Virtual Edge Device |
| Infor CloudSuite Industrial | Hosted in Infor Cloud; 2023.3.1.7 or later. Confirm the installed build and API availability with your SyteLine administrator. |
| 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. |
Setup
Complete the ERP-specific steps below, then follow Setup and Verification for resource mapping, operator mapping, and the go-live checks. The customer enters credentials directly in Edge Services. Never share credentials with MachineMetrics staff.
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 - Keep the
.ionapifile secure. Enter its values directly in Edge Services, using the field table below. Do not send the file to MachineMetrics staff.
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: Enter the SyteLine Configuration Name
Enter the SyteLine site configuration name in Edge Services. The connector includes this value 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 the value to enter in Edge Services.
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 - Enter the value shown next to that header in the connector configuration on Edge Services
Enter all collected credentials and configuration values directly in Edge Services.
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 |
Verifying the Integration
- Go to Production → Schedule in MachineMetrics
- Confirm work orders from SyteLine are visible
- Have an operator start and close a job in the Operator View
- Verify the labor ticket appears in SyteLine
Configuration Settings
Credential Fields
The downloaded .ionapi file is a JSON credential bundle. Use the following fields when configuring the connector in MM Edge Services:
.ionapi field | MM Edge Services label | Notes |
|---|---|---|
ti | Tenant ID | Must match the target environment (prod vs. sandbox) |
ci | Client ID | OAuth client identifier |
cs | Secret | OAuth client secret |
saak | Username | Service account access key; must be quoted if it contains # |
sask | Password | Service account secret key |
pu | SyteLine SSO URL | Include as-is; the token URL is built at runtime as {pu}{ti}/as/token.oauth2 |
iu | Syteline ION URL | Use the value as-is; do not modify the region or path |
Additional connection settings entered in Edge Services:
| Setting | Variable | Description |
|---|---|---|
| Site configuration | SYTELINE_MONGOOSE_CONFIG | Required value for the X-Infor-MongooseConfig header. |
| Suite context | SYTELINE_SUITE_CONTEXT | Code default: CSI; confirm for your tenant. |
Sync Behavior
Inbound Records
Active work orders are automatically transmitted from SyteLine to MachineMetrics via the Infor ION API Gateway, making them available for operators after sync. The connector uses a sliding time window to discover recently active jobs, including recently closed work orders.
Labor Write-Back
The connector writes job transactions (SLJobtrans) to SyteLine. Export filtering differs between connector versions: some request closed tickets only, while others do not apply that filter. Before go-live, confirm whether your installed service waits for closed tickets, then test a ticket through submission and ERP sync with your SDM.
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 | Find the correct value using Step 5 and update it in Edge Services |
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 | Export eligibility, connector configuration, or a rejected write | Check the installed connector's export rules and logs. If it requires closed tickets, confirm submission closed the MachineMetrics ticket. |
| 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 the posting process with your SyteLine administrator (Step 6) |
FAQ
Does the connector post job transactions? The documented workflow writes unposted job transactions. Your SyteLine administrator must confirm how those transactions are posted.
Where do I enter the .ionapi values?
Enter the fields listed in Configuration Settings directly in Edge Services. Do not send the file to MachineMetrics staff.
Related Guides
Getting Help
Contact your Solution Delivery Manager (SDM) during onboarding or MachineMetrics Support for technical issues after onboarding. For ERP permissions and posting, work with your ERP administrator.