> ## Documentation Index
> Fetch the complete documentation index at: https://support.configview.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Productboard setup

ConfigView reads your Productboard workspace through Productboard's REST API (v2), using a **Public API access token** you create for ConfigView.

You will end up with **1 secret** in ConfigView: `PRODUCTBOARD_API_TOKEN`.

> **Scope of this integration today.** ConfigView reads who has access to your Productboard workspace and with what role (admin, maker, contributor or viewer), who is disabled or still invited, the teams people are on, how often each member actually uses Productboard (daily activity counts), and the tools Productboard is connected to: Jira sites, plugin integrations and webhooks. ConfigView only reads. It never creates, changes or deletes anything, and it never reads your product content: features, notes, customer feedback, insights, companies, customer users, objectives or releases.

**Plan requirement:** Public API access tokens need the Productboard **Pro** plan or higher. On Essentials the option is missing from Settings.

***

## Step 1: Open the Productboard page in ConfigView

Open ConfigView in a second browser tab and leave it open:

`https://{companyname}.configview.com/admin/integrations/productboard`

***

## Step 2: Create a Public API access token

Sign in to Productboard as a **workspace admin** (a maker with admin access). Productboard hides member names and emails (it returns `[redacted]`) from callers that aren't allowed to read personal details, and without emails ConfigView can't match anyone to a person. Creating the token as an admin gives it the most access. The health check tells you if emails are still hidden.

1. Open **Settings → Integrations → Public APIs**
2. Under **Access Token**, click the **+** icon
3. Copy the token straight away. Productboard shows it only once
4. Switch to the ConfigView tab, paste it into `PRODUCTBOARD_API_TOKEN` under **Credentials**, and click the save icon

The token belongs to the workspace, not to a person's sign-in. Productboard tokens don't expire, so you only replace this one if somebody deletes it.

***

## Step 3: Connect and verify

1. Back on `https://{companyname}.configview.com/admin/integrations/productboard`, confirm the credential shows as saved
2. Click **Connect**. ConfigView creates its tables and schedules every collector at your default run time. Stop any you don't want under **Collectors**:

| Script | Notes |
| - | - |
| **Members** | Everyone with access to the Productboard workspace, including disabled members and invitations not yet accepted: name, email, role (admin, maker, contributor or viewer - admins and makers are the paid seats), whether the member is disabled, and the teams they are on. |
| **Teams** | Productboard teams: name, the @handle used to mention them, and when each was created and last changed. |
| **Team Members** | Who is on each Productboard team. Runs after **Teams**. |
| **Member Activity** | How much each member used Productboard, day by day: whether they were active, how many boards they opened, and how many notes, insights and features they created. Counts only - nothing they wrote is stored. Kept as a growing history, so it shows who holds a paid seat without using it. |
| **Jira Integrations** | Jira sites connected to Productboard, which push features into Jira issues and sync their status back: the integration's name, whether it is turned on, and when it was set up. |
| **Plugin Integrations** | Outside tools hooked into Productboard's Features board through a plugin integration - a push button that sends a feature to another system: the tool's type and name, whether it is on, and when it was added. The address it sends to and its secret are never returned by Productboard and are not stored. |
| **Webhooks** | Webhooks that send Productboard changes (features, notes, releases, objectives and more) to an outside address: which changes are sent and the host they go to. The full URL and its authorization header are not stored. |

3. Click **Verify now**. The health check confirms the token can list members, checks that member emails come back, then reads one page of each other kind of data.

If a check fails:

* **"Productboard members" fails with 401.** The token is wrong or was deleted. Create a new one (Step 2).
* **"Productboard members" fails with 403 or 404.** The workspace isn't on a plan with the Public API, or the token can't read members. Create the token as a workspace admin.
* **"Member emails visible" shows a warning.** Productboard is returning names and emails as `[redacted]` because the token doesn't have permission to read them. Roles are still collected, but nobody can be matched to a person. Create a new token while signed in as a workspace admin, replace the secret, and verify again.
* **"Member activity", "Jira integrations", "Plugin integrations" or "Webhooks" is skipped.** That part of the API isn't available to your plan or token. The table stays empty and nothing fails.

***

## Data Tables

Once the scripts run, these tables are created in your database. Each includes a `run_at` column. Every table keeps only the newest run, except `productboard_member_activity`, which keeps every day ever collected.

| Table | Source | Key Columns |
| - | - | - |
| `productboard_members` | `GET /v2/members` | member\_id, name, username, email, role, disabled, invitation\_pending, team\_count, team\_names |
| `productboard_teams` | `GET /v2/teams` | team\_id, name, handle, description, created\_at, updated\_at |
| `productboard_team_members` | `GET /v2/teams/{id}/members` | team\_id, team\_name, member\_id, name, email |
| `productboard_member_activity` | `GET /v2/analytics/member-activities` | activity\_key, activity\_date, member\_id, role, active\_flag, boards\_opened, boards\_created, notes\_created, note\_state\_changes, insights\_created, features\_created, subfeatures\_created, components\_created, products\_created |
| `productboard_jira_integrations` | `GET /v2/jira-integrations` | integration\_id, name, integration\_status, created\_at |
| `productboard_plugin_integrations` | `GET /v2/plugin-integrations` | integration\_id, plugin\_type, name, integration\_status, button\_label, created\_at |
| `productboard_webhooks` | `GET /v2/webhooks` | webhook\_id, name, events, event\_count, url\_host, payload\_version, created\_at |

***

## Things worth knowing

**Admins and makers are the paid seats.** Contributors and viewers are free in Productboard. `role` is one of `admin`, `maker`, `contributor` or `viewer`. An admin is a maker who can also manage members, integrations and billing.

**Disabled members and invitations are included.** `disabled = 1` is a member whose access was turned off. `invitation_pending = 1` is someone invited who has not accepted yet.

**Redacted names and emails are stored as empty.** If the token can't read names and emails, Productboard sends `[redacted]` in their place. ConfigView stores those as empty (NULL) and the run log says how many there were, so an empty email never looks like a real value.

**Member activity is a daily history.** One row per member per day, with `active_flag` and counts of boards opened and notes, insights and features created. The first run reads 90 days back. Each later run re-reads the last few days, because the newest day's counts can still grow, and nothing is ever deleted. Activity is keyed by `member_id`; join it to `productboard_members` to see the person.

**Webhook destinations are stored as hosts.** `url_host` is where Productboard sends changes, never the full URL, which can carry a token.

**Native integrations without an API.** Productboard's API lists Jira integrations, plugin integrations and webhooks. Other native integrations, such as Slack, Salesforce, Zendesk or Intercom, aren't exposed by the API, so they don't appear here. You'll usually see the other side of those connections in that app's own ConfigView integration.

**No audit log or token list.** Productboard's API has no audit log and no way to list API tokens, so neither is collected.

**Rate limits.** Productboard allows 50 requests per second per token. ConfigView sends about one request a second, and waits when Productboard asks it to slow down.

## What isn't collected

* The API token itself or any other secret, including plugin integration and webhook authorization headers
* Webhook URLs (only the host) and plugin integration action URLs (Productboard never returns them)
* Features, components, products, notes, insights, customer feedback, companies, customer users, objectives, key results, initiatives, releases and custom field values
* Any text a member wrote: only daily activity counts


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.