Experience URLs for an app

Build the address your app loads into the WebView, and control which experience, language, and participant it opens as.

1 min read

Build the address your app loads so the WebView opens exactly the experience you intend. This page is for your mobile developer.

The address to load

What you wantAddress
A campaign page offering several experienceshttps://experience.example.com/<campaign-public-link>?embedded=1
One specific experience, opened directlyhttps://experience.example.com/<campaign-public-link>?c=<touchpoint-id>&embedded=1
A specific space inside an experiencehttps://experience.example.com/<campaign-public-link>?s=<space-id>&embedded=1

Include embedded=1. It tells OmniLab it is running inside a container rather than owning the window, which changes its layout and navigation.

Parameters

ParameterControls
embeddedEmbedded mode — set to 1
cWhich touchpoint opens
sWhich space opens
lLanguage — lock it to your app's current language rather than letting the experience decide
vVariant
fciWhich customer is signing in

Set l from your app's language setting. An app that is already in French showing an experience in English is the most common complaint on this integration, and it is one parameter.

Use fci when your app already knows who the participant is. It opens the experience as that person, with no sign-in screen inside the WebView — which is the whole reason to embed rather than link out. It requires customer accounts to be configured first; see Pass a known customer into an experience.

Building the address in the app

Compose it in the app rather than hardcoding a finished string, so language and participant follow the app's state:

https://experience.example.com/<campaign-public-link>
  ?embedded=1
  &c=<touchpoint-id>
  &l=<the app's current language>
  &fci=<the signed-in member's identifier>

Percent-encode every value you interpolate. A loyalty identifier with a space or a slash in it produces an address that silently opens the wrong thing.

On this page