Docs/Forwarded Links
Documentation

Forwarded Links

Public, device-aware URLs that carry developer-defined JSON payloads to native mobile apps.

What is a Forwarded Link?

A Forwarded Link is a URL hosted at {workspace}.forwarded.link/{slug}. When a mobile user visits it, Forwarded detects the platform (iOS, Android, desktop) and serves an appropriate landing page. On iOS, the landing page includes a Smart App Banner. On Android, it includes a Play Store button with the referrer string encoded.

Visiting the link creates a Forwarded Session — a server-side record that holds your payload, a signed token, and lifecycle metadata. The session ID and token are embedded in the native path (app-argument or referrer) so the SDK can find them after install.

Because sessions are server-side, the payload cannot be tampered with by modifying the URL or the native token. The token is a signed reference to the session — not the payload itself.

Link configuration

A link has: a slug (unique within the workspace), an associated app registration, a JSON payload (up to 8KB), a landing page configuration (title, description, CTA), an optional expiry timestamp, and an optional total visit limit.

The landing page is independently editable without changing the payload. This separation lets marketing teams update copy, hero images, and CTA text while the payload schema stays under engineering control.

When you update a link's payload, new visits create sessions with the updated payload. Sessions created before the update retain their original payload — in-flight sessions are not retroactively updated.

QR code support

The Forwarded dashboard generates a QR code for every link. The QR code points to the public URL, so platform detection happens at scan time — not at QR generation time. A single QR code works for both iOS and Android visitors.

For physical acquisition campaigns, create one link per booth, event location, or physical activation point. This gives exact per-location attribution without separate QR infrastructure. Update the landing page if the campaign changes — the QR URL stays the same.

Expiry and visit limits

Links can be configured to expire at a specific timestamp or after a maximum number of visits. Expired or exhausted links serve a customizable fallback page (or redirect) rather than creating new sessions.

Time-limited expiry is useful for partner offers with a campaign end date. Visit limits are useful for single-use invite links that should become invalid after the first claim.