Skill: Create a New Portfolio

Learn how to create a portfolio board and retrieve its ID by polling workspace boards

The create_portfolio mutation creates a new portfolio board, but it doesn't return a board ID directly. Instead, it returns a success flag and a solution_live_version_id that can't be used to look up the board. To get the portfolio board ID, you need to record a timestamp before creation and then poll the workspace boards.

This guide walks through the full workflow.

Step 1 — Record a timestamp and create the portfolio

Record the current UTC timestamp immediately before calling the mutation, then create the portfolio:

mutation {
  create_portfolio(
    boardName: "My Portfolio",
    boardPrivacy: "public",
    destinationWorkspaceId: WORKSPACE_ID
  ) {
    success
    message
  }
}

The boardPrivacy argument accepts "public" or "private".

Step 2 — Poll for the portfolio board

Wait approximately 20 seconds, then fetch boards created after your recorded timestamp:

{
  boards(workspace_ids: [WORKSPACE_ID], limit: 20, order_by: created_at) {
    id
    name
    board_kind
    created_at
    groups { title }
  }
}

Filter the results client-side to identify the new portfolio board:

  • created_at is after your recorded timestamp
  • The board has a single group named Projects
  • The name matches the portfolio name you provided

This combination reliably identifies the newly created portfolio board.

Important notes

  • create_portfolio returns solution_live_version_id — this is not a board ID and cannot be used to look up the board directly.
  • The boards query has no name filter, so identification must be done client-side after polling.
  • If multiple portfolios could be created concurrently in the same workspace, the timestamp filter is the most reliable differentiator.