Skip to content
Docs

Preview deployments for retail campaign review

Use preview deployments so merchandising, brand, and engineering review a retail campaign on one live URL before launch. Learn about preview comments and deployment protection.

Vercel

Vercel Preview Deployments give every push its own URL on the same infrastructure as production. For a retail team, that URL is where merchandising, brand, and engineering agree on a promo page or a product detail page (PDP) change before any shopper sees it.

This guide covers who gets which URL, how reviewers leave and resolve feedback, and which settings keep unreleased pricing out of public view.

Copy link to headingWhat preview deployments change for a retail campaign review

If your team reviews campaigns on one shared pre-production environment, that works until two changes need review on the same day. While merchandising approves promo copy, brand waits to push a banner revision, and engineering can't validate a PDP layout change on an environment holding a half-finished promotion. A long-lived staging setup still has its uses, but campaign review isn't one of them.

Vercel creates a preview deployment when you push a commit to a branch other than your production branch, open a pull request on GitHub, GitLab, or Bitbucket, or run vercel without the --prod flag. Each preview is a full deployment with its own URL, so reviewers work through the banner fix and the PDP layout change at the same time. For Git deployments, share the branch URL during review; it follows the latest deployment from that branch. Record the unique deployment URL for sign-off so the approved build is identifiable.

Copy link to headingWhat you need before your first campaign preview

The loop depends on five requirements, and each is faster to confirm now than to debug during launch week:

  • A Vercel project connected to Git: Vercel deploys every push to a connected GitHub, GitLab, or Bitbucket repository. The first deployment of a new project is always a production deployment, and preview rules apply from the second deployment on.
  • A Vercel account for everyone who will comment: Vercel turns comments on by default for all preview deployments, on every plan, free of charge, and each commenter signs in with their own account.
  • A Deployment Protection decision: Campaign previews carry unreleased pricing and stock keeping units (SKUs), so choose a Deployment Protection method before you share a URL.
  • Incremental Static Regeneration (ISR) on pages that fetch campaign copy: Draft Mode requires ISR on any page you want to review with unpublished content management system (CMS) content.
  • A CMS integration that supports Content Link: Content Link lets a reviewer jump from an element on the preview into the matching CMS field.

If your storefront runs a Next.js frontend alongside a separate API or a containerized service in a Vercel Services project, one preview can include the frontend and backend changes. Separately hosted services need their own preview deployment and routing setup.

Copy link to headingHow to share a preview URL with merchandising, brand, and agency reviewers

Once a preview builds, Vercel comments on the pull request with the deployment URL and an Add your feedback link that signs the reviewer in and opens the deployment for them. Team members with project access can start commenting there. Reviewers outside the team need either an invite or a Shareable Link.

Inviting reviewers individually is the recommended path for external collaborators:

  1. Select Share in the Vercel Toolbar menu, or the Share button next to the deployment in the dashboard.
  2. Enter the email addresses of the reviewers you want to invite, and add a message if it helps.
  3. Confirm which link you're sending. The dashboard modal defaults to the branch link, and the dropdown arrow switches it to the commit link.

Inviting a reviewer doesn't add them to your Vercel team, and you can revoke access from the same dialog. Pro and Enterprise teams can invite multiple collaborators, Hobby one at a time. The alternative is a Shareable Link, which reaches a protected deployment through a query string parameter and lets the reviewer comment. Set the Share dropdown to Anyone with the link and copy the URL from the modal, not the address bar. Every plan includes Shareable Links, with one per Hobby account.

Copy link to headingHow to run the comment and approval loop on a preview deployment

Reviewers work on the page itself rather than trading annotated screenshots.

Copy link to headingLeave feedback pinned to the live page

A reviewer presses c on the preview to enable the comment placement cursor, then clicks an element or highlights text to open a thread. Comments support Markdown, emoji entered with :, and @ mentions that notify the named team member. Reviewers with the browser extension installed can also click and drag to attach a screenshot of the region they're describing.

