14 July 2026
Courier Integration in Complaint Handling — Labels, Tracking, Less Manual Work

In complaint and return handling, something almost always travels by courier: the customer sends back a faulty item, the service desk ships a repaired unit, the warehouse dispatches a replacement. If those shipments are created in a separate courier system — with addresses retyped by hand from one window into another — every ticket costs a few minutes of dull, error-prone work. Courier integration moves that step to where it belongs: inside the ticket itself.
Courier integration in a complaint-handling system is a direct connection to a carrier's API that lets you create a shipment, generate a label and pull a tracking number without leaving the case — sender and recipient details are filled in from the ticket record, and the shipment status flows back to the same case.
Why courier integration matters in complaints
A complaint isn't an ordinary shipment. A few things set it apart, and without integration they turn into small but multiplying problems.
First, there are usually two or more shipments per case — the item to the service desk, then back to the customer, sometimes a replacement on top. Each has a different direction and a different recipient, and all of them need to be pinned to the same complaint number so you can later reconstruct what went out and when.
Second, the address comes from the case history, not from an order. The customer entered their details in the complaint form, the service address is fixed, the warehouse return address is fixed too — integration fills these in automatically instead of forcing staff to copy them from an email into the courier panel.
Third, the tracking number is part of communicating with the customer. "Where's my parcel?" is one of the most common questions during a complaint. If the tracking number lives in the courier's system rather than on the ticket, answering it means clicking through two tools. If it's on the ticket, it's visible at a glance, can be sent to the customer in one click, or shown on the case's public status page.
Retyping addresses isn't just lost time. It's the most common source of typos in postal codes and of parcels that come back as undelivered — and in a complaint, where the customer is already impatient, that's the last thing you want.
Automatic courier labels
The heart of the integration is generating a label without leaving the ticket. Instead of logging into the courier panel, creating the shipment there and coming back with a file, you do it in the context of the case: pick a courier, confirm the details, and the system registers the shipment with the carrier and returns a ready-to-print PDF label.
A few things that save the most time in practice:
- Package templates — if most of your shipments have similar dimensions, you define the weight and size once, then pick them with a single click instead of typing them every time.
- Default sender address — set in the module configuration, it fills into every shipment, so your company details need no attention per dispatch.
- Test mode — lets you run the first few shipments without creating real orders with the courier. It's worth verifying your configuration here before switching to production.
- Label as a case attachment — for selected couriers (DHL, DPD) the label can be saved directly as a ticket attachment, so it stays in the history alongside the rest of the documents.
Worth knowing: not every courier behaves the same way. Some carriers require an extra step before the label is generated — GLS, for example, expects the shipment to be confirmed, and Geodis expects it to be released for fulfilment. That's not a flaw in the integration, just a faithful reflection of how each courier actually works.
Tracking a shipment without leaving the ticket
Once the shipment is created, the system pulls the tracking number and generates a tracking link on the courier's site — automatically, based on the number. The number is shown in the shipments section on the ticket, so staff never have to hunt for it.
This has two consequences. Internally: anyone who opens the case immediately sees whether the goods are already in transit and with which courier. Externally: the tracking number can be handed to the customer or shown on the complaint's public status page, which the customer refreshes themselves instead of calling to ask "what's happening with my parcel?" In a well-organised complaint workflow that's one of the simplest ways to cut inbound calls.
Which couriers are worth integrating with
A handful of carriers matter in the Polish complaint and return market — the choice depends on where and what you ship.
- DHL — widely used in e-commerce and service logistics, strong in both domestic and international shipments.
- DPD — one of the more popular door-to-door couriers in Poland, often chosen for consumer returns.
- GLS — common in retail, with good domestic coverage.
- Geodis — relevant where complaints plug into larger warehouse and contract logistics.
- UPS — a natural choice for international and express shipments.
- InPost — thanks to its parcel-locker network, practically a standard in Polish e-commerce, especially for consumer returns.
There's no single right answer to "which courier". A retailer geared toward consumer returns will lean on the carrier its customers know and trust; a firm servicing equipment for business will favour the one that gives a predictable delivery time and a convenient pickup. That's why a good system lets you configure several couriers at once and pick the right one for a given shipment.
How it works in Reklamator
Reklamator integrates with DHL, DPD, GLS, Geodis and UPS. An InPost integration is in the works — it will appear as another courier module in the same place as the rest.
Configuration lives under Configuration → Modules, where each courier has its own module. The shared set of settings covers enabling the integration, the mode (test or production), the login credentials for your courier account, and the default sender address. Most couriers also support package templates. On top of that come carrier-specific options — DHL, for instance, lets you set daily pickup, default package contents and cost centres, while UPS requires OAuth2 authorisation and lets you choose which services (Standard, Express, Saver…) are available when creating a shipment.
The shipment itself is created in the context of the case — in the Shipments section on the ticket details page. You click Add shipment, pick a courier and fill in a form with fields specific to that carrier (addresses, package details, extra services like cash on delivery or insurance, dispatch date). After confirmation the system registers the shipment with the courier, returns a tracking number and makes the label available for download. For DHL and DPD you can additionally order a courier pickup, giving a date and time — full details are in the Shipments documentation.
Access to creating shipments is governed by permissions per courier, so you can hand dispatch over to the warehouse without opening up the whole integration configuration to them.
FAQ
Can I configure several couriers at once?
Yes. Each courier has its own module and you can enable as many as you like at the same time, then pick the right carrier when creating a specific shipment.
Is the label printed directly from the system?
Yes. Once a shipment is created, the label is available for download as a PDF (A4 or roll, depending on the courier) straight from the ticket. For DHL and DPD it can also be saved as a case attachment.
Where is the tracking number shown?
In the Shipments section on the ticket. The system also generates a tracking link on the courier's site, which you can hand to the customer or share via the complaint status page.
What is test mode for?
It lets you verify your configuration without creating real shipments in the courier's system. It's worth running the first few orders through it before switching the integration to production.
Does Reklamator integrate with InPost?
An InPost integration is in preparation. Currently the fully supported couriers are DHL, DPD, GLS, Geodis and UPS.
Do I need separate permissions to create shipments?
Yes. Access to creating shipments is granted per courier, independently of access to the module configuration — so the warehouse can handle dispatch without seeing the integration credentials.
Courier integration boils shipment handling in complaints down to a single principle: the address, the label and the tracking number belong where the case is — not in a separate window someone has to remember to open. If you want to see how it works for you, start a free trial account and configure your first courier following the integration documentation. This step slots best into the broader automation of complaint handling — shipments are one of its stages, not a separate topic.
Reklamator
Create courier labels straight from the ticket
DHL, DPD, GLS, Geodis and UPS — shipment, label and tracking number in the context of the complaint, without switching between systems. Start with a free trial account.
Start for free