# How to Set Up an ION Workflow Approval for SyteLine Purchase Orders

> Source: https://netray.co/erp-help/csi-ion-workflow-approval-for-syteline-transactions
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: ERP Help

## Short answer

An approval workflow for a SyteLine purchase order is typically built in ION: a document flow carries the order as a BOD from CloudSuite Industrial into ION, a workflow routes it to approvers by amount or commodity, and the decision is written back through an ION or IDO call that updates the PO status. Design for a single source of truth, idempotent write-back, and a timeout path so orders never wait indefinitely.

## Kind

how-to

## System

syteline

## Erp

Infor CloudSuite Industrial (SyteLine) with Infor OS ION

## Module

ION Workflow / Approvals

## Query

how to set up ION workflow approval for SyteLine purchase orders

## Alternate Queries

- SyteLine purchase order approval workflow ION
- CloudSuite Industrial approval workflow Infor OS
- ION workflow SyteLine BOD trigger approval
- SyteLine customer order credit approval workflow

## Applies To

Infor CloudSuite Industrial (SyteLine) 9.x/10.x and cloud editions connected to Infor OS ION; details of designer and BOD names vary by release

## Steps

### How to build the approval flow

**Items:**

- Define the policy first: thresholds by amount, who approves each band, delegation rules, and what happens on rejection or timeout.
- Confirm the SyteLine connection point in ION Desk (Connection Points) is active and publishes the purchase order BOD you need, such as a Process or Sync PurchaseOrder, per your release.
- Create a document flow in ION Desk that routes the PurchaseOrder BOD from the SyteLine connection point to the workflow engine, filtering on status such as pending approval.
- Build the workflow: a start on the BOD, a decision on total amount, human tasks for each approver band, and an end state for approved, rejected and timed out.
- Map approver identities from Infor OS users to the SyteLine users or roles that own authority limits, and test delegation.
- Write the decision back to SyteLine through the supported path: an ION API call to the IDO REST service or a response BOD, updating the PO status with the approver recorded.
- Test with edge cases: change after submission, split lines, currency, and a rejected then revised order.

## Sections

### Where SyteLine's own approval ends and ION begins

**Body:**

SyteLine has built-in controls for some documents, such as authority limits and approval-related status values, and the Event System can run actions when a record changes. For simple one-level approvals, those may be enough and are easier to support. ION workflow earns its place when you need multi-step routing, parallel approvals, cross-system context such as budget in another system, or approvals through Infor OS and mobile channels.

Choose deliberately. Every integration hop adds failure modes, so if a single approver by amount covers the need, prefer the in-ERP route. Use ION when the process genuinely spans systems or needs a richer task experience for approvers.

### Trigger, route, decide, write back

**Body:**

The mechanics are four stages. A trigger: SyteLine publishes a BOD when the PO reaches the approval state. A route: an ION document flow delivers it to the workflow. A decision: approvers act on tasks. A write-back: the result updates SyteLine. Each stage can fail independently, so log the BOD identifier through the whole path.

For write-back, prefer the same business logic path as the UI. Calling the IDO REST service through the ION API gateway runs validation and events, while direct database updates would bypass them and are generally unavailable in multi-tenant anyway. Make the call idempotent: if the same decision is sent twice, the second should do nothing.

**Code:**

# Write-back shape (IDO REST update through the ION API gateway; exact property names depend on your PO IDO)
POST https://<ion-api-host>/<TENANT>/CSI/IDORequestService/ido/update/SLPos?refresh=true
Body: { "Items": [ { "Action": 2, "ItemId": "<RowPointer>", "Properties": [ { "Name": "Stat", "Value": "O" } ] } ] }

### Handling change, timeout and failure

**Body:**

Orders change while waiting. If a buyer edits the PO after submission, decide whether to cancel the running workflow and restart or to compare the version approved with the current one. A common safe rule is that any change to amount, supplier or quantity invalidates the approval.

Add a timeout path: after a set period escalate to a delegate and notify the buyer. Also monitor failed BODs in ION Desk, because a stuck document flow looks to the buyer like an approver who never responds. Alert on tasks older than your policy limit.

### Testing before go-live

**Body:**

Test with real roles in a non-production tenant. Cover approve, reject, revise and resubmit, amount just under and over a threshold, a foreign currency order and an approver who is out of office. Check the audit trail: who approved, when, and which version of the order.

Finally run a failure test. Stop the write-back endpoint, approve a task, and verify the system retries or surfaces an error rather than leaving the PO in limbo. A workflow that works only on the happy path will fail in production on its first network blip.

## Pitfalls

- Building an ION workflow for a single-level approval that SyteLine authority limits or events could handle more simply.
- Writing the decision back non-idempotently so a retry approves twice or errors.
- Not invalidating approval when the PO amount or supplier changes after submission.
- Mapping approvers by display name instead of a stable user identifier.
- No timeout or escalation path, leaving orders waiting indefinitely.

## Ai Angle

An AI assistant grounded in SyteLine and ION can answer operational questions such as which purchase orders are waiting on approval and for how long, summarize the context an approver needs, and draft the policy table from your historical approvals. ERPray stays read-only by default and shows the query it ran. Approval decisions and write-back remain human actions inside the workflow.

## Faq

### Do I need ION for purchase order approval in SyteLine?

**Answer:** Not always. For one approver per amount band, SyteLine authority limits and the event system may be simpler to maintain. ION workflow is worth it for multi-step, cross-system or mobile approval requirements.

### How does the decision get back into SyteLine?

**Answer:** Through a supported path such as an ION API call to the IDO REST service or a response BOD, so SyteLine business rules and events still run. Avoid direct database updates, and make the call idempotent.

### What if the PO changes after it was submitted?

**Answer:** Define a rule. The common safe choice is that a change to amount, supplier or quantity cancels the running workflow and restarts approval. Otherwise store which version was approved and compare at release.

### How do I find stuck approvals?

**Answer:** Monitor failed or pending documents in ION Desk and report on PO status in SyteLine. Alert on tasks older than your policy limit so a broken document flow is caught before buyers complain.

## Search terms

ION workflow SyteLine, SyteLine purchase order approval, Infor OS ION Desk document flow, CloudSuite Industrial approval workflow, ION BOD PurchaseOrder, SyteLine authority limits, ION API IDO REST update, Infor approval workflow mobile

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
