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

# Link

The fastest way to connect users with your Quarterzip agent. Each agent gets a dedicated URL — embed it anywhere and users can start a guided call in seconds.

<Frame>
  <img src="https://mintcdn.com/quarterzip/3eoe3T3Ys__wuR4v/images/image.png?fit=max&auto=format&n=3eoe3T3Ys__wuR4v&q=85&s=8783bdeb1a3382c55fdb4902c541e9d1" alt="Image" width="1080" height="642" data-path="images/image.png" />
</Frame>

## Where to embed your link?

Your agent URL can be placed anywhere users interact with your product. Common entry points:

* **In-product button -** A contextual help button inside your application
* **Email CTA -** Onboarding, re-engagement, or expansion emails
* **Marketing site -** Landing pages, pricing pages, or demo CTAs
* **Help centers -** Provide 1:1 personalized support

## How does the link work?

When a user clicks your agent link, they are taken through the following steps:

1. **Landing page -** The user lands on your agent's page and enters their email address to begin the session.
2. **Microphone permissions -** First-time users are prompted to enable microphone access. A quick-action button guides them to their browser's permission settings to minimise friction.
3. **Call starts + picture-in-picture -** Once permissions are granted, the call begins.
4. **Agent introduction -** The agent checks audio and asks what the user needs. Depending on configuration, it may prompt the user to begin working through a predefined agenda or set of goals.
5. **Picture-in-picture -** When you navigate away from the page hosting the call, a draggable picture-in-picture (PiP) component appears. It holds media controls so users can manage the session while navigating your product — without returning to the call URL.
6. **Screen sharing -** The user is prompted to share their screen and open your product. Quick-action buttons are provided to make this step seamless. Users can share a tab, a window, or their entire screen.
7. **Guided session -** The agent guides the user through goals. At any point, users can pause to ask questions, request deeper clarification, or skip a goal.
8. **Call summary -** When the session ends, either after completing all goals or when the user is finished, the agent summarises what was covered.

<Tip>
  #### **Want to re-engage users after calls?**

  Re-engage users after a session by configuring post-call emails in the **Customize** tab of your agent. Each email can include:

  * Call summary
  * Goals completed
  * Remaining goals
  * Link back to agent
</Tip>

## How can the agent see the screen?

Quarterzip sees the user's screen the same way a screen-share works in a video call. This gives the agent real-time visual context so it understands what the user is looking at and can provide relevant, step-by-step guidance.

Users can share and unshare their screen at any time. Quarterzip never captures screen content without an active share.

## Does the link support users with tasks that exist outside of our product?

The link does support users with workflows in third-party tools. The picture-in-picture component is independent of the call URL. It persists as users navigate away from your product, and can be dragged across windows or monitors.

Because the agent can see the user's screen, it can assist with workflows in third-party tools, provided the agent has been configured with the relevant knowledge.

***

## Embedding the link in a button

The most common pattern is a plain anchor tag styled as a button. Keep the CTA copy action-oriented and clear that it starts a voice call:

```html theme={null}
<a href="https://app.quarterzip.ai/a/YOUR_AGENT_ID" target="_blank" rel="noopener noreferrer">
  Talk to an agent
</a>
```

<Tip>
  See [Best Practices](/best-practices) for guidance on CTA copy — phrases like "Talk to an agent" or "Join a call" consistently outperform generic labels like "Get help".
</Tip>

***

## Using the link in email CTAs

Quarterzip links work anywhere a URL is valid — including email. Drop the link into onboarding sequences, re-engagement campaigns, or post-trial follow-ups:

```html theme={null}
<a href="https://app.quarterzip.ai/a/YOUR_AGENT_ID">
  Book a 1:1 onboarding session →
</a>
```

Users click from their inbox and land directly on the agent page, ready to start a call. No login or account required.

***

## Linking from a help center

Add the agent link to help center articles as a contextual escalation path. Place it at the top for high-complexity topics, or at the bottom as a fallback:

```markdown theme={null}
Still stuck? [Talk to an onboarding agent](https://app.quarterzip.ai/a/YOUR_AGENT_ID) for live, step-by-step help.
```

