e-satisfaction

How short links work

A short link is a small address that stands in for a long one. Someone opens https://e-sat.ly/4kQm2, e-sat.ly looks up where it points, and sends them there — usually in well under a second. This page explains where that link comes from and how it behaves over its life.

Every short link is the short domain plus a short code:

https://e-sat.ly/4kQm2
└──── domain ────┘└code┘

The code is generated for you. Each new link gets the next code in a single, ever-advancing sequence, which means no two links ever get the same code — codes are never recycled, and a code that has been used is never handed out again. Codes are made only of letters and numbers (up to 10 characters), and they are case-sensitive: 4kQm2 and 4kqm2 are different links.

Because the code is generated from the link's position in that sequence, it isn't guessable in any useful order, and it stays stable for the life of the link. A short link is around 28 characters in total — the whole point, when an SMS segment is 160.

There are three ways a link gets created, and in day-to-day use the first is by far the most common:

  • The suite shortens it for you. Every SMS and Viber survey invitation has its link shortened automatically before sending. You don't do anything — this is the default for any workspace without a custom shortener.
  • Your own systems call the API. Send a long URL with your project's API key and get a short link back. See the API reference.
  • You create a pinned link in the console. The console's only link-creation screen is Pinned Links, because those are the links a person deliberately makes by hand. See Transactional & pinned links.

One link per destination, per project

If you shorten a URL that your project has already shortened, you get the same short link back rather than a second one. Creating a link is safe to repeat — a retry won't litter your project with duplicates pointing at the same place. This is scoped to your project: two different projects shortening the same URL each get their own link.

By default, a new link never stops working. There is no expiry unless someone asks for one.

You can give a link an expiry date, either when you create it through the API or by editing it in the console. From that moment on:

  • Before the expiry — the link redirects normally.
  • After the expiry — the link stops redirecting and shows a "link unavailable" page instead.

An expiry is the non-destructive way to switch a link off. The link stops working, but the link and its click history stay exactly where they are, and you can still see them in the console. Setting an expiry in the past switches a link off immediately.

Expiring is not the same as being deleted

Expiry decides whether a link still redirects. Data retention decides whether a link is still kept at all. They're two separate things and neither one implies the other — a link that never expires can still be cleaned up at retention, and a link that expired long ago can still be kept forever. This trips people up more than anything else in e-sat.ly, so it's worth reading Data retention once.

If someone opens a link that has expired, or a code that doesn't exist at all, they don't get a broken page or a raw error. They land on a branded "link unavailable" page carrying the e-sat.ly and e-satisfaction identity, which tells them the link is no longer available. It's the same page in both cases, so an expired campaign link fails tidily rather than embarrassingly.

Someone who is unsure about a link before opening it can also check where it leads first — see Checking a link before you open it.

From Short Links in the console, each link's menu offers:

  • Edit — change the destination or the expiry date.
  • Delete — remove the link permanently.

Changing the destination re-points an existing link: anyone opening it from then on goes to the new URL. That's what makes a printed QR code fixable.

Deleting a link cannot be undone

Deleting removes the link and its click history, permanently. The short code is never reissued, so the link can't be restored — the address is dead for good, including on anything already printed or already sent. If you only want the link to stop working, set an expiry in the past instead: the link stops redirecting and you keep the row and its analytics.

A link can't be moved between projects

The project is fixed when the link is created and can't be changed afterwards. A link's clicks are recorded against its project, so moving the link would strand its click history under the old one — misattributing your analytics and applying the wrong retention window to the data. If a link belongs somewhere else, create it there.

Short Links lists every link in your organization, newest first. You can narrow it by project, by date range (Last 7 days by default, Last 30, or a custom range), and by search.

Search asks you to pick what you're searching, because the two behave differently:

  • Short code — an exact match on the code. It's case-sensitive, and it ignores the date range: paste a code and it's found whether it was created yesterday or two years ago.
  • Destination — search the destination URL. Matching the start of a URL (or the whole URL) is fast; searching for text anywhere inside it is much slower, and the console warns you before running it. Narrow the date range first and it stays quick.

Above the list, a collapsible chart shows links created over time, stacked by project, so you can see when volume came in. Drag across it to zoom the list into those days. Over the default last-7-days view the chart is live; widen the range and it switches to a version that refreshes every few minutes, so its newest bar can trail the list by up to about 15 minutes.

Why there's no "All time"

The date range has no "All time" option, and that's deliberate rather than an oversight. e-sat.ly stores tens of millions of links, and the date window is what keeps these screens responsive. If you need to find one specific old link, search for its short code — that lookup ignores the date range entirely and goes straight to it.