Skip to content

Mamtack User Guide

1. Getting Started — From Zero to Feedback in 60 Seconds

Mamtack is a human-in-the-loop feedback tool for AI-generated prototypes and live websites. Pin comments directly to UI elements, let AI tag and triage, then close the feedback-to-code loop from your IDE. One script tag, no build step, real-time collaboration. Feedback stays anchored to the element it references — so nothing gets lost in screenshots or chat threads.

How It Works

  1. Embed the widget — Add a single script tag to your site.
  2. Click to comment — Team members click the + button, select an element, and type their feedback.
  3. Collaborate — Threads, replies, and @mentions keep the conversation in context.
  4. Triage — AI tagging, assignment, and issue-tracker integrations turn feedback into action.

Embedding the Widget

Add this script tag before the closing </body> tag on any page:

<script
  src="https://unpkg.com/@mamtack/widget@0.3/dist/mamtack.iife.js"
  data-project="my-site"
  data-key="ww_live_..."
  data-theme="auto"
  data-position="bottom-right"
></script>
AttributeRequiredDescription
`src`YesCDN URL for the widget script
`data-project`YesYour project slug (visible on your Dashboard site card)
`data-key`NoYour live API key. Omit to run in local-only mode.
`data-theme`NoColor theme: `dark` (default), `light`, or `auto` (follows OS preference). All plans.
`data-position`NoWidget position: `bottom-right` (default) or `bottom-left`. All plans.
`data-storage`NoSet to `local` to force local-only mode (no server sync, even if a key is provided).
`data-require-auth`NoSet to `true` to require verified identity before commenting (alternative to Dashboard toggle). Team+ only.
`data-hide-banners`NoSet to `true` to suppress promotional/info banners (e.g., local-mode nudge).
`data-app-base`NoOverride the base URL for cross-page thread grouping. Only needed for custom routing (hash-based or non-standard paths).

CDN Versioning

The @0.3 in the URL is a semver alias. Choose the strategy that fits your risk tolerance:

Version PatternBehaviorBest For
`@0.3`Auto-updates to latest 0.3.x patchMost teams — you get bug fixes automatically
`@^0.3`Same as above (caret range)Equivalent alias
`@0.3.0`Pinned to exact versionRegulated environments needing explicit upgrade control

Major and minor bumps are never automatic — only patch fixes ship through the alias.

WordPress Plugin

If your site runs on WordPress, you can install the Mamtack plugin instead of editing theme files:

  1. Download the plugin from the Mamtack website or search "Mamtack" in the WordPress plugin directory.
  2. Activate the plugin and go to Settings → Mamtack.
  3. Enter your API key and project name from the Mamtack Dashboard.
  4. Click Save Changes. The widget loads automatically on all public pages.
SettingDescriptionDefault
API KeyYour live key from the Dashboard(none)
ProjectYour project slug from the Dashboard(none)
Update strategyAuto-update patches (recommended), Pinned, or Always latestAuto-update patches
Widget versionBase version for the update strategy0.3.0
Load positionHeader places the script in <head> (loads before page renders). Footer places it before </body> (loads after page renders, doesn't block paint). Footer is recommended.Footer
Exclude pagesComma-separated page/post IDs to skip(none)

The plugin injects the widget script tag with the correct data-project, data-key, and data-app-base attributes automatically. Widget theme and position are controlled from the Mamtack Dashboard, not the WordPress settings page.

CSP note: If your site uses a Content Security Policy, add unpkg.com and *.supabase.co to your script-src and connect-src directives.

Local-Only Mode (No API Key)

If you omit data-key, Mamtack runs entirely in your browser using localStorage. This is a great way to try the product without creating an account:

Once you add an API key, existing local threads are not migrated — start fresh with the connected version.

API Key Management

  1. Sign in to the Mamtack Dashboard at mamtack.com.
  2. Click your site card, then Copy Key to grab your live key.
  3. To rotate a compromised key: click Rotate Key, type the site name to confirm, then update the data-key attribute on your site.

Rotated keys are invalidated immediately. The widget will show an authentication error until you deploy the new key.

Site Domain

Each site in the Dashboard is tied to a single domain. When you create a site, you specify the domain where the widget will run (e.g., app.example.com). The server enforces this — if the widget loads on a different domain, it displays an error and refuses to sync.

To change the domain, go to your site's settings in the Dashboard and update it. Use this to prevent unauthorized sites from consuming your thread quota. If you need feedback on multiple domains, create a separate site for each one.

FAQ

Q: Does the widget affect my site's performance? A: The script is ~110 KB gzipped, loads asynchronously, and does not block rendering. It has minimal impact on your page load.

Q: Can I use Mamtack on localhost during development? A: Yes. Set your site's domain to localhost (or localhost:3000, etc.), or use local-only mode with no API key.

Q: What happens if my API key is exposed in a public repo? A: Rotate it immediately from the Dashboard. The domain check provides a second layer of defense — even with a valid key, requests from a different domain are rejected.


2. Feedback Threads & Comments — Pin Feedback Where It Belongs

Mamtack threads are anchored directly to UI elements — not floating in a separate tool. Every comment lives in context, so your team never wastes time asking "which button are you talking about?"

How It Works

  1. Start a thread — Click the + button in the toolbar, then click any element on the page. A pin appears on that element and the comment form opens.
  2. Write your feedback — Type your comment. Mention team members with @. Hit Enter to post.
  3. Reply and discuss — Others see the pin, click it, and reply in-thread. The conversation stays attached to the element.
  4. Resolve when done — Mark the thread as resolved. The pin fades but remains accessible for reference.

Pin-to-Element Anchoring

When you pin a comment, Mamtack generates a CSS selector for the target element. The pin stays anchored to that selector across page loads.

+-------------------------------+
|  [Logo]   Nav   Nav   Nav     |
|-------------------------------|
|                               |
|   [ Sign Up Button ]  <-- Pin |
|                               |
|   "Button text is confusing"  |
|   — Sarah, 2 min ago         |
+-------------------------------+

Element Fingerprinting

Layouts change. When a selector breaks — because a class was renamed or an element moved — Mamtack falls back to fingerprint matching. It stores a snapshot of the element's characteristics:

PropertyExample
Tag`button`
Text content"Sign Up Free"
ARIA role`button`
aria-label"Create account"
CSS classes`btn-primary`, `cta-main`

If the original selector fails, Mamtack scans the page for elements matching the fingerprint and repositions the pin automatically. If no match is found, the pin appears in the sidebar with a "could not locate element" notice.

Threaded Replies and @Mentions

Every thread supports unlimited replies. To mention a team member:

  1. Type @ in the comment box.
  2. An autocomplete dropdown appears with your team members.
  3. Navigate with arrow keys, press Enter to select.
  4. The mentioned user receives a notification (email or Slack, depending on their settings).

Resolve and Reopen

Cross-Page Navigation

The sidebar displays threads from all pages on your site, not just the current one. Threads on other pages show the page path beneath the thread title. Clicking one of these threads navigates your browser to that page and opens the thread.

Deep Links

Every thread has a shareable URL in this format:

https://yoursite.com/page?ww_thread=abc123

Opening a deep link scrolls to the pinned element, opens the sidebar, and highlights the thread. Mamtack uses these links in Slack notifications and email digests so your team can jump straight to the conversation.


3. Sidebar Panel & Search — Find Any Conversation Instantly

The sidebar is your command center for all feedback across your site. It groups threads by page, tracks what you haven't read, and lets you filter down to exactly what needs your attention.

How It Works

  1. Open the sidebar — Click the Mamtack toolbar button (or the unread badge if new comments exist).
  2. Browse threads — Threads are grouped by page URL. The current page's group is labeled "(this page)" and appears first.
  3. Search or filter — Use the search bar to find threads by content, or apply filters for tags, assignees, or status.
  4. Take action — Click any thread to jump to it, reply, resolve, or assign.

Sidebar Layout

+----------------------------------+
| Mamtack                    [x]   |
| 12 comments in 5 threads         |
| (2 resolved)                     |
|----------------------------------|
| [Search threads...]        [filter] |
|----------------------------------|
| /pricing (this page)             |
|   * "CTA button unclear" - Sam   |
|   * "Price table needs update"   |
|----------------------------------|
| /about                           |
|   * "Hero image too large"       |
|   * "Typo in paragraph 2"       |
|----------------------------------|
| /contact                         |
|   * "Form submits twice" [!]     |
+----------------------------------+

Stats Header

The top of the sidebar shows a summary line:

12 comments in 5 threads (2 resolved)

This updates in real time as your team adds, resolves, or deletes threads.

Real-Time Search

The search bar filters threads by comment content as you type:

Unread Tracking

Mamtack tracks which threads and comments you have not yet seen:

IndicatorLocationMeaning
Badge with countToolbar buttonTotal unread comments across all threads
Bold thread titleSidebar listThread contains unread comments
Dot indicatorPin on pageThat pin's thread has new replies

Viewing a thread marks all its comments as read.

Hide Resolved Toggle

Click the filter icon in the sidebar header to toggle resolved threads on or off. When hidden:

Filters

Beyond search, the sidebar supports structured filters:

FilterDescription
By tagShow only threads with a specific AI-generated or manual tag (e.g., "Bug", "UX", "Copy")
Assigned to meShow threads assigned to your account
Flagged for FixShow threads marked for developer action

Filters combine with search — you can search within filtered results. Active filters show a colored indicator on the filter button.

FAQ

Q: Does search look at thread titles or just comments? A: Search matches against all comment text within threads. Thread titles (the first comment) are included.

Q: Can I sort threads by date instead of grouping by page? A: Not currently — threads are always grouped by page URL with most-recently-active groups first within each page.


4. Identity & Authentication — Know Who's Talking

OAuth and Email OTP require the Pro plan or above. "Require Verified Identity" requires Team plan or above.

Mamtack supports multiple identity levels so you can balance ease-of-use with accountability. Start with display names for quick feedback, then layer in verification as your team grows.

How It Works

  1. Guest commenting — Anyone types a display name and starts posting immediately. No sign-up required.
  2. Verified sign-in — Commenters authenticate via Google, GitHub, or email code to prove their identity.
  3. Enforce verification — Admins can require all commenters to sign in before posting.

Identity Levels

LevelHow It WorksVerified BadgePlan
Display name (guest)Type any name in the comment formNoFree
Google OAuthClick "Sign in with Google"YesPro+
GitHub OAuthClick "Sign in with GitHub"YesPro+
Email OTPEnter email, receive 6-digit code, verifyYesPro+

Verified Badge

When a commenter authenticates through OAuth or Email OTP, their comments and pins display a checkmark badge next to their name. This tells your team at a glance which feedback comes from a verified identity versus a guest display name.

+----------------------------------+
|  Sam Chen [checkmark]            |
|  "The hover state is wrong here" |
|  2 min ago · Reply               |
|----------------------------------|
|  visitor-42                      |
|  "Looks good to me"             |
|  5 min ago · Reply               |
+----------------------------------+

Email OTP Flow

For teams that want verification without requiring third-party accounts:

  1. Commenter clicks "Sign in" and selects "Email."
  2. They enter their email address.
  3. Mamtack sends a 6-digit code to that address.
  4. They enter the code in the widget — verified. No password created or stored.

Codes expire after 10 minutes. The session persists until the browser is cleared or the user signs out.

Require Verified Identity (Team+)

For teams that need full accountability on every comment:

  1. Go to the Mamtack Dashboard.
  2. Navigate to your site's settings under Dashboard > General.
  3. Toggle Require Verified Identity to on.

When enabled:

Setup

  1. Free tier — No setup needed. Guest display names work out of the box.
  2. Enable OAuth (Pro+) — Go to Dashboard > General > Identity Providers and toggle Google and/or GitHub on. No client ID configuration required — Mamtack handles the OAuth flow.
  3. Enable Email OTP (Pro+) — Toggle "Email verification" in the same section. Mamtack sends codes from noreply@mamtack.com.
  4. Require sign-in (Team+) — Toggle "Require Verified Identity" under Dashboard > General.

FAQ

Q: Can guests still view threads if "Require Verified Identity" is enabled? A: Yes. Anyone can view the sidebar, read threads, and see pins. The restriction only applies to posting new comments and replies.

Q: What if a team member uses different emails for Google and Email OTP? A: Each sign-in method creates a separate identity. To consolidate, team members should use the same email across providers.

Q: Are OAuth tokens stored in the widget? A: No. Authentication is handled server-side. The widget receives a session token — no OAuth credentials are stored in the browser.


5. Content Moderation — Keep Conversations Productive

Banning users requires the Team plan or above.

When feedback threads grow, you need tools to manage noise, remove inappropriate content, and keep bad actors out. Mamtack gives admins fine-grained control without disrupting the experience for everyone else.

How It Works

  1. Moderate individual comments — Hide or delete specific comments from the kebab menu.
  2. Moderate entire threads — Hide or delete a thread and all its replies at once.
  3. Ban disruptive users — Block a user from posting across your entire site.

Admin Kebab Menu

Every thread and comment shows a three-dot menu (kebab menu) for admins. The available actions depend on context:

+----------------------------------+
|  visitor-99                      |
|  "This is spam content"         |
|  3 min ago · Reply    [...]     |
|                        |--------|
|                        | Hide   |
|                        | Delete |
|                        | Ban    |
|                        |--------|
+----------------------------------+

Non-admin users see a simpler menu (report only). Admin actions are only visible to team members with the Admin role.

Hide / Unhide

Hiding is a soft action — content is suppressed but not destroyed.

WhoWhat They See
Non-admin users"This comment was hidden by a moderator." (no content visible)
Admin usersThe full comment with a "Hidden by moderator" label and an **Unhide** button

Use hiding when content is off-topic or unhelpful but doesn't warrant deletion. You can unhide at any time to restore visibility.

Hiding works on both individual comments and entire threads. When a thread is hidden, all its comments are hidden from non-admins, and the pin disappears from the page for non-admin viewers.

Delete

Deletion is a soft-delete with a confirmation step:

  1. Click the kebab menu on a comment or thread.
  2. Select Delete.
  3. A confirmation modal appears: "Delete this comment? This cannot be undone."
  4. Confirm to delete.

Important behaviors:

Ban / Block Users (Team+)

When a user is persistently disruptive, banning removes their ability to post:

  1. Open the kebab menu on any comment by that user.
  2. Select Ban.
  3. Confirm in the modal.

What happens after a ban:

AspectBehavior
PostingBanned user sees a banner: "You have been banned from commenting on this site."
ReadingThey can still view all threads and comments (read-only)
Existing commentsRemain visible unless individually hidden or deleted
ScopeSite-wide — applies across all pages for that site

Managing Banned Users

To view or unban users:

  1. Go to the Mamtack Dashboard.
  2. Open your site settings and navigate to the Team tab.
  3. Scroll to the Banned Members list.
  4. Click Unban next to any user to restore their posting ability.

Unbanning takes effect immediately — the user can post again on their next page load.

FAQ

Q: Can I hide a single reply without hiding the whole thread? A: Yes. Each comment has its own kebab menu. Hiding one reply leaves the rest of the thread visible.

Q: What happens to pins when a thread is deleted? A: The pin is removed from the page immediately. Other users will no longer see it.

Q: Does banning notify the user? A: Not directly via email or push notification. They discover the ban the next time they try to post — the widget displays the ban banner at that point.

Q: Can a banned user still sign in? A: Yes, they can still authenticate. The ban only prevents posting new comments and replies.


6. Thread Assignment — Route Feedback to the Right Person

Requires: Team plan or higher

When multiple people review feedback, things fall through the cracks. Thread assignment gives admins and owners a way to route threads to specific team members, so every piece of feedback has a clear owner.

How It Works

  1. Admin assigns — Open the thread's kebab menu and choose an assignment action. The thread is routed to the selected team member.
  2. Assignee is notified — The assigned member receives an in-widget toast, an email, and a Slack message (if configured). The thread card displays an assignee badge.
  3. Filter by assignment — Use the "Assigned to me" filter in the sidebar to see only your threads.
  4. Reassign or unassign — Ownership can shift as priorities change. Admins can reassign or unassign at any time.

Kebab Menu Actions

Open the three-dot menu on any thread to see assignment options:

+-------------------------------+
| Assign to me                  |
| Assign to...    > picker      |
| Reassign...     > picker      |
| Unassign                      |
+-------------------------------+
ActionWhen it appearsWhat it does
**Assign to me**Thread is unassignedClaims the thread for yourself
**Assign to...**Thread is unassignedOpens the assignee picker to choose a team member
**Reassign...**Thread is already assignedOpens the assignee picker to transfer ownership
**Unassign**Thread is already assignedRemoves the current assignee

Only admins and site owners can assign threads. Regular members can view assignments but cannot change them.

Assignee Picker

The assignee picker is a keyboard-navigable list of all non-banned site members. Start typing a name to filter, use arrow keys to navigate, and press Enter to confirm.

+---------------------------+
| Assign to...              |
| +------------------------+|
| | Search members...      ||
| +------------------------+|
|  > Sarah Chen             |
|    Marcus Rodriguez       |
|    Priya Patel            |
|    James Kim              |
+---------------------------+

Banned users do not appear in the picker.

Assignee Badge

Once assigned, the thread card in the sidebar displays a badge with the assignee's name. This makes it easy to scan the thread list and see who owns what.

+--------------------------------------+
| "Button color is wrong"              |
|  bug  ux               Sarah Chen <- |
|  Page: /checkout        2 comments   |
+--------------------------------------+

Filtering by Assignment

The sidebar filter menu includes an Assigned to me option. When active, only threads assigned to you appear in the list — everything else is hidden. This is the fastest way to find your open work.

Notifications

When a thread is assigned or reassigned, the assignee is notified through all configured channels:

ChannelBehavior
**In-widget toast**Appears immediately in the widget (real-time)
**Email**Sent to the assignee's registered email address
**Slack**Posted to the project's Slack channel (if the Slack integration is configured)

Notifications include the thread title, who assigned it, and a deep link to open the thread directly.

FAQ

Q: Can a thread be assigned to multiple people? A: No. Each thread has at most one assignee. If multiple people need to collaborate, use @mentions in comments and assign to the primary owner.

Q: What happens when I unassign a thread? A: The assignee badge is removed and the thread returns to the unassigned pool. No notification is sent for unassignment.

Q: Can non-admin members assign threads? A: No. Only admins and site owners have permission to assign, reassign, or unassign threads.


7. AI Tagging & Suggestions — Let AI Classify and Analyze Feedback

Feature availability varies by plan — see details below.

Manually sorting feedback is slow and inconsistent. Mamtack's AI layer automatically tags every thread by category, then offers deeper analysis on demand. You get consistent classification without the overhead, and your team can focus on acting instead of triaging.

AI Auto-Tagging

Included on all plans (requires API key — not available in local-only mode)

Every new thread is automatically classified by Mamtack's AI. Tags are applied within seconds of submission — no manual step required.

Default tag taxonomy:

TagDescription
`bug`Something is broken or behaving incorrectly
`ux`Usability issue or interaction friction
`performance`Slow load times, jank, or resource issues
`accessibility`Barrier to access for users with disabilities
`content`Typo, copy issue, or misleading text
`urgent`High-severity issue needing immediate attention
`rfe`Request for enhancement — a feature suggestion

Confidence scores: Each AI-applied tag includes a confidence score. High-confidence tags appear with standard styling. Low-confidence tags are shown with a trailing ? (e.g., performance?) to signal that they may need human review.

+------------------------------------------+
| "Checkout crashes on Safari"             |
|                                          |
|  [bug]  [urgent]  [performance?]         |
|    ^-- confirmed    ^-- low-confidence   |
+------------------------------------------+

Tag Management

Admins can edit tags on any thread using the tag edit modal. Open it from the thread detail view or the kebab menu.

ActionWhat it does
**Add tag**Manually apply any tag from the taxonomy
**Remove tag**Remove an AI-applied or manual tag
**Approve**Promote a low-confidence AI tag to confirmed status

Approving a tag upgrades it from the low-confidence visual style to a standard tag. This is useful when the AI got it right but wasn't confident enough to commit.

Customizing the Tag Taxonomy

Go to Dashboard > AI to manage your tag taxonomy. You can:

The AI uses your custom taxonomy when classifying new threads.

Tag-Based Filtering

The sidebar filter menu includes a tag filter. Select one or more tags to narrow the thread list — for example, show only bug + urgent threads to focus on critical issues.

AI Suggestions

Requires: Pro plan or higher

For deeper analysis, open the kebab menu on any thread and choose Ask AI for suggestion. Mamtack's AI reads the full thread — all comments, tags, element context, and page URL — and posts an analysis comment containing:

The suggestion appears as a special AI comment in the thread, visible to all team members.

Bring Your Own Key (BYOK)

Available on all plans

By default, Mamtack uses its own AI infrastructure. If you prefer to use your own API keys — for cost control, compliance, or model preference — configure BYOK in Dashboard > AI.

Supported providers:

ProviderModels
**Google Gemini**Gemini Pro, Gemini Flash
**OpenAI**GPT-4o, GPT-4o mini
**Anthropic**Claude Sonnet, Claude Haiku

Setup:

  1. Go to Dashboard > AI.
  2. Select a provider and paste your API key.
  3. Choose a model tier: Fast (cheaper, lower latency) or Smart (higher quality, slightly slower).
  4. Click Save. Mamtack validates the key immediately.

Health monitoring: Mamtack checks your key's health on every AI call. If your key fails three consecutive times (expired, quota exceeded, invalid), the system automatically falls back to Mamtack's built-in AI and notifies you in the Dashboard. Re-enter a valid key to switch back.

FAQ

Q: Can I disable AI tagging entirely? A: Yes. Go to Dashboard > AI and toggle off auto-tagging. Threads will no longer receive automatic tags, but you can still tag manually.

Q: Are my threads sent to third-party AI providers? A: Only if you configure BYOK. By default, Mamtack uses its own hosted models. Thread content is never used for model training.

Q: What happens if the AI tags something incorrectly? A: Remove the incorrect tag and add the right one. Over time, the AI improves from your team's corrections across the platform.


8. Flag for Fix — Turn Feedback into Code Changes

Requires: Team plan or higher

Flag for Fix bridges the gap between product feedback and code. When a thread has been discussed and the fix is clear, an admin flags it — and a developer picks it up directly in their IDE using MCP. No copy-pasting feedback, no context-switching. The developer's IDE AI reads the full thread context (comments, tags, element selector, admin notes) and generates a real fix against the actual codebase.

How It Works

  1. Admin flags a thread — Open the kebab menu and click "Flag for Fix." The thread card shows a badge and notifications go out.
  2. Developer pulls context via MCP — In their IDE, the developer asks for flagged threads and the MCP server returns full context.
  3. IDE AI generates the fix — With thread context plus source code, the AI produces a concrete code change.
  4. Fix is applied and reported — The MCP tool marks the fix as applied, posts a summary comment on the thread, and resolves it automatically.
Admin reviews thread  ->  Flags for fix  ->  Developer sees it in IDE  ->  Fix applied automatically
     (widget)                (widget)              (MCP)                   (MCP + IDE AI)

Step 1: Admin Flags a Thread

Open the thread's kebab menu and click Flag for Fix.

+-------------------------------+
| Ask AI for suggestion         |
| Flag for Fix     <- Team+     |
| Assign to...                  |
| Delete thread                 |
+-------------------------------+

The thread card updates with a Flagged for Fix badge. If Jira, Linear, or GitHub Issues is connected, an issue is auto-created. Connected developers receive an email or Slack notification.

To cancel, open the same menu and click Un-flag.

Step 2: Developer Pulls Context via MCP

In their IDE (Cursor, Claude Code, VS Code + Copilot, etc.), the developer asks:

"Show me Mamtack threads flagged for fix"

The IDE calls list_flagged_threads via MCP, returning all flagged threads with their tags, comments, and who flagged them.

The developer picks a thread:

"Show me the button color thread and fix it"

The IDE calls get_fix_context, which returns:

With this context plus the actual source code open in the IDE, the AI generates a concrete fix.

Step 3: IDE AI Generates the Fix

The IDE AI now has two things no external tool can match: the full feedback context from Mamtack and the actual source code. It uses both to produce a concrete code change — real file paths, real imports, real design tokens.

For example, if the feedback says "the submit button color is wrong," the AI can:

The developer reviews the proposed changes, adjusts if needed, and applies them. No copy-pasting from a browser, no guessing which file to edit.

Step 4: Fix Is Applied and Reported Back

After the developer applies the fix, the IDE automatically calls mark_fix_applied. This:

  1. Posts a rich "Fix Applied" comment on the thread with file-level details
  2. Resolves the thread
  3. Posts a "Fix Applied" comment on any linked Jira, Linear, or GitHub issues — automatically
  4. Fires a thread.fix_applied webhook event

The tracker commenting is best-effort: if one tracker fails (e.g., an expired token), the fix is still applied and the other trackers still receive their comments. The MCP response includes a tracker_updates field showing the status per tracker.

No manual "mark as done" step — the fix-mamtack-thread MCP Prompt orchestrates the full cycle.

+--------------------------------------------------+
| Mamtack -- Fix Applied                           |
|                                                  |
| Fixed by: John via MCP                           |
| Commit: a3f9b2c                                  |
| Note: "Changed to brand-blue, added hover state" |
|                                                  |
| src/components/Button.tsx                        |
| Updated button color to use design system token  |
| Before: <button className="bg-red-500">          |
| After:  <button className="bg-blue-600">         |
+--------------------------------------------------+

The same comment (with before/after diffs) is automatically posted to linked issue trackers:

TrackerComment formatToken refresh
**Jira**Atlassian Document Format (ADF)Automatic via OAuth refresh
**Linear**Markdown (native)Automatic via OAuth refresh
**GitHub**Markdown (native)No refresh needed (tokens don't expire)

If no tracker is linked for a thread, the step is silently skipped — no error, no extra action needed.

Setting Up MCP

Flag for Fix requires the Mamtack MCP server. Setup takes under five minutes:

  1. Generate a token — Go to Dashboard > AI > MCP and create a token. Add your email to receive flag notifications.

  2. Connect your IDE — Add the Mamtack MCP server to your IDE configuration:

    Cursor (.cursor/mcp.json):

    {
      "mcpServers": {
        "mamtack": {
          "url": "https://mcp.mamtack.com/mcp",
          "headers": {
            "Authorization": "Bearer mcp_YOUR_TOKEN_HERE"
          }
        }
      }
    }

    Claude Code:

    claude mcp add mamtack \
      --transport http \
      --url https://mcp.mamtack.com/mcp \
      --header "Authorization: Bearer mcp_YOUR_TOKEN_HERE"

    VS Code (.vscode/mcp.json):

    {
      "servers": {
        "mamtack": {
          "type": "http",
          "url": "https://mcp.mamtack.com/mcp",
          "headers": {
            "Authorization": "Bearer mcp_YOUR_TOKEN_HERE"
          }
        }
      }
    }
  3. Use the prompt — In your IDE, invoke the fix-mamtack-thread prompt to run the full workflow in one conversation.

IDE rule (optional): Add this to your project's IDE configuration file to automate reporting:

When fixing a Mamtack thread, always call mark_fix_applied after applying changes. Include the commit SHA, a short note, and a changes array listing each modified file.

Notifications

When a thread is flagged, developers are notified through configured channels:

ChannelWho receives itSetup required
**Email**MCP token holders with an email addressAdd email when generating MCP token
**Slack**Everyone in the project's Slack channelConfigure Slack integration
**Issue tracker**Assigned/watching developersJira, Linear, or GitHub Issues integration
**Webhook**External systemsConfigure outbound webhook endpoint

Tip: Enable mcp_require_email in your project settings to ensure all MCP token holders provide an email. This guarantees direct notifications when threads are flagged.

The email field supports multiple comma-separated addresses (e.g., john@co.com, jane@co.com) for shared team tokens.

Webhook Events

Three webhook events are available for Flag for Fix:

EventFires when
`thread.flagged_for_fix`Admin flags a thread
`thread.unflagged`Admin un-flags a thread
`thread.fix_applied`Developer marks a fix as applied via MCP

Event payloads follow the same structure as other thread events and include the full thread object with ai_fix_status, flagged_at, and flagged_by fields.

Filtering Flagged Threads

The sidebar filter menu includes a Flagged for Fix option to show only threads waiting for a developer to pick up. This helps admins track which flagged threads have been addressed and which are still pending.

Reopen and Re-flag

If a fix doesn't fully resolve the issue:

  1. Admin reopens the thread.
  2. Admin flags it again.
  3. Developer sees the prior "Fix Applied" note in the context, so the IDE AI knows what was already tried and can generate a targeted follow-up fix.

FAQ

Q: Does Mamtack generate the code fix? A: No. Mamtack collects and routes feedback. The developer's IDE AI generates the fix — it has access to the actual source code, design tokens, framework config, and type definitions. This produces better fixes than any backend could generate without repo access.

Q: What if we don't use MCP-compatible IDEs? A: Flag for Fix still works for triage — the badge and filter help admins track actionable threads. Developers can read the thread context manually via the widget or issue tracker. The automated MCP workflow is a bonus, not a requirement.

Q: Can I flag threads without an issue tracker? A: Yes. Issue auto-creation is optional. The flag, badge, MCP tools, and notifications all work independently.

Q: What plan do I need? A: Team or Enterprise. Flag for Fix depends on MCP, which is also Team+.

Q: Do developers need to manually mark threads as fixed? A: No, if they use the fix-mamtack-thread MCP Prompt or have an IDE rule configured. The prompt chains the full workflow: list, context, fix, mark applied. The reporting step is automatic.


9. Issue Tracker Integrations — Smart Issue Routing

Requires: Pro plan or higher

Feedback threads are valuable, but your development team lives in their issue tracker. Mamtack connects to the tools your team already uses, so issues are created automatically — with full context, deep links, and bidirectional badges.

Smart Issue Routing

When an issue tracker integration is active, Mamtack's AI works alongside it to route feedback intelligently:

Supported Trackers

TrackerBadge formatExample
**Jira Cloud**Project key + number`PROJ-123`
**Linear**Team prefix + number`LIN-456`
**GitHub Issues**Hash + number`#42`

Setup

  1. Go to Dashboard > Integrations and select your tracker.
  2. Click Connect to authorize via OAuth. You will be redirected to your tracker's login page.
  3. Map your Mamtack project to the target project, team, or repository in the tracker.
  4. Choose an auto-create mode (see below).
  5. Click Save.

Auto-Create Modes

Choose how and when issues are created from feedback threads:

ModeHow it worksBest for
**Manual**Admin clicks "Create [Tracker] Issue" from the thread's kebab menuTeams that want full control over what becomes an issue
**Tag-triggered**An issue is auto-created when a thread's AI tags match your configured trigger tags (e.g., any thread tagged `bug` creates a Jira issue)Balanced automation — only high-signal threads become issues
**Immediate**Every new thread automatically creates an issueTeams that want a 1:1 record of all feedback in their tracker

You can change modes at any time in Dashboard > Integrations without losing existing issue links.

Issue Content

Created issues include rich context from the Mamtack thread:

This means developers see the full discussion, know exactly where the element is on the page, and can click through to the original thread for follow-up.

+------------------------------------------+
| PROJ-123: Button color is wrong          |
|------------------------------------------|
| Reported via Mamtack                     |
|                                          |
| Thread: "The sign-up button should be    |
| blue, not red"                           |
|                                          |
| Page: https://app.example.com/signup     |
| Element: button.cta-primary              |
| Tags: bug, ux                            |
|                                          |
| View in Mamtack:                         |
| https://app.example.com/signup?ww_thread |
| =abc123                                  |
+------------------------------------------+

Issue Badges

Once an issue is created, the thread card in Mamtack's sidebar displays a clickable badge linking to the issue. Click the badge to open the issue directly in your tracker.

+------------------------------------------+
| "Button color is wrong"                  |
|  bug  ux                    [PROJ-123] <-|
|  Page: /signup              2 comments   |
+------------------------------------------+
        clickable badge -------^

Multiple Trackers

You can connect more than one tracker to the same project. For example, your product team might use Jira while your engineering team uses Linear. Both integrations run independently — a single thread can have issue badges from multiple trackers simultaneously.

FAQ

Q: Can I change which project or repo issues are created in? A: Yes. Update the mapping in Dashboard > Integrations at any time. Existing issues are not moved — only new issues use the updated mapping.

Q: What happens if I disconnect a tracker? A: Existing issue badges remain on thread cards as static text, but clicking them may not work if the tracker no longer recognizes the OAuth connection. No new issues will be created.

Q: Do issue status changes sync back to Mamtack? A: Not currently. Closing an issue in your tracker does not automatically resolve the Mamtack thread. This is on the roadmap.

Q: Which Jira project types are supported? A: Jira Cloud company-managed and team-managed projects are both supported. Jira Server and Data Center are not supported at this time.


10. Notifications & Communication — Stay in the Loop

Feedback is only useful if the right people see it. Mamtack delivers notifications through three channels — in-widget toasts, email, and Slack — so your team stays informed without constantly checking the sidebar.

In-Widget Toasts and Browser Notifications

Mamtack shows real-time toast notifications inside the widget for key events: new comments on threads you participated in, assignments, flags, and @mentions.

For notifications when you're not looking at the widget, click the bell icon in the toolbar to opt in to browser desktop notifications. Once enabled, you receive system-level alerts for:

+-------------------------------------+
|  Mamtack - yoursite.com             |
|  Sarah mentioned you in "Button     |
|  color is wrong"                    |
|                     [View Thread]   |
+-------------------------------------+

Toast messages also appear for operational events — assignment changes, flag-for-fix updates, and issue creation — keeping admins aware of triage activity without refreshing.

Email Notifications

Requires: Pro plan or higher

Configure email notifications in Dashboard > Integrations > Email. Add up to 10 recipient email addresses and choose which events trigger emails.

Supported events:

EventDescription
**Thread created**A new feedback thread is submitted
**Comment added**A reply is posted to any thread
**Thread resolved**A thread is marked as resolved
**Thread reopened**A resolved thread is reopened
**Thread assigned**A thread is assigned or reassigned

Delivery options:

ModeBehavior
**Instant**One email per event, sent immediately
**Daily digest**A summary of the day's activity, sent once per day
**Weekly digest**A summary of the week's activity, sent every Monday

Each email includes a direct deep link to the relevant thread, so recipients can click through and see the full context in the widget.

Every email includes a one-click unsubscribe link at the bottom. Unsubscribing uses a secure token — no login required. Admins can also remove recipients from the Dashboard at any time.

Slack Channel Notifications

Requires: Pro plan or higher

Connect Slack in Dashboard > Integrations > Slack to receive structured notifications in a channel of your choice.

Setup:

  1. Go to Dashboard > Integrations > Slack.
  2. Paste an incoming webhook URL from your Slack workspace.
  3. Choose which events to post (same event list as email notifications).
  4. Click Save. Mamtack sends a test message to confirm the connection.

Message format: Notifications use Slack's Block Kit for rich, scannable messages — not plain text dumps. Each message includes the thread content, author, tags, and a deep link button that opens the thread directly in Mamtack.

+------------------------------------------+
| Mamtack - New Thread                     |
|------------------------------------------|
| "Checkout button is invisible on mobile" |
| by Sarah Chen - /checkout                |
| Tags: bug, urgent, accessibility         |
|                                          |
| [View in Mamtack]                        |
+------------------------------------------+

Notification Summary

ChannelPlan requiredSetup locationKey advantage
**In-widget toasts**All plansAutomaticReal-time, zero setup
**Browser notifications**All plansBell icon in widgetAlerts when widget is not visible
**Email**Pro+Dashboard > Integrations > EmailReaches people who don't use the widget daily
**Slack**Pro+Dashboard > Integrations > SlackMeets your team where they already communicate

FAQ

Q: Can I customize which events trigger notifications per channel? A: Yes. Email and Slack event selections are independent — you can receive all events in Slack but only "thread created" via email, for example.

Q: Do I get notified about my own actions? A: No. You will not receive notifications for threads you create, comments you post, or assignments you make yourself.

Q: How do I stop getting emails without asking an admin? A: Click the unsubscribe link at the bottom of any Mamtack email. It takes effect immediately — no login required.


11. Outbound Webhooks — Integrate Mamtack with Any System

Requires: Pro plan or higher

Mamtack can push real-time event data to any system you control. Outbound webhooks send an HTTP POST to your endpoint whenever something happens in your threads — so you can build custom automations, sync feedback to internal tools, or trigger downstream workflows without polling.

How It Works

  1. Configure an endpoint — Provide an HTTPS URL where Mamtack should deliver events.
  2. Select event types — Choose which thread and comment events trigger a delivery.
  3. Verify payloads — Use the HMAC signing secret to confirm each delivery is authentic.
  4. Monitor deliveries — Check the delivery log for status codes, timestamps, and failures.

Setup

  1. Go to Dashboard > Integrations > Webhooks.
  2. Click Add Endpoint.
  3. Enter your HTTPS URL (HTTP is not accepted).
  4. Select the events you want to subscribe to (or choose "All events").
  5. Copy the generated signing secret and store it securely — you will need it to verify payloads.
  6. Click Save. Mamtack begins delivering events immediately.

You can register up to 5 webhook endpoints per site.

Event Types

EventFires when
`thread.created`New thread posted
`comment.created`New comment added
`thread.resolved`Thread resolved
`thread.reopened`Thread reopened
`thread.assigned`Thread assigned to a member
`thread.flagged_for_fix`Admin flags thread for fix
`thread.fix_applied`Developer marks fix applied via MCP
`thread.unflagged`Admin un-flags thread
`issue.created`Issue created in Jira, Linear, or GitHub

HMAC Payload Signing

Every delivery includes a X-Mamtack-Signature header containing an HMAC-SHA256 hash of the request body, signed with your endpoint's secret. To verify:

  1. Read the raw request body (before JSON parsing).
  2. Compute HMAC-SHA256 using your signing secret as the key.
  3. Compare the result to the value in X-Mamtack-Signature using a timing-safe comparison.

If the signatures do not match, reject the request — it did not originate from Mamtack.

Delivery Log

Each endpoint has a delivery log accessible from Dashboard > Integrations > Webhooks > [your endpoint]. The log shows:

Use this to debug integration issues or confirm events are arriving as expected.

Auto-Disable and Retries

Mamtack retries failed deliveries (non-2xx responses or timeouts) up to 3 times with exponential backoff. If an endpoint fails consistently over 24 hours, Mamtack automatically disables it and sends a notification email to the site owner. Re-enable it from the Dashboard once the issue is resolved.

Test Deliveries

Click the Send Test button next to any endpoint to deliver a sample thread.created payload. This lets you verify your endpoint is reachable and your signature verification logic works before real events start flowing.

FAQ

Q: Can I filter events by page or tag? A: Not currently. Webhooks fire for all matching events across the entire site. Filter on your end using the page_url or tags fields in the payload.

Q: What timeout does Mamtack use for delivery? A: Your endpoint must respond within 10 seconds. Anything longer is treated as a failure and queued for retry.

Q: Are webhook payloads sent in order? A: Mamtack delivers events in approximate chronological order, but retries may arrive out of sequence. Use the event_timestamp field in the payload to determine ordering.


12. MCP Server — AI-Powered Development from Your IDE

Requires: Team plan or higher

Mamtack's MCP server brings your feedback data directly into AI-powered development tools. Instead of switching between the Dashboard and your editor, you can query threads, triage issues, and mark fixes complete — all from your IDE's AI assistant.

What Is MCP?

Model Context Protocol (MCP) is an open standard that lets AI-powered IDEs connect to external data sources. When your IDE supports MCP (Cursor, Claude Code, VS Code with Copilot, and others), it can call Mamtack's server to read feedback, take action on threads, and orchestrate multi-step fix workflows — all through natural language prompts.

What It Enables

Token Management

  1. Go to Dashboard > AI > MCP.
  2. Click Generate Token.
  3. Enter a display name (e.g., "Nir's Cursor") and optionally an email address for attribution.
  4. Click Create. The token is displayed once — copy it immediately.
  5. The token is hashed server-side. If lost, revoke and generate a new one.

To support shared team tokens, enter comma-separated email addresses in the email field. Actions taken through that token will be attributed to the matching team member based on the IDE's user context.

Available Tools

The MCP server exposes these capabilities to your IDE:

CategoryTools
Read`list_open_threads`, `get_thread_detail`, `get_element_context`, `list_pages`
Act`mark_thread_addressed`, `add_reply`
Delete`delete_thread`, `bulk_delete_threads`, `delete_comment`, `bulk_delete_comments`
Flag for Fix`list_flagged_threads`, `get_fix_context`, `mark_fix_applied` (auto-comments on linked Jira/Linear/GitHub issues)

Your IDE's AI assistant discovers these tools automatically once the MCP connection is configured.

IDE Setup

Add the Mamtack MCP server to your IDE's configuration:

{
  "mcpServers": {
    "mamtack": {
      "url": "https://mcp.mamtack.com/sse",
      "headers": {
        "Authorization": "Bearer YOUR_TOKEN_HERE"
      }
    }
  }
}

Replace YOUR_TOKEN_HERE with the token you generated in the Dashboard. The configuration file location varies by IDE — consult your editor's MCP documentation for the exact path.

Pre-Built Prompts

Mamtack ships 4 pre-built prompts that orchestrate multi-step workflows. These prompts appear in your IDE's prompt library once the MCP server is connected.

PromptWhat it doesTools used
`fix-mamtack-thread`Chains the full fix workflow in one conversation: lists flagged threads, fetches context, guides your AI to generate a fix, and marks the thread as fix-applied when you confirm.`list_flagged_threads`, `get_fix_context`, `mark_fix_applied`
`review-open-feedback`Reviews all unresolved feedback for your project and summarizes it by priority. Useful for a quick overview of what's pending before a sprint or standup.`list_open_threads`, `get_thread_detail`
`triage-page`Shows all feedback for a specific page, grouped by tag (bug, UX, copy, etc.). Useful when you want to focus on one page at a time.`list_open_threads` (with `page_url` filter)
`element-audit`For each unresolved thread, shows the CSS selector and element context. Useful for understanding the scope of UI changes needed across a project.`list_open_threads`, `get_element_context`

FAQ

Q: Do I need a separate token per developer? A: Recommended but not required. Individual tokens provide clearer attribution in the Dashboard's activity log. Shared tokens with comma-separated emails work for smaller teams.

Q: Is the MCP connection real-time? A: The server uses Server-Sent Events (SSE) for the transport layer. Your IDE maintains a persistent connection and receives tool responses in real time.

Q: What happens if my token is revoked while I'm working? A: Your IDE will receive an authentication error on the next tool call. Generate a new token from the Dashboard and update your configuration.


13. Data Export & Archiving — Download and Manage Your Data

Requires: Pro plan or higher (export). Archive available on all plans.

Your feedback data belongs to you. Mamtack lets you export threads and comments for offline analysis, compliance records, or migration — and archive inactive projects to keep your Dashboard clean without losing history.

How It Works

  1. Export — Download your site's feedback as structured data files.
  2. Filter — Narrow exports by resolved status and date range.
  3. Archive — Freeze inactive projects so they remain readable but accept no new feedback.
  4. Unarchive — Restore an archived project to active status at any time.

Exporting Data

  1. Go to Dashboard > [your site] > General tab.
  2. Scroll to the Export Data section.
  3. Choose your format: CSV or JSON.
  4. Optionally filter by:
    • Status — All threads, resolved only, or open only.
    • Date range — Threads created within a start and end date.
  5. Click Export. Your browser downloads the file immediately.

The export includes threads, all comments within them, commenter identities, timestamps, tags, assignments, and resolution status.

Free-plan users see the Export section in a locked state with a prompt to upgrade.

Export Formats

FormatBest for
CSVSpreadsheet analysis, importing into other tools, quick review
JSONProgrammatic processing, backup, migration to other platforms

Archiving a Project

When a project is complete or inactive, archiving removes it from active use without deleting any data.

  1. Go to Dashboard > [your site] > General tab.
  2. Click Archive Project.
  3. Confirm in the modal.

Once archived:

Unarchiving

To restore an archived project:

  1. Find the archived site in your Dashboard (filter by "Archived" if needed).
  2. Click the site card, then go to General tab.
  3. Click Unarchive Project.
  4. Confirm in the modal.

The widget reactivates, comments are unlocked, and a notification email confirms the restoration. No data is lost during the archive/unarchive cycle.

FAQ

Q: Does archiving free up my site slot? A: No. Archived sites still count toward your plan's site limit. Delete the site entirely if you need to free a slot.

Q: Can I export data from an archived project? A: Yes. Export remains available on archived projects — the data is read-only, not inaccessible.

Q: Is there a size limit on exports? A: Exports include all matching threads and comments with no row limit. Very large sites may take a few seconds to generate.


14. Branding & Customization — Make Mamtack Yours

Mamtack works behind the scenes so your users see your brand, not ours. Higher plan tiers progressively remove Mamtack branding from the widget, emails, and third-party integrations — so feedback feels native to your product. You can also customize the widget's theme and position from the Dashboard.

How It Works

  1. All plans — Customize widget theme (dark, light, auto) and position (bottom-right, bottom-left) from the Dashboard or via script-tag attributes.
  2. Pro plan — Widget branding is automatically removed. No toggle needed.
  3. Team plan — Notification branding is also removed from emails, Slack messages, and issue tracker integrations.
  4. Enterprise plan — Custom white-label branding: replace Mamtack's logo and name with your own across the widget and email notifications.

Widget Appearance (All Plans)

Every site owner can control the widget's visual appearance — no plan upgrade needed.

From the Dashboard: Go to Dashboard > [your site] > General and scroll to the Widget Appearance section. Choose your theme and position, then click Save appearance. Changes take effect on the next widget load — no code changes needed.

From the script tag: Add data-theme and data-position attributes to your embed snippet. When both Dashboard settings and script-tag attributes are set, the Dashboard takes precedence.

SettingOptionsDefaultWhat changes
Theme`dark`, `light`, `auto``dark`Widget background, text colors, borders, and accents for toolbar, sidebar, popovers, and pins
Position`bottom-right`, `bottom-left``bottom-right`Toolbar and all panels anchor to the chosen corner of the viewport

Theme details:

Position details:

Position affects all widget UI: the toolbar, sidebar panel, pin-mode instruction banner, new-comment popovers, and toast notifications.

Widget Branding (Pro+)

On the Pro plan and above, the "Powered by Mamtack" text that appears in the authentication modals and at the bottom of the sidebar is automatically hidden. Your users interact with the widget without any indication of the underlying platform.

FREE PLAN:                        PRO+ PLAN:
+------------------------+        +------------------------+
|  Comments (3)          |        |  Comments (3)          |
|  ...                   |        |  ...                   |
|  ...                   |        |  ...                   |
|  Powered by Mamtack    |        |                        |
+------------------------+        +------------------------+

Notification Branding (Team+)

On the Team plan and above, outbound communications no longer reference Mamtack:

This makes Mamtack invisible to your end users and clients — feedback notifications appear as if they come directly from your team.

White-Label Branding (Enterprise)

On the Enterprise plan, you can fully replace Mamtack's identity with your own brand. Your team and clients interact with the widget as if it were your own first-party feedback tool — no mention of Mamtack anywhere.

Setup: Go to Dashboard > [your site] > General > Branding. Enter your brand name and logo URL, then click Save branding. Changes apply immediately on the next widget load.

SettingDescriptionRequirements
Brand nameReplaces "Mamtack" wherever it appearsMax 60 characters
Logo URLCustom logo displayed alongside your brand namePNG or SVG, recommended max 160 × 40 px, must be HTTPS

Where your custom branding appears:

DEFAULT (Free/Pro):              ENTERPRISE WHITE-LABEL:
+------------------------+        +------------------------+
|  Comments (3)          |        |  Comments (3)          |
|  ...                   |        |  ...                   |
|  ...                   |        |  ...                   |
|  [M] Powered by Mamtack|        |  [logo] Powered by     |
+------------------------+        |         Acme Feedback  |
                                  +------------------------+

If only the brand name is set (no logo URL), the text-only brand name appears without an image. If both are set, the logo displays inline before the brand name.

Branding Removal by Tier

ElementProTeam+Enterprise
Widget theme & positionCustomizableCustomizableCustomizable
Widget "Powered by Mamtack"RemovedRemovedRemoved
Email header logo and nameVisibleRemovedCustom logo & name
Email footer "Sent by Mamtack"VisibleRemovedCustom brand name
Slack footer "via Mamtack"VisibleRemovedRemoved
Jira/Linear/GitHub "Created from Mamtack"VisibleRemovedRemoved
Email sender name"Mamtack"Your project nameCustom brand name

FAQ

Q: Can I add my own logo to the widget? A: Yes, on the Enterprise plan. Go to Dashboard > [your site] > General > Branding to set a custom logo URL and brand name. On lower tiers, branding removal hides Mamtack references but does not inject custom logos.

Q: Does branding removal affect the Dashboard? A: No. The Dashboard always shows Mamtack branding since it is your admin interface, not a user-facing surface.

Q: If I downgrade from Team to Pro, does branding reappear in notifications? A: Yes. Branding removal is evaluated in real time based on your active plan. Downgrading restores the default branding on future notifications (previously sent messages are not modified).


15. Team & Account Management — Collaborate with Your Team

Managing feedback is a team effort. Mamtack lets you invite additional admins to share the workload, control access with role-based permissions, and manage your subscription — all from the Dashboard.

How It Works

  1. Site owner — The person who created the site and holds the subscription. Full control over settings, billing, and team membership.
  2. Delegated admins — Invited team members who can triage, assign, resolve, and manage threads alongside the owner.
  3. Billing — Managed through the Dashboard with a direct link to your billing portal.

Roles and Permissions

CapabilitySite OwnerDelegated Admin
View and reply to threadsYesYes
Resolve, reopen, assign threadsYesYes
Delete threads and commentsYesYes
Manage integrationsYesNo
Flag threads for fixYesYes
Invite and remove adminsYesNo
Change site settingsYesNo
Rotate API keyYesNo
Archive/delete siteYesNo
Manage billing and planYesNo

Inviting Admins (Team+)

  1. Go to Dashboard > [your site] > Team tab.
  2. Enter one or more email addresses (comma-separated for multiple invites).
  3. Click Invite.
  4. Each invitee receives an email with an accept link.

Pending invites appear in the Team tab with a "Pending" badge. Once accepted, the admin appears as "Active" and gains immediate access.

+----------------------------------------+
|  Team Members                          |
|----------------------------------------|
|  you@company.com    Owner    [Active]  |
|  dev@company.com    Admin    [Active]  |
|  new@company.com    Admin    [Pending] |
|                                        |
|  [Invite Admin]                        |
+----------------------------------------+

Admin Seat Limits

PlanAdmin Seats (including owner)
Free1 (owner only)
Pro1 (owner only)
Team5
Enterprise50

Attempting to invite beyond your limit shows an error with a prompt to upgrade.

Revoking Access

Both actions trigger a confirmation modal to prevent accidental removal.

Billing and Plan Management

  1. Go to Dashboard > My Plan.
  2. View your current plan, next renewal date, and usage (sites, threads).
  3. Click Manage Subscription to open the billing portal.

From the billing portal you can:

Plan changes take effect immediately. When upgrading, new features unlock instantly. When downgrading, see Section 16 for how thread limits are handled.

FAQ

Q: Can I transfer site ownership? A: Not through the Dashboard directly. Contact support at contact@mamtack.com to arrange an ownership transfer.

Q: Do delegated admins need their own Mamtack account? A: Yes. When they accept the invite, they create an account (or sign in to an existing one) linked to their email address.

Q: What happens to threads assigned to a removed admin? A: The threads remain assigned but show the former admin's name grayed out. Reassign them from the sidebar or let another admin pick them up.


16. Plan Tiers & Limits — Choose the Right Plan

Mamtack offers four plan tiers designed to grow with your team. Start free to evaluate, then upgrade as your feedback volume and collaboration needs increase.

Plan Comparison

FeatureFreePro ($34/mo)Team ($79/mo)Enterprise
Sites1520Unlimited
Threads per site15200UnlimitedUnlimited
Commenter identityDisplay nameOAuth + OTPOAuth + OTP, can require sign-inOAuth + OTP + SSO
Admin rolesOwner onlyOwnerOwner + delegated admins (5 seats)Owner + admins (50 seats)
AI taggingYes (shared queue, BYOK available)Yes + custom taxonomyYes + custom taxonomyYes + custom taxonomy
AI suggestions--YesYesYes
Integrations--Slack, Email, Webhooks, GitHub IssuesAll Pro + Jira, Linear, MCPAll Team integrations
Flag for Fix----YesYes
Export--CSV / JSONCSV / JSON + MCPCSV / JSON + MCP
Widget brandingVisibleRemovedRemovedRemoved
Notification brandingVisibleVisibleRemovedRemoved
SupportCommunityEmailPriorityDedicated + SLA

Thread Limits

Your plan determines how many active (unresolved) threads each site can hold simultaneously. When you hit the limit:

To free up slots, resolve or delete threads you no longer need. Resolved threads do not count against your active thread limit.

Upgrading

Upgrade at any time from Dashboard > My Plan, or visit the pricing page at mamtack.com. New features unlock immediately upon upgrade — no waiting period, no restart required.

Downgrading

When you move to a lower tier:

Enterprise

Enterprise pricing is custom and includes:

Contact the team at contact@mamtack.com to discuss Enterprise needs.

Upcoming Features

FAQ

Q: Do resolved threads count against my limit? A: No. Only open (unresolved) threads consume your quota. Resolve or delete threads to free up capacity.

Q: What happens to my webhooks if I downgrade from Pro to Free? A: Webhook endpoints are paused but not deleted. If you upgrade again, they reactivate with the same configuration.

Q: Can I pay annually for a discount? A: Annual billing is available for Pro and Team plans. Check the pricing page at mamtack.com for current annual rates.