SlackECI M1 Agent view

How to add Slack to ECI M1

Short answer

Build a small Slack app that listens for M1 events from a read-only database feed, posts them to the right channels, offers slash commands for lookups, and sends interactive messages for approvals. Writes back to M1 should go through a supported interface or a reviewed procedure.

Not every ECI M1 shop lives in Microsoft 365. Engineering-heavy and newer manufacturers often run Slack for coordination while M1 sits in the back office on Windows. The result is a gap: planners and engineers ask questions in Slack that only M1 can answer, and a person has to go look.

A Slack app closes that gap with low ceremony. Channels become work queues for shortages, late jobs and engineering change requests, and a couple of slash commands let anyone fetch a fact without an M1 seat. The discipline is keeping it narrow: alerts people act on, commands that read, and approvals that write through a gate.

What teams use it for

Slash command for part lookup

Typing a part number returns description, revision, on-hand, on-order and primary location, read-only and limited to the user's access.

Job status command

A job number returns current operation, percent complete, scheduled finish and any open shortages.

Shortage channel

Released jobs with component shortages post to a purchasing channel, with a thread per part for the buyer's reply.

Engineering change requests

A new ECR or revision creates a message to engineering and planning with affected open jobs listed.

Customer on-time delivery digest

A weekly summary of late and at-risk shipments by customer posted to the sales channel.

ECI M1 integration surface

  • SQL Server tables and views behind M1, queried through a reporting login or replica. Names differ by version, so wrap them in views you maintain.
  • Whatever supported business-object or web-service layer your M1 release provides, which is the preferred path for any write.
  • Scheduled report exports that can drop CSV files for a watcher to pick up when database access is restricted.
  • M1 part, job, purchase order and customer entities, which are the typical lookup targets for commands.
  • User records in M1, which you map to Slack user IDs so commands and approvals respect roles.

How it works

  1. 1

    Create the Slack app

    Define bot scopes, slash commands and interactivity. Use Socket Mode if you cannot expose a public endpoint from your network.

  2. 2

    Build lookup queries as views

    Create a small, versioned set of read-only views for parts, jobs, POs and shipments that commands call.

  3. 3

    Implement slash command handlers

    Validate the Slack signature, resolve the user to an M1 user, run the query and return a compact formatted response.

  4. 4

    Add event publishing

    A scheduled reader detects new shortages, late jobs and ECRs with a watermark and posts block messages to mapped channels.

  5. 5

    Add interactive approvals

    Buttons call back with a signed payload; the service checks limits and posts the decision to M1 through the supported path.

  6. 6

    Operate it

    Rate-limit posts, log everything and alert if the reader stops advancing its watermark.

Example flows

Part lookup from the floor

Trigger: A supervisor types a slash command with a part number.

  1. Slack signs and sends the request.
  2. Service verifies the signature and maps the user.
  3. View query returns stock and open orders.
  4. A compact message replies privately to the user.

Result: The answer arrives in seconds without an M1 login or a call to the stockroom.

Shortage triage

Trigger: A released job has an uncovered component.

  1. Reader detects the shortage and finds the buyer by commodity code.
  2. Message posts to the purchasing channel with part, quantity and need date.
  3. Buyer replies in thread with a new promise date.
  4. Buyer updates the PO in M1 and clicks Resolved to close the thread.

Result: Shortages have an owner and a visible history, not a forgotten report line.

Keeping data on-prem

Keep M1 and SQL Server on your network and run the Slack app on a server inside it using Socket Mode, which makes an outbound connection to Slack and needs no inbound port. Slack itself is a cloud service, so decide which fields are safe to post; avoid costs, customer pricing and drawings in channels. For sites that cannot allow any cloud chat, the same views and handlers can drive an internal chat tool or a local web page.

Security checklist

  • Verify Slack request signatures and reject stale timestamps.
  • Resolve every command to an M1 user and apply that user's permissions to the response.
  • Use ephemeral replies for lookups so data is not left in public channels.
  • Keep the database login read-only; give write-back a separate, narrowly scoped credential.
  • Rotate bot tokens and store them in a secrets vault.

Ways to get it done

Zapier or Make with a database trigger

Effort: Days

Acceptable for basic alerts if your SQL Server is reachable by their agent, but weak for commands and approvals.

Custom Slack app built in-house

Effort: Three to six weeks

The sensible route for slash commands and approvals if you have a developer comfortable with SQL Server.

Partner build with Netray

Effort: Scoped per workflow, commonly a few weeks per phase

Fits when you also want a private, grounded assistant answering free-form questions behind the same app.

Pitfalls

  • !Pasting commercial data into public channels where contractors can see it.
  • !Slash commands that run unbounded queries and slow the production database.
  • !Missing the Slack three-second acknowledgement window and showing users timeout errors.
  • !Bot permissions broader than needed, such as reading all channel history.

Frequently asked questions

Is there an official ECI M1 Slack app?

We are not aware of one. Teams typically build a custom app or use an automation platform reading M1 data. Ask your ECI reseller whether a current integration is offered for your version.

Can Slack run without opening my firewall?

Yes. Socket Mode keeps an outbound connection from your server to Slack, so no inbound port to your network is needed. You still allow outbound HTTPS to Slack.

Should slash commands write to M1?

Keep commands read-only. Writes belong in explicit approval buttons that check the user's limits and go through a supported M1 path, with the action logged.

Which Slack plan do we need?

Most of this works on standard plans. Enterprise Grid features such as data residency or audit logs matter only if your compliance team requires them.

Can we add AI answers to the same app?

Yes, by routing a free-form question to a model that queries your views. For sensitive data, run an open-weight model locally so prompts and results never leave your network.

Want Slack working on your ECI M1?

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

Get a free assessment