Data retention
Data retention is how e-sat.ly stops storing your links and click data forever. Each project keeps its data for a window you choose; anything older than that window is eventually deleted. It's what keeps the shortener from carrying years of dead single-use links, and it's how you keep only the data you actually need.
It's also the one part of e-sat.ly that permanently deletes things. This page explains exactly what it does before you change it.
The window
Each project carries its own retention window, set with the slider on the project's edit screen in Configuration → Projects:
| Minimum | 6 months |
| Maximum | 2 years (24 months) |
| Default for a new project | 2 years — the maximum |
The window is measured from when each link was created, and for click data from when each click happened. It isn't a single deadline for the project: it's a rolling age limit that each link and each click passes at its own moment. A clean-up run recalculates the cut-off from the current date every time it runs.
New projects start at the maximum, so you keep the most by default and shorten it only if you have a reason to.
Retention and expiry are two different things
This is the distinction to get right, because they sound similar and answer completely different questions.
| Question it answers | What sets it | What enforces it | |
|---|---|---|---|
| Expiry | Does this link still redirect? | An expiry date you set | The link itself — an expired link shows the "link unavailable" page |
| Retention | Is this link kept at all? | The project's retention window + whether the link is pinned | The clean-up |
Neither one implies the other, and the two combinations people find surprising are both real:
- A link that never expires is still deleted at retention. This is the normal case, not an edge case — links never expire by default, so nearly every link you have will be cleaned up on age alone. Having no expiry date does not mean a link is safe.
- A link that expired long ago is still kept, if it's pinned. A pinned link is exempt from the clean-up whatever its dates say.
"No expiry date" is not protection
If you take one thing from this page: the only thing that keeps a link is pinning it. Not the absence of an expiry date, and not a distant expiry date. A link with no expiry that's older than its project's window will be deleted the first time the clean-up runs.
What the clean-up deletes
When it runs, then for each project, against that project's own window:
Transactional links past the window
Every transactional link created before the cut-off is deleted, along with all of its clicks. This is based purely on the link's age — its expiry date is never consulted.
Old clicks on the links that survive
For links that are kept — including pinned ones — any clicks older than the cut-off are deleted. The link stays and keeps working; only the old click records go.
That second step is the one people miss:
Pinning keeps the link, not its click history
Pinning exempts the link from deletion. It does not exempt the link's clicks. A pinned QR code will keep redirecting forever, but its click history is still trimmed to the project's window — so a pinned link with a 6-month window will only ever show you 6 months of clicks.
Pinning promises the link keeps working. It doesn't promise its analytics grow without limit.
What's exempt
Pinned links. That's the entire list.
There's no other exemption — no exemption by expiry date, by click volume, by how recently a link was opened, or by anything else. A link that is still being clicked every day is deleted at retention if it's transactional and past the window. If a link needs to survive, pin it.
Deletion is permanent
There's no recycle bin, no undo, no export, and no restore.
A deleted link never comes back
When a link is deleted:
- It stops redirecting immediately and forever. Anyone who opens it — from an SMS already sent, a QR code already printed, a post already published — gets the "link unavailable" page.
- Its short code is never reissued. Codes are never recycled, so the address can't be recreated even by shortening the same URL again. You'd get a new link with a new code, and every copy of the old one already out in the world stays dead.
- Its click history goes with it. The clicks are deleted along with the link, so the analytics for it disappear too.
This is why the retention window deserves a real decision rather than a default.
Pin what you can't lose
Walk through anything printed, published, or embedded somewhere you don't control, and pin it. Once the clean-up has deleted a link, it's gone — and a QR code on a poster is exactly the kind of thing nobody remembers until it stops working.
Changing the window
You can change a project's retention at any time, and it applies from the next clean-up run onwards.
- Lengthening it keeps more. It can't bring back anything already deleted.
- Shortening it means more will be deleted on the next run — everything that now falls outside the shorter window, permanently. Shortening from 2 years to 6 months puts 18 months of links and clicks in scope for deletion. There's no preview of what that would remove, so check Usage first.
Retention is per project, so you can keep a long window on the project holding your pinned and reportable links while running a short one on a high-volume transactional project. That's usually a better answer than a single compromise window across everything.
Other ways data gets deleted
Retention is the automatic one. Two others are manual, and both are just as permanent:
- Deleting a link from its row menu in Short Links removes that link and its clicks immediately. Its non-destructive alternative is an expiry date in the past — the link stops redirecting right away, but the link and its analytics stay.
- Unpinning a link that's already older than its project's window makes it eligible again, so the next run deletes it. The console confirms before unpinning for this reason. See Transactional & pinned links.
How this relates to retention elsewhere in the suite
e-sat.ly's retention is its own setting, for its own data, and it's separate from the organization-wide data retention and anonymization you configure in Admin.
- e-sat.ly retention covers short links and their clicks. It's set per project, it deletes, and there's no anonymization step — click data holds no personal details to anonymize, since IP addresses are only ever stored as a one-way hash.
- Suite-wide retention covers survey responses, responders, queue items and the rest, across storage layers, with anonymization.
Changing one doesn't change the other. If your organization has a retention policy to meet, e-sat.ly's per-project windows need setting to match it explicitly.
Related
Transactional & pinned links
Pinning is the only exemption from the clean-up. What it does and doesn't cover.
Usage
See how much you're storing before you change a window.
Projects & API keys
Where the retention slider lives.
Suite data retention
The organization-wide retention and anonymization settings, which are separate.