Create a tracker ticket in a project. When
customerEmail is set, the customer is added as the first upvoter
(upvotes: [{ email, name }], upvotesCount: 1) and their session
(source ticket's session, else resolved by email) becomes the ticket's
creator session — used for feature requests where the originating
customer should own the request like a portal-submitted one.
Feature requests filed by an agent (createdByAgent set) are created as
ordinary customer requests linked to their conversation, NOT as tracker
tickets — only human/dashboard creates get trackerTicket: true.
A feature request that strongly matches existing ones is refused with a
409 DUPLICATE_FEATURE_REQUEST listing them in candidates (best first;
duplicate is the best one). Repeat the call with their ids in
notDuplicateOf when they are a different need.
Bearer <token>.Provenance for agent-created tickets ("Created by Kai from #123").
Ids of existing feature requests (from a duplicate response's
candidates) that are a different need than this one, e.g. the same
feature on another product surface. The duplicate check skips them.
Dashboard creates pass true (humans already saw duplicate suggestions in the modal). Agent/MCP creates must NOT set this — the server-side duplicate guard is what keeps agents from filing the same request twice.
Ok