How to add Slack to Epicor Vantage and Epicor 9
Short answer
Build a small Slack app that sits beside Epicor. BPM directives or Service Connect push alerts to Slack, slash commands run read-only queries, and interactive buttons call the Epicor web services so approvals happen without opening the client.
Slack is common in engineering-led and startup-style manufacturers that kept an older Epicor install because it works. The ERP holds the truth, but nobody wants to open the client just to check an order or a part.
A Slack integration is mostly a read and notify layer. People ask for a job status or an on-hand figure with a slash command, and exceptions land in the right channel with the record key attached.
Writes are possible but should be the exception. The older Epicor platform has fewer guard rails around bulk changes, so keep Slack actions narrow and approved.
What teams use it for
Slash command for part availability
Type a part number and get on-hand, allocated and on-order quantities from a read-only query, with the warehouse breakdown.
Job status lookup
Ask for a job number and see the current operation, scheduled finish and any open material shortages.
Machine-down and quality channels
Post scrap or nonconformance entries to the channel for the line concerned, tagged by work centre.
Expedite request threads
Planners ask purchasing to expedite a PO in a thread, with a button that logs the request on the PO.
End of shift summary
Post completed quantities and open holds per work centre at shift change from a scheduled query.
Epicor Vantage / Epicor 9 integration surface
- Service Connect workflows for scheduled digests and outbound HTTP posts to Slack or your service.
- BPM directives on business object updates for near-real-time alerts such as scrap reporting or order holds. Object names vary by release.
- Business Activity Queries and read-only SQL views (ODBC over Progress OpenEdge, or SQL Server on some installs) behind slash command lookups.
- Business object web services for the small set of actions you allow, such as adding a note or releasing a hold.
- Epicor user and security group definitions, which you tie to Slack user IDs for authorisation.
How it works
- 1
Create the Slack app
Define slash commands, interactivity and event subscriptions, and install it to the workspace with the narrowest scopes.
- 2
Host a request endpoint
Slack requires a public HTTPS endpoint with signature verification and a fast response. Put it in a DMZ, or use socket mode to avoid inbound exposure.
- 3
Write the query layer
Build parameterised read-only queries for part, job and PO lookups. Never build SQL from raw command text.
- 4
Map Slack users to Epicor
Keep a table linking Slack IDs to Epicor users so sensitive queries and actions respect Epicor rights.
- 5
Wire alerts
Emit events from BPM or Service Connect, route them to channels by plant, work centre or part family, and add dedupe so one event is not posted ten times.
- 6
Add guarded actions
Interactive buttons call the Epicor services after a limit check, and the original message is updated with who did what.
Example flows
Part availability in one command
Trigger: A planner types a part number into a slash command.
- Service verifies the Slack signature and the user mapping.
- A parameterised query returns on-hand, allocations and open POs.
- A formatted reply shows quantities by warehouse and the next receipt date.
Result: Answers arrive in seconds with no Epicor client login.
Scrap alert with follow-up
Trigger: A scrap transaction is posted against a job operation.
- Event includes job, operation, quantity and reason code.
- Service posts to the channel for that work centre.
- A supervisor taps a button to log a quality review note on the job.
Result: Scrap is visible to the right people the same hour and review notes are recorded in Epicor.
Keeping data on-prem
Slack is a hosted service, so anything posted to a channel is stored by Slack. Limit posts to identifiers and summary figures and avoid pricing and customer detail in broad channels. Run the slash command service, queries and any language model inside your network, and use Slack socket mode so you do not open an inbound port to the internet. For natural-language questions such as which jobs are late and why, route them to an open-weight model on your own hardware that writes a read-only query, then returns the result to Slack along with the query that ran.
Security checklist
- Verify Slack request signatures and reject stale timestamps.
- Use parameterised read-only queries and a read-only database account for lookups.
- Keep sensitive channels private and match channel membership to data access.
- Require a mapped Epicor identity for any action that writes.
- Log every command and action with user, time and parameters.
Ways to get it done
Build a Slack app in-house on top of Service Connect and SQL views
Effort: About 2 to 5 weeks for a handful of commands and alerts.
You have developers comfortable with Epicor data and want a narrow set of commands.
Use an automation platform such as a no-code tool
Effort: A few days to 2 weeks, with limits on interactivity and on-prem reach.
Alert-only needs with a few triggers.
Partner build with Netray
Effort: Pilot scoped around two or three questions and one alert.
You want natural-language questions with an on-prem model and an audit trail.
Pitfalls
- !Slack requires a reply within about three seconds, so slow Progress queries need an acknowledgement then a follow-up message.
- !Alert storms from a noisy BPM directive will train people to mute the channel.
- !Sharing everything in a public channel can expose pricing or customer data.
- !Direct table reads on older schemas can miss business rules that the business objects apply.
Frequently asked questions
Is there a native Slack connector for Epicor 9?
Not from Epicor for these versions. You build a Slack app that reads through queries and web services, and pushes events from BPM directives or Service Connect. Some third-party tools exist but check version support first.
Can Slack users approve things in Epicor?
Yes, using interactive buttons that call the Epicor business object services after verifying the user and their limit. Keep the set of actions small, and log the approver for every change.
How do I avoid opening a firewall port for Slack?
Use Slack socket mode, where your service opens an outbound connection to Slack. Combined with an internal path to Epicor, this avoids a public inbound endpoint for commands and interactivity.
Does the data leave my network?
Whatever you post to Slack is stored by Slack. Keep posts to identifiers and summaries, and run lookups, queries and any language model on your own servers so detailed ERP data stays inside.
Can I ask Slack questions in plain English?
Yes. A bot can pass the question to a model that generates a read-only query, run it with a restricted account, and return the answer with the query shown. Test accuracy on real questions before releasing it widely.
More for Epicor Vantage / Epicor 9
Want Slack working on your Epicor Vantage / Epicor 9?
A free 30 minute assessment: we map the integration path for your version and setup, and where it should run.
Get a free assessment