# How to add Microsoft Teams to Dynamics GP

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

## Short answer

GP has no Teams connector, but it fits the Microsoft stack. Use Power Automate with an on-premises data gateway or a custom Teams bot to turn GP events into adaptive card approvals and alerts, then apply approved actions in GP through eConnect or its workflow.

## System

Microsoft Dynamics GP

## Capability

microsoft-teams

## Intro

Dynamics GP shops are often already Microsoft houses: Windows servers, SQL Server, Office and Entra ID. Teams is where managers actually spend the day, yet GP approvals still arrive as Outlook emails from GP Workflow or wait in a Business Portal queue nobody opens.

Teams can be a clean front door for approvals, exception alerts and quick lookups. The tricky part is that GP is not event driven. There is no webhook when a purchase order is entered, so you either poll SQL Server or use GP's own workflow and email hooks as the trigger.

This guide lays out both a low-code route with Power Automate and a custom bot route, and says honestly when the simpler one is enough.

## Use Cases

### Purchase order approvals in a channel

**Description:** A PO that exceeds a buyer's limit posts an adaptive card to the approver with vendor, amount and line summary, with approve and reject buttons.

### Payables batch exception alerts

**Description:** Before a check run, a nightly check flags vendors on hold, duplicate invoice numbers and invoices past terms, and posts the list to the AP channel.

### Month-end close checklist updates

**Description:** A bot posts which GL batches are unposted, which subledgers are not reconciled, and which fiscal periods remain open, based on queries against the general ledger tables.

### Inventory shortage notices for planners

**Description:** When quantity available at a site falls under a reorder level, planners receive a card with item, site, demand and open POs.

### Ask-GP command in Teams

**Description:** A bot responds to 'stock for item X' or 'open invoices for customer Y' using read-only queries and a role check.

## System Surface

GP Workflow (2.0 and later) can send approval requests by email and supports approval hierarchies for documents like purchase requisitions, POs and payables. It is a reasonable trigger source if you already use it.

The SQL Server database is the practical event source. Poll tables such as POP10100 for approval status, PM10000 for work payables batches and GL10000 for unposted journal entries, or use SQL Agent jobs and Service Broker where policy allows.

eConnect writes approved results back with business logic enforced. On approval you might update a PO status through the appropriate eConnect procedure or have the approver finish the step in GP, depending on risk appetite.

Power Automate offers a SQL Server connector that works through an on-premises data gateway. A dedicated Dynamics GP connector is not something to rely on, so check the current connector list before planning around one.

Entra ID can authenticate Teams users, but GP users are GP or Windows accounts. You need a mapping between Entra identities and GP user ids to enforce who can approve what.

## How It Works

### Decide the trigger

**Detail:** Either let GP Workflow email an approver mailbox that Power Automate watches, or poll SQL for rows in a pending approval state. Polling every few minutes is usually enough.

### Install the on-premises data gateway

**Detail:** Put it on a server that can reach SQL Server. Use a service account with read-only rights on specific views.

### Build the flow or bot

**Detail:** In Power Automate use the Teams actions for posting adaptive cards and waiting for a response. For richer logic, build a Teams bot with the Bot Framework or Teams SDK hosted in Azure or on-prem behind a proxy.

### Map identities

**Detail:** Keep a table linking Entra user principal names to GP user ids and approval limits. Check limits in the flow, not just in the card.

### Apply the decision

**Detail:** Record the response in a staging table. A small eConnect service, or the approver in GP, applies it. Keep the Teams response as audit evidence.

### Add expiry and escalation

**Detail:** If nobody responds in a set time, escalate to a delegate. Cards left hanging are the most common failure.

## Example Flows

### PO approval via adaptive card

**Trigger:** New PO reaches pending approval in GP

**Steps:**

- Scheduled flow queries a view over POP10100 and vendor data for new pending POs.
- It looks up the approver from the identity map and posts an adaptive card in Teams.
- Approver clicks approve; the flow checks their limit.
- Decision is staged; the eConnect service updates the PO, and the buyer is notified.

**Result:** Approvals finish in minutes without anyone logging into GP just to click a button.

### Pre check-run payables alert

**Trigger:** Scheduled at 7:30 on check run day

**Steps:**

- Query open payables in PM20000 for the selected batch.
- Flag held vendors, possible duplicate invoice numbers and missing remit-to details.
- Post the exceptions to the AP channel with links to each document number.

**Result:** AP clears problems before the run instead of voiding checks afterward.

## On Prem

Teams is cloud-hosted, but GP can stay completely on-prem. The data gateway makes only outbound connections to Azure, so no inbound firewall hole to SQL Server is required. For stricter environments, run a self-hosted bot that polls GP and sends only minimal metadata to Teams: document number, status and a deep link, not full line detail. If you want natural-language questions in Teams over GP data, host the language model inside your network and have the bot call it locally. Note that Teams messages themselves live in Microsoft 365 under your tenant's retention and compliance settings, so decide what is acceptable to post.

## Security

- Give the gateway and bot read-only SQL access limited to views; separate the write path.
- Enforce approval limits server-side by mapping Entra identities to GP users.
- Avoid putting bank details, tax ids or margin data into cards.
- Apply Teams data loss prevention and retention policies to channels that carry financial documents.
- Log card response, approver, timestamp and resulting GP document number.

## Options

### Power Automate with the SQL connector and gateway

**Fit:** Best for simple alerts and single-step approvals when you already license Power Automate.

**Effort:** A few days per flow

### Custom Teams bot with eConnect

**Fit:** Better for multi-line approvals, delegation and natural-language queries, and for teams with .NET skills.

**Effort:** One to two months

### Netray with a GP partner

**Fit:** When you want an assistant in Teams that answers from GP data using a private model and routes writes through approval.

**Effort:** Pilot in weeks, depends on scope

## Pitfalls

- Assuming GP emits events. It does not; plan polling intervals and idempotency so a card is not posted twice.
- Approving in Teams but forgetting to update GP, leaving documents stuck in a pending state.
- Letting the flow run under a personal account that is later disabled.
- Using shared channels for approvals so anyone can click the card; scope cards to the approver.

## Faq

### Is there an official Teams app for Dynamics GP?

**Answer:** Not one that I would count on. Microsoft's Teams integrations focus on Dynamics 365 products. For GP you normally build the link with Power Automate and the SQL connector or a custom bot, so verify the current connector catalog before you plan.

### Can approvals in Teams replace GP Workflow?

**Answer:** They can front it. Many teams keep GP Workflow for the rules and hierarchy and use Teams as the place where the approver acts. Replacing the rules entirely means you must reimplement limits and delegation in your own code.

### Do we need a data gateway?

**Answer:** If SQL Server is on-prem and you use Power Automate, yes. The gateway lets the cloud service reach your database through an outbound connection. A custom bot hosted inside your network may not need it.

### How do we stop the wrong person approving?

**Answer:** Check the clicker's Entra identity against an approver map and their limit before applying anything. Do not trust the card alone. Keep the final write behind eConnect so GP rules still apply.

### Can Teams show GP reports?

**Answer:** Yes, as a link to a SmartList export, SSRS report or Power BI report, or as a summary card. For live data, query SQL through a bot rather than attaching static files.

## Search terms

dynamics gp microsoft teams integration, teams for dynamics gp, dynamics gp approvals in teams, dynamics gp power automate teams, dynamics gp teams bot, dynamics gp adaptive cards, dynamics gp workflow teams, microsoft dynamics gp teams alerts, great plains teams approval

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