---
title: "How to ask for a visitor's precise location"
description: "Add a Location request step to a QR code or link: visitors see a page asking them to share their precise location, and the workflow goes on along a Location shared or a Not shared branch. Only recorded when the visitor agrees in their browser."
canonical: "https://linkbreakers.com/help/article/how-to-ask-for-a-visitors-precise-location"
last-updated: 2026-10-28
---

# How to ask for a visitor's precise location

> Add a Location request step to a QR code or link: visitors see a page asking them to share their precise location, and the workflow goes on along a Location shared or a Not shared branch. Only recorded when the visitor agrees in their browser.

:::try-ai-prompt {"prompt":"Add a Location request step before the redirect that asks visitors to share their location so we can show the nearest store. Send people who share to the store finder and everyone else to the main website.","description":"Try adding a Location request step with the AI builder."}:::

## Short answer

To get a visitor's precise location, add a **Location request** step to the link's workflow. The visitor sees a page with your title, your description and a button (by default "Share my location"). Only when they tap the button does their browser show its own permission prompt. If they agree, Linkbreakers records the latitude, longitude and accuracy (in meters) their device reports and the workflow goes on along the **Location shared** branch. If they refuse, skip, or their device cannot give a position, it goes on along the **Not shared** branch.

Without this step, nothing changes: scan location stays approximate and comes from the IP address (country, region, city). Precise location is only ever recorded when the visitor agrees in their browser. The step is available on every plan.

## Quick summary

- A page step in the workflow editor's interaction steps, styled by your [page theme](https://linkbreakers.com/help/article/whats-a-page-theme), with a back button like other pages.
- Two branches: **Location shared** and **Not shared**. They can lead to the same next step or to different ones.
- The browser prompt only appears after the visitor taps your button. An optional skip button never triggers it.
- If the visitor's browser already allows location for the link's site, the position is read without showing the page.
- **Ask only once per device** lets a device that already shared go straight on along **Location shared**.
- Coordinates show in each visit's activity timeline, in Slack notifications and in webhooks, and can be saved on the visitor's profile.
- Also available through the API, the MCP server and the Assistant.

## Step-by-step

