Microsoft TeamsInfor M3 Agent view

How to add Microsoft Teams to Infor M3

Short answer

Connect Infor M3 to Microsoft Teams with a Teams bot or Power Automate flow that calls M3 through the ION API gateway or an on-prem API endpoint. M3 events or ION workflow steps post adaptive cards for approvals and alerts, and button responses call back into M3 under the approver's identity. Entra ID handles sign-in; the decision is how the Teams user maps to an M3 user.

Many M3 customers are Microsoft 365 shops. Employees live in Teams, while M3 approvals, exceptions and alerts arrive as emails, ION notifications or tasks that nobody opens until the end of the day. Purchase requisitions wait, quality holds go unseen, and planners ask each other in chat for numbers that sit in M3.

Teams is a good fit for lightweight actions with a clear owner: approve this PO, acknowledge this delay, look up this item. It is a poor fit for data entry of complex transactions. The integration should therefore push cards that carry only what is needed to decide, and send people to the M3 H5 client or a mashup for the rest.

Infor OS and ION give you a reasonable event backbone, and Teams brings identity and a consistent UI. The glue is a service that translates between them and keeps user mapping and auditing honest.

What teams use it for

Purchase order and requisition approvals

Post an adaptive card with supplier, total, requester and budget note, with Approve and Reject, and drive the M3 approval or ION Workflow step from the response.

Production and quality alerts

Notify a plant channel when a manufacturing order is late, a lot is placed on quality hold, or a work center reports downtime stored in M3.

Planner exception triage

Send daily or event-based cards for MRP action messages: release, reschedule or cancel, with a link into the relevant M3 panel.

Item and stock lookup in chat

A bot command like 'stock ITEM123 warehouse 100' returns on-hand and allocated quantities through a read-only item balance API.

Customer order escalations

When a priority customer order is blocked by credit hold or missing stock, create a Teams thread with sales, credit and planning and the order facts.

Month-end close reminders

Post task reminders to the finance channel with status counts from open general ledger batches or pending approvals.

Infor M3 integration surface

  • ION API gateway with OAuth 2.0 service accounts (Infor OS) for calling M3 API programs (MI programs) from cloud-hosted services such as Azure Functions or Logic Apps.
  • M3 API (MI programs) for reads and writes: for example PPS200MI-style purchase order transactions and MMS-series item and balance programs. Names and fields vary by version; confirm via the API browser.
  • ION Workflow and ION Desk: approval workflows and notifications that can call out to HTTP endpoints or send BODs on state changes.
  • ION Connect messaging: BODs and the ION event stream let you react to changes without polling; ION can also call a webhook for selected events.
  • On-prem option: M3 API exposed on an internal host and reached from Azure through the Power Platform on-premises data gateway or a self-hosted bot behind your reverse proxy.

How it works

  1. 1

    Decide bot, flow or both

    Power Automate with a Teams connector is fastest for simple approvals. A Bot Framework app is better when you need commands, conversation state and rich adaptive cards. Many teams start with flows and graduate.

  2. 2

    Register an Entra ID app

    Create the Teams app registration, decide single-tenant or multi-tenant, and define what the bot can read. Keep Graph permissions minimal; you rarely need more than posting to chats and channels.

  3. 3

    Map Teams users to M3 users

    Match on email or UPN to the M3 user or approver in your directory table. Approvals must be recorded under the approver's identity or an audited delegation, not a shared service user.

  4. 4

    Connect to M3 securely

    Use an ION API service account for read operations and per-user or delegated authorization for decisions. For on-prem, put a gateway between Azure and M3 and restrict it to the specific API programs.

  5. 5

    Design the cards

    Show only decision data: supplier, amount, currency, lines count, requester, due date and a deep link into M3 H5. Use Action.Execute so the response can be refreshed once someone else has already decided.

  6. 6

    Handle responses and idempotency

    Check that the item is still pending in M3 before applying the decision, write through the API, and update the card with the result. Log card id, user and M3 transaction.

Example flows

Purchase order approval card