Every comment carries the reviewer's session details, so you can chase a layout problem that won't reproduce on your own machine. Select the screen icon beside a commenter's name for their browser, operating system, screen dimensions, device pixel ratio, and the deployment they were viewing. If a reviewer reports that they can't see any comments at all, the Vercel Toolbar isn't active. Clicking it activates the toolbar, and reviewers with the browser extension can set Always Activate in Preferences to keep it that way.

Copy link to headingReview unpublished campaign content on the same preview URL

Unpublished campaign copy sits in the CMS while the code that renders it sits in the pull request.

Three Vercel Toolbar options close that gap:

  • Draft Mode: Select Draft Mode in the toolbar menu to bypass the ISR cache and fetch the current draft from your CMS at request time. The toolbar turns purple while it's on, and it needs no rebuild.
  • Edit Mode and Content Link: Select Edit Mode to highlight each element that maps to a CMS field. Hovering an element shows a link in its top-right corner that opens that field for editing, with no code changes needed on the page.
  • Flags Explorer: Override a promotional feature flag for your own browser session without touching the shared configuration. Vercel doesn't persist those overrides by default, and Save Recommendations offers them to any team member who opens that branch.

Before using Draft Mode, configure the application to detect it and fetch unpublished content from the CMS. For this Vercel Toolbar workflow, enable ISR on the relevant pages and keep CMS credentials server-side.

A reviewer outside your Vercel team can't enable Draft Mode or see draft content, even with a draft URL, so unpublished copy needs a reviewer who is on the team or invited to it.

Copy link to headingSync comment threads to Slack and your issue tracker

Merchandising and brand reviewers rarely open the Vercel dashboard, so route the thread to where they already work. Install the Vercel app for Slack, then send /vercel subscribe in the channel that owns the campaign. Every new comment then opens a matching Slack thread, and replies on either side appear on both.

When a comment needs tracking beyond the campaign, select your issue tracker's icon on the thread to open the Convert to Issue dialog. Linear, Jira Cloud, and GitHub work once you install the matching integration, and the issue carries the discussion and images with it. Convert only after the discussion wraps up, because Vercel resolves the thread on conversion and won't let anyone reopen it.

Copy link to headingCheck unresolved comments before you merge

On any pull request with comments turned on, Vercel adds a check that flags unresolved threads. That check isn't required by default, which keeps a campaign hotfix from stalling. When a promo page needs sign-off before merge, mark the check as required through your Git provider's branch protection rules.

Engineers can also work threads from the terminal with the vercel comments command, which lists, inspects, resolves, and reopens threads, and takes --json for scripting.

Copy link to headingHow to lock down preview deployments and scope their environment variables

If Deployment Protection is disabled, anyone with the link can open a campaign preview, promotional mechanics and unlaunched SKUs included.

Copy link to headingChoose a Deployment Protection method

Each method solves a different reviewer problem, so pick based on who needs access:

Protection methodWho it stopsPlansTrade-off for campaign review
Vercel AuthenticationAnyone without access to the Vercel projectAll plansExternal reviewers need an invite or a Shareable Link
Password ProtectionAnyone without the passwordPro at $20 per project per month, included on Enterprise, not on HobbyYou have to get the password to outside reviewers securely
Trusted IPsAnyone outside the listed IPv4 addresses or rangesEnterpriseReviewers must be on an approved network, and Vercel Authentication has to run alongside it in preview

For automated traffic, Trusted Sources admits your continuous integration (CI) pipeline against a short-lived OpenID Connect (OIDC) token rather than a static secret.

Copy link to headingScope environment variables to the campaign branch

Protection controls who reaches the preview. Environment variables control which services that preview can call.

Apply three rules to the campaign branch:

  • Set safe Preview defaults: Use test credentials for the entire Preview environment. Add branch-specific overrides only when a campaign needs a different test account. Branch-specific values take precedence over Preview values with the same name.
  • Mark credentials as Secret: Choose the Secret type for passwords, API keys, and tokens. The value stays available to your deployments, members can't retrieve it after saving, and Vercel replaces values of 32 characters or longer with [REDACTED] in build logs. Team owners can also enable Separate Production Secret Values, which requires a Secret's Production value to differ from the values used for that key in Preview and every other environment.
  • Read VERCEL_TARGET_ENV for the environment name: VERCEL_ENV only ever returns production, preview, or development, so a custom staging environment reports preview and your code can't tell it apart from a pull request preview. Gate behavior on VERCEL_TARGET_ENV, which returns the environment's own name.

