How to add Slack to Microsoft Dynamics GP
Short answer
Build a small Slack app that reads GP data from SQL Server for alerts and slash commands, posts interactive approval messages, and applies approved changes through eConnect. Use Socket Mode so an on-prem GP server needs no inbound firewall opening.
Not every Dynamics GP customer lives in Microsoft 365. Plenty of GP-based distributors and light manufacturers run on Google Workspace and Slack, especially software-adjacent or ecommerce-heavy businesses that grew a GP back office behind them. For them, GP sits as the lone Windows island and everything else is in Slack.
The result is a familiar pattern: someone in Slack asks 'did that vendor get paid' or 'do we have stock of the 4410 housing' and a finance or ops person goes to GP, runs an inquiry and pastes the answer back. A Slack app can handle the routine ones.
This page describes a lean, honest design: read-only by default, writes by approval, and nothing exposed to the internet.
What teams use it for
Slash command stock check
Typing a command with an item number returns quantity on hand, allocated and available by site from the inventory tables, in a thread the whole team sees.
Vendor payment status
Ask for a vendor and invoice number and see whether it is open, on hold, paid, and the check or EFT date, from payables open and history tables.
Large sales order alerts
Orders above a threshold or on credit hold post to a sales-ops channel with customer, amount and hold reason.
Interactive requisition approval
Approvers get a Block Kit message with buttons. The click is verified against an approver list and written to a staging queue.
Daily cash and AR digest
A scheduled message summarizes receipts posted, top overdue customers and unapplied cash, using receivables tables.
Microsoft Dynamics GP integration surface
- SQL Server holds all GP data. Read through views over tables like IV00102 (item quantities by site), PM20000 and PM30200 (open and history payables), RM20101 (open receivables), and SOP10100 (work sales documents). Confirm names against your GP version.
- eConnect handles supported writes such as creating a vendor, a payables transaction or an inventory transaction. Use a dedicated service account and keep the surface small.
- Web Services and the newer service based REST options may exist on your version. They are optional; for read cases SQL views are simpler and faster.
- GP Workflow emails can be parsed as a trigger, but a direct SQL poll is more dependable.
- SmartList favorites and SSRS reports can be rendered to PDF or CSV and attached to a Slack message for users who want the familiar GP view.
How it works
- 1
Create the Slack app
Define scopes for commands, chat:write and interactivity. Enable Socket Mode so the app opens an outbound WebSocket and you avoid public request URLs.
- 2
Host the app inside the GP network
Run it on a small Windows or Linux VM that can reach SQL Server. Store tokens in a secrets manager or Windows DPAPI, not in a config file.
- 3
Create read views
Build views like a stock-by-site view and an open-payables view. Grant the Slack app login select on those only.
- 4
Map Slack users to GP roles
Slack user ids map to a role: viewer, buyer, approver. Slash commands check the role before querying.
- 5
Add interactive approvals
Post Block Kit messages with buttons; on click, verify user and limit, write a staging row, and acknowledge in thread.
- 6
Apply writes with eConnect
A separate worker reads the staging queue and calls eConnect. Failures post back to the thread with the GP error text.
Example flows
Planner checks stock in Slack
Trigger: Slash command with an item number
- App receives the command over Socket Mode and checks the user's role.
- It queries the stock view for all sites for that item.
- It formats a table with on hand, allocated and available.
- It adds open PO quantity and promised dates from POP lines.
Result: The planner has the answer in the channel, visible to purchasing, without GP access.
Credit-hold order escalated
Trigger: Sales order flagged on hold for credit
- A poll finds the new hold in SOP header data.
- The app posts to the credit channel with customer balance and overdue amount.
- A credit manager clicks release or keep.
- The decision is staged and the order desk completes the release in GP.
Result: Held orders get a decision the same morning instead of waiting for email.
Keeping data on-prem
Slack runs in the cloud while GP stays on a local SQL Server, and Socket Mode bridges them with outbound traffic only. Everything the app needs to compute is local; only the formatted message text goes to Slack. Treat Slack as an external destination: limit messages to what you would be comfortable having in a third-party system, mask bank and tax details, and use private channels with membership control. If you add natural-language questions, route the free text to a model hosted in your own data center so queries and answers about customers and pricing do not pass through a public AI service.
Security checklist
- Verify Slack request signatures even with Socket Mode, and rotate app tokens on a schedule.
- Use a read-only SQL login restricted to views and a distinct eConnect account for writes.
- Check Slack user to GP role mapping server-side on every command.
- Prefer private channels and avoid unmasked financial figures in public ones.
- Retain an audit trail of every command, response and write with user id and time.
Ways to get it done
Slack Workflow Builder plus scheduled exports
Effort: Hours to days
Good for a daily digest posted from a CSV or email. Limited for live lookups.
Custom Slack app with SQL views and eConnect
Effort: Four to eight weeks
Best for slash commands, approvals and exceptions with proper authorization.
Netray with a GP partner
Effort: Pilot in weeks
If you want conversational answers over GP data with a private model and approval before any write.
Pitfalls
- !Posting full customer balances in a public channel because the app has a broad token.
- !Letting slash commands run arbitrary SQL. Expose a fixed set of parameterized queries.
- !Treating a button click as proof of authority; always check the approver map.
- !Forgetting multi-company: the command must know which GP company database to query.
Frequently asked questions
Is there a ready-made Slack app for Dynamics GP?
I am not aware of a maintained official one. Some integration platforms can move GP data into Slack, but expect to configure queries yourself. A small custom app is often cleaner because you control which tables and which users are exposed.
Does the app need a public URL?
Not if you use Socket Mode, where your app connects out to Slack over a WebSocket. Marketplace distribution requires HTTP endpoints, but an internal app for your own workspace does not.
Can Slack users update GP?
They can trigger updates, but only through a controlled path. The recommended pattern is to stage the request and let eConnect apply it with your service account, so GP validation and audit still happen.
Will this work with a very old GP version?
Reading SQL views works across many versions because the core table layout is stable. eConnect versions are tied to the GP release, so install the matching one. Check Microsoft's support lifecycle for your version.
What about Slack versus Teams?
Choose by where people already work. Teams ties easily to Entra ID and Power Automate. Slack suits Google-centric teams. The GP-side design, SQL views plus eConnect, is the same either way.
Want Slack working on your Microsoft Dynamics GP?
A free 30 minute assessment: we map the integration path for your version and setup, and where it should run.
Get a free assessment