1. Go to [Links](https://app.linkbreakers.com/workspace/dashboard/links) and open the QR code or link. Its workflow opens.
2. Click the **+** button on the connector where you want to ask, for example between the scan and the destination.
3. In the interaction steps, choose **Location request** ("Ask visitors to share their precise location, with their permission").
4. Fill in the step:
   - **Title**: the heading of the page, "Share your location" by default.
   - **Description** (optional): tell visitors why you ask, for example to show the nearest store. This is the place to explain it.
   - **Button label**: the button that asks the browser, "Share my location" by default.
   - **Show a skip button**: adds a second button that takes the **Not shared** branch without asking the browser. Set its text in **Skip label** ("Skip" by default).
   - **Ask only once per device**: see below.
5. Click **Create Location Request**. When you insert it on an existing connector, both branches lead to the step that came next, so the visit carries on as before whatever the visitor chooses.
6. To send the two outcomes to different places, connect the **Location shared** branch and the **Not shared** branch to the steps you want.
7. Scan the code with your phone to check both paths: once sharing, once refusing or skipping.

## What the visitor sees

- A page in your page theme with your title, your description and your button. A back button is available like on other pages.
- When they tap the button, their browser shows its usual permission prompt. Before that tap, the browser is not asked.
- With the skip button turned on, they can tap it to move on without the browser being asked.

## How each branch behaves

### Location shared

The visitor tapped the button and agreed in the browser prompt. The step records the latitude, longitude and accuracy (in meters) that the device reports, then the workflow continues on the **Location shared** branch.

### Not shared

This is the step's else branch. The workflow continues on it when:

- the visitor refuses in the browser prompt,
- the device cannot give a position, for example no GPS fix, a timeout, a browser that does not support it, or a page that is not secure,
- the visitor presses the skip button.

### Unconnected branches

A branch that is not connected to anything sends the visitor to the link's [fallback destination](https://linkbreakers.com/help/article/what-is-a-fallback-destination-in-linkbreakers), like any other step.

### When the browser already allows location

If the visitor's browser already allows location for the link's site, the position is read without showing the page. This happens on every visit, so a returning visitor who allowed it before goes straight on along **Location shared**.

## Ask only once per device

With **Ask only once per device** turned on, a device that has shared its location on that step is not asked again. Later visits from the same device go on along **Location shared** without being asked, and the location is not captured again. Turn it off if you want a fresh position on every visit.

## Where the location shows

- **Activity timeline**: each visit shows the step's outcome, "Location Shared", "Location Refused", "Location Skipped", "Location Unavailable" or "Location Already Shared", with the coordinates, the accuracy and a Google Maps link.
- **[Slack notifications](https://linkbreakers.com/help/article/linkbreakers-slack-integration-qr-scan-notifications-for-your-team)**: the same details appear in the scan notification.
- **[Webhooks](https://linkbreakers.com/help/article/how-do-webhooks-work-in-linkbreakers)**: the outcome and coordinates are part of the visit journey.
- **Visitor profile**: switch on [save to visitor profile](https://linkbreakers.com/help/article/how-to-save-visitor-data-from-any-workflow-step) on the step and use `{{location.latitude}}`, `{{location.longitude}}` and `{{location.accuracy}}` as values. The saved coordinates can then be used in [visitor data conditions](https://linkbreakers.com/help/article/how-to-use-visitor-data-conditions) and appear in CSV exports of visitors.

There is no map or heat map of scans and no analytics widget for coordinates. The country, region and city in your analytics still come from the IP address.

## With the API, MCP and the Assistant

The step can be created like any other workflow step through the [Linkbreakers API](https://linkbreakers.com/help/article/how-to-use-the-linkbreakers-api), the [MCP server](https://linkbreakers.com/help/article/mcp-server-setup) or the Assistant.

- Event action: `EVENT_ACTION_LOCATION_REQUEST`
- Payload: `location_request` with `title`, `description`, `button_label`, `skip_enabled`, `skip_label` and `ask_once`
- Branches: `location` (Location shared) and `else` (Not shared), connected with the `workflow_steps_connect` MCP tool or the connect endpoint

## Privacy and consent

- Precise location is only ever collected when the visitor agrees in their browser. Linkbreakers never reads it any other way.
- Visitors can refuse the prompt, use the skip button if you show one, or later withdraw the permission in their browser settings.
- You, the business that owns the link, decide to ask. Say why in the description, and cover precise location in your own privacy notice. See [what GDPR means for your links](https://linkbreakers.com/help/article/what-is-gdpr-and-how-does-linkbreakers-handle-it).
- The Linkbreakers [Privacy Statement](https://linkbreakers.com/privacy) describes precise location shared with permission.

## Limits and caveats

- Browsers only offer location on secure (https) pages. All Linkbreakers links are https.
- The accuracy depends on the device. The step records the accuracy the device reports, so you can tell a precise fix from a rough one.
- Some visitors will refuse or skip. Make sure the **Not shared** branch leads somewhere useful.
- With **Ask only once per device**, later visits from that device do not update the position.
- There are no maps, heat maps or coordinate widgets in analytics.

## Frequently asked questions

### Does Linkbreakers now collect GPS on every scan?

No. Scan location is still approximate and IP-based by default. Precise location is only recorded on links with a Location request step, and only when the visitor agrees in their browser.

### What happens if the visitor says no?

The workflow continues on the **Not shared** branch. If you leave it unconnected, the visitor goes to the link's fallback destination.

### Can visitors skip without seeing the browser prompt?

Yes, if you turn on **Show a skip button**. Skipping takes the **Not shared** branch and never triggers the browser prompt.

### Is the Location request step on every plan?

Yes. It is available on every plan.

### Can I route visitors by their coordinates?

Save the coordinates on the visitor's profile with the step's save to visitor profile option, then use them in visitor data conditions.

## Sources

- Linkbreakers Location request step, editor and visitor page, checked in the product on 2026-10-28.
- MDN Web Docs, Geolocation API: https://developer.mozilla.org/en-US/docs/Web/API/Geolocation_API
- MDN Web Docs, secure contexts: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts

## Last reviewed

2026-10-28 by Laurent Schaffner.
