← Blog

System integration: connecting the Microsoft environment with ERP

How to connect Microsoft 365, SharePoint, and Teams with your ERP system via Power Automate, Azure Logic Apps, and APIs — with practical examples for Slovenian companies.

German Vitali··4min of reading·IT infrastructure

System integration means connecting separate business applications into a single digital backbone of the company. When Microsoft 365 (email, SharePoint, Teams) and ERP (for example Pantheon, SAP Business One, Odoo, or Business Central) are connected, employees work in a familiar environment and do not waste time manually re-entering data.

TL;DR — key points

  • Use Power Automate for simple scenarios; use Azure Logic Apps or Azure Functions for robust integrations
  • ERP should always expose stable APIs — never integrate via direct database access
  • For real-time synchronization, consider an event-driven approach (webhooks, Service Bus)
  • Establish monitoring and retry logic — integrations must be idempotent

Typical integration scenarios in Slovenian companies

  1. Invoice approval in Teams: received PDF invoices are transferred from the mailbox to the ERP, triggering an approval flow in Teams.
  2. Customer synchronization: a new customer in the CRM is automatically created in the ERP (and vice versa).
  3. SharePoint reporting: monthly ERP reports are automatically generated and published to a library.
  4. Inventory alerts: when a product falls below the minimum level, a Teams channel receives a message.

Technology choice: Power Automate vs. Logic Apps

CriterionPower AutomateAzure Logic Apps
Target userBusiness user / ITIT / developers
LicenseIncluded in M365 (limited) / per-userConsumption (pay-per-execution)
CapacityUp to ~100k executions / monthUnlimited, scaled
Versioning and CI/CDLimitedARM/Bicep, Git
Suitable forSimple processes, HR, approvalsB2B integrations, EDI, high volumes

In practice, they are often combined: you start with Power Automate for a quick prototype, then as processes mature, we migrate them to Logic Apps or Azure Functions with a proper CI/CD pipeline.

How to approach an integration project

  1. Process inventory: what is currently manually transferred between systems and how much time it takes.
  2. Data model: unified customer, product, and document identifiers across systems.
  3. API review: which APIs are available in the ERP (REST, SOAP, OData) and where they are missing.
  4. Security: OAuth 2.0, service principals in Entra ID, Key Vault for secrets.
  5. Monitoring: Application Insights, error alerts, dashboards.

Integration security

Every connector is a new attack surface. We recommend:

  • Service principals in Entra ID (never personal accounts for production integrations)
  • Managed Identity for Azure resources whenever possible
  • Key Vault for storing keys and passwords — never in the code
  • Network traffic protection via Private Endpoints where possible
  • Separate test and production environments with separate identities

Idempotency and retry

Every integration will fail at some point — systems will be unreachable, APIs overloaded, or network connections dropped. Therefore, every operation must be idempotent (re-calling does not create a duplicate) and must have retry logic with exponential backoff. In Logic Apps, you configure this declaratively; in Power Automate, through the action's "Retry Policy" settings.

Practical example: invoice approval

An incoming PDF invoice in a shared mailbox triggers the flow:

  1. Power Automate recognizes a new email with a `.pdf` attachment.
  2. AI Builder reads key data (vendor, amount, IBAN, date).
  3. The ERP checks if the vendor exists and if the amount is within contract limits.
  4. An adaptive card with Approve / Reject buttons opens in the relevant Teams channel.
  5. Upon approval, the invoice is posted to the ERP, and the PDF is archived in a SharePoint library with metadata.

For extended automation rules, see also our articles on Proactive computer maintenance and Azure for small businesses.

Measuring success

Every integration should have clear KPIs: number of processed documents, average processing time, and error rate. This data in Application Insights or Log Analytics forms the basis for continuous improvement.

Do we need a developer for Power Automate?
For basic scenarios, no — a good IT administrator can build flows themselves. However, for complex integrations with custom logic and error handling, we recommend a developer or an IT partner.
How long does a typical integration project implementation take?
Simple integrations (e.g., customer synchronization) are established in 2–4 weeks. Complex scenarios with multiple systems and approval flows usually take 2–4 months.
What happens if the ERP does not have an API?
In this case, we avoid direct database access and build a thin API layer (e.g., an Azure Function that communicates with the ERP via official mechanisms). Direct SQL access poses risks and voids warranties.
How do we prevent an integration loop from circling the same change?
Each event should carry a source system identifier. If the source is the target system, skip the flow. An alternative is a time window (e.g., "do not respond to changes newer than 10 seconds").
#system integration#erp#power automate#microsoft 365#azure