SpotFix is a lightweight on-page widget that allows visitors, editors, and team members to highlight text or page elements and submit quick, contextual feedback — a Spot — directly tied to the exact location on the page. Each Spot is automatically turned into a task in doBoard for tracking, discussion, and resolution.
Easy to install with a single async JS snippet. Configure project, board, visibility, and notification settings in doBoard.
The simplest and most common use case is identifying and fixing grammar mistakes, outdated content, or inaccurate information directly on the live website.
Beyond content fixes, the widget can also be used to communicate with visitors in context. Feedback and discussions remain linked to specific text blocks, images, or interface elements, making conversations clear and actionable.

In short, the workflow follows a simple pattern: Highlight → Ask → Resolve. A visitor selects text or a page element, a compact widget appears, and a Spot (request or task) is submitted. You handle the response in doBoard, while progress remains visible directly on the page, with referenced elements clearly highlighted.
No shared inboxes, no screenshots, no lost context.
Full Interaction Flow with SpotFix:

To enable SpotFix, open your project and follow these steps:


A JavaScript snippet will be generated. Insert this snippet before the first <script> tag on your website:
<script>(() => {window.SpotfixWidgetConfig = { verticalPosition: "0", horizontalPosition: "right", taskDefaultMode: "PUBLIC" };if (window.__spotfixInit) return;window.__spotfixInit = true;const params = {projectToken:{PROJECT_TOKEN}, projectId:{PROJECT_ID}, accountId:{ACCOUNT_ID}};let attempt = 0, loaded = false, started = false;const load = () => {if (loaded) return;const n = ++attempt, apbctScript = document.createElement('script');let done = false, timer;apbctScript.setAttribute('data-spotfix', 'SpotFix');Object.entries(params).forEach(([k, v]) => apbctScript.setAttribute('data-' + k, v)); apbctScript.async = true;apbctScript.src = ‘https://spotfix.doboard.com/doboard-widget-bundle.min.js?projectToken={PROJECT_TOKEN}&projectId={PROJECT_ID}&accountId={ACCOUNT_ID}’if (n > 1) apbctScript.src += '&retry=' + n;const fail = reason => {if (done || loaded) return;done = true;clearTimeout(timer);apbctScript.onload = apbctScript.onerror = null;apbctScript.remove();if (n < 3) { console.warn('[SpotFix] attempt ' + n + ' failed (' + reason + '), retry...'); setTimeout(load, 3000 * n); }else console.error('[SpotFix] widget not loaded after ' + n + ' attempts');};timer = setTimeout(() => fail('timeout'), 60000);apbctScript.onload = () => { if (!done) { done = loaded = true; clearTimeout(timer); } };apbctScript.onerror = () => fail('error');(document.head || document.documentElement).appendChild(apbctScript);};const start = () => {if (started) return;started = true;window.removeEventListener('load', start);load();};if (document.readyState === 'complete') start();else { window.addEventListener('load', start); setTimeout(start, 20000); }})();</script>
Required parameters: projectToken, projectId, accountId.

1. Copy the code.
If needed, change "TITLE" in the first line. This is the title that will be filled into the task automatically. If you leave the quotes empty (""), the field stays as it is.
2. Paste the code into the button's click handler.
In HTML, using the "onclick" attribute:
<button type="button" onclick="/* paste the code here */">Report an issue</button>
In JavaScript, using "addEventListener":
document.querySelector('#my-button').addEventListener('click', function(){/* paste the code here */});
3. Done.
Clicking the button opens the SpotFix widget with the title already filled in. If the widget is still loading, the code waits up to 10 seconds and then opens it.
If it doesn't work
- Make sure SpotFix is installed on this page.
- If the button is inside a form, give it type="button". Otherwise clicking it will submit the form.
- Open the browser console (F12). If the widget didn't load, you'll see the message "SpotFix: widget failed to load within 10 seconds".
Maybe these links will also be helpful: