> ## Documentation Index
> Fetch the complete documentation index at: https://docs.omnilinker.pl/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> What changed in Omnilinker, newest first.

<Update label="2026-10-03" description="Print jobs tabs count the station you filter by" tags={["Devices & printing"]}>
  With a station picked in **All stations**, the **Unassigned** and **Problems** badges count that station's jobs, as
  the list does, not every station's. Opened from a station, the page keeps it in the filter even while it can't
  print. See [Print jobs](/devices/print-jobs).
</Update>

<Update label="2026-10-03" description="Home shows a card for each module you use, the ones that need you first">
  **Home** is your new start page: one card for each module you use, with the ones that need you at the top, and
  release notes for your modules and help from these docs underneath. Pick a layout for your role, or arrange the
  cards yourself with **Customize board**. See [Home](/get-started/home).
</Update>

<Update label="2026-10-03" description="Reconnect an account whose sign-in renewal failed" tags={["Marketplaces"]}>
  **Reconnect** now also appears on a marketplace account whose sign-in renewal failed, not only on one that must be
  reconnected, so you can sign in again from its row. Until the renewal succeeds or you sign in again, nothing reaches
  that marketplace. See [Connect Allegro](/marketplaces/connect-allegro).
</Update>

<Update label="2026-10-03" description="API keys keep their filter, and a rotated key isn't expiring soon" tags={["Administration"]}>
  The filter you pick on the **API keys** page stays in the page's address, so reloading or going back keeps it.
  **Expiring soon** leaves out a key you have already rotated: it stops at the end of its overlap, as planned. See
  [API keys](/administration/api-keys).
</Update>

<Update label="2026-10-03" description="Product matching keeps its filter when you reload or go back" tags={["Pricing Intelligence"]}>
  The filter you pick on the **Product Matching** board, such as **Awaiting review**, stays in the page's address, so
  reloading, going back or sharing the link opens the board on it. See
  [Product matching](/pricing-intelligence/product-matching).
</Update>

<Update label="2026-10-03" description="Filter the Repricer audit log to price changes that failed to apply" tags={["Pricing Intelligence"]}>
  The audit log has a **Failed to apply** filter: approved recommendations Omnilinker couldn't write to the price
  level, and nothing else. When more events match than it lists, its count says so. See
  [Audit log](/pricing-intelligence/repricer/audit).
</Update>

<Update label="2026-10-03" description="See what the ERP agent still has to send" tags={["ERP integration"]}>
  A connection's **Agent** tab now shows the changes waiting to be sent to Omnilinker, those that failed to send, and
  whether sending is paused. The dashboard's link to failed syncs now opens **Sync Logs** filtered to them, and the
  log's times are in your time zone. See [Monitoring](/erp/monitoring).
</Update>

<Update label="2026-09-30" description="Out-of-stock offers are labelled and left out of comparisons" tags={["Pricing Intelligence"]}>
  When a shop reports an offer as out of stock, Omnilinker still lists it, marked **Not available**, but leaves its
  price out of gaps, the repricer, alert rules and price statistics. Back-ordered and pre-order offers are still
  compared. **Source data** downloads what the source sent for that crawl, for 14 days. See
  [Offers](/pricing-intelligence/offers).
</Update>

<Update label="2026-09-30" description="Connect the ERP Sync agent with a code, and a redesigned tray app" tags={["ERP integration"]}>
  In **ERP Integration** > **Connections**, **Connect a PC** gives you a short-lived code to type into the agent's
  tray app, instead of pasting an API key. The tray app itself is redesigned: its status, sync details and
  troubleshooting window, in English and Polish. See [Install the agent](/erp/install-agent).
</Update>

<Update label="2026-09-30" description="Product import updates existing products" tags={["Catalog"]}>
  A row whose SKU or GTIN matches an existing product now updates that product instead of failing. Cells you leave
  blank keep their current values, and the product's price-level prices are kept. See
  [Importing](/catalog/importing).
</Update>

<Update label="2026-09-30" description="Restart or repair the Station service from the Station app" tags={["Devices & printing"]}>
  When the Station service stops, **Troubleshoot** in the Station app offers **Restart service**, or **Repair** when
  the service is not set up for this installation. Windows asks once for an administrator's approval. See
  [Station app](/devices/station-app).
</Update>

<Update label="2026-09-29" description="The Station app installs once per computer" tags={["Devices & printing"]}>
  The Station app now installs from `setup.msi` for everyone who uses the computer. Setting it up removes older
  per-user copies and keeps the pairing. See [Install the Station app](/devices/install-station-app).
</Update>

<Update label="2026-09-29" description="API keys: templates, a clear access editor, and one page for every key" tags={["Administration"]}>
  Start a key from a template (**Reporting & BI**, **Catalog & price sync**, **Orders integration**) and see in plain
  words what it can and can't do. A key gets only the permissions you give it, and a revoked or deleted key stops
  working at once. Admins who can manage every key see agent and station keys under **Agents & devices**. See
  [API keys](/administration/api-keys).
