Azure DevOps Plugin Configuration Guide

This guide explains how to configure the ActivityPulse Azure DevOps plugin to fetch activity data from your Azure DevOps organization or collection.

Prerequisites

  • Azure DevOps account with access to the projects you want to track
  • A Personal Access Token with appropriate scopes
  • Your Azure DevOps organization URL (Services) or collection URL (Server)

Overview

The Azure DevOps plugin uses the Azure DevOps REST API to fetch activity data. This requires:

  1. Organization URL - The base URL of your Azure DevOps organization or collection
  2. Personal Access Token - A PAT with read access to the relevant areas

Step 1: Create a Personal Access Token

1.1 Navigate to Personal Access Tokens

  1. Log in to your Azure DevOps instance
  2. Click your avatar in the top-right corner
  3. Select User settings
  4. Click Personal access tokens

1.2 Create a New Token

  1. Click New Token
  2. Enter a Name (e.g., ActivityPulse)
  3. Set an Expiration (recommended: 90 days or 1 year)
  4. Under Scopes, select Custom defined and grant the following:
ScopeRequired / OptionalActivity types unlocked
Project and Team (read)RequiredDiscovering which projects to scan
Code (read)RequiredRepos: commits, pushes, branches, pull requests
Work Items (read)OptionalBoards: work item creates, updates, state changes, assignments
Wiki (read)OptionalWikis: wiki page edits
Build (read)OptionalPipelines: build runs triggered and completed

The plugin degrades cleanly when an optional scope is missing — that activity stream is simply skipped with a warning logged, and all other streams continue to collect normally.

Minimal setup (commits and pull requests only)

If you only need code activity and want to minimize the token’s permissions, grant just the two required scopes:

  • Project and Team (read)
  • Code (read)

Work item, wiki, and pipeline events will not be collected, but commits, pushes, branch events, and pull requests will work fully.

  1. Click Create

1.3 Copy the Token

IMPORTANT: Copy the token immediately. You will NOT be able to see it again.

Store it securely — you will need it for ActivityPulse configuration.

Step 2: Configure ActivityPulse

2.1 Enter Configuration in ActivityPulse

In the ActivityPulse web interface:

  1. Navigate to Data Sources
  2. Click Add Data Source or edit an existing Azure DevOps source
  3. Enter the values:
FieldValueExample
Organization URLFull URL up to the org (Services) or collection (Server)https://dev.azure.com/your-org
API TokenThe Personal Access Token from Step 1(paste the token)
Project Allowlist (optional)Comma-separated project names to scan; leave blank to scan all accessible projectsPlatform, Mobile
API Version (optional)Override the api-version; leave blank for the default 7.16.0
Jira URL (optional)Jira instance for issue linkinghttps://your-company.atlassian.net
Completed-item lookback (days)How far back to look for work items that reached a done state30 (default)
  1. Click Save Configuration

2.2 Completed-item lookback

ActivityPulse takes a daily snapshot of the work items currently assigned to each teammate. A snapshot of open work alone cannot tell you what finished: an item that stops appearing might have been completed, reassigned, unassigned — or simply missed by a failed sync.

This setting is how long a completion stays visible to the sync. Each run also asks Azure DevOps for work items that moved into a done state — Done, Closed, Resolved, Removed or Completed — within the last N days, so a completion is recorded from what Azure DevOps reports rather than guessed from the item’s absence.

  • Defaults to 30 days, accepts 0–90.
  • It only has to exceed your sync interval, not the longest period you report on. Once a completion is captured in any snapshot it stays on the item.
  • Set it to 0 to switch the extra query off. Completions are then never observed, so finished items stop being labeled as resolved and simply show the last state that was seen, dated.

2.3 Sidebar visibility — “Use as issue management system”

The configuration dialog includes a toggle labelled “Use as issue management system”. It controls whether this provider’s pages — Issue Hierarchy and ADO Worklog — appear in the sidebar.

  • Defaults to on, so new and existing configurations behave as before.
  • Turning it off hides both the Issue Hierarchy entry and the ADO Worklog entry under Signals. Data sync continues to run, and direct URLs (/issue-hierarchy/ado, /signals/ado-worklog) still resolve and render the pages.
  • Use this when you have Azure DevOps configured for sync but prefer to keep its plugin pages out of the sidebar.

2.4 Map Users

For each team member you want to track:

  1. Navigate to Teammates
  2. Edit the team member
  3. In the External IDs section, add their Azure DevOps identifier
  4. Enter their Azure DevOps email / UPN (user principal name — the address used to sign in to Azure DevOps, e.g., user@your-company.com)

The user principal name is how Azure DevOps identifies users across Repos, Boards, and Pipelines.

Data Collected

The Azure DevOps plugin collects the following activity data:

Azure Repos

  • Commits and pushes to repositories
  • Branches created and deleted
  • Pull requests opened, merged, and closed

Azure Boards

  • Work items created and updated
  • Work item state changes
  • Work item assignments

Azure Wikis

  • Wiki page edits

Azure Pipelines

  • Build runs triggered and completed

Signals

  • Open work items assigned to each teammate

Activity Summary

Work items, pull requests, pushes/branches, builds, and wiki edits collected above are included in each teammate’s Activity Summary.

Verification

Test the Connection

  1. In ActivityPulse, go to Data Sources
  2. Find your Azure DevOps data source
  3. Click Test Connection
  4. A successful test confirms the organization URL and API token are valid

Verify Data Collection

  1. Click Fetch to trigger immediate data collection
  2. Go to Activities to see fetched activity data
  3. Filter by source type “Azure DevOps” to see only Azure DevOps activities

Troubleshooting

”Authentication failed” Error

  • Verify the API token is copied correctly (no leading or trailing spaces)
  • Ensure the token has not expired
  • Check that all required scopes are selected on the token

No Data After Fetch

  • Verify that each teammate has an Azure DevOps external ID set to their email / UPN
  • Ensure the API token has permission to access the relevant projects
  • Check that users have recent activity within the configured date range

Large Organizations

  • Use the Project Allowlist to limit scanning to specific projects — this reduces API usage and speeds up fetching

Rate Limiting

  • The plugin retries automatically when Azure DevOps rate limits are encountered

Azure DevOps Server vs Services

Both Azure DevOps Services (cloud) and Azure DevOps Server (on-premises) are supported:

VariantOrganization URL format
Azure DevOps Serviceshttps://dev.azure.com/{organization}
Azure DevOps Serverhttps://{host}/{collection}

Older Azure DevOps Server installations may require an API Version override if the default version (7.1) is not supported. Use the API Version field to specify a compatible version (e.g., 6.0).

Security Best Practices

  • Create a dedicated token for ActivityPulse rather than reusing a personal token for other tools
  • Set a reasonable expiration date and rotate the token before it expires
  • Grant only the read-only scopes listed in Step 1 — do not grant write permissions
  • Store the token securely using a password manager