Integrations

System integration via API -
a practical guide for the IT manager

Companies use many disconnected IT systems and data gets lost and goes stale at the seams between them. REST APIs, webhooks and middleware are the tools that fix it - without rewriting the systems from scratch.

← Back to Blog
Integrations
Jakub Roszkiewicz · May 2026 · 9 min read

Mid-sized and larger companies typically use more than a dozen separate SaaS and on-premise applications. CRM data does not make it into the ERP. Help desk tickets do not see the client's order history. Status changes in the logistics system do not update the IT dashboard. Each of those crossings is a place where data is lost, duplicated or goes stale, and an employee has to copy it by hand. This article explains how APIs, webhooks and middleware fix that, on a concrete example of ManageEngine ServiceDesk Plus connected to an ERP.

REST API
request-response model between systems
Webhooks
real-time event notifications
Middleware
connecting systems without writing code from scratch

Why integrate systems: the real cost of data silos

A data silo is a state in which every system has its own truth. The ERP knows the client has an overdue payment, but the help desk does not, so the technician opens an urgent ticket and burns through their own time. The CRM stores the contact history, but the support team only sees the ticket ID. Logistics updates the delivery status, and IT only finds out by phone.

The cost of silos has four dimensions:

API integration eliminates these costs. Not by migrating to a single mega-system (which is rarely possible) but by creating a small channel through which data flows automatically and instantly.

REST API: basics you should not skip

REST (Representational State Transfer) is an architecture for communication between applications over HTTP. From an IT manager's perspective: it is the way one system "asks" another for data or issues it commands, through a defined, documented interface.

Anatomy of a REST request

Every REST request consists of four elements you need to understand when scoping an integration project:

GET /api/v3/requests/12345 HTTP/1.1
Host: sdp.company.pl
Authorization: Bearer {API_KEY}
Content-Type: application/json

// Response:
{
  "request": {
    "id": "12345",
    "subject": "No access to ERP",
    "status": { "name": "Open" },
    "requester": { "name": "Anna Kowalska" },
    "priority": { "name": "High" }
  }
}

Data formats: JSON vs XML

In 2026, JSON is the standard for new APIs: lighter, human-readable, natively supported by JavaScript and most languages. XML persists in older ERP systems (especially Comarch ERP XL, SAP NetWeaver, SOAP web services) and anywhere schema validation (XSD) is required. If you are integrating a modern SaaS with a legacy ERP, you often have to handle both formats on both sides, which is the main reason middleware makes sense.

API authentication methods

Method Use case Security Implementation difficulty
API Key Simple server-to-server integrations, internal systems Medium: key has to be rotated Low
Basic Auth Legacy systems, testing, internal VPN Low: login:password in Base64 Very low
OAuth 2.0 Client Credentials Production integrations, SaaS-to-SaaS High: token with TTL, refresh Medium
OAuth 2.0 Authorization Code Apps acting on behalf of a user Highest High
mTLS (certificates) Banking, public sector, regulated industries Very high Very high
Security minimum rule: never send API keys in the URL (e.g. ?apikey=abc123). Always in the Authorization header. Everything over HTTPS. Keys with the minimum scope of permissions (least privilege principle): a key that reads tickets should not be able to create them.

Types of integration: API, webhooks, middleware, custom code

Not every integration looks the same. The choice of method depends on the direction of data flow, frequency, volume, and the availability of interfaces on both sides.

Integration type Flow model Complexity Relative implementation time
REST API (direct) Pull: one system queries another Low-Medium Short
Webhook Push: an event triggers a send Low Short
Middleware (n8n / Make) Orchestrator: data flows through an intermediary Medium Medium
ESB / Message Queue Async: message queue High Long
Custom code (microservice) Any: full control Very high Long

The key criterion: if both systems have a REST API with good documentation, start with direct integration or middleware. Custom code is only justified when the API is unavailable (legacy system without an interface), performance requirements exceed 500 req/s or business logic is very complex.

Case study: ManageEngine SDP + ERP (Comarch / Enova365)

Illustrative scenario: an IT hardware distributor with a classic problem - the support technician sees a ticket about no access to the warehouse module but does not know whether the client has an active service contract, has paid the last invoice or what their hardware configuration is. All that data sits in Comarch ERP XL. Result: the technician has to call sales or finance, which significantly extends the first response time. The integration removes that step - ERP context appears directly in the ticket. We describe an analogous scenario for manufacturing environments (Jira + ERP + MES) in detail in the article on integrating Jira with ERP and MES systems.

Here are the concrete steps of such a project:

1
Data mapping: what should flow and when
Preparation phase

