The workflow

Watch this workflow run through Kroy.

  1. The request.

    “where is my order?”

  2. Who is asking.

    Kroy identifies the person in operations and Microsoft Copilot acting for them, within the delegation they gave it.

  3. Only what the task needs.

    Kroy retrieves orders, order lines and shipment status (private ERP) and customer accounts (private ERP, mapped to KroyDB) from Private ERP connector.

  4. Excluded by design.

    ERP credentials, Pricing and margin fields and Other customers' orders, for each customer never reach Microsoft Copilot. That boundary is Kroy’s, not an instruction to the AI.

  5. The proposed action.

    Permitted: read order status (erp.order.read), read shipments (erp.shipment.read) and subscribe to shipment updates (erp.order.shipped event).

  6. What Kroy refuses.

    Refused: change orders or prices (erp.order.update), read another customer’s orders and read margin fields.

  7. State changes. Everything is recorded.

    The work is updated in Kroy, and every request — allowed or refused — is written to the audit trail.

Microsoft Copilot
Operations
Kroy
Private ERP connector
Read order status
Change orders or prices
AUDIT · STATE

Retrieved

  • Orders, order lines and shipment status…
  • Customer accounts (private ERP, mapped…

Excluded

  • ERP credentials
  • Pricing and margin fields
  • Other customers' orders, for each custo…
Microsoft Copilot
Operations
Kroy
Private ERP connector
Read order status
Change orders or prices
AUDIT · STATE

Retrieved

  • Orders, order lines and shipment status…
  • Customer accounts (private ERP, mapped…

Excluded

  • ERP credentials
  • Pricing and margin fields
  • Other customers' orders, for each custo…
A private ERP Connector with a customer-facing order status Skill: the workflow through Kroy. The request.. Who is asking.. Only what the task needs.. Excluded by design.. The proposed action.. What Kroy refuses.. State changes. Everything is recorded..

What the AI can and cannot do

Data accessed

  • Orders, order lines and shipment status (private ERP)
  • Customer accounts (private ERP, mapped to KroyDB)

Data excluded

  • ERP credentials
  • Pricing and margin fields
  • Other customers' orders, for each customer

Actions permitted

  • Read order status (erp.order.read)
  • Read shipments (erp.shipment.read)
  • Subscribe to shipment updates (erp.order.shipped event)

Actions refused

  • Change orders or prices (erp.order.update)
  • Read another customer’s orders
  • Read margin fields

Business situation

ABC Limited, a distributor, runs its orders on an in-house ERP. Its customer service team answers the same question many times a day: where is my order? Staff want to ask their AI. Some of ABC Limited’s business customers would rather ask their own AI than phone or log into a portal.

Why existing tools alone are insufficient

No off-the-shelf AI integration exists for a system ABC Limited built itself. Building a bespoke integration for each AI tool means handing each one ERP credentials. Opening the ERP to customers’ AI directly would require building an access control layer from scratch, so that each customer sees only their own orders.

Systems involved

  • The private ERP — orders, order lines, customers and shipments.
  • KroyDB — customer entities, mapped to ERP customer accounts.
  • Customer Channels — one per business customer.

Kroy architecture

A developer at ABC Limited builds a private Kroy Connector for the ERP. It declares its resources (orders, shipments, customers), its actions (erp.order.read, erp.shipment.read, and erp.order.update, which is kept for internal systems), its events (erp.order.shipped) and its permissions. Kroy holds the ERP credentials. The Check Order Status Skill uses only the read actions and leaves out pricing fields. It is enabled for customer service, and offered in each customer’s Channel, where the projection is filtered to that customer’s orders.

Workflow

  1. The developer installs the private Connector in ABC Limited’s Kroy organisation and creates the Check Order Status Skill.
  2. A customer service adviser asks Copilot: “Where is order 4471 for XYZ Limited?” Copilot discovers the Skill through Kroy and requests erp.order.read. Kroy authorises it; the ERP returns the order and its shipment.
  3. The adviser asks Copilot: “Discount the remaining lines on that order.” Kroy refuses: erp.order.update is not in the Skill.
  4. XYZ Limited’s buyer, a guest in the XYZ Customer Channel, asks their own ChatGPT: “Which of our orders haven’t shipped yet?” Kroy returns only XYZ Limited’s open orders.
  5. The buyer’s ChatGPT asks for orders placed by another customer. Kroy refuses: the Channel’s projection contains only XYZ Limited’s orders.
  6. When an order ships, the ERP emits erp.order.shipped. The buyer’s subscription in the Channel is notified.

Agent permissions

Staff AI acts under each adviser’s delegation within the Skill. A customer’s AI acts under the guest’s delegation, bounded by that customer’s Channel. No agent receives ERP credentials or pricing fields.

Human permissions

Customer service advisers can check any customer’s orders. Each customer’s guests can see only their own organisation’s orders. The developer and IT manage the Connector.

State changes

  • The private Connector and Skill are installed and versioned in Kroy.
  • Customer entities are linked to ERP customer accounts.
  • Shipment events are recorded against the order and delivered to subscribers.

Audit outcome

Kroy records every Skill invocation — staff and customer — with the person, the agent, the Channel and the decision, including the refused update and the refused cross-customer request.

External sharing

Each customer’s Channel is external sharing, scoped to one customer. ABC Limited can revoke a guest, or a whole customer’s Channel, at any time.

Security considerations

  • ERP credentials stay in Kroy; no AI and no customer ever holds them.
  • Customer boundaries are enforced by the projection, not by the AI.
  • The Connector exposes only the actions the developer declares.

Setup requirements

  • A developer to build the private Connector against the ERP’s API or database.
  • Customer entities in KroyDB mapped to ERP accounts.
  • The Check Order Status Skill enabled for staff and offered in customer Channels.
  • Customer guests invited to their Channels.

Try this with your own systems.

Build a Connector