The Feedback Center is a unified hub shared by every connected project. Integration is deliberately trivial — no code on the sub-project side: just put a link to /feedback/<your APPID>/ on your page (or embed it in an iframe). The submission form, attachment upload, AI review, public area and developer contacts are all hosted by this service; you write no submission logic and store no feedback data.
The user flow: pick a feedback type (feature request / upgrade / usage question / bug / other) → write the message (no title needed) → optionally attach images and videos (count and size limits are configured centrally) → submit. Guests may submit anonymously (a captcha is required and per-IP rate limits apply); signed-in users submit with their identity and can revisit their feedback under "My feedback" to follow up. A new submission is "Pending review"; once the AI passes it, it becomes "To process"; after an admin replies it becomes "Replied".
How the sign-in state reaches the feedback page: your frontend calls POST /api/feedback/ticket with the user's own UAC Token to obtain a one-time, 5-minute ticket, then appends it to the feedback page URL (?ticket=xxx) as a link or iframe address. The page consumes the ticket, establishes a session and 303-redirects to a clean URL without the ticket, so the UAC Token never lands in the URL, browser history or server access logs. Guests need no ticket — just open the feedback page.
Where developer contacts are shown (three places): (1) at the bottom of the feedback page (the "Developer contact" card on /feedback/<app_id>/); (2) the public area page shows the same contacts; (3) your own page can call GET /api/feedback/contacts?app_id=<APPID> (no signature required) and render the data yourself. Contacts are maintained per project by the super admin under "Feedback → Feedback center settings → Developer contacts per project"; both the platforms shown (QQ / QQ Mail / WeChat / Telegram / WhatsApp / Discord, …) and the values are fully customisable, and different projects may use different values.
About AI review: the switch and both prompts live under "Feedback center settings → AI review" in the console (leave them empty to use the built-in generic rules). The rules are the prompt — whatever you write is sent to the AI together with the feedback text and submitter info, and the AI decides whether to reject. Submissions are reviewed one by one by a background thread, so they never consume your API calls; if no usable AI model is configured, review is skipped and the submission goes straight to "To process". Before an admin reply is sent the AI also reviews its tone, but it only warns and never blocks — the admin may edit and resend, or send it anyway (a forced send is recorded in the audit trail). If a submission somehow missed review (for example the call failed), the console offers a "Review now" action to re-run it with priority.
Data isolation and the public area: feedback is isolated per connected project, and the console can filter and search by project / status / type / AI review state. Every project also gets a "public area" that shows only feedback submitted by guests and already cleared by review (no attachments and no submitter identity), so visitors can search whether someone already raised the same issue; admins can hide any entry from the public area at any time.