***

## Linking from in-app empty states

Empty states are high-intent moments — the user is on a feature page but hasn't taken action yet. A Quarterzip link here offers guided help exactly when it's needed:

```html theme={null}
<div class="empty-state">
  <h3>No reports yet</h3>
  <p>Not sure where to start? An agent can walk you through it.</p>
  <a href="https://app.quarterzip.ai/a/YOUR_AGENT_ID" target="_blank">
    Get a guided walkthrough
  </a>
</div>
```

<Tip>
  Pair empty state links with a more persistent entry point (e.g. a sidebar button) so users can return to the agent after their first session.
</Tip>

***

## Sharing links with multiple stakeholders

Because the Quarterzip link requires no login, it's easy for a buyer champion to forward it to other stakeholders. Anyone with the link can start a session. This makes it well-suited for:

* **Sales rooms** (Arrows, Dock) — embed the link so champions can share it internally
* **Proposals and decks** — add the link as a resource for evaluators who want a live demo
* **Slack or Teams messages** — paste the link directly into a channel for team onboarding

***

## Passing context to the agent

The agent link accepts a `context` query parameter — a free-text string the agent receives at the start of the call. Use it to pass information about the user so the conversation can be personalised without the user having to repeat themselves.

Use cases include:

* **Current plan** — so the agent knows what features are available
* **Country or locale** — for region-specific guidance
* **Handover notes** — if the user is being transferred from another tool like Intercom

The value must be **URI-encoded** and is capped at **2,000 characters**.

```javascript theme={null}
const context = `Plan: ${user.plan}. Country: ${user.country}. Signed up: ${user.createdAt}.`;

const agentUrl = new URL('https://app.quarterzip.ai/a/YOUR_AGENT_ID');
agentUrl.searchParams.set('context', context);

// e.g. https://app.quarterzip.ai/a/YOUR_AGENT_ID?context=Plan%3A%20Pro...
```

`URLSearchParams.set()` handles URI encoding automatically. If you're building the URL manually, use `encodeURIComponent()`:

```javascript theme={null}
const url = `https://app.quarterzip.ai/a/YOUR_AGENT_ID?context=${encodeURIComponent(context)}`;
```

<Info>
  Context is capped at **2,000 characters**. Keep it concise — a few key facts are more useful to the agent than a large block of unstructured text.
</Info>

***

## Passing user identity via URL parameters

The Quarterzip agent page reads `userId` and `userDisplayName` from the URL query string. This lets you pre-identify users before they start a call, so their details are captured in the call log without requiring them to type anything.

| Parameter         | Description                                                                           |
| :---------------- | :------------------------------------------------------------------------------------ |
| `userId`          | The user's unique identifier — typically their email address or your internal user ID |
| `userDisplayName` | The user's name or username to display in the call log                                |

Append them to your agent link wherever you're generating it server-side or in your app:

```javascript theme={null}
const agentUrl = new URL('https://app.quarterzip.ai/a/YOUR_AGENT_ID');
agentUrl.searchParams.set('userId', user.email);
agentUrl.searchParams.set('userDisplayName', user.displayName);

// e.g. https://app.quarterzip.ai/a/YOUR_AGENT_ID?userId=jane%40company.com&userDisplayName=Jane+Smith
```

The agent page uses the following logic to resolve identity — falling back to URL params for anonymous or unauthenticated users:

```javascript theme={null}
const userExternalId = auth.currentUser?.isAnonymous
  ? page.url.searchParams.get('userId')
  : auth.currentUser?.email;

const userDisplayName = auth.currentUser?.isAnonymous
  ? page.url.searchParams.get('userDisplayName')
  : auth.currentUser?.displayName;
```

Authenticated users are always identified by their account. Anonymous users — such as those arriving from an email link or a sales room — are identified by the values you pass in the URL.

<Tip>
  This is especially useful when sharing agent links in emails or enablement platforms where you know who the recipient is but they won't be logged in to your product.
</Tip>
