# How to add Slack to Microsoft Dynamics GP

> Source: https://netray.co/integrations/dynamics-gp-slack
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Integrations

## 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.

## System

Microsoft Dynamics GP

## Capability

slack

## Intro

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.

## Use Cases

### Slash command stock check

**Description:** 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

**Description:** 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

**Description:** Orders above a threshold or on credit hold post to a sales-ops channel with customer, amount and hold reason.

### Interactive requisition approval

**Description:** 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

**Description:** A scheduled message summarizes receipts posted, top overdue customers and unapplied cash, using receivables tables.

## System 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

### Create the Slack app

**Detail:** Define scopes for commands, chat:write and interactivity. Enable Socket Mode so the app opens an outbound WebSocket and you avoid public request URLs.

### Host the app inside the GP network

**Detail:** 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.

### Create read views

**Detail:** Build views like a stock-by-site view and an open-payables view. Grant the Slack app login select on those only.

### Map Slack users to GP roles

**Detail:** Slack user ids map to a role: viewer, buyer, approver. Slash commands check the role before querying.

### Add interactive approvals

**Detail:** Post Block Kit messages with buttons; on click, verify user and limit, write a staging row, and acknowledge in thread.

### Apply writes with eConnect

**Detail:** 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

**Steps:**

- 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

**Steps:**

- 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.

## 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

- 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.

## Options

### Slack Workflow Builder plus scheduled exports

**Fit:** Good for a daily digest posted from a CSV or email. Limited for live lookups.

**Effort:** Hours to days

### Custom Slack app with SQL views and eConnect

**Fit:** Best for slash commands, approvals and exceptions with proper authorization.

**Effort:** Four to eight weeks

### Netray with a GP partner

**Fit:** If you want conversational answers over GP data with a private model and approval before any write.

**Effort:** Pilot in weeks

## 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.

## Faq

### Is there a ready-made Slack app for Dynamics GP?

**Answer:** 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?

**Answer:** 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?

**Answer:** 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?

**Answer:** 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?

**Answer:** 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.

## Search terms

dynamics gp slack integration, slack for dynamics gp, dynamics gp slack bot, dynamics gp slash command, dynamics gp slack notifications, microsoft dynamics gp slack approvals, great plains slack, dynamics gp slack alerts

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
