Microsoft TeamsMicrosoft Dynamics NAV Agent view

How to connect Microsoft Teams to Dynamics NAV

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.

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.

What teams use it for

Purchase approvals in a channel or chat

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

Daily exception digest

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

Quality alert room

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

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

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

Credit hold release requests

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

Microsoft Dynamics NAV integration 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

  1. 1

    Decide the path

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

  2. 2

    Expose narrow NAV services

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

  3. 3

    Register the app in Entra ID

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

  4. 4

    Map Teams users to NAV users

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

  5. 5

    Send adaptive cards

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

  6. 6

    Handle the callback

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

  7. 7

    Add alert schedules

    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.

  1. A scheduled flow reads open entries through the gateway.
  2. It builds an adaptive card with vendor, amount and lines.
  3. The manager clicks Approve.
  4. The callback checks the entry is still open and calls the decision codeunit as that user.
  5. 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.

  1. The bot parses the item number or description.
  2. It calls a read-only query service.
  3. It sums available quantity by location from Item Ledger Entries.
  4. 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.

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

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

Keeping data 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 checklist

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

Ways to get it done

Power Automate with the gateway and adaptive cards

Effort: A few days per flow.

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

Custom Teams bot with Bot Framework

Effort: 3 to 6 weeks including identity mapping.

Conversational queries and richer actions.

Partner-built solution with Netray

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

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

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.

Frequently asked questions

Is there an official Teams app for Dynamics NAV?

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?

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?

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?

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?

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.

Want Microsoft Teams working on your Microsoft Dynamics NAV?

A free 30 minute assessment: we map the integration path for your version and setup, and where it should run.

Get a free assessment