Trigger: A PO reaches the approval step and an ION event arrives.

  1. The service reads PO header and lines and resolves the approver.
  2. It posts an adaptive card in a personal chat with totals and a link to the PO.
  3. On Approve, it re-reads the PO status to confirm it is still pending.
  4. It calls the approval API under the approver's mapped identity and updates the card to show who approved and when.

Result: Approvals complete within hours instead of days, and the audit trail shows the card, the user and the M3 transaction.

Late manufacturing order alert

Trigger: A scheduled query finds manufacturing orders past their finish date with open material shortages.

  1. The service groups orders by planner and facility.
  2. A summary card is posted to the plant channel with the top few orders.
  3. Planners use a button to acknowledge or assign an owner, stored in the middleware.

Result: Shortage firefighting moves out of email threads into one visible place.

Stock lookup command

Trigger: A user types 'stock ITEM123' in the M3 Helper bot.

  1. The bot resolves the Teams user and checks they may view inventory.
  2. It calls a read-only balance API for the user's facility.
  3. It replies with on-hand, allocated and available, plus a link to the item in M3.

Result: Quick answers without opening the M3 client.

Keeping data on-prem

For on-prem M3, keep the bot service on a server inside your network and use the Teams outbound-connection model: Teams reaches your bot through a published HTTPS endpoint, while the bot calls M3 locally. If you cannot publish an endpoint, Power Automate with the on-premises data gateway can call a local API. Any natural-language layer on top, for example a bot that answers free-text questions, can run on a local open-weight model so M3 data is never sent to a public model API. Note that the card itself will be stored in Microsoft 365, so decide what data belongs in it.

Security checklist

  • Never put sensitive data such as costs or pricing in channels with broad membership; prefer personal chats for approvals.
  • Validate every Teams request using the Bot Framework token and tenant ID, and reject calls from unexpected tenants.
  • Record approver identity per decision and use delegated or per-user authorization, not a shared super-user.
  • Scope the ION API client to the specific MI programs and a single company, and rotate secrets on a schedule.
  • Use conditional access policies on the Teams app and block external guests from M3-related channels.

Ways to get it done

Power Automate flows with ION workflow notifications

Effort: Days to a couple of weeks.

Simple approvals and alerts where licensing is already in place.

Custom Teams bot on Azure with ION API

Effort: One to two months.

Commands, richer cards and multi-step approvals with proper error handling.

Partner build such as Netray

Effort: A few weeks for a scoped pilot.

On-prem M3, tight data rules or an AI assistant inside Teams that answers from live M3 data with human approval on writes.

Pitfalls

  • !Posting everything to one noisy channel until people mute it; route by role and threshold.
  • !Letting an approval card act on stale data, for instance after the PO was changed by a buyer.
  • !Using a single service account for all decisions, which breaks segregation of duties.
  • !Ignoring multi-company and division context, so cards show the wrong entity.
  • !Over-polling M3 APIs instead of using ION events, adding load during peak hours.

Frequently asked questions

Is there an official Infor M3 app for Teams?

Infor has offered collaboration features through Infor OS, and packaged connectors may exist for your version, but I would not assume a full-featured Teams approval experience out of the box. Check what is available in your tenant and marketplace before building.

Can approvals in Teams update M3 directly?

Yes, by calling the relevant M3 API or advancing the ION Workflow step. Re-read the item to confirm it is still pending, use the approver's mapped identity, and log the decision. Do not let the card alone be the system of record.

Does this work with on-prem M3?

Yes. Host the bot inside your network or use the Power Platform on-premises data gateway to reach a local API. Teams only needs to reach your bot endpoint, and you can restrict that with reverse-proxy rules.

How do we sign users in?

Teams provides Entra ID identity. Map the UPN to the M3 user or approver through a directory table. If M3 uses Infor OS identity federated with Entra ID, the mapping is easier because both share the same source of truth.

Can we add AI to this?

Yes, for example summarising a PO's history or answering stock questions in natural language. Keep the AI read-only, show the query it ran, and keep writes behind explicit approval. A local model is an option if data cannot leave your environment.

Want Microsoft Teams working on your Infor M3?

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

Get a free assessment