Before a single line of code was written, we spent a week documenting: (a) which fields from the ERP the technician needs in SDP, (b) at what point the data flow is needed, (c) who is the source of truth for each field. Result: 12 fields from the ERP (contract activity, NIP, account manager contact, payment status, asset list) and 3 events triggering the flow (new ticket, category change, manual refresh).

2
API audit on both sides
Technical analysis

SDP side: ManageEngine SDP On-Premise exposes a REST API v3 with authentication via an API key (header authtoken). Endpoints for tickets, assets, users and contracts are fully documented. Comarch ERP XL side: no REST API. The system offers COM+ automation and SOAP web services. That was the key problem: the ERP has no contemporary HTTP interface, so a direct connection was impossible. Solution: an intermediate layer, a small .NET application exposing a REST proxy over the ERP's COM+ interface, deployed on-premise.

3
Data flow architecture
Design

Final flow: (1) the technician opens a ticket in SDP or goes into an existing ticket, (2) SDP sends a webhook to n8n with the requester ID and company (NIP from the client field), (3) n8n calls the REST proxy over Comarch, fetches contract and payment data for that NIP, (4) n8n returns to SDP via API and updates dedicated custom fields in the ticket (contract status, sales account manager, account status), (5) the technician sees a panel with ERP context without leaving SDP. The full flow: <4 seconds.

4
Pitfalls: what went wrong and how we fixed it
Pitfalls

Three typical problems you have to address: 1. API rate limiting: during a bulk import of historical data you can hit API limits. Solution: queueing with exponential backoff in n8n. 2. Character encoding: Polish characters in company names from older systems can arrive in Windows-1250 encoding, while modern APIs expect UTF-8 - a conversion in the proxy layer is required. 3. Cache vs data freshness: for data changing several times a day it is worth considering a short cache (e.g. a dozen minutes) instead of querying the ERP every time a ticket is opened.

Key insight from this project: Integration with Comarch ERP XL and similar legacy systems (on-premise Enova365, SAP R/3) is rarely a simple REST-to-REST connection. There is almost always a need for an adaptation layer: a REST proxy or Zapier/n8n with a custom HTTP node. Plan an additional 30-50% of the budget for that layer if you are integrating modern SaaS with an on-premise ERP from before 2015.

Middleware tools: n8n, Zapier, Make

Middleware is the intermediate layer that connects systems without writing code from scratch. Instead of implementing authorization, JSON parsing, error handling and queueing manually, you configure it visually or with a minimal script.

When middleware, when custom code: decision matrix

Scenario → Recommendation

Both systems have a REST API, the flow is simple (trigger → transform → action), the team has no DevOps
n8n / Make
One system is legacy (COM+, SOAP, CSV file), the other is REST
n8n + custom node or proxy
Requirements >500 req/s, sub-millisecond latency, SLA 99.99%
Custom microservice
Complex business logic (multi-step approvals, pricing algorithms)
Custom code
Integration of many systems (3+) with data transformations
Make / n8n Enterprise
Minimum budget, simple data sync, fast PoC
Zapier (SaaS-only)

n8n vs Zapier vs Make: short comparison

Feature n8n Zapier Make (Integromat)
Hosting model Self-hosted (free) or Cloud SaaS only SaaS (EU data center)
Number of connectors 400+ 7000+ 3000+
Custom code in node JavaScript / Python JavaScript (limited) None (visual)
Price for SMB From 0 PLN (self-hosted) From 29.99 USD/month From 9 EUR/month
Compliance / EU data Full control (on-premise) US data center (GDPR risk) EU data center
Learning curve Medium Low Low-Medium

Our recommendation for companies in Poland: n8n self-hosted as the platform of first choice for integration. Installation on a VPS or on-premise server, full control of data, no per-workflow fees, the ability to write custom JavaScript code. Zapier makes sense only if you are integrating exclusively SaaS systems with ready-made connectors and you do not have the IT resources to host your own instance. We cover the specifics of integrating an ERP with a help desk system, from data mapping to error handling, in a separate guide: ERP integration with the help desk.

How to scope an integration project

Most "system integration" offers give a single number with no breakdown into components. That is a mistake on both sides: the client does not know what they are paying for, the vendor does not know what they have priced. Here is the pricing structure we use:

Cost components of an integration project

Relative effort for typical integration projects

Integration type Complexity and cost Relative implementation time
2 SaaS systems with ready-made connectors (n8n/Zapier) Lowest Short
SaaS + on-premise with REST API Medium Medium
SaaS + legacy ERP (COM+/SOAP) via proxy Higher Longer
Custom microservice with a message queue Highest Longest

