Install, and open the settings page
Jira → Apps → WarrantySync settings. Only Jira administrators can change anything, and the app checks that with Jira on every write rather than once when the page loads.
A minute
Jira → Apps → WarrantySync settings. Only Jira administrators can change anything, and the app checks that with Jira on every write rather than once when the page loads.
A minute
Assets, or a Jira project and issue type. Press Discover fields, press Use suggestions, check the mappings it proposes for serial number, manufacturer, model and warranty end, and save. Then Re-run pre-scan on the dashboard counts your estate with no credentials at all.
Five minutes
Paste the credentials you were issued, press Test connection, and watch the card change state. Dell is self-service; Lenovo and HP are not, so their cards carry a request email you can send to your account manager.
When your credentials arrive
The project and issue type for expiry issues, the warning window, and the style. Then, when you are ready and not before, turn on ongoing issue creation from the dashboard.
When you are ready
Until the field mapping is done and a manufacturer is connected, the dashboard says what is missing and what to do about it. It does not show an empty table and let you conclude the app is broken.
Once a source is mapped, press Re-run pre-scan: it runs without a single credential and reports what it found on the Buckets tab. That is the moment you learn whether a Lenovo credential is worth chasing, and how many devices have no serial number and so can never be looked up.

Forge scheduled triggers can run every five minutes, hourly, daily or weekly, and there is no API to move one at runtime. So the app declares a single hourly trigger and does its own gating. That is more useful than a daily trigger, not less.
On that hour, and only if today’s run has not already happened, it claims a lease and starts a real sync. Two runs cannot overlap.
It clears the lease of a run that died, and re-pushes a chain that has gone quiet. A failed overnight run is recovered within the hour instead of waiting a day.
A device whose record is fresher than your re-check age is skipped. A manufacturer with no credential is never contacted. A run costs the lookups it needs and no more.
Work moves through a queue an event at a time, in batches of 25, inside a per-minute request budget you set. It does not open your estate all at once.
The daily sweep is why a warning does not wait for a manufacturer. It re-derives every status from the stored end date, so a device crosses into the warning window on exactly the right day whether or not any manufacturer answered. The same sweep tidies up: a record whose device has been deleted is checked against your site, confirmed gone, and only then removed.
The defaults are chosen so that an app installed and left alone behaves conservatively. The one that matters most — ongoing expiry issues — starts off.
| Setting | Default | Range |
|---|---|---|
| Device source | Jira work items | Assets or Jira work items; you choose |
| Warning window | 60 days | 1 to 365 |
| Re-check a record older than | 30 days | 1 to 365 |
| Requests per minute | 60 | 10 to 120; one budget shared by Jira and the manufacturers |
| Devices per batch | 25 | Not on the settings page; each manufacturer then re-chunks to its own API ceiling |
| Hour of the daily run (UTC) | 02:00 | Any hour |
| Expiry issue style | One per device | Or one digest per run, listing up to 200 |
| Expiry issues per run | 25 | 1 to 100 |
| Ongoing expiry issues | Off | On, once an administrator turns it on |
| Write warranty dates back to devices | On | Off |
A warning window of nine hundred days is refused, and refused by name. So is a blank credential. Nothing in the app answers a bad value with “something went wrong”, because that phrase belongs to failures the next scheduled run will retry — not to a box somebody has to fill in.

Onto devices it successfully looks up, only into the field you mapped, and only while write-back is switched on. Turn it off and the app still tracks everything internally.
In the project you chose, on the issue type you chose, with the machine key and the per-device labels that stop a duplicate being raised. A digest issue carries one such label for every device it lists.
No fields, no schemas, no object types, no properties on other people’s entities, no comments, no attachments.
Save the credential, and that manufacturer’s devices are picked up by the next run: a device with no warranty data is re-checked every run rather than parked until its record goes stale. Force full re-check exists for the case where you want the whole estate looked at again — it ignores freshness for every device againstevery connected manufacturer, and spends the API budget to match, so it is not the tool for adding one vendor.
Uninstalling clears the app’s storage — settings, credentials, device records and counters. We have verified that; the deletion itself is Atlassian’s platform behaviour rather than something we can promise on their behalf, and the DPA puts it that way for the same reason. What stays is what was already yours: the dates written onto your devices and the issues already raised.
Reinstall, and per-device de-duplication still works, because its key lives in Jira. What does not survive is the app’s memory of the first run, so expect one repeat summary issue and one catch-up digest. That is the price of storing nothing outside Atlassian.
It installs with no credentials and counts your estate on the first run, so you know the size of the problem before anybody has to request API access. It is free, and there is no licence check to fail.