Most ERP automation content is written by ERP vendors. It covers how to use automation features inside the ERP: workflow approvals, built-in alerts, native report scheduling.

That is useful. But it is not what most mid-market manufacturers are actually stuck on.

What they are stuck on is the gap between the ERP and everything else: the 3PL that sends shipment updates via EDI, the WMS that runs on a different database, the Shopify storefront that needs inventory synced, the Retool dashboard that ops supervisors want to see real-time data in.

Those connections are not built into the ERP. They require an integration layer. And building that layer the right way, without touching your ERP configuration or risking your existing data, is what this post covers.

The Core Principle: Read Often, Write Rarely

The most important design decision in ERP integration is this: n8n (or any integration tool) should read from your ERP frequently and write back to it only on confirmed, specific events.

Reading is low-risk. A GET call to the NetSuite REST API that retrieves current inventory levels does not change anything. It cannot break your ERP. It can be retried if it fails.

Writing is where mistakes happen. A POST call that creates a purchase order, updates a sales order status, or marks a goods receipt as complete has real consequences if it fires incorrectly. That is why writes should be gated: only triggered by a confirmed event, only with validated data, and always with a logging step that records what was written and when.

This principle shapes every integration described in this post.

Four Connections Worth Building

These are the four ERP integration points that deliver the highest ROI for mid-market manufacturers, in rough order of complexity:

1. ERP → Shopify: Inventory Sync

The problem: Inventory levels in the ERP are the source of truth. Shopify shows customers what is available. When those two are out of sync, overselling happens or products go offline unnecessarily.

What the workflow does:

n8n runs on a scheduled trigger (every 15 to 60 minutes, depending on how dynamic your inventory is). It calls the ERP API to pull current on-hand quantities for relevant SKUs. It compares those quantities against current Shopify inventory levels. Where they differ, it calls the Shopify Admin API to update inventory.

No manual sync. No spreadsheet export. The ERP remains the source of truth and Shopify reflects it automatically.

Write rules:

  • Only write to Shopify, never back to ERP from this workflow
  • Include a minimum-quantity threshold: do not sync quantities below zero to Shopify (show as out of stock, not negative)
  • Log every sync with timestamp and changed SKUs for audit purposes

ERP API calls used: Inventory item GET by SKU or location

2. ERP → 3PL/WMS: Order Fulfillment Handoff

The problem: When a sales order is confirmed in the ERP, someone has to send it to the warehouse or 3PL. Many manufacturers do this by email or by manually exporting a pick list. That creates delays and introduces transcription errors.

What the workflow does:

n8n watches the ERP for sales orders that move to a confirmed/approved status. When that status change is detected, n8n retrieves the order details (line items, quantities, shipping address, priority flag) and sends them to the 3PL or WMS via their API or a structured EDI file.

Optionally, n8n can write a fulfillment status back to the ERP when the 3PL confirms the shipment, updating the sales order with tracking information.

Write rules:

  • Write to 3PL only after ERP status = confirmed (prevents partially approved orders from firing)
  • Write back to ERP only when 3PL returns a confirmed shipment event with a valid tracking number
  • Handle 3PL failures with a retry queue and an alert to the logistics team if three retries fail

ERP API calls used: Sales order GET by status filter, sales order PATCH for tracking update

3. ERP → Retool: Real-Time Ops Dashboard

The problem: ERP data is accurate but inaccessible to people who do not live in the ERP. Supervisors on the floor, ops managers in meetings, COOs reviewing daily metrics, all of them need visibility into production and inventory data without waiting for a report to be emailed.

What the workflow does:

This is less of a trigger-based workflow and more of a data pipeline. n8n runs on a schedule (every 5 to 30 minutes) and pulls key operational metrics from the ERP:

  • Open production jobs and their status
  • Inventory levels for critical SKUs and reorder points
  • Open POs and expected receipt dates
  • Overdue sales orders

That data is written to a lightweight database (a Postgres table or Airtable, depending on what is already in use) that Retool reads from. The Retool dashboard refreshes from that database, showing supervisors a live operational view without any ERP logins or report navigation.

Write rules:

  • n8n only writes to the intermediate database, never back to the ERP in this workflow
  • The Retool dashboard is read-only from an ERP perspective
  • If action buttons are added to the Retool dashboard (e.g., approve a PO, flag an exception), those route through n8n for validation before writing to the ERP

ERP API calls used: Multiple GETs across production, inventory, purchasing, and order modules

4. ERP → Slack/Email: Exception and Threshold Alerts

The problem: ERPs generate exceptions constantly but surface them poorly. A production job that is two days late, a raw material that has dropped below reorder point, an invoice that has been sitting unapproved for five days. These things exist in the ERP but nobody knows about them until they become bigger problems.

What the workflow does:

n8n runs scheduled checks against the ERP for exception conditions:

  • Production jobs where actual completion date has passed estimated completion date
  • Inventory items where on-hand quantity has dropped below a defined reorder threshold
  • Vendor invoices that have been in "pending approval" status for more than X days
  • Sales orders where the promise date is within 48 hours and the production job is not yet complete

When a condition is met, n8n sends a structured alert to the relevant Slack channel or email distribution. The alert includes the specific record, the condition that triggered it, and a direct link to the ERP record if the ERP supports deep links.

Write rules:

  • n8n reads only in this workflow. No writes to ERP.
  • Use a state-tracking table to prevent repeated alerts on the same condition (alert once, not every 15 minutes until resolved)
  • Route alerts to the right team, not to everyone (production alerts to production supervisors, AP alerts to finance)

ERP API calls used: Multiple GETs with filter conditions by status, date, and quantity

Which ERPs Support This

All four workflows above assume the ERP has a documented REST API with support for the relevant modules. Current status of the most common mid-market manufacturing ERPs:

ERPs still on SOAP/XML web services or that have no external API are a harder case. They can be integrated via scheduled database reads or file exports, but the workflow is less clean and the maintenance overhead is higher. If your ERP is in that category, it is worth flagging it as a constraint when evaluating automation scope.

What You Need Before Starting

Four things are required before any of these integrations can be built:

1. API credentials with the right permissions Most ERP APIs require a dedicated integration user with read/write permissions scoped to the relevant modules. Your ERP admin needs to set this up. It is typically a one-hour task but requires someone with ERP admin access.

2. A test environment Building against your production ERP is a risk. A sandbox or developer instance of the ERP lets you test the integration without touching live data. Most ERP vendors provide sandbox access; check your license.

3. Documented process logic The automation cannot make decisions it does not know about. Before building the inventory sync, document the threshold rules. Before building the exception alerts, define what counts as an exception and who should receive it. This documentation does not need to be formal, but it needs to exist before the build starts.

4. An internal owner Each integration needs a named person who understands what it does and can flag when something is wrong. That person does not need to be technical. They need to be the subject-matter expert for the workflow, know that the automation exists, and know how to escalate when it stops behaving as expected.

How These Integrations Compound

Each integration described above shares infrastructure:

  • ERP API credentials, once established, are reused across all four workflows
  • The intermediate database (Postgres or Airtable), once set up for the ops dashboard, can store state for the alert workflows
  • The Retool dashboard, once built, can add panels for any new data source that n8n pipes to it

This is the compound effect of treating ERP integration as a program rather than a project. The first integration is the hardest. Every subsequent one builds on infrastructure already in place.

If you want to know which integration to start with based on your current setup, the Flow Kaizen guide includes a scoring framework that factors in your ERP's API capability, your current manual time investment by workflow, and your internal ownership situation.