All Collections
Use Cases
How to integrate into your web app
How to integrate into your web app

Getting started guide for SaaS, aka "Integrate with your web app."

Joe Scanlon avatar
Written by Joe Scanlon
Updated over a week ago

Here we will explore the main steps you need to implement, and we will highlight some recent changes we made at to simplify your website feedback journey.

Add a project

A project is where your users report their website feedback. A project can be created directly on without an integration, or you can integrate with your favorite issue tracker or project management tools.

To add a project, click "Create Project", enter your project name and the website where you'd like to collect feedback.

Select your preferred integration. If you don't use one of our integrations, you may continue without one.

If connecting to an integration, select an area within that tool to log your website feedback and select "Create project". See the below example using Jira.

See our integration helpdesk area for help setting up your integrations.


The next step is to connect the website/web app to

Widget Installation

You may install our widget in two different ways. You can use the standard JavaScript snippet installation or NPM to integrate natively. Find out more about each option below and choose which works best for your needs.

Install our widget using the JavaScript snippet

The JavaScript snippet installation is very straightforward if you have access to your source code. Copy the snippet code and place it above your website's closing </head> tag.

Install our widget via npm

To install using npm, run the following inside your project folder:

npm i -D

This will install the SDK locally and link it to your project dependencies.

Now load the widget in our app with the following commands:

import markerSDK from '';
const widget = await markerSDK.loadWidget({
project: 'abcd1234567890', // <- Your unique project ID

To get your unique project id, log into your dashboard at, then:

  1. Navigate to your required project

  2. Choose "Settings"

  3. Choose Browser SDK

  4. Copy your project ID



Using the JavaScript snippet method above, you can edit the code to include your user's email and full name if you installed our widget. This saves both time and potential errors from your users when they are submitting feedback.


window.markerConfig = {
project: '612d0200afd1d1246cb5',
source: 'snippet' };


<script> window.markerConfig = {
project: '612d0200afd1d1246cb5',
source: 'snippet',
reporter: {
email: myApp.getUserEmail(),
fullName: myApp.getUserFullName(), }, };

Alternatively, you may use a dedicated method to achieve the same result as above.

widget.setReporter({ email: myApp.getUserEmail(), fullName: myApp.getUserFullName(), });

When your user reports feedback, their name or email is no longer requested, as it's automatically passed through.

Custom Metadata provides a useful feature beyond typical issue-reporting - custom metadata fields. This will provide extra information for your developers. Custom metadata is easy to implement and fully supported by Consider using it to help developers make more informed decisions about prioritizing issues.

Again metadata can be loaded either inside the widget snippet code or using a dedicated JavaScript method.

Option 1: Inside the snippet code:

window.markerConfig = { project: '612d0200afd1d1246cb5', source: 'snippet', customData: { userType: getUserType(), appVersion getAppVer(), sentrySession: 'sentry.event.[USEREVENT]', } };

Option 2: dedicated JavaScript method:

Marker.setCustomData({ userType: getUserType(), appVersion getAppVer(), sentrySession: 'sentry.event.[USEREVENT]', });


Use our button

You can make several changes to our button. By default, the button is red, placed on the right-center of the window, and the title is "Report a bug."

Edit our button

You can make many changes within the "Button appearance" settings. Here we will change the color to blue, the test to "Feedback?" and the placement to the bottom center.

Use a custom button

If you'd like to bind our widget to your very own custom button, the first step to take is to hide our button:

Button appearance → Button visibility → Hide widget button.

Next, decide on the custom HTML, CSS, etc., you will use for your button.

This is more or less how it looks in our HTML:

<button class="report-bug-button"> <span class="icon">🐞</span> Report a bug </button>

Let's add a few lines in our JavaScript code to make it work

import markerSDK from ''; const widget = await markerSDK.loadWidget({ project: '...', }); const reportBugButton = document.querySelector('.report-bug-button'); reportBugButton.addEventListener('click', () => { widget.capture(); // <- Trigger a capture and open the widget inside your app. });

Now we have our own custom button set up:


Depending on your integration, you will have many choices on what field you display to your users to collect feedback.

Show/Hide fields

It is important to remember that your users may get overwhelmed if they have too many fields to complete in their feedback. By default, we keep the form simple.

However, you may add more fields, and you can do this within the project settings → Widget → Guest form.

For example, here we will include priority and due date:

Preset values

One of the most requested features we've had in recent months is the ability for our users to assign a preset value on specific fields and hide these fields completely.

Some ideal use cases of Preset Values are:

  • Automatically assign a reviewer each time a client reports an issue

  • Add a specific label to all of your incoming feedback

  • Set default values on specific fields when your internal testers report feedback

Check out our blog post and YouTube clip on preset values.

Guest form versus Member form

If you have users that would like to send you more detailed and advanced reporting, like internal teams, you may invite them as members of your team. They will then see a more advanced "member form" when they give feedback in the future. Members can also

  • Choose the issue type (bug, feedback, new feature, etc.)

  • Add new projectS

  • Report to various projects

  • Invite others to the platform.

We encourage you to read through the following articles to understand our user roles and their interactions.


The final part of that we want to explore is feedback, including feedback from a reporter/user, how we review that feedback, how we contact the person who reported the feedback, and how we automatically close the feedback loop.

Report Feedback

Collect feedback

Reporters can submit their feedback directly to your Trello project without leaving their website. Their feedback will automatically include detail-rich technical data.

Let’s say the Contact Us button is broken on the About Us page. The reporter clicks on the widget and is presented with a screenshot and a feedback form to complete.

The screenshot can be annotated, and the feedback form can be as simple or as complex as you wish. We recommend keeping the feedback form as simple as possible for your non-technical reporters.

Review issues

In your Trello project, you see the feedback arrive with the screenshot and automatically captured technical data, including:

  • Page URL

  • Browser

  • Screen size

  • Operating system

Communicate with reporters

The "Contact via" link opens the Feedback Page, where you can communicate with your reporters. All conversations will be synced with Trello.

Synchronize Status

Once you update an issue status to “done” within Trello, this will update the status to resolved and notify the reporter via email that the issue is complete.


Here at, we have many great features for your to use. Above, we have highlighted our main features that apply to you if you develop a SaaS web app. We hope these features are useful to you, and please feel free to contact us at any time by using the chat function at the bottom right of any of our pages. Thanks for reading.

Did this answer your question?