Variable changes apply to new deployments only, so redeploy the branch after editing them. Promoting a preview to production runs a complete rebuild with production variables, so the promoted deployment uses your production key.

Copy link to headingWhat breaks a campaign preview review, and how to fix it

Four causes account for most stalled campaign reviews.

Copy link to headingA fork pull request never produces a preview

Vercel requires authorization from you or a team member before deploying a pull request from a fork, which keeps your environment variables and OIDC token away from an untrusted branch. Review the fork’s code and authorize the specific deployment after checking what credentials and backend access it will receive.

Copy link to headingAn external reviewer can view the page but can't comment

A Shareable Link gets a reviewer onto the page without signing in, but they have to sign in to comment. Reviewers read that prompt as a paywall and drop the review, so tell them to create the free account before the link goes out.

Copy link to headingA live payment credential is still set on the campaign branch

Set PAYMENT_API_KEY to a test credential for the entire Preview environment. Use branch-specific overrides only when a campaign needs a different test account. Verify the payment provider is in test mode before running checkout.

Copy link to headingA production hotfix is queued behind preview builds

Queued builds run in the order they arrive, so a last-minute campaign fix can wait behind previews. Vercel runs on-demand concurrent builds at full concurrency by default, so queueing mostly hits Hobby projects and teams that turned concurrency off. Open Settings, go to Build and Deployment, and toggle Prioritize Production Builds to Enabled so production skips the preview queue.

Copy link to headingHow to verify the preview deployment loop before a campaign launch

Run this the week before Black Friday Cyber Monday (BFCM) rather than during launch week, so there's time to fix whatever fails.

Work through these six checks on a test branch:

  1. Push a commit and confirm the preview URL appears on the pull request.
  2. Ask an invited reviewer to sign in, open the protected preview, and leave a comment. In a separate signed-out browser, confirm the ordinary preview URL requires authorization. If using Shareable Links, test that flow separately.
  3. Resolve that comment and confirm the pull request check reports no unresolved threads.
  4. Reply to the thread in Slack and confirm the reply appears on the preview.
  5. Run vercel deploy --dry from the Vercel CLI, which has supported the flag since v54.17.2, to check the detected framework preset, included files, and ignored paths.
  6. Promote a preview to production in a test project and confirm VERCEL_TARGET_ENV resolves to production.

Each check exercises one setting, so a failure tells you which setting to change.

Copy link to headingNext steps

Once the loop works on one campaign, the same project settings cover the rest of the season.

Start a new project and connect your campaign repository. Vercel for retail covers the storefront and personalization work that sits alongside this.

Copy link to headingFrequently asked questions

What happens if a reviewer signs in but still can't comment on the preview?

They see a Request Access screen when they sign in to the Vercel Toolbar. Vercel notifies you by email and in the notifications widget, and you then open the Share dialog on that deployment, review the list under Access Requests, and allow or deny each request.

What's the difference between Draft Mode and a preview deployment?

A preview deployment is a build of your branch served at its own URL. Draft Mode is a browser-session toggle in the Vercel Toolbar that makes an ISR page fetch unpublished CMS content instead of its cached version. Vercel renamed it from Preview Mode back in Next.js 13.4, to stop people confusing the two.

Are Vercel Preview Deployments visible to search engines?

Vercel adds X-Robots-Tag: noindex to generated preview URLs by default. Custom domains assigned to non-production branches do not receive that header automatically, so configure and verify it separately. This controls search indexing; use Deployment Protection to restrict access to unreleased content.

What happens to a campaign's preview deployments after the pull request is merged?

Merging into the production branch triggers a production deployment built with production variables. That branch's previews stay reachable at their URLs until the retention policy removes them, which defaults to 180 days on Pro and Enterprise. The latest preview keeps its retention exemption only while the pull request is open.