Skip to main content

Marker.io for Digital Agencies

Welcome to your starting point with Marker.io if you are a Digital Agency

Updated today

Marker.io for Digital Agencies

Most agencies use Marker.io in three ways across a project's lifecycle. Here's how to set up each one.

1. Internal QA on staging. Your team catches issues before the client ever sees the site. Developers get screenshots, session replays, console logs, and browser details with every report.

2. Client feedback on staging. Your client reviews the staging site and submits feedback without leaving the page. No more email threads, spreadsheets, or "can you send me a screenshot?"

3. Ongoing feedback on the live site. After launch, your client can still report issues on the live site while the feedback button stays hidden from the public.

Each section below walks you through the setup step by step.


1. Internal QA on your staging site

Before your client ever sees the site, your team needs to catch issues. Marker.io makes this fast because every report comes with annotated screenshots, console logs, session replays, and browser details, so your developers spend less time asking "what browser were you on?" and more time fixing things.

Setting up your website project

Create a new website project and enter your staging URL (e.g. staging.clientsite.com) and a display name.

Connect your integration. This is where you link Jira, Trello, Asana, Linear, or whatever your team uses. Every piece of feedback will land there automatically with all the technical details attached. See our integration helpdesk area for setup guides.

Installing the widget

The JavaScript snippet is the recommended approach for staging sites. Copy the snippet and paste it before the closing </head> tag in your staging site's HTML.

If you use WordPress, we have a dedicated plugin. If you prefer npm, you can install the SDK with npm i @marker.io/browser.

Invite your team

Invite your developers, designers, and project managers as members. Members get the full reporting form with fields like issue type, priority, and assignee. They also see all the technical details (console logs, network requests, session replays) on every piece of feedback.

Go to your website project and click Invite to add team members by email.

How it works in practice

Your QA person spots a broken layout on the staging site. They click the Marker.io button, annotate the screenshot, type a quick description, and submit. That's it from their side.

On your end, the feedback arrives in your project management tool with the annotated screenshot, the exact page URL, browser and OS info, console logs, and a session replay video showing the steps the reporter took just before submitting. Your developer has everything they need to reproduce and fix the issue without a single follow-up message.

When the fix ships and the developer marks it resolved, the reporter gets notified automatically.

You can view and manage feedback both in Marker.io and directly in your integration. Your developers might never need to open Marker.io at all if they prefer working in Linear, Jira, or whatever tool you've connected. The screenshot, session replay, technical details, and comments all sync across.


2. Client feedback on your staging site

This is probably the most popular use case for agencies. The build is ready for review, and you need your client to go through the staging site and tell you what needs to change. Marker.io lets them do that without leaving the website, and without you drowning in emails, spreadsheets, or Slack messages.

Setting up the project

You can use the same website project from your internal QA, or create a separate one if you prefer to keep internal and client feedback apart. Both approaches work. Some agencies prefer separate projects so client feedback doesn't mix with internal tickets.

Keep the form simple for clients

Your clients probably aren't developers, so don't overwhelm them with fields. Go to your website project settings, then Widget, then Guest form. We recommend keeping it minimal: just a description field is often enough.

A useful trick is to preset fields behind the scenes so your client never sees them. For example, you can preset the assignee to a specific person on your team so every piece of client feedback automatically gets routed to the right person. You can also preset the priority to medium so there's always a priority attached without the client having to think about it. These preset fields stay hidden from the reporter but show up on the ticket.

If you only have one issue type (e.g. just "bug" or just "feedback"), remove the others. That's one less field on the form.

The technical details (browser, OS, console logs) get captured automatically regardless of how simple you make the form.

Restrict the widget to your staging domain

You don't want the Marker.io button showing up on the live site. Go to Widget, then Security, and select Restrict to listed domains. Add only your staging domain. You can also restrict who sees the button. Go to Widget, then Button, then Button targeting, and select Only Marker.io Members & Guests. This means only people you've explicitly invited will see the feedback button.

Invite your clients

Click Invite and enter your client's email addresses. They'll receive an email letting them know they've been invited to report feedback on the project.

When they click through, they land in Marker.io and see a "Report Issues" button that takes them straight to the website. From there they can start reporting immediately. They don't need to figure out any setup, they just click and go.

What your client sees

Your client opens the staging site, sees the Marker.io button, clicks it, and gets a screenshot they can annotate. They mark up what's wrong, type a description, and hit submit. The whole thing takes about 10 seconds.

They can also track the status of everything they've reported, see your replies, and add follow-up comments or files. When you reply to their feedback inside Marker.io (or your integration), they get an email and can respond directly from there.

If you've invited multiple people from the same client company, they can all see each other's reported issues. This is useful when you have several stakeholders reviewing the site, because everyone can see what's already been reported, check the status of open issues, and add comments without duplicating reports. Each client gets a clean overview of all their team's feedback in one place.

What you see

Every piece of client feedback arrives with the annotated screenshot, the page URL, and all the automatically captured technical data. If you've connected an integration, it lands directly in Jira (or wherever) as a ticket.

The session replay is particularly useful here because clients often struggle to explain what they did before something went wrong. The replay shows you exactly what happened.

When your team resolves the issue in your project management tool, the status syncs back to Marker.io and your client gets notified that it's been taken care of. No manual follow-up needed.


3. Ongoing feedback on your live site

The site is launched, but the work isn't over. Your client will spot things on the live site that need updating, whether that's content changes, layout issues on specific devices, or features that aren't behaving as expected.

The challenge here is that you don't want every visitor to your client's website seeing a feedback button. There are a few ways to handle this.

The best approach is to install the JS widget on the live site (the same snippet from staging) and then control who sees the button. This way your client gets the full experience, including session replays and console logs, and it works on mobile too. Here are your options for controlling visibility.

Option A: Show the button only to Marker.io members and guests (recommended)

This is what most agencies go with. Go to Widget, then Button, then Button targeting, and choose Only Marker.io Members & Guests.

The widget script is on the site, but the button only appears for people who are logged into Marker.io and have been invited to your project. The public sees nothing. Your client just needs to be logged into Marker.io in their browser and the button appears automatically, on desktop and mobile. A note on pageviews: With this option, the widget script still loads for every visitor, which counts toward your plan's monthly pageview limit. If the live site gets significant traffic, consider Option C (conditional loading) to keep usage down.

Option B: Show the button via a secret URL parameter

Another approach is to hide the button behind a URL parameter. Go to Widget, then Button, then Button targeting, and choose Only show via URL parameter. You can set a custom secret key.

Your client then accesses the site with something like ?marker=yourSecretKey appended to the URL, and the feedback button appears. Without that parameter, nobody sees it. This is handy because you can just send your client a bookmarkable link. Same pageview note applies here: the widget script still loads for everyone.

Option C: Conditional loading based on user role

If you have access to the site's backend, you can wrap the Marker.io snippet in a conditional so it only loads for specific user roles (e.g. staff, admin, or client accounts). This is the most flexible approach and keeps pageview usage minimal since the script only loads for the people who need it.

Option D: Browser extension (if you can't touch the code)

If for some reason you can't add the snippet to the live site, your team can use the Marker.io browser extension instead. The extension injects the widget onto any page without touching the site's code. Keep in mind this is desktop only and each person needs to install it, so it's less ideal for clients. But it works in a pinch.

What works best?

For most agencies, Option A (members and guests only) is the way to go. Your client gets the full widget experience on desktop and mobile, session replays and console logs are captured, and the public never sees the button.

If the site gets heavy traffic and pageview usage is a concern, Option C (conditional loading) gives you the most control.


Connecting your integration

Whichever use case you're starting with, connecting your project management tool makes everything run more smoothly. Feedback goes straight into your existing workflow, status changes sync both ways, and the loop between reporter and developer closes automatically.

We integrate with Jira, Trello, Asana, Linear, GitHub, GitLab, Azure DevOps, Shortcut, Teamwork, and more. See the full list and setup guides in our integration helpdesk area.

Tip: We recommend creating a dedicated service account (e.g. "Marker.io Bot") for your integration rather than using a personal account. This keeps things clear and avoids feedback appearing to come from one person. See our guide on creating a service account.


Quick recap

Use case

Widget install

Who sees the button

Best for

Internal QA on staging

JS snippet on staging site

Your team (members)

Catching issues before client review

Client feedback on staging

JS snippet on staging site

Members and invited guests

Client review rounds

Live site feedback

JS snippet on live site

Members and guests (button hidden from public)

Post-launch changes and ongoing maintenance


Any questions, hit the chat button and we'll help you get set up.

Did this answer your question?