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 with url (the public address, which the customer opens without an account), published, ideas and pending_suggestions (customer suggestions waiting for the team).
  • GET /ideas/boards/{id} (tracker:read), POST /ideas/boards and PATCH/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; projects and allow_list replace 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 returns ideas (published, most voted first, with the status the customer sees, issue, votes and comments) and pending_suggestions (with suggested_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"}. With issue (from a project on the board; without title, it uses the issue's), the status follows the issue's; without it, status applies. 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": null unlinks the issue; {"published": true} publishes a customer's suggestion) and DELETE /ideas/{id} (deletes it; that's how a suggestion is declined) (tracker:write). POST /ideas/{id}/comments with {"body": "..."} replies as the team (the customer sees "Equipe <company>"); DELETE /ideas/comments/{id} deletes a comment.