Product feedback
A free product feedback tool: one line of code on your site, a share link, or a flag in the chat window; feedback is sorted into your categories by AI and you can reply to the sender by email.
What it is
purser feedback is a free product feedback tool, available on every plan with no limit on team members. Visitors write a few lines, optionally attach a screenshot and leave an email address, and the feedback lands under Feedback (反馈) in the console sidebar.
Feedback is stored separately from support conversations and tickets. Feedback sent from the chat window carries a link to that conversation so you can read them side by side.
All three entry points need your workspace's publishable key (starting pk_), which you create on the Setup (接入) page of the console. The embed code and switches are under Feedback → Setup and settings (接入与设置).
Three entry points
You can use all three at once; everything arrives in the same place.
1. One line of code on your site
<script src="https://askpurser.com/embed/feedback-v1.js" data-key="pk_your_publishable_key" async></script>A vertical Feedback tab appears on the edge of the page. Its colour and corner radius follow your chat window's appearance settings. Visitors can capture the current page or add a screenshot; the page address, referrer, browser, screen size and language are attached automatically.
Optional attributes:
| Attribute | What it does |
|---|---|
data-key | Required: your publishable key |
data-label="Ideas" | The tab's text; by default it is shown in the visitor's language |
data-position="left" | Put the tab on the left edge; the default is right |
data-trigger="none" | No tab; open the form from your own element (see below) |
data-locale="ja" | The form's language; by default the browser's |
data-app-version="2.4.1" | Shown next to each piece of feedback |
Your own button: add data-trigger="none", then give any element the data-purser-feedback attribute; clicking it opens the form. The attribute's value can be a category name, which is then preselected (while the three default categories keep their default names, bug, idea and other work too):
<button data-purser-feedback="bug">Report a problem</button>JavaScript:
// A signed-in user: prefill email and name
purserFeedback.user = { email: "user@example.com", name: "Mia" };
// Open the form, preselect a category, attach your own details
purserFeedback.open({ category: "idea", metadata: { plan: "pro", userId: "u_123" } });
// Link feedback to a verified customer, with the same identity token as the chat
purserFeedback.identify(async () => fetchIdentityToken());See Identity tokens for creating tokens. Once linked, the feedback shows the sender as a verified customer with their order count.
2. Share link
https://askpurser.com/f/pk_your_publishable_keyPut it in emails, your app or community posts; no code needed. Add ?lang=ja to set the form's language and ?category=<category name> to preselect a category.
3. A flag in the chat window
If you already use the purser chat window, turn on "Show feedback in the chat window" (聊天窗口里显示反馈入口) under Feedback → Setup and settings, and a small flag button appears at the top of the chat window. Feedback sent from the chat carries a link to that conversation, but the two are stored separately. Only owners and admins can change this switch.
The feedback form is available in 12 languages and follows the visitor's language.
Monthly allowance
Counted per calendar month (UTC), per workspace:
| Plan | Feedback per month |
|---|---|
| Free | 1,000 |
| Starter | 10,000 |
| Growth | 10,000 |
| Scale | 50,000 |
| Test workspace | 1,000 |
The console shows this month's usage with a progress bar. When the allowance is used up, the form tells visitors as soon as it opens that the feedback box is full this month and to try again next month, and any submission is refused with the same message. Nothing is dropped silently.
Abuse protection
- Each sender may send at most 10 per hour (counted by the sender's IP address, which is stored only as a one-way hash). Beyond that, the form asks them to wait a little and try again.
- The form has a field visitors cannot see, and a form sent within 1.5 seconds of opening is treated as a bot. Bots see a normal "thank you" but nothing is stored.
- Text is 3–5,000 characters. Screenshots may be JPEG, PNG or WebP, up to 2 MB.
Screenshots are kept for 180 days
Screenshots are deleted automatically after 180 days; the text of the feedback is kept. Older feedback shows that its screenshot has expired or been deleted.
Categories and AI sorting
Every workspace starts with three categories: 问题 (problem), 建议 (idea) and 其他 (other). While they keep their default names, the form shows them in the visitor's language.
Under Feedback → Setup and settings you can add, rename, reorder, colour and delete categories (owners and admins only). Deleting a category does not delete its feedback; it becomes uncategorised (未分类).
Each category has a description written for the AI (for example, "payments, refunds and invoices"). When a visitor does not pick a category, the AI sorts the feedback into one of yours using those descriptions; if it is less than 50% sure, the feedback stays uncategorised. The AI only sorts when there are at least two categories. A category the AI chose is marked as AI-sorted (AI 分类) with its confidence; if you change it by hand, it counts as yours. Clearer descriptions give better sorting.
Statuses
Every piece of feedback has a number (#1, #2 and so on) and a status:
| Status (console label) | Use |
|---|---|
| New (新的) | Just arrived |
| In progress (处理中) | Someone is looking at it |
| Planned (已计划) | You decided to do it |
| Done (已完成) | Finished |
| Won't do (不做) | You decided not to do it |
Filter the list by status and category, or search the text, email address or #number. The detail view shows the screenshot, page address, referrer, device, app version, sender, source (site feedback tab, chat window, share link or API), and, for feedback from the chat, the conversation it came from.
Replying to the sender
At the bottom of the detail view:
- Save as internal note (存为内部备注): visible only to your team.
- Reply by email (邮件回复): emails the sender, at the address they left or, for a verified customer who left none, the email you have on file for them. You can also tick Mark as done (同时标为已完成).
The email is sent from your workspace's purser email address, with your store name as the sender; if they reply, it arrives in your inbox as an email conversation (see Email). The subject line is currently always in Chinese: "回复:你的反馈 #N" (reply), or "已处理:你的反馈 #N" (done) when you mark it as done.
If the sender left no email address and is not a verified customer, you can only write internal notes. Replying by email needs a working sending domain; without one, the console says email sending is not set up yet, and you can still write internal notes.
Refunds
purser never touches money: it calls your own endpoint, your system sets the amount, the AI offers a refund only when the rules allow it, and refunds within your limits run automatically while the rest wait for approval.
Plans and billing
The four plans and their allowances, what counts as an AI conversation, how overage and extra seats are settled, changing plans, cancelling, failed payments, invoices and test workspaces.