{
  "service": "productboard",
  "displayName": "Productboard",
  "categories": [
    "Productivity",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Token",
      "placeholder": "PRODUCTBOARD_API_TOKEN",
      "description": "Productboard personal access token used as a Bearer token. Create it in Settings > Integrations > Public APIs > Access Token: https://developer.productboard.com/reference/api-token."
    }
  ],
  "homepageUrl": "https://www.productboard.com",
  "actions": [
    {
      "id": "productboard.get_entity",
      "service": "productboard",
      "name": "get_entity",
      "description": "Get a Productboard product-management entity by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Productboard entity identifier."
          },
          "fields": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Productboard field identifier."
            },
            "description": "Productboard fields to return. Use all or field IDs from the configuration endpoints.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "entity": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Productboard JSON object payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "productboard.get_entity_configuration",
      "service": "productboard",
      "name": "get_entity_configuration",
      "description": "Get the Productboard configuration for one entity type.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "product",
              "component",
              "feature",
              "subfeature",
              "initiative",
              "objective",
              "keyResult",
              "release",
              "releaseGroup",
              "user",
              "company"
            ],
            "description": "Productboard entity type to retrieve."
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "configuration": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Productboard JSON object payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "productboard.get_member",
      "service": "productboard",
      "name": "get_member",
      "description": "Get a Productboard workspace member by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Productboard member identifier."
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "member": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Productboard JSON object payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "productboard.get_note",
      "service": "productboard",
      "name": "get_note",
      "description": "Get a Productboard note by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Productboard note identifier."
          },
          "fields": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Productboard field identifier."
            },
            "description": "Productboard fields to return. Use all or field IDs from the configuration endpoints.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "note": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Productboard JSON object payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "productboard.get_note_configuration",
      "service": "productboard",
      "name": "get_note_configuration",
      "description": "Get the Productboard configuration for one note type.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "textNote",
              "conversationNote",
              "opportunityNote",
              "simple",
              "conversation",
              "opportunity"
            ],
            "description": "Productboard note type to retrieve."
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "configuration": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Productboard JSON object payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "productboard.get_team",
      "service": "productboard",
      "name": "get_team",
      "description": "Get a Productboard team by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Productboard team identifier."
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "team": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Productboard JSON object payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "productboard.list_entities",
      "service": "productboard",
      "name": "list_entities",
      "description": "List Productboard product-management entities with supported filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "pageCursor": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque cursor returned by a previous Productboard list response."
          },
          "types": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "product",
                "component",
                "feature",
                "subfeature",
                "initiative",
                "objective",
                "keyResult",
                "release",
                "releaseGroup",
                "user",
                "company"
              ]
            },
            "description": "Entity types to include.",
            "minItems": 1
          },
          "fields": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Productboard field identifier."
            },
            "description": "Productboard fields to return. Use all or field IDs from the configuration endpoints.",
            "minItems": 1
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Filter entities by name."
          },
          "ownerId": {
            "type": "string",
            "minLength": 1,
            "description": "Filter entities by Productboard owner ID."
          },
          "ownerEmail": {
            "type": "string",
            "description": "Filter entities by Productboard owner email.",
            "format": "email"
          },
          "statusId": {
            "type": "string",
            "minLength": 1,
            "description": "Filter entities by Productboard status ID."
          },
          "statusName": {
            "type": "string",
            "minLength": 1,
            "description": "Filter entities by Productboard status name."
          },
          "archived": {
            "type": "boolean",
            "description": "Filter entities by archived status."
          },
          "parentId": {
            "type": "string",
            "minLength": 1,
            "description": "Filter entities by parent entity ID."
          },
          "metadataSourceSystem": {
            "type": "string",
            "minLength": 1,
            "description": "Filter entities by metadata source system name."
          },
          "metadataSourceRecordId": {
            "type": "string",
            "minLength": 1,
            "description": "Filter entities by metadata source record ID."
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "entities": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Productboard JSON object payload."
            },
            "description": "Productboard entities returned by the API."
          },
          "nextPageCursor": {
            "anyOf": [
              {
                "type": "string",
                "description": "Opaque Productboard cursor for requesting the next page."
              },
              {
                "type": "null"
              }
            ]
          },
          "nextPageUrl": {
            "anyOf": [
              {
                "type": "string",
                "description": "Productboard next page URL returned in links.next.",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ]
          },
          "links": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Productboard links object returned with the response."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "productboard.list_entity_configurations",
      "service": "productboard",
      "name": "list_entity_configurations",
      "description": "List Productboard entity configurations available in the workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "types": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "product",
                "component",
                "feature",
                "subfeature",
                "initiative",
                "objective",
                "keyResult",
                "release",
                "releaseGroup",
                "user",
                "company"
              ]
            },
            "description": "Optional entity types to include.",
            "minItems": 1
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "configurations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Productboard JSON object payload."
            },
            "description": "Productboard entity configurations."
          },
          "nextPageCursor": {
            "anyOf": [
              {
                "type": "string",
                "description": "Opaque Productboard cursor for requesting the next page."
              },
              {
                "type": "null"
              }
            ]
          },
          "nextPageUrl": {
            "anyOf": [
              {
                "type": "string",
                "description": "Productboard next page URL returned in links.next.",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ]
          },
          "links": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Productboard links object returned with the response."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "productboard.list_members",
      "service": "productboard",
      "name": "list_members",
      "description": "List Productboard workspace members.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "pageCursor": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque cursor returned by a previous Productboard list response."
          },
          "query": {
            "type": "string",
            "minLength": 1,
            "description": "Case-insensitive partial match query for member name or email."
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "admin",
                "maker",
                "viewer",
                "contributor"
              ]
            },
            "description": "Member roles to include.",
            "minItems": 1
          },
          "includeDisabled": {
            "type": "boolean",
            "description": "Whether to include disabled members."
          },
          "includeInvitationPending": {
            "type": "boolean",
            "description": "Whether to include members with pending invitations."
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "members": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Productboard JSON object payload."
            },
            "description": "Productboard members returned by the API."
          },
          "nextPageCursor": {
            "anyOf": [
              {
                "type": "string",
                "description": "Opaque Productboard cursor for requesting the next page."
              },
              {
                "type": "null"
              }
            ]
          },
          "nextPageUrl": {
            "anyOf": [
              {
                "type": "string",
                "description": "Productboard next page URL returned in links.next.",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ]
          },
          "links": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Productboard links object returned with the response."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "productboard.list_note_configurations",
      "service": "productboard",
      "name": "list_note_configurations",
      "description": "List Productboard note configurations available in the workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "types": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "textNote",
                "conversationNote",
                "opportunityNote",
                "simple",
                "conversation",
                "opportunity"
              ]
            },
            "description": "Optional note types to include.",
            "minItems": 1
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "configurations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Productboard JSON object payload."
            },
            "description": "Productboard note configurations."
          },
          "nextPageCursor": {
            "anyOf": [
              {
                "type": "string",
                "description": "Opaque Productboard cursor for requesting the next page."
              },
              {
                "type": "null"
              }
            ]
          },
          "nextPageUrl": {
            "anyOf": [
              {
                "type": "string",
                "description": "Productboard next page URL returned in links.next.",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ]
          },
          "links": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Productboard links object returned with the response."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "productboard.list_notes",
      "service": "productboard",
      "name": "list_notes",
      "description": "List Productboard notes with supported filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "pageCursor": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque cursor returned by a previous Productboard list response."
          },
          "archived": {
            "type": "boolean",
            "description": "Filter notes by archived status."
          },
          "processed": {
            "type": "boolean",
            "description": "Filter notes by processed status."
          },
          "types": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "textNote",
                "conversationNote",
                "opportunityNote",
                "simple",
                "conversation",
                "opportunity"
              ]
            },
            "description": "Note types to include.",
            "minItems": 1
          },
          "ownerId": {
            "type": "string",
            "minLength": 1,
            "description": "Filter notes by Productboard owner ID."
          },
          "ownerEmail": {
            "type": "string",
            "description": "Filter notes by Productboard owner email.",
            "format": "email"
          },
          "creatorId": {
            "type": "string",
            "minLength": 1,
            "description": "Filter notes by Productboard creator ID."
          },
          "creatorEmail": {
            "type": "string",
            "description": "Filter notes by Productboard creator email.",
            "format": "email"
          },
          "metadataSourceSystem": {
            "type": "string",
            "minLength": 1,
            "description": "Filter notes by metadata source system name."
          },
          "metadataSourceRecordId": {
            "type": "string",
            "minLength": 1,
            "description": "Filter notes by metadata source record ID."
          },
          "createdFrom": {
            "type": "string",
            "description": "Filter notes created on or after this ISO-8601 timestamp.",
            "format": "date-time"
          },
          "createdTo": {
            "type": "string",
            "description": "Filter notes created on or before this ISO-8601 timestamp.",
            "format": "date-time"
          },
          "updatedFrom": {
            "type": "string",
            "description": "Filter notes updated on or after this ISO-8601 timestamp.",
            "format": "date-time"
          },
          "updatedTo": {
            "type": "string",
            "description": "Filter notes updated on or before this ISO-8601 timestamp.",
            "format": "date-time"
          },
          "fields": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Productboard field identifier."
            },
            "description": "Productboard fields to return. Use all or field IDs from the configuration endpoints.",
            "minItems": 1
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "notes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Productboard JSON object payload."
            },
            "description": "Productboard notes returned by the API."
          },
          "nextPageCursor": {
            "anyOf": [
              {
                "type": "string",
                "description": "Opaque Productboard cursor for requesting the next page."
              },
              {
                "type": "null"
              }
            ]
          },
          "nextPageUrl": {
            "anyOf": [
              {
                "type": "string",
                "description": "Productboard next page URL returned in links.next.",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ]
          },
          "links": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Productboard links object returned with the response."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "productboard.list_team_members",
      "service": "productboard",
      "name": "list_team_members",
      "description": "List members belonging to a Productboard team.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "teamId": {
            "type": "string",
            "minLength": 1,
            "description": "Productboard team identifier."
          },
          "pageCursor": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque cursor returned by a previous Productboard list response."
          }
        },
        "additionalProperties": false,
        "required": [
          "teamId"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "members": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Productboard JSON object payload."
            },
            "description": "Productboard team members returned by the API."
          },
          "nextPageCursor": {
            "anyOf": [
              {
                "type": "string",
                "description": "Opaque Productboard cursor for requesting the next page."
              },
              {
                "type": "null"
              }
            ]
          },
          "nextPageUrl": {
            "anyOf": [
              {
                "type": "string",
                "description": "Productboard next page URL returned in links.next.",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ]
          },
          "links": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Productboard links object returned with the response."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "productboard.list_teams",
      "service": "productboard",
      "name": "list_teams",
      "description": "List Productboard teams.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "pageCursor": {
            "type": "string",
            "minLength": 1,
            "description": "Opaque cursor returned by a previous Productboard list response."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Filter teams by exact name, case-insensitive."
          },
          "handle": {
            "type": "string",
            "minLength": 1,
            "description": "Filter teams by exact handle, case-insensitive."
          },
          "query": {
            "type": "string",
            "minLength": 1,
            "description": "Case-insensitive partial match query for team name or handle."
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "teams": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Productboard JSON object payload."
            },
            "description": "Productboard teams returned by the API."
          },
          "nextPageCursor": {
            "anyOf": [
              {
                "type": "string",
                "description": "Opaque Productboard cursor for requesting the next page."
              },
              {
                "type": "null"
              }
            ]
          },
          "nextPageUrl": {
            "anyOf": [
              {
                "type": "string",
                "description": "Productboard next page URL returned in links.next.",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ]
          },
          "links": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Productboard links object returned with the response."
          }
        },
        "additionalProperties": false
      }
    }
  ]
}
