---
title: "Dynamic slugs and multi-segment short links"
description: "Short links can now span several path segments, and on a custom domain a slug like p/{serial} or 01/{gtin}/10/{batch} answers every value and saves it on the visitor. GS1 Digital Link QR codes work out of the box."
canonical: "https://linkbreakers.com/help/article/dynamic-slugs-and-multi-segment-short-links"
last-updated: 2026-10-30
---

# Dynamic slugs and multi-segment short links

> Short links can now span several path segments, and on a custom domain a slug like p/{serial} or 01/{gtin}/10/{batch} answers every value and saves it on the visitor. GS1 Digital Link QR codes work out of the box.

## Short answer

Two changes to short links. First, a slug can now have several segments, such as `menu/lunch`, on any domain. Second, on a custom domain a slug can be **dynamic**: segments written in braces, like `p/{serial}` or `01/09506000134352/10/{batch}`, match any value, and the value is saved on the visitor as an attribute. One link then covers thousands of printed codes, and a condition can route on the value from the first scan. See [dynamic slugs](/help/article/dynamic-slugs-capture-data-from-the-url-path).

## What we shipped

### Slugs with slashes

Slugs were one word. They can now be a path: `spring/poster-a`, `menu/lunch`, `01/09506000134352`. Each segment follows the usual slug rules. Visit pages and contact cards work under them too.

### Dynamic slugs on custom domains

On a custom domain, write a variable segment as `{name}`. A scan of `qr.bistro.com/menu/12` on the link `menu/{table}` opens that link and saves `table = 12` on the visitor. The value:

- is visible to [visitor data conditions](/help/article/how-to-use-visitor-data-conditions) during the same scan
- appears on the visitor's profile, timeline and exports
- travels in Slack notifications and webhooks

Exact slugs still answer first, so `menu/vip` can keep a workflow of its own. Two dynamic slugs that could match the same address are refused when the link is created.

### GS1 Digital Link

The GS1 standard for QR codes on packaging puts the product number and batch in the address: `/01/{gtin}/10/{batch}`. With a dynamic slug, one link per product answers every batch, saves the batch, and can route a batch under recall to its own page. See [GS1 Digital Link QR codes with Linkbreakers](/help/article/gs1-digital-link-qr-codes-with-linkbreakers).

### In the API, MCP, CLI and SDKs

Send the pattern as the link's `shortlink` with a `custom_domain_id`. Agents connected over MCP can create dynamic links and read the captured values back from visitor profiles.

## Limits and caveats

- Dynamic slugs need a custom domain. The shared domain accepts slashes but no variables.
- Each variable captures one path segment. Query-string values are not saved.
- A link's slug and domain cannot be changed after creation.

## Frequently asked questions

### Which plans include it?

Every plan with a custom domain, and the Free plan includes one.

### Does it slow down my existing links?

No. Exact slugs are matched first, exactly as before. Dynamic slugs are only compared when nothing matches exactly.

### Can I turn an existing link into a dynamic one?

No, the slug is fixed once printed codes depend on it. Create a new link with the pattern.