</Update>

<Update label="2026-09-29" description="See the reseller's own title for a listing" tags={["Pricing Intelligence"]}>
  A gap's evidence in the Manufacturer Dashboard shows **Listed as**: the title the reseller gives the listing. A
  different title is the quickest sign that the offer is matched to the wrong product. See
  [Overview](/pricing-intelligence/manufacturer-dashboard/overview).
</Update>

<Update label="2026-09-29" description="Fix a wrong product match from five more places, and set your own gap levels" tags={["Pricing Intelligence"]}>
  **Wrong product?** is now also in the Product Overview drawer and cards, the Price map inspector, the evidence in
  Cases and the Offers row menu. In the Manufacturer Dashboard settings you can set where **At the edge**, **Deep**
  and **Critical** start. See [Settings](/pricing-intelligence/manufacturer-dashboard/settings).
</Update>

<Update label="2026-09-29" description="Open Contacts and Shipments rows from the keyboard" tags={["Sales", "Shipping"]}>
  Tab reaches each row's name, Enter opens its details, and closing the details puts you back on the row.
</Update>

<Update label="2026-09-28" description="Report a wrong product match from a gap" tags={["Pricing Intelligence"]}>
  When a shop's page is filed under the wrong product, choose **Wrong product?** on the gap's evidence, or in the
  offer's details on the Offers page, and pick the right product or none of yours. The offer stays where you put it
  and its gap closes. See [Product matching](/pricing-intelligence/product-matching).
</Update>

<Update label="2026-09-28" description="A new notifications inbox, and you decide what interrupts you" tags={["Notifications"]}>
  **Notifications** > **Inbox** groups notifications into threads you can snooze, assign and mark done, with keyboard
  shortcuts. In **How I get notified** you choose what interrupts you, what waits to be bundled and what goes into a
  summary, and set quiet hours. Admins set up email, escalation and message templates. See
  [Inbox](/notifications/inbox).
</Update>

<Update label="2026-09-28" description="Hover a dashboard term to see exactly what it counts" tags={["Pricing Intelligence"]}>
  Words such as "restored", "new" and "compliance" on the Manufacturer Dashboard have a dotted underline. Hover, focus
  or tap one to see what it counts and what it leaves out.
</Update>

<Update label="2026-09-28" description="Print labels and documents on your Windows PCs" tags={["Devices & printing", "Shipping"]}>
  Install the Station app on a Windows PC and pair it from **Devices** > **Stations**. Omnilinker can then send
  shipping labels and documents to that PC's printers, automatically when the courier delivers a label if you want.
  **Print jobs** shows what printed where. See [Devices and printing](/devices/overview).
</Update>

<Update label="2026-09-28" description="Documentation for every module, in English and Polish">
  Guides for every module are at [docs.omnilinker.pl](https://docs.omnilinker.pl), and the app's start page links to
  them.
</Update>

<Update label="2026-09-26" description="Median offer price on Product Overview" tags={["Pricing Intelligence"]}>
  Product Overview shows each product's median offer price next to the lowest, average and highest, worked out from
  the same fresh offers.
</Update>

<Update label="2026-09-26" description="Fixed: new prices are compared with your reference price again" tags={["Pricing Intelligence"]}>
  From 24 September, prices collected from your sources were saved without your reference price, so the Manufacturer
  Dashboard showed resellers 0% off RRP. New prices are compared again, and the affected prices have been repaired.
</Update>

<Update label="2026-09-25" description="An interactive compliance trend" tags={["Pricing Intelligence"]}>
  The Manufacturer Dashboard's compliance trend covers 30 or 90 days. Hover a day for its details, click it to pin it
  and list the gaps that opened that day, or switch to a table. Rows in Offers and Product Overview also open from the
  keyboard now.
</Update>

<Update label="2026-09-24" description="The Manufacturer Dashboard is redesigned" tags={["Pricing Intelligence"]}>
  It opens on an **Overview** of how resellers hold your RRP: what changed, where to act first, and the trend.
  **Cases** follows a conversation with a reseller from the first message to closing, **Price map** shows prices by
  reseller and product, and **All gaps** lists every offer outside your tolerance. See
  [Overview](/pricing-intelligence/manufacturer-dashboard/overview).
</Update>

<Update label="2026-09-24" description="An unknown purchase price stays unknown" tags={["Catalog", "Pricing Intelligence"]}>
  A purchase price you don't know shows as unknown instead of 0.00. The purchase price has its own currency, and
  Omnilinker keeps its history. The repricer won't apply a margin floor without a usable purchase price and says why,
  and margin means (price − purchase price) ÷ price everywhere. See
  [Purchase prices](/catalog/purchase-prices).
</Update>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.