REST API
Idea boards
The boards where customers vote, and their ideas.
GET /ideas/boards(tracker:read, company admins or owners): idea boards, where customers vote on what they want to see. Each one withurl(the public address, which the customer opens without an account),published,ideasandpending_suggestions(customer suggestions waiting for the team).GET /ideas/boards/{id}(tracker:read),POST /ideas/boardsandPATCH/DELETE /ideas/boards/{id}(tracker:write):{"title": "Ideas for the app", "intro": "...", "projects": ["MOB"], "published": true, "access": "link|restricted", "allow_list": ["@customer.com", "[email protected]"], "allow_suggestions": true}. In the PATCH, only what's sent changes;projectsandallow_listreplace the whole list.link: anyone with the link sees it, and voting requires an e-mail confirmed by code;restricted: only those who confirm an e-mail on the list see the ideas. The GET returnsideas(published, most voted first, with thestatusthe customer sees,issue,votesandcomments) andpending_suggestions(withsuggested_by, the customer's e-mail). An idea from a project that left the board disappears only from the public page.POST /ideas/boards/{id}/ideas(tracker:write): creates a published idea,{"title": "Export to PDF", "description": "...", "project": "MOB", "issue": "MOB-0012", "status": "under_review|planned|in_progress|released|closed"}. Withissue(from a project on the board; withouttitle, it uses the issue's), the status follows the issue's; without it,statusapplies. When the status changes to planned, in_progress, released or closed, whoever voted gets an e-mail, in the language of the page where they confirmed their e-mail.GET /ideas/{id}(tracker:read; the idea with its votes and comments, with the e-mail of who wrote them),PATCH /ideas/{id}(the creation fields, only what's sent changes;"issue": nullunlinks the issue;{"published": true}publishes a customer's suggestion) andDELETE /ideas/{id}(deletes it; that's how a suggestion is declined) (tracker:write).POST /ideas/{id}/commentswith{"body": "..."}replies as the team (the customer sees "Equipe <company>");DELETE /ideas/comments/{id}deletes a comment.