# URL Parameters

> Learn how to use URL parameters in PandaSuite to create deep links, personalize the user experience, and track marketing campaigns — no code required.

https://docs.pandasuite.com/essentials/project-properties/url-parameters/

**URL parameters let you pass information through a link to control your application: open the right screen, personalize content, pre-fill a form, or activate a language. No code, no extra server needed.**

```
https://app.pandasuite.com/abc123?session_name=demo&lang=fr
```

A parameter is a `key=value` pair added after `?`. Multiple parameters are separated by `&`. When the link is opened, PandaSuite makes them immediately available in your project via [data binding](https://docs.pandasuite.com/essentials/data/data-binding/).

> **Info**
>
> URL parameters work on sharing links, published web apps and PWAs, self-hosted
> web package exports, and iOS/Android apps with a [custom
> domain](https://docs.pandasuite.com/essentials/web-publishing/custom-domain/).

## Step 1: Declare the parameter

1. In PandaSuite Studio, click **Project** in the breadcrumb.
2. In the **Properties** panel, click **+ Add** in the **URL Parameters** section.
3. Name it exactly as it will appear in the URL (e.g. `lang`, `session_name`).
4. Set a **default value** if you want a fallback when the parameter is absent.

> **Warning: Case-sensitive**
>
> The name must exactly match the key in the URL: `lang` ≠ `Lang`

## Step 2: Use the value in your project

Anywhere in the project, open the **data binding** panel and follow the path:

`Project` → `Context` → `Launch` → `Parameter(s)` → *your\_parameter*

You can bind this value to any field: text content, the target screen of an action, a condition, and so on.

> **Info**
>
> Need to manipulate a complete link inside a binding? Use the
> [URL data type](https://docs.pandasuite.com/essentials/data/data-types/#url) and [URL
> functions](https://docs.pandasuite.com/essentials/data/functions/#url-functions). This page only covers
> incoming values already exposed in **Project** → **Context** → **Launch**.

## Use cases

### Deep link to a specific screen

The most common use case: open the app directly on a given screen.

1. Declare a `wid` parameter.
2. Add a **Project Launch** trigger at the project level.
3. Add a **Change Screen** action and bind the *Screen* field to `Parameter(s)` → `wid`.
4. [Copy the ID of the target screen](https://docs.pandasuite.com/essentials/layout/screens/#screen-id-and-direct-url) from the screen's context menu.
5. Build your URL:

```
https://app.pandasuite.com/abc123?wid=c6bd920408125e82000712
```

### Display personalized content

Bind the **Content** of a text block to the `session_name` parameter:

```
https://viewer.pandasuite.com/xyz?session_name=Welcome+Sophie
```

The text immediately displays "Welcome Sophie" when the link is opened.

### Activate the right language

1. Declare a `lang` parameter.
2. Add a [Condition](https://docs.pandasuite.com/essentials/components/condition/) component at the Project level.
3. Create a rule: if `lang == "en"` → **Change Language** action → English.

```
https://app.pandasuite.com/abc123?lang=en
```

### Pre-fill a form

Bind your form fields to parameters like `email`, `firstname`, etc. Useful for email campaigns where recipients arrive with their details already filled in.

### Track a marketing campaign (UTM)

Declare `utm_source`, `utm_campaign`, etc. and store them in variables or the [Datastore](https://docs.pandasuite.com/essentials/data/datastore/) for later use.

### Customize a presentation

[Template: Smart business presentation](https://pandasuite.com/templates/interactive-sales-proposal/)

[Image: Smart business presentation template: screens with the client Grow's logo and a cost estimate, fed by an Airtable customer base]

Each URL shows a different logo and values pulled from an Airtable database. [See the full tutorial](https://docs.pandasuite.com/tutorials/how-to/interactive-sales-proposal-template/)

## Best practices

- Use a **URL encoder** for values containing spaces or special characters.
- Never transmit sensitive data (passwords, tokens) in plain text in the URL.
- Document your parameters for your marketing teams and external partners.

## Related resources

- [Data Binding](https://docs.pandasuite.com/essentials/data/data-binding/)
- [Data types](https://docs.pandasuite.com/essentials/data/data-types/#url)
- [Functions](https://docs.pandasuite.com/essentials/data/functions/#url-functions)
- [Screen ID and direct URL](https://docs.pandasuite.com/essentials/layout/screens/#screen-id-and-direct-url)
- [Condition component](https://docs.pandasuite.com/essentials/components/condition/)
- [Custom Domain](https://docs.pandasuite.com/essentials/web-publishing/custom-domain/)
- [Sharing Link](https://docs.pandasuite.com/essentials/project-management/sharing-link/)
