> For the complete documentation index, see [llms.txt](https://help.distro.so/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.distro.so/routing/click-router/install-and-test.md).

# Install and test a Click Router link

Copy the router's generated URL template, personalize it for the prospect, and check the final link before using it in a campaign. This is a link-based flow; it does not require the Form Router website script.

Before you start, complete the Click Router's identity mapping, fallback, event type, and publication. See [Click routing](https://help.distro.so/routing/click-router).

![Install Click Router dialog in dark mode with email-platform choices and a personalized HubSpot URL template.](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQA3GQNrIYVrPQ90NBwRa%2Fuploads%2Fhfd0KPUI96sxpKqoBue9%2Fclick-install-dark.png?alt=media\&token=c0e0373b-c085-49e1-a76f-ae80981884cc)

*The screenshot is a local test-workspace example. Copy your own production router's template, including its generated host and identifier.*

### Add the link to a campaign

{% stepper %}
{% step %}

#### Copy the platform template

Open the router's **three-dot menu → Install router**. Choose **HubSpot**, **Outreach**, **Klenty**, **Apollo**, **Pardot**, or **Mailchimp**.

Copy the URL template for a button's destination, or the HTML example for an email editor that accepts HTML. Use the instructions for the selected platform; their personalization syntax differs.
{% endstep %}

{% step %}

#### Check identity and URL encoding

The completed link needs **email** and **name**. An unresolved merge tag, missing name, or malformed email prevents the intended booking flow.

For example, the HubSpot template uses `email={{contact.email}}` and `name={{contact.firstname}}`. Verify the actual values produced by your email platform and its handling of empty contact properties.

URL-encode literal query values when building a link in your own application. A plus sign in an email should be encoded as `%2B`; spaces and ampersands in names also need encoding. Optional campaign values do not replace the required identity fields.
{% endstep %}

{% step %}

#### Test a rendered link

Preview the personalized content for a controlled test contact. Inspect the rendered destination, then open that link and confirm the prospect identity and expected scheduler.

Check both an existing CRM owner and a prospect who should use fallback. Verify available times, meeting details, and any configured confirmation redirect. Real link tests can create routing activity; completing a booking can trigger calendar and CRM actions. Use designated test details.
{% endstep %}

{% step %}

#### Use the verified link

Place the verified template in the campaign or application. When the router changes, save and **Publish** the new version, then recheck a representative link. Keep track of any deliberately pinned version. See [Router versions](https://help.distro.so/routing/router-versions).
{% endstep %}
{% endstepper %}

### Identity mapping and email aliases

![Link clicked settings in dark mode with required Email and Name mappings and Strip email suffixes.](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQA3GQNrIYVrPQ90NBwRa%2Fuploads%2FbfZ0kS1NhxUnkFbPA49r%2Fclick-identity-dark.png?alt=media\&token=49acd74b-510f-4ec4-a7ce-1a98c4f73087)

**Link clicked** maps URL identity into the CRM fields used for matching. **Strip email suffixes** converts an address such as `alex+demo@example.com` to `alex@example.com` before matching. It does not clean or remove campaign tracking parameters.

For an anonymous website visitor whose email and name are not yet known, use a [Form Router](https://help.distro.so/routing/form-router) to collect their details first.

### Common link problems

| Problem                                    | Next check                                                                                                                                           |
| ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| The Install option is unavailable          | Map both required CRM fields and save.                                                                                                               |
| The link contains braces or merge-tag text | Check the selected platform and inspect a real personalized preview.                                                                                 |
| A prospect's name is empty                 | Provide the platform's appropriate name property or fallback value.                                                                                  |
| A plus-address or name is malformed        | Check query-value encoding and the email-normalization setting.                                                                                      |
| A campaign still uses old behavior         | Check the active router version and any version pin.                                                                                                 |
| The link opens but has no slots            | Review host eligibility and calendars; use [Click Routing troubleshooting](https://help.distro.so/routing/click-router#troubleshoot-a-click-router). |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.distro.so/routing/click-router/install-and-test.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
