Skip to main content

Integration Builder - External ERP Integration

Asaf Cohen avatar
Written by Asaf Cohen
Updated over 2 weeks ago

Integration Builder is a powerful feature that enables Next Plus MES to report manufacturing data to an external ERP system. This integration is designed to cover the needs of Next Plus MES to report critical manufacturing events to your existing ERP system in real-time.

For the reverse direction (such as interfaces for the ERP to create work orders in Next Plus), please use our REST API.

Key Integration Types

The Integration Builder supports three types of integrations:

1. Device/Serial Integration

Reports when a user sets or changes the main serial number (the serial that is actually manufactured). This integration captures when a device's serial number is added, updated, or removed from a work order.

2. Item Attach Integration

Reports when a user attaches sub-items (sub-assemblies or raw materials) under the main serial/device. This integration captures the consumption of components during the manufacturing process.

3. Operation Integration

Reports when a user reports on a work order operation (routing). This integration captures the progress of manufacturing operations with quantities and status.

Configuration

To enable and configure the Integration Builder:

  1. Navigate to Settings > Integrations > Integration Builder

  2. Enable the "Custom Integration" toggle

  3. Enter the Work Order Source identifier (must match the source of work orders you want to integrate)

  4. Enable each desired integration type (Device/Serial, Item Attach, Operation)

  5. For each enabled integration, provide the destination URL endpoint

  6. Test each integration using the "Test" button

  7. Save your configuration

Integration Payloads

All integrations use HTTP POST requests with JSON payloads. Below are the expected payloads for each integration type.

Device/Serial Integration

Endpoint: Your configured Device Integration URL

Payload Example:

{
"type": "add", // Can be "add", "remove", or "update"
"workorderNumber": "WO-12345",
"sku": "DEVICE-SKU",
"serial": "SN12345",
"oldSerial": "SN12344", // Only when type is "update"
"externalId": "ERP-ID-123", // Only when type is "remove" or "update"
// System IDs for reference
"workorderId": "550e8400-e29b-41d4-a716-446655440000",
"stockId": "550e8400-e29b-41d4-a716-446655440001",
"sessionId": "550e8400-e29b-41d4-a716-446655440002",
"workorderExternalId": "ERP-WO-123" // May be null
}

Field Descriptions:

  • type: Action being performed (add/update/remove serial)

  • workorderNumber: Work order identifier in Next Plus

  • sku: Product SKU/part number

  • serial: New serial number being assigned

  • oldSerial: Previous serial number (only for updates)

  • externalId: External system ID reference for this device

  • workorderId: Next Plus internal ID for the work order

  • stockId: Next Plus internal ID for the stock item

  • sessionId: Next Plus session ID for tracking

  • workorderExternalId: External system reference ID for the work order

Item Attach Integration

Endpoint: Your configured Item Attach Integration URL

Payload Example:

{
"type": "add", // Can be "add" or "remove"
"workorderNumber": "WO-12345",
"sku": "DEVICE-SKU",
"serial": "SN12345", // Optional, only when the part is serial-managed
"externalId": "ERP-ID-123", // Parent external ID
"item": {
"sku": "COMPONENT-SKU",
"quantity": 5,
"serial": "COMP-SN-123", // Optional
"workorderNumber": "WO-SUB-123", // Optional
"externalId": "ERP-COMP-123" // Only when "remove" and only when received from attach request
},
// System IDs for reference
"workorderId": "550e8400-e29b-41d4-a716-446655440000",
"stockId": "550e8400-e29b-41d4-a716-446655440001",
"sessionId": "550e8400-e29b-41d4-a716-446655440002",
"workorderExternalId": "ERP-WO-123" // May be null
}

Field Descriptions:

  • type: Action being performed (add/remove component)

  • workorderNumber: Work order identifier in Next Plus

  • sku: Parent device SKU/part number

  • serial: Parent device serial (if serial-managed)

  • externalId: External system ID reference for the parent device

  • item: The component being attached or removed

    • sku: Component SKU/part number

    • quantity: Number of units being attached

    • serial: Component serial number (for serial-managed components)

    • workorderNumber: Component's work order number (if applicable)

    • externalId: External system reference for this component

  • workorderId, stockId, sessionId, workorderExternalId: System reference IDs

Operation Integration

Endpoint: Your configured Operation Integration URL

Payload Example:

{
"type": "add", // Can be "add" or "remove"
"sku": "DEVICE-SKU",
"serial": "SN12345", // Only when the part is serial-managed
"workorderNumber": "WO-12345",
"externalId": "ERP-OP-123", // String or null, only when "remove"
"actCode": "ASSY",
"workCenterCode": "WC-123",
"position": 10,
"validQty": 1,
"invalidQty": 0,

// System IDs for reference
"workorderId": "550e8400-e29b-41d4-a716-446655440000",
"stockId": "550e8400-e29b-41d4-a716-446655440001",
"sessionId": "550e8400-e29b-41d4-a716-446655440002",
"workorderExternalId": "ERP-WO-123", // May be null
"operationExternalId": "ERP-OP-123" // String or null
}

Field Descriptions:

  • type: Action being performed (add/remove operation report)

  • sku: Product SKU/part number being processed

  • serial: Device serial number (if serial-managed)

  • workorderNumber: Work order identifier in Next Plus

  • externalId: External system ID reference for this operation

  • actCode: Operation code/identifier

  • workCenterCode: Work center where operation is performed

  • position: Sequence position of operation in routing

  • validQty: Quantity reported as valid/good

  • invalidQty: Quantity reported as invalid/rejected

  • workorderId, stockId, sessionId, workorderExternalId: System reference IDs

  • operationExternalId: External system reference for the operation

Expected Responses

For all integration types, Next Plus expects the following response patterns:

Success Response

Any response with a status code less than 400 will be considered successful.

{
"externalId": "ERP-REFERENCE-123" // Optional, the external ID of the transaction
}

Error Response

Any response with a status code of 400 or greater will be considered a failure.

{
"message": "Error description" // Optional but recommended, this message will be shown to the user
}

Troubleshooting

If you encounter issues with the integration:

  1. Verify all URLs are correctly formatted and accessible from the Next Plus server

  2. Check that the work order source matches exactly

  3. Ensure your endpoints return appropriate success/error status codes

  4. Review the Next Plus logs for detailed error information

  5. Verify your endpoint can properly process and respond to the JSON payloads

Did this answer your question?