SlackSage 100 Agent view

How to add Slack to Sage 100

Short answer

Sage 100 has no built-in Slack support. A small Slack app on a server near Sage can read orders and stock over ODBC or SQL, answer slash commands, post alerts, and send interactive approvals that are applied through the Business Object Interface once a person confirms.

Slack tends to show up in Sage 100 companies through the sales, ecommerce and operations teams rather than accounting. They want quick answers: is this item in stock, did that order ship, who put this on hold. Today that means interrupting someone with Sage open.

A Slack app turns those interruptions into a command in a channel. Because Slack handles identity, threads and mobile notifications well, it works as a lightweight front door to a system whose own interface is a Windows desktop client.

The design question is how much to let Slack do. Reads are easy and valuable. Writes into a classic ERP need a deliberate gate, which Slack's interactive messages can provide.

What teams use it for

Slash command stock check

Typing /stock ABC-100 returns on-hand, committed and on-order by warehouse, from the item warehouse data, visible only to the requester.

Order lookup for support

/order 004512 returns header status, customer, ship date and lines so support can answer without Sage access.

Daily exceptions digest

Each morning, a channel gets late shipments, orders on hold and POs past due, with links to a read-only report view.

Backorder release notices

When a receipt satisfies backorders, the account owner is notified in a thread tied to the customer's channel.

Approval of price overrides

A rep asks for a price exception; a manager approves with a button, and the change is staged for entry through BOI.

Sage 100 integration surface

  • ODBC driver and SQL: read-only lookups against tables such as CI_Item, IM_ItemWarehouse, SO_SalesOrderHeader and AR_Customer. Table and field names vary by module and release; verify in your data dictionary.
  • Business Object Interface (COM): the controlled way to create or update records. Needs a Windows host with the Sage client components.
  • Sage 100 Premium on SQL Server: lets you use read replicas or reporting views so Slack queries do not affect data entry.
  • Business Alerts and Visual Integrator: event and scheduled export triggers, helpful for pushing alerts without polling.
  • Optionally, Sage Intelligence or Crystal reports as the source for digest content if your teams already trust those numbers.

How it works

  1. 1

    Create the Slack app

    Define slash commands, interactivity and the bot scopes you need. Use Socket Mode if you do not want to expose an inbound URL from the Sage network.

  2. 2

    Build a lookup layer over Sage

    Write a few parameterised queries or views, for item, order and customer. Never accept raw SQL from Slack.

  3. 3

    Map Slack users to Sage users

    Match by email and decide roles: who may see cost, who may see customer balances, who may request changes.

  4. 4

    Format responses as Block Kit

    Return compact tables and a link to the full record. Use ephemeral responses for sensitive data.

  5. 5

    Add interactive approvals

    Send a message with Approve and Reject; the callback carries a request ID, checks the approver and state, and queues the BOI action.

  6. 6

    Monitor and rate-limit

    Log commands, cap query frequency, and alert on failed ODBC connections so the bot never just goes quiet.

Example flows

Stock check from the floor

Trigger: A rep types /stock WIDGET-7 in a sales channel.

  1. The app checks the Slack user is mapped and allowed.
  2. It queries on-hand, committed and on-order by warehouse.
  3. It replies privately with the numbers and the next expected receipt.

Result: The rep quotes a ship date in seconds without calling purchasing.

Price override approval

Trigger: A rep submits an exception through a Slack workflow form.

  1. The app posts the order, list price and requested price to the sales manager.
  2. The manager taps Approve with a reason.
  3. The request is staged and a clerk or BOI job applies the line price.
  4. The thread records who approved.

Result: Exceptions are approved quickly and leave a trail beyond a chat message.

Keeping data on-prem

If Sage 100 stays on your own server, run the Slack app there in Socket Mode so the connection is outbound only. Slack will see the text you post, so choose what appears in channels: item numbers and statuses are usually fine, customer financials usually are not. For a fully private assistant that answers free-form questions, run an open-weight model on your own hardware and have it generate queries against approved views, then return results to Slack as short summaries. Keep the full result sets on your network and link to an internal page instead.

Security checklist

  • Use ephemeral messages for anything sensitive and keep channels free of cost, margin and balance data.
  • Verify Slack request signatures and handle token rotation.
  • Limit the bot's Sage login to read-only for lookups, with BOI actions run under a separate narrow account.
  • Map approvers by verified email and keep an allow list in your own store.
  • Retain command logs for audit and for spotting scraping attempts.

Ways to get it done

Slack workflow builder plus scheduled exports

Effort: Days.

Digest-style alerts using Visual Integrator output and no interactive lookups.

Custom Slack app on your own host

Effort: Two to five weeks.

Teams wanting slash commands and approvals, with a developer able to handle COM interop.

Partner implementation including an on-prem AI layer

Effort: Several weeks for a scoped pilot.

You want natural-language questions with guardrails and no cloud AI exposure.

Pitfalls

  • !Slash commands that time out because the ODBC query is slow; Slack expects an acknowledgement within a few seconds, so reply fast and follow up.
  • !Exposing customer pricing in public channels.
  • !Mapping Slack users by display name instead of verified email.
  • !Running Business Object Interface calls from an unattended session with a license that is already in use, causing seat conflicts.
  • !No fallback when Sage is in a backup or period-close state and tables are locked.

Frequently asked questions

Is there a Sage 100 Slack integration out of the box?

Not in the standard product. Third-party tools may exist for your release, so check the Sage ecosystem, but the common approach is a custom or partner-built Slack app that reads Sage via ODBC or SQL and writes through the Business Object Interface.

Can Slack update orders in Sage 100?

It can trigger updates, but best practice is to stage and confirm. A manager's button tap queues the change, and a BOI call applies it after checks, so a mistaken click cannot silently alter an order.

Does the Sage server have to be reachable from Slack?

Not if you use Socket Mode, which opens an outbound connection from your host. That keeps the Sage network closed to inbound traffic from the internet.

Will lookups slow down Sage for users?

They can on Standard or Advanced, where the data is file-based. Cache common lookups, restrict heavy queries, and on Premium consider querying a SQL Server replica or reporting view.

Can an AI answer free-form questions in Slack?

Yes, if it is limited to approved views and the asker's permissions. Run the model privately if you do not want ERP data sent to a hosted AI service.

Want Slack working on your Sage 100?

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

Get a free assessment