Skip to main content

Link anatomy

This page explains what a link consists of and how its values resolve. For click-by-click steps, see Create & share a link and Manage links; for how the destination is chosen at click time, see Routing & fallbacks.

The composed URL​

Every link resolves to a short URL with three parts:

https://<domain>/<orgKey>/<shortCode>
  • Domain: your verified custom domain, or the OptoLink default domain if you have none. Zero verified domains is not a blocker: links work on the OptoLink domain until you add one.
  • orgKey: your organization's URL-safe identifier. This is why short codes only need to be unique within your organization: acme/promo and globex/promo are different links.
  • shortCode: either one you chose (3–100 characters, letters, digits, _, -) or an auto-generated 8-character code.
FieldWhat it doesInherited?
Destination pathThe in-app route the link opensNo
Short codeThe slug in the URL, unique per orgNo
DomainWhich of your verified domains the URL uses — chosen at creationVia template
ChannelThe install-source attributionSnapshot at creation
ParametersKey–value pairs passed to the app and used in matchingMerged with template
AttributionDeferred delivery on/off, match window (default 24h)Via template
Web fallbackWhere to send devices without the appVia template
UTM valuesSource, medium, campaign, term, contentVia template
Social previewOpenGraph title, description, imageVia template
TagsFree-form labels for organizing and filteringNo
ExpiryA date after which the link stops resolvingNo

"Inherited" means the field is stored empty on the link and takes its value from the attached template. A field you override is stored on the link and wins.

How inheritance resolves​

A link attaches to one template (a system starter or one your org saved). When OptoLink needs a field's effective value, it takes the first of:

  1. The value set on the link (your override)
  2. The template's value
  3. The built-in default

The same rule applies to parameters, with a twist: parameters merge rather than replace. Template parameters and link parameters combine key by key, and a link's value wins per key, so you can inherit a template's full parameter set and override two of them.

The consequence is deliberate: template edits propagate live. Change a template's OG image or match window and every link that inherits that field picks it up on the next read, with no re-publishing step. Override the field on a link when you want it frozen.

One field breaks the pattern: channel is snapshotted onto the link at creation and never tracks the template afterwards, because the install source of a campaign shouldn't shift under it.

Seeing where a value came from​

The create form's preview (and the detail page) shows the effective values with a provenance badge on each: Override (set on the link itself), template, org, or default. When a link looks "wrong", the badge tells you which layer set it (often a template override you forgot about).

Defaults when nothing is set​

  • Deferred deep linking: off
  • Match window: 24 hours
  • Social preview fields: your organization's OG defaults

See Deferred deep linking & the match flow for what these control at click time.