SlackSage X3 Agent view

How to add Slack to Sage X3

Short answer

Create a Slack app with an incoming events endpoint, slash commands and interactive buttons, then bridge it to X3 through web services and workflow event hooks. The Slack side is simple; the work is limiting what a Slack user can read or change in X3.

Sage X3 shops that use Slack tend to be tech-leaning distributors, light manufacturers or companies that grew through acquisition and mixed tooling. Operations, sales support and finance chat in Slack, while X3 notices land in email or sit unseen in Syracuse.

A Slack integration is not about replacing X3 screens. It is about pulling a few high-signal events into channels (stock-outs, late shipments, blocked invoices) and letting authorised people do a few quick actions without switching windows.

The honest warning: Slack is a general chat tool with broad channel membership, so design what you post as if the channel will be wider than you expect.

What teams use it for

Backorder and stock-out alerts

Post to a sales-ops channel when allocation fails on a sales order line, with item, site and the next expected receipt from open purchase orders.

Slash command for item availability

/x3 stock ITEM returns on-hand, allocated and on-order by site, read from stock tables through a read-only service.

Late shipment digest

A daily scheduled message lists sales deliveries past their requested ship date, grouped by customer owner.

Expense or purchase request approvals

Interactive messages with Approve and Reject buttons for requests within a manager's limit.

Quality hold notifications

When lots are put on quality hold, notify the QA channel with lot, item and location so nothing ships by mistake.

Sage X3 integration surface

  • Web services: the Syracuse web services pool (SOAP, CAdxWebServiceXmlCC) and REST/SData endpoints are the clean way to read and write; published object names depend on your configuration.
  • Events: X3 workflow rules and alerts, or an L4G subprogram on a document trigger, can call your HTTP endpoint or write to a staging table.
  • Scheduled batch: the X3 batch server can run a query or report on a schedule and write a file or call an endpoint, ideal for daily digests.
  • Direct DB reads: STOCK, SORDERQ, PORDERQ and ITMMASTER tables are readable on SQL Server or Oracle; a read-only reporting replica avoids load on production.
  • Identity: X3 users are separate from Slack users, so you need your own mapping table.

How it works

  1. 1

    Create the Slack app

    Add a bot token, slash command, interactivity request URL and the minimum scopes. Install it to the workspace.

  2. 2

    Stand up the bridge service

    A small HTTPS service verifies Slack signing secrets, parses commands and calls X3 services.

  3. 3

    Define read-only services first

    Publish item availability and order status services with a restricted X3 profile before any write action exists.

  4. 4

    Hook X3 events

    Use workflow rules or batch jobs to push events to the bridge, which formats and posts messages to the right channel.

  5. 5

    Add interactive approvals

    Buttons carry the document key and a signed token. The bridge checks the Slack user against the mapping table and X3 limits before calling X3.

  6. 6

    Review and tune noise

    After two weeks, cut alerts nobody reacts to. Channel noise kills adoption faster than missing features.

Example flows

Item availability slash command

Trigger: A rep types /x3 stock ABC-100.

  1. Bridge verifies the Slack signature and maps the user.
  2. It calls a read-only stock service by item and site.
  3. It replies ephemerally with on-hand, allocated, and next PO receipt.

Result: A rep answers a customer in seconds without logging into X3, and nobody else sees the reply.

Quality hold alert

Trigger: A lot status changes to a hold status in X3.

  1. Event or poll detects the status change.
  2. Bridge posts lot, item and location to the QA channel.
  3. QA acknowledges with a button, which logs a comment to the lot record via service.

Result: Warehouse and QA see the same hold at once, lowering the chance of shipping held stock.

Keeping data on-prem

Slack is a cloud service, so with on-prem X3 the bridge becomes the boundary. Run it in a DMZ with outbound HTTPS to Slack and an inbound endpoint for Slack requests, and keep X3 reachable only from the bridge. Share identifiers and summaries in messages, not full price lists or customer contract terms. If you add natural-language questions, answer them with a locally hosted open-weight model grounded on X3 data, so the question text and the data never leave your network.

Security checklist

  • Verify the Slack signing secret on every request and reject stale timestamps.
  • Map Slack user IDs to X3 users and enforce the X3 function profile for each action.
  • Use ephemeral responses for anything commercially sensitive.
  • Never paste X3 credentials or tokens into Slack configuration screens shared with others.
  • Restrict bot membership to named channels and review the app's scopes quarterly.

Ways to get it done

Zapier or a similar tool for email-to-Slack

Effort: Hours; no interactivity and no write-back.

Alerts only, from X3 notification mail.

In-house Slack app plus X3 services

Effort: Typically 2 to 5 weeks.

Teams with a developer comfortable with Slack Bolt and X3 web service publishing.

Partner build such as Netray with an X3 partner

Effort: Scoped by flow; read-only first.

Governed lookups, approvals and AI Q&A over X3.

Pitfalls

  • !Slack's three-second response limit means slow X3 queries need an immediate acknowledgement and a delayed follow-up.
  • !Alert floods train people to mute the channel.
  • !Unmapped Slack users clicking approve buttons is a common hole; deny by default.
  • !Posting customer pricing into public channels creates a data-handling problem you will not see until later.

Frequently asked questions

Is there an official Sage X3 Slack app?

I am not aware of a standard Sage-supported Slack app for X3 in the versions most sites run. Check your reseller and marketplace first, otherwise build a small bridge on X3 web services.

Can Slack users change X3 data?

They can if you publish write services and enforce identity mapping. Start read-only, add narrow actions like approve or add comment, and keep every write logged in X3.

How do I trigger Slack messages from X3 events?

Use workflow rules, an L4G subprogram on the document event, or a scheduled batch query. The trigger calls your bridge endpoint, which formats and posts the message.

Does it work with on-premises X3?

Yes. The bridge sits in a DMZ with outbound access to Slack. X3 stays internal and is called only by the bridge.

Slack or Teams for X3?

Use the one your company already lives in. Teams has deeper Entra ID and Microsoft 365 integration; Slack is quicker to prototype. The X3 side of the work is nearly identical.

Want Slack working on your Sage X3?

A free 30 minute assessment: we map the integration path for your version and setup, and where it should run.

Get a free assessment