We prepare a precise quote individually after scope analysis - contact us to get an offer tailored to your systems. Validating an offer: if you get a quote without a phase breakdown, ask. Make sure the offer contains items for testing and error handling - without those, the integration often fails after go-live.

Common mistakes and how to avoid them

Based on integration projects we have delivered and fixed, we can point out the failure patterns that recur most often:

1. No data owner on either side

The integration synchronizes data, but who is the source of truth? If the client's status can be changed in both the CRM and the ERP, and the integration has no conflict resolution logic, after a week you have chaos. Always define the authoritative system for each field BEFORE implementation.

2. Happy path only in tests

The tests cover the ideal scenario: the API responds in 200 ms, data is complete, the systems are up. Production brings: a 30-second timeout, the ERP unavailable during backup hours (3:00-5:00), an empty NIP field on the ticket form. Test failure scenarios deliberately: turn off one of the systems in the test environment and check what happens to the data.

3. No error handling = silent data loss

A webhook sends an event, the receiver returns HTTP 500. Now what? If there is no retry mechanism, that event disappears. In middleware: always configure a dead letter queue or at least an alert on errors. In custom code: implement the Circuit Breaker pattern and idempotent operations.

4. API keys "forever" and shared

We audit clients' systems and regularly find: a single API key used by 4 different integrations, valid for 3 years, with admin permissions. If that key leaks, everything is compromised. One key = one integration. Minimum scope of permissions. Rotation every 90 days on the calendar.

5. Integration without monitoring = integration that has been down for months

An integration fails silently: the ERP returns a different JSON structure after an update, the webhook URL changed, the token expired. Nobody knows because nobody checks. Minimum: an email alert after N consecutive errors, a dashboard with the number of events processed per day, an alert when that number drops to zero.

Golden rule: an integration that is not monitored is an integration that is not working. You just do not know it yet. Spend 10% of the project budget on monitoring and alerts. You will save 10x that in debugging hours six months later.
JR
Jakub Roszkiewicz
CTO · Rotech Group · IT system integration and ITSM automation specialist

FAQ: System integration via API

What is the difference between a REST API and a webhook?

A REST API is a request-response model: your system asks (pull), the external system answers. A webhook is a push model: the external system sends data to your endpoint the moment an event happens, for example an order status change in the ERP arrives at the help desk instantly without polling every minute. REST APIs work well for user-initiated operations; webhooks work well for automatic event notifications.

Does ManageEngine SDP have a public API for ERP integration?

Yes. ManageEngine ServiceDesk Plus exposes a REST API (JSON) that covers operations on tickets, assets, users, contracts and the CMDB. SDP Cloud and SDP On-Premise have a similar API structure but differ in base URL, scope of available endpoints and authentication method (API key for On-Premise vs OAuth 2.0 for Cloud). Before integrating, verify the available endpoints in the documentation for your deployment model.

When should you choose n8n over a custom code integration?

n8n works well when: (1) both systems have ready-made connectors or REST APIs, (2) the flow logic is simple to moderately advanced (conditions, transformations, loops), (3) there is no requirement for sub-millisecond latency. Custom code beats middleware when: data transformations are complex, integration involves legacy systems without an API, performance requirements exceed 1,000 req/s, or complex business logic that visual nodes cannot express has to be implemented.

How much does a ManageEngine - ERP integration project cost?

The cost of an integration project depends primarily on the method (middleware vs custom code), the number of data flows, error-handling requirements and whether older systems are involved (e.g. Comarch ERP XL requiring COM+ or SOAP). Integration through middleware such as self-hosted n8n is usually cheaper and faster than dedicated API-to-API integration with rich logic. A precise quote is prepared individually after the scope is analyzed.

How do you secure an API integration between corporate systems?

Security minimums: (1) HTTPS on every endpoint, no exceptions, (2) API keys rotated every 90 days and stored in a secrets vault (Vault, AWS Secrets Manager, CI/CD environment variables), (3) IP whitelisting at the firewall or API gateway level, (4) rate limiting on the receiver side (max N req/min), (5) logging of every request with timestamp and response status to a SIEM or at least a central log. OAuth 2.0 Client Credentials Flow is the gold standard for server-to-server integration.

Free consultation

We will scope your systems integration

Describe which systems you want to connect and what data flow interests you. Within 48 hours you will get an initial technical analysis and an indicative budget, with no commitment.

Book a free consultation

Looking for support with IT systems integration? See what an implementation with Rotech Group looks like →

← All articles
Back to the blog
Next article →
Jira + ERP + MES: how to integrate production systems with the help desk