SlackEpicor Kinetic Agent view

How to add Slack to Epicor Kinetic

Short answer

Build a Slack app that receives Kinetic events from BPM or Data Directives and posts alerts into channels, with slash commands for lookups and interactive buttons for approvals. The app calls the Kinetic REST API and BAQs under a scoped integration user.

Slack tends to be the home of engineering-led, startup-origin or tech-forward manufacturers, and those teams often run Kinetic as the system of record while coordination happens in channels. The gap is that someone has to copy order numbers from Slack into Kinetic and back.

A Slack integration can close that gap in two directions. Kinetic pushes exceptions to the right channel, and people pull answers from Kinetic with a slash command such as a part lookup, without opening the client and navigating to the right screen.

Slack has fewer enterprise identity hooks than Teams in the Microsoft world, so the main design work is mapping Slack users to Kinetic users and deciding which actions are read-only and which can write.

What teams use it for

Part and stock lookup

A slash command returns on-hand, allocated and on-order quantities for a part by site and warehouse, using a BAQ.

Order status for sales

Reps type an order or customer PO number and get status, ship dates and open lines back in the thread.

Late job alerts

Post jobs that miss a scheduled operation date into a production channel with job number, part and next operation.

Receiving heads-up

Tell the line a critical part was received to stock and which jobs it unblocks.

NCR and CAPA kickoff

When a nonconformance is logged, open a channel or thread with the owner and quality lead.

Purchasing approvals

Interactive buttons for requisition approval with threshold-based routing.

Epicor Kinetic integration surface

  • Kinetic REST API, both v1 service endpoints and v2, with authentication choices that depend on version and whether you are cloud or on-prem.
  • BAQs, which are the safest read path for slash commands because they encapsulate joins, security and filtering inside Kinetic.
  • BPM and Data Directives for event emission, plus Epicor Functions to host the outbound call logic.
  • Epicor Data Discovery and dashboards as an alternative for non-interactive summaries pushed on a schedule.
  • Kinetic security groups and company/site context, which must be carried into every query so Slack answers do not mix companies.

How it works

  1. 1

    Create the Slack app

    Define bot scopes, slash commands, interactivity and event subscriptions; install in your workspace with admin approval.

  2. 2

    Host the service

    A small web service receives Slack requests, verifies the signing secret and responds within Slack's time limit, deferring slow Kinetic calls.

  3. 3

    Map users

    Link Slack member ids to Kinetic user ids and default company/site. Unmapped users get read-only public answers or nothing.

  4. 4

    Wire lookups to BAQs

    Each slash command maps to a named, parameterized BAQ with a narrow output. Do not build dynamic SQL from user text.

  5. 5

    Send alerts from Kinetic

    Post-processing directives call an Epicor Function that enqueues events; the service formats Block Kit messages and routes by rule.

  6. 6

    Add interactive writes

    Buttons carry a signed payload; the service rechecks state, authority and idempotency before calling the Kinetic update endpoint.

  7. 7

    Log and rate-limit

    Record every command and action and throttle to protect the Kinetic server during busy shifts.

Example flows

Stock check by slash command

Trigger: A planner types a part lookup command in a channel.

  1. Slack posts the command to the service, which acknowledges immediately.
  2. The service maps the user, runs the part availability BAQ for their site and formats a message.
  3. The reply shows on-hand, allocated, on-order and next receipt date.
  4. A button offers 'Show open demand' which runs a second BAQ.

Result: Common questions get answered in seconds without anyone opening Kinetic.

Late job escalation

Trigger: A scheduled BAQ finds jobs past their start-by date on a constraint work center.

  1. The service groups results by work center and supervisor.
  2. Each supervisor's channel gets a digest with job, part and hours remaining.
  3. A supervisor taps 'Need material' which creates a note and pings purchasing.
  4. The note is stored against the job for the next review.

Result: Production issues surface with owners in the same place the conversation happens.

Keeping data on-prem

Slack is a cloud service, so on-prem Kinetic needs a relay: the service sits inside your network, makes outbound connections to Slack (Socket Mode is one option that avoids exposing an inbound port) and calls Kinetic internally. Message text then leaves your network, so restrict content to identifiers and status. If you add a natural-language assistant to Slack, use an open-weight model served locally and pass only the retrieved fields needed to answer, never raw tables, keeping controlled data out of any external model.

Security checklist

  • Verify Slack request signatures and timestamps on every call.
  • Use read-only BAQs for lookups; give write actions a separate narrower integration role.
  • Keep costs, margins and customer pricing out of public channels; restrict commands by channel and user.
  • Pin the app to your workspace and review scopes; avoid broad history-reading scopes you do not need.
  • Store tokens in a secrets manager and audit installs after staff changes.

Ways to get it done

No-code automation platform with HTTP calls to Kinetic

Effort: Days; watch task pricing and credential handling.

Alerts and a handful of lookups with low volume.

Custom Slack app with Block Kit and BAQ-backed commands

Effort: Two to four weeks for a first set of commands.

Teams wanting control over security, mapping and write-back.

Partner build via Netray with an Epicor consultant

Effort: Several weeks, scoped by number of tools and approval paths.

Slack assistant answering free-form questions with local models and approvals.

Pitfalls

  • !Slack expects a response within about three seconds; answer fast and post the real result afterwards.
  • !Channel membership is not authorization. Check the mapped Kinetic user for each command.
  • !Multi-company Kinetic setups need explicit company context or users will see the wrong plant's data.
  • !Unbounded lookups such as 'all orders' can hammer the server; cap rows and paginate.
  • !Slack retries on timeouts, so write actions need idempotency keys or you will double-post.

Frequently asked questions

Is there an official Slack app for Epicor Kinetic?

I would not assume one. Marketplace offerings and partner tools change, so ask your Epicor partner. The dependable approach is a custom or low-code Slack app that calls the Kinetic REST API and BAQs, and that works regardless of version.

Which Kinetic API should a slash command use?

Prefer a dedicated BAQ with parameters, called through the REST API. It keeps joins and filters inside Kinetic, returns only needed fields and is easy for an admin to adjust without redeploying the Slack service.

Can Slack users approve POs?

Yes, if you map each Slack user to a Kinetic user and verify their authority before writing. Treat the button as a request. The Kinetic update should be rejected if the user lacks approval rights or the document changed.

Does it work with on-prem Kinetic?

Yes. Run the integration service inside your network and let it connect outward to Slack, for example with Socket Mode, so you do not open inbound firewall ports to the ERP environment.

Should an AI model answer questions in Slack?

Only with guardrails. Give the model a small set of read-only tools such as the BAQs above, show the source for each answer, and prefer a locally hosted model if the data is regulated or commercially sensitive.

Want Slack working on your Epicor Kinetic?

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

Get a free assessment