# How to connect Microsoft Teams to Dynamics NAV

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

## Short answer

Connect Teams to Dynamics NAV with a bot or workflow that calls NAV web services through your network or an on-premises data gateway, then posts adaptive cards for approvals and alerts. Entra ID handles who the user is, and a mapping to NAV users decides what they may do.

## System

Microsoft Dynamics NAV

## Capability

microsoft-teams

## Intro

Companies still on NAV often have Microsoft 365 already. Staff live in Teams, but approvals and exception alerts sit in the NAV client or in email that nobody reads. The aim is to bring those two worlds together without moving the ERP.

Because NAV pre-dates Teams, there is no first-party app. What exists is a reliable set of integration points: web services, Windows or Azure AD authentication, and the Power Platform, which has had NAV-capable connectors that work through the on-premises data gateway. Whether a given connector fits your NAV build should be tested early.

The design question is less about cards and more about identity: which Teams user is which NAV user, and what can they do.

## Use Cases

### Purchase approvals in a channel or chat

**Description:** Pending Approval Entries for a Purchase Header are shown as an adaptive card with vendor, total and approve or reject actions.

### Daily exception digest

**Description:** A morning post lists late purchase lines, stockouts below Reorder Point and sales orders blocked for credit.

### Quality alert room

**Description:** When an inspection or non-conformance record is created through a custom table, a card is posted to the quality channel with a link back to the record.

### Ask NAV from chat

**Description:** A bot answers 'stock of item 1000 in location MAIN' by calling a published query and returning the Item Ledger Entry totals.

### Production order status for supervisors

**Description:** Released Production Orders behind schedule appear in the planning channel with a quantity completed against output.

### Credit hold release requests

**Description:** Finance gets a card when a customer exceeds Credit Limit, with the open Customer Ledger Entries summarized.

## System Surface

SOAP and OData web services published from the Web Services page; OData v4 and API pages depend on the NAV release, and NAV 2018 introduced a first REST API surface that is not complete.

Codeunits as web services for actions, such as releasing a document or recording an approval decision, so cards trigger business logic instead of raw table writes.

Approval Entry and the workflow engine (NAV 2016 and later) hold approvers, status and sequence; use them as the source of truth instead of inventing a parallel approval store.

Notification Entry and email notifications can be a trigger source, but a job queue codeunit that writes to an outbox is easier to control.

The Power Platform has offered a Dynamics NAV connector that uses OData through the on-premises data gateway; verify current availability and limits for your tenant.

## How It Works

### Decide the path

**Detail:** Pick between Power Automate flows (fast, low-code, gateway-based) and a Bot Framework bot (more control, conversational). Many teams use both.

### Expose narrow NAV services

**Detail:** Publish codeunits for get-pending-approvals, record-decision and a few read-only queries. Authenticate with a service account or per-user delegation.

### Register the app in Entra ID

**Detail:** Create the bot or flow identity, set permissions, and capture the user's Entra object ID and UPN for mapping.

### Map Teams users to NAV users

**Detail:** Store a mapping table from UPN to NAV User ID. Never let a card action run as the service account without recording who clicked.

### Send adaptive cards

**Detail:** Post cards with the document summary and Action.Execute or Action.Submit buttons that call back to your service.

### Handle the callback

**Detail:** Verify the user, check the Approval Entry is still open, call the NAV codeunit, then update the card to show the result.

### Add alert schedules

**Detail:** Use job queue entries or Power Automate recurrences to push digests, and keep a throttle so channels do not flood.

## Example Flows

### Approve a purchase order

**Trigger:** An Approval Entry is created for a manager.

**Steps:**

- A scheduled flow reads open entries through the gateway.
- It builds an adaptive card with vendor, amount and lines.
- The manager clicks Approve.
- The callback checks the entry is still open and calls the decision codeunit as that user.
- The card is replaced with an approved confirmation.

**Result:** The order is released and the NAV approval history shows the real approver.

### Stock lookup bot

**Trigger:** A planner asks the bot for an item.

**Steps:**

- The bot parses the item number or description.
- It calls a read-only query service.
- It sums available quantity by location from Item Ledger Entries.
- It replies with a compact card.

**Result:** No NAV client session is needed for a quick check.

### Daily late-PO digest

**Trigger:** A 7 am schedule.

**Steps:**

- Query Purchase Lines with Expected Receipt Date before today.
- Group by buyer.
- Post one card per buyer channel or chat.
- Add a button that opens the document in the web client.

**Result:** Buyers start the day with a prioritized chase list.

## On Prem

NAV on-prem is reachable from Teams only through something you choose to expose. The common patterns are the on-premises data gateway (outbound only, no inbound firewall hole), or a bot service in Azure that talks to NAV over a private link or VPN. If policy forbids any cloud hop, host the bot service inside your network and use a Teams-allowed endpoint through a hardened reverse proxy. Keep any AI interpretation of chat requests on a local model, and let Teams carry only the question and the answer, not bulk data exports.

## Security

- Validate Entra ID tokens on every bot call and map to a specific NAV user before acting.
- Give the integration service account only the permission sets for the published objects.
- Restrict channels that receive cards to people who already have NAV access to that data.
- Store no passwords in flows; use managed identities or a secret vault.
- Log card clicks with user, time and document so audits match NAV change logs.

## Options

### Power Automate with the gateway and adaptive cards

**Fit:** Simple approvals and alerts, Microsoft 365 licenses already in place.

**Effort:** A few days per flow.

### Custom Teams bot with Bot Framework

**Fit:** Conversational queries and richer actions.

**Effort:** 3 to 6 weeks including identity mapping.

### Partner-built solution with Netray

**Fit:** Approvals plus an AI assistant that answers NAV questions on a local model.

**Effort:** Scoped by use case; pilot in a few weeks.

## Pitfalls

- Running every card action as one service account destroys the audit trail.
- Cards can go stale; always recheck the Approval Entry status before applying a decision.
- Gateway outages silently stop flows; alert on failures.
- Posting full document detail to broad channels exposes pricing to the wrong audience.
- Assuming a connector works on every NAV build without testing the OData version.

## Faq

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

**Answer:** There is no first-party Teams app for NAV. You build the link with web services, Power Automate or a bot. Business Central has more native Teams integration, so some shops plan a migration while bridging with a custom setup.

### Do I need the on-premises data gateway?

**Answer:** Not always. It is the simplest outbound-only route for Power Automate. A bot hosted on your network or reached over VPN is an alternative. Choose based on whether your security team allows a gateway.

### Can approvers approve from mobile?

**Answer:** Yes. Adaptive cards work in the Teams mobile app, so a manager can approve a purchase order from a phone, as long as the callback maps them to a valid NAV user.

### Can the bot write to NAV?

**Answer:** It can, through a published codeunit, but start read-only. For writes, require an explicit button click by the mapped user and log it. Avoid letting free text trigger postings.

### How do we keep NAV data inside our network?

**Answer:** Host the bot and any AI model on-prem and use a limited reverse proxy for Teams callbacks. Messages still pass through Microsoft's service, so keep their content to what you are happy to store in Teams.

## Search terms

dynamics nav microsoft teams integration, teams for dynamics nav, navision teams approvals, dynamics nav teams bot, dynamics nav adaptive cards, dynamics nav power automate teams, nav on-premises data gateway teams, dynamics nav approval in teams, dynamics nav teams notifications, microsoft teams navision connector

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