Issue trackers
Turn a session into a ticket while you are watching it - one button in the player, your own words in the description, and the replay link already attached.
1. Why this one is manual
Every other bridge in MousePlayer fires by itself. This one does not, and that is the whole design.
A ticket is work for a person. If we opened one for every rage click, your board would fill with items nobody triaged, and within a week your team would filter them out - at which point the real ones get filtered out too.
So the trigger is you. You watch a session, you see the thing, you press the button and write what you saw. The recording link is already in the description; you supply the judgement.
The button only appears for owners and admins, and never in a shared-link view. Someone you sent a recording to should not be able to open tickets in your tracker.
2. The five trackers and what each one needs
| Where it lands | You provide | |
|---|---|---|
| Jira | an issue in a project | site URL, account email, API token, project key, issue type |
| Linear | an issue in a team | API key, team ID |
| Asana | a task in a project | personal access token, project ID |
| Trello | a card in a list | key, token, list ID |
| GitHub | an issue in a repository | personal access token, owner/repo |
One tile, one provider selected at a time. Adding a second tracker later is a change of selection, not a migration.
Where the identifiers come from
Linear's team ID and Asana's project ID are visible in the URL when you open the team or project in a browser. Trello's list ID is the hardest of the five: append .json to a board URL and look for the list you want. Jira's project key is the prefix in front of every issue number - ACME in ACME-1234.
3. The link in the ticket is built by our server
The description you type is yours. The replay link is not - it is assembled on our side from the session you were actually watching, and the form cannot influence it.
That matters because a ticket is a thing other people click. If the link came from the browser, a crafted request could put any address in front of your team inside something that looks like your own tooling.
HTTP 200 does not mean the ticket exists
Linear answers over GraphQL, and GraphQL answers 200 OK with an errors array when it refuses. A bridge that only looks at the status code would report success for a ticket that was never created. We read the body.
Where a tracker returns the new issue's identifier, we put it in the confirmation - so you can check that it is really there rather than trusting a green message.
4. What is deliberately not here
No automatic tickets
See above. If you want automation, the webhook bridge can send frustration signals to Zapier or Make, and you can decide there what deserves a ticket.
No two-way sync
Closing the ticket does not change anything in MousePlayer, and nothing in MousePlayer reopens it. A sync that runs one and a half directions is worse than none, because people start to rely on it.
No attachments
The recording stays with us and is watched with us. Exporting a video into a tracker would push personal data into a system with different retention rules than the ones you agreed with your visitors.
The token is stored AES-256-GCM encrypted and never shown again. It is also never put into the internal queue - this call happens while you wait, straight from the request.
5. GitLab, Azure DevOps and ClickUp
Three more trackers, same button, same manual trigger.
| You provide | |
|---|---|
| GitLab | host, project ID and a token - your own GitLab works too |
| Azure DevOps | organisation, project, work item type and a PAT |
| ClickUp | list ID and a personal token |
GitLab asks for a host because you might own it
Unlike the others, GitLab is often self-hosted, so the host is a field rather than a constant. Paste gitlab.com if that is where you are.
Azure DevOps has two quirks at once
Its body is a JSON Patch document rather than an object, and its content type has to be application/json-patch+json - anything else answers 415. The dollar sign in front of the work item type in the URL is part of the address, not a placeholder we forgot to fill in.
ClickUp wants the token bare
No Bearer in front of it. A token with the word prepended is rejected with 401, which looks exactly like a wrong token.
All trademarks named here belong to their respective owners. MousePlayer has no business relationship with these providers.