> ## Documentation Index
> Fetch the complete documentation index at: https://docs.userjourneys.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Invite links

> Configure Universal Links and App Links so UserJourneys interview invites open in-app when supported and fall back to web otherwise.

Send normal HTTPS links from Intercom, email, push, SMS, or any other channel.

```text theme={null}
https://app.userjourneys.ai/i/{inviteCode}
```

`/i/` is the canonical public participant path: it opens the web interview in a
browser and is intercepted in-app when the SDK is installed. The app also
intercepts `https://app.userjourneys.ai/interviews/{inviteCode}` as a deep link,
but that prefix has no public browser route — prefer `/i/` for any link a
recipient might open in a browser.

The link contains routing context only. It does not contain conversation tokens,
voice agent ids, room ids, or private Interview config.

## App handling

Configure your app for Universal Links on iOS and App Links on Android for
`app.userjourneys.ai`, then forward incoming URLs to the SDK.

For iOS, enable the associated domain:

```text theme={null}
applinks:app.userjourneys.ai
```

For Android, add an HTTPS intent filter for:

```text theme={null}
https://app.userjourneys.ai/i/*
https://app.userjourneys.ai/interviews/*
```

UserJourneys must also authorize your app on the `app.userjourneys.ai` domain.
Provide:

* Apple Team ID and iOS bundle ID.
* Android application ID and SHA-256 signing certificate fingerprint.

If Android uses separate debug, staging, and production signing keys, provide
the fingerprints for the builds that should open production invite links.

```tsx theme={null}
Linking.getInitialURL().then((url) => {
  if (url != null) void interviews.handleLink(url);
});

Linking.addEventListener("url", (event) => {
  void interviews.handleLink(event.url);
});
```

## Fallback behavior

The same link works when the app is not installed. The browser opens the web
interview route.

When the app is installed and supported, UserJourneys returns a signed WebView
launch URL and the SDK opens it in-app. When the app is unsupported or the
server chooses not to open in-app, UserJourneys returns an external browser URL
and the SDK opens it with React Native `Linking.openURL`.

## Intercom

Intercom is a delivery channel in this setup. It can send the HTTPS invite link,
but it does not need to know the interview runtime, WebView URL, or voice
configuration.

## Replacing Intercom delivery

If your app uses synced audience prompts, Intercom is not required to get the
user into the interview. UserJourneys receives synced audience members from the
configured integration, the SDK fetches pending prompts for the current
`referenceId`, and the native prompt opens the in-app WebView when the user
accepts.

Keep HTTPS invite links for channels where you still want an explicit message:
email, push, SMS, Intercom, or support workflows. The same respondent short
code preserves attribution in-app and in the browser fallback.
