# Azure DevOps AI employee

Viktor works in Azure DevOps for you. Ask in Slack or Microsoft Teams.

Viktor is an AI employee that connects to Azure DevOps and helps you build, test, and deploy code through CI/CD pipelines, running 75 Azure DevOps actions for you like Get Team, Get User, and Get Build. Ask in plain English from your workspace; Viktor does the work in Azure DevOps and reports back. Viktor connects in one click via OAuth.

- Tool: Azure DevOps
- Category: Cloud & Data
- Connection: One-click OAuth
- Actions available: 75
- Currently available in: Slack, Microsoft Teams, and Discord
- Page: https://viktor.com/integrations/azure-devops

## What can your AI employee do in Azure DevOps?

Viktor connects to your Azure DevOps account and completes work in it. He doesn't just answer questions about Azure DevOps, he takes the actions on your behalf and delivers the finished result to your workspace.

Unlike workflow builders such as Zapier or Make, there is nothing to configure - no triggers to map, no workflows to maintain. You describe the outcome in plain English, and Viktor picks the right Azure DevOps actions, chains them with the other 9,800+ tools he connects to, and asks for approval before anything sensitive runs.

### About Azure DevOps

Plan smarter, collaborate better, and ship faster with a set of modern dev services

### How a run works

1. **You ask in your workspace** - Describe what you need in plain English
2. **Viktor picks the actions** - Selects from 75 Azure DevOps actions, chains them together
3. **Runs in Azure DevOps** - Helps you build, test, and deploy code through CI/CD pipelines - your real data.
4. **Reports back** - Delivers the finished result to your workspace

## Use Azure DevOps from Slack and Microsoft Teams

Message Viktor in a Slack channel, a Microsoft Teams chat or a direct message. He opens Azure DevOps, does the work and posts the result in the same thread, so nobody has to switch tabs.

He can also run Azure DevOps work on a schedule, like a weekly Azure DevOps summary posted to your team's channel. Anything sensitive waits for your approval before it runs.

## Security and permissions

- One-click OAuth - Viktor never sees your password, and you can revoke access at any time.
- Review-first approvals: sensitive Azure DevOps actions wait for your sign-off before they run.
- Isolated compute per team, encrypted in transit and at rest - and your data is never used to train models.
- SOC 2 Type 1 compliant, with Type 2 and ISO 27001 in progress.

## What can you ask Viktor to do in Azure DevOps?

- "Check Azure DevOps for the latest failed build and summarize the likely cause."
- "Trigger a deploy in Azure DevOps for the latest release and report when it's done."
- "Watch Azure DevOps for failed pipelines and post a summary here with the likely cause."
- "Summarize what shipped through Azure DevOps this week for the changelog."

## How does Viktor work with Azure DevOps?

1. Open Viktor in a supported workspace.
2. Connect Azure DevOps with one-click OAuth - Viktor handles authentication.
3. Ask in plain English. Viktor runs the Azure DevOps actions, chains them with your other tools when needed, and reports back. Sensitive actions wait for your approval.

## What can Viktor do in Azure DevOps? (75 actions)

- **Add Pull Request Reviewer** - Add a reviewer to a pull request, optionally marking them required or casting their vote. Returns the reviewer entry including their current vote. Use this to route a pull request to the right owner automatically.
- **Add Work Item Comment** - Add a comment to a work item's discussion thread. Returns the new comment's id and rendered text. Use this to post automated status back to the item humans are watching, rather than editing its description.
- **Cancel Build** - Cancel a build that is still running. Returns the build with its status moved to cancelling. Use this to stop a run that has been superseded or was triggered in error.
- **Create Branch** - Create a branch pointing at an existing commit. Returns the ref update result. Use this to open a working branch before pushing changes and raising a pull request.
- **Create Or Update File** - Push a single file add, edit or delete to an existing branch, as one commit. Returns the push result including the new commit SHA. The branch must already exist. Use this to commit generated config or docs back to a repository.
- **Create Or Update Wiki Page** - Create a wiki page, or replace the content of an existing one. Returns the resulting page and its version. This replaces the whole page rather than appending, so read the page first if you need to preserve existing content. Use this to publish generated documentation.
- **Create Pipeline** - Create a YAML pipeline from a definition file already committed to a Git repository. Returns the new pipeline's id and name. The YAML file must exist before this call - push it first. Use this to register a new service's CI.
- **Create Project** - Queue creation of a new project. Project creation is asynchronous, so this returns an operation reference rather than the finished project - poll the project list to see it appear. Use when onboarding a new team or product area.
- **Create Pull Request Comment** - Start a new comment thread on a pull request, either on the overview or anchored to a line in a file. Returns the new thread with its id. Use this to post automated review findings where the reviewer will see them.
- **Create Pull Request** - Open a pull request between two branches. Returns the new pull request's id and url. Use this after pushing a working branch, to start review.
- **Create Release** - Create a classic release from a release definition, optionally as a draft or with specific artifact versions. Returns the new release's id and name. Omit Artifacts to take the definition's latest versions. Use this to ship a build through a classic release pipeline.
- **Create Repository** - Create an empty Git repository in a project. Returns the new repository's id, name and clone urls. The repository starts with no branches - push an initial commit before the other Git actions can act on it. Use when scaffolding a new service.
- **Create Wiki** - Create a project wiki, or publish a folder of an existing Git repository as a code wiki. Returns the new wiki's id, name and backing repository. A project wiki provisions its own repository; a code wiki needs an existing repository, branch and folder. Use this when standing up documentation for a new project.
- **Create Work Item** - Create a work item of any type - Bug, Task, User Story, Epic. Returns the new work item's id and full field set. Use when turning an alert, form submission or support ticket into tracked work.
- **Delete Repository** - Move a Git repository to the project's recycle bin. Requires the repository's GUID - names are not accepted here. Use this to retire a service's repository; recover it from the project settings recycle bin if this was a mistake.
- **Delete Wiki Page** - Delete a wiki page. Returns the deleted page's path and the wiki commit the deletion created. Use this to retire documentation that has moved elsewhere.
- **Delete Work Item** - Move a work item to the project's recycle bin, or permanently destroy it when Destroy is set. Returns the deleted item's id and code. Use this to clean up items created in error - prefer the recycle bin, which is recoverable.
- **Get Build Definition** - Retrieve one build definition, including its repository, triggers, variables and process. Use this to inspect what a pipeline will do, or to read its variable names before overriding them at queue time.
- **Get Build** - Retrieve one build by id. Returns its status, result, timings, requesting identity and source commit. Use this to poll a build queued earlier until it reaches completed.
- **Get Commit** - Retrieve one commit by its full 40-character SHA. Returns its author, committer, message, parents and change counts. Use this to inspect what a specific commit did before referencing it in a branch or release.
- **Get File Content** - Read one file from a Git repository, at the default branch or at a specific branch, tag or commit. Returns the file's content along with its object id and path. Use this to read config or documentation without cloning. This is the single-item mode of the items endpoint: it returns one file object. To list a folder's contents instead, use the List Repository Items action, which Azure DevOps requires to be a separate call.
- **Get Pipeline Run** - Retrieve one pipeline run. Returns its state, result, the resources it consumed and the template parameters it ran with. Use this to poll a run started earlier until its state reaches completed.
- **Get Pipeline** - Retrieve one pipeline, including the repository and path of the YAML file that defines it. Use this to confirm which definition file a pipeline runs before triggering it.
- **Get Project** - Retrieve one project by id or name. Returns its description, state, visibility, default team and, when Include Capabilities is set, its version-control and process-template settings. Use this to confirm a project exists before writing to it.
- **Get Pull Request** - Retrieve one pull request by id. Returns its title, description, status, reviewers, merge status and, optionally, its commits. Use this to check whether a pull request is mergeable before completing it.
- **Get Release** - Retrieve one classic release. Returns its environments, each environment's deployment status, and the artifacts it carries. Use this to check whether a release reached production.
- **Get Repository** - Retrieve one Git repository by id or name. Returns its default branch, size, web url and parent project. Use this to confirm a repository's default branch before opening a pull request against it.
- **Get Team Iteration** - Retrieve one of a team's iterations by id. Returns its name, path and the start date, finish date and timeframe recorded against it. Use this to pin down a sprint's window before measuring work item activity against it. Run the List Teams action first for the team, then the List Team Iterations action for the iteration id.
- **Get Team Settings** - Retrieve a team's board and backlog configuration. Returns the days of the week the team works, its backlog iteration, its default iteration, how bugs are surfaced and which backlog levels are visible. Use this to learn a team's working week before turning sprint dates into working days. Run the List Teams action first to obtain the team.
- **Get Team** - Retrieve one team in a project by id or name. Returns the team's description and identity url. Use this to resolve a team name to its GUID before querying its members.
- **Get User** - Retrieve one user by their graph descriptor. Returns their display name, principal name, mail address and origin. Use this to confirm an identity before assigning work to them.
- **Get Velocity** - Report how much work each iteration actually completed, aggregated from the Analytics service. Returns one row per iteration with its name, start and finish dates and the number of completed work items. Covers the whole project by default; set Team Name to narrow it to a single team, which is what you want in a project several teams share. Use this to answer whether delivery is speeding up or slowing down, and to sanity-check whether the current sprint is committed beyond its recent average. Set Points Field to also sum an estimate, but only if the project's process defines one - the default Basic process has no estimation field and the query fails if you name one it does not have.
- **Get Wiki Page** - Read a wiki page and its Markdown content, optionally including its sub-pages. Returns the page path, content and order. Use this to read runbook or onboarding content into a workflow.
- **Get Work Item** - Retrieve one work item by id. Returns its fields, and optionally its relations and links via Expand. Use this to read the current state of an item before deciding whether to update it.
- **List Branches And Tags** - List the refs - branches and tags - of a Git repository, each with the commit it points at. Use this to obtain the fully qualified branch names the pull request and build actions expect, and to read a branch's head SHA.
- **List Build Artifacts** - List the artifacts a build published, each with its download url and resource type. Use this to hand a build's output to a downstream deploy step.
- **List Build Definitions** - List a project's build definitions. Returns each definition's id, name, repository and queue status. Use this to obtain the definition id the Queue Build action needs.
- **List Build Logs** - List a build's log files, each with its id, line count and the url to fetch its content. Use this to locate the log for a failing step before fetching it.
- **List Builds** - List a project's builds, optionally filtered by definition, status, result, branch or time window. Returns each build's id, number, status, result and triggering commit. Use this to report on CI health or to find the last successful build of a branch.
- **List Classification Nodes** - List a project's area or iteration path tree. Returns the node tree with each node's name and full path. Use this to discover the values the Area Path and Iteration Path inputs of the work item actions expect - those inputs want the backslash-delimited path, not the node name.
- **List Commits** - List a repository's commits, optionally narrowed by author, date range, branch or file path. Returns each commit's SHA, author, message and change counts. Use this to build a changelog or to find the commit that last touched a file.
- **List Groups** - List the groups in an organization, optionally scoped to one project or collection. Returns each group's display name, descriptor and principal name. Use this to find the group to add as a required pull request reviewer.
- **List Iteration Work Items** - List the work items assigned to a team's iteration. Returns work item relations carrying each item's id and url rather than its fields, so pass those ids to the List Work Items action to read titles, states and assignees. Use this to take the sprint backlog as it currently stands. Run the List Teams action first for the team, then the List Team Iterations action for the iteration id.
- **List Organizations** - List the Azure DevOps organizations the connected account belongs to. Use this first - every other action needs an organization name, and this is the only action that does not. Returns the organization names as plain strings.
- **List Pipeline Runs** - List the most recent runs of a pipeline, each with its id, state, result and creation time. Use this to check whether a pipeline is currently running before triggering another.
- **List Pipelines** - List a project's YAML pipelines. Returns each pipeline's id, name, folder and revision. Use this to obtain the pipeline id the Run Pipeline action needs.
- **List Processes** - List the process templates (Agile, Scrum, Basic, CMMI and any custom ones) available in an organization. Returns each template's id, name and description. Use this to obtain the process template id required by the Create Project action.
- **List Projects** - List the projects in an organization. Returns each project's id, name, state and visibility. Use this first in almost any Azure DevOps workflow - nearly every other action needs a project id or name.
- **List Pull Request Comment Threads** - List the comment threads on a pull request, including threads anchored to a file and line. Returns each thread's comments, author and status. Use this to read review feedback before replying or completing the pull request.
- **List Pull Requests** - List a repository's pull requests, optionally filtered by status, creator, reviewer or branch. Returns each pull request's id, title, status, source and target branches. Use this to find open review work or to check whether a branch already has a pull request.
- **List Release Definitions** - List a project's classic release definitions. Returns each definition's id, name and path. Use this to obtain the definition id the Create Release action needs. Classic Release is separate from YAML pipelines.
- **List Releases** - List a project's classic releases, optionally filtered by definition or status. Returns each release's id, name, status and the definition it came from. Use this to report on what has shipped.
- **List Repositories** - List the Git repositories in a project, or across the whole organization when no project is given. Returns each repository's id, name, default branch and size. Use this to obtain the repository id or name every other Git action needs.
- **List Repository Items** - List the files and folders under a path in a Git repository. Returns each entry's path, object id and whether it is a folder. Use this to explore a repository's layout, then read a specific file with the Get File Content action. Azure DevOps rejects a recursion level other than none when a single file path is given, so listing and reading are separate calls.
- **List Service Endpoints** - List a project's service connections, optionally filtered by type. Returns each connection's id, name, type and authorization scheme, without its secrets. Use this to audit which external systems a project can reach from its pipelines.
- **List Team Capacity** - Retrieve every team member's capacity for an iteration, with their per-day hours split across activities and their individual days off. Returns the per-member records and the team totals. Use this against the iteration's work item list to judge whether a sprint is overcommitted. Run the List Teams action first for the team, then the List Team Iterations action for the iteration id.
- **List Team Days Off** - List the days the whole team is off during an iteration, such as public holidays or a team offsite. Returns each range's start and end date. Use this to subtract non-working days before reading capacity as available hours. Run the List Teams action first for the team, then the List Team Iterations action for the iteration id.
- **List Team Iterations** - List the iterations a team is subscribed to, each with its name, path and the start date, finish date and timeframe held in its attributes. Set Timeframe to current to resolve the sprint that is running right now. Use this as the entry point for any sprint question, then pass the iteration id it returns to the work item, capacity and days off actions. Run the List Teams action first to obtain the team.
- **List Team Members** - List the members of a team. Returns each member's display name, unique name, identity id and whether they are a team admin. Use this to find the identity GUID that the pull request reviewer actions require.
- **List Teams** - List the teams in a project. Returns each team's id, name and description. Use this to obtain the team id or name the other team actions need, or to fan a notification out per team.
- **List Users** - List the users in an organization, optionally narrowed by subject type. Returns each user's display name, principal name, descriptor and origin id. Use this to resolve a person to the identity GUID that the pull request reviewer and creator inputs require.
- **List Wikis** - List the wikis in a project, or across the organization when no project is given. Returns each wiki's id, name, type and backing repository. Use this to obtain the wiki id or name the wiki page actions need.
- **List Work Item Comments** - List the comments on a work item, newest first. Returns each comment's text, author and creation date. Use this to read the human discussion around an item before acting on it.
- **List Work Item Fields** - List the work item fields defined in an organization or project, with each field's reference name and data type. Use this to discover the reference names the Additional Fields and Fields inputs of the other work item actions expect.
- **List Work Item Revisions** - List the revision history of a work item, one entry per change. Returns each revision's field values at that point in time. Use this to answer who changed what and when, or to reconstruct how long an item sat in a state.
- **List Work Item Types** - List the work item types available in a project, each with the states and fields it allows. Use this to discover valid values for the Work Item Type and State inputs before creating or updating an item - the states differ per process, so a Basic project uses To Do/Doing/Done where Agile uses New/Active/Closed.
- **List Work Items** - Retrieve a batch of work items by id in one call, up to 200 at a time. Returns each item's fields. Use this after a query to turn a list of ids into the actual field values.
- **Query Analytics (OData)** - Run an OData query against the Azure DevOps Analytics service, which holds the historical and aggregated data the work item APIs do not expose. Returns the matching rows plus the @odata.context describing them. Use this for trend questions - how many bugs were open each day, how much work each iteration completed - and use Query Work Items (WIQL) instead for the current state of individual items. Set Apply to aggregate rather than pulling raw rows back.
- **Query Work Items (WIQL)** - Run a Work Item Query Language (WIQL) query and return the matching work item references. Returns ids and the queried columns, not full field values - pass the ids to the List Work Items action to read those. Use this whenever you need to find work by state, type, assignee or date.
- **Queue Build** - Queue a new build for a build definition, optionally on a specific branch and with variable overrides. Returns the queued build's id and status - the build itself runs asynchronously. Use this to trigger CI from an external event.
- **Run Pipeline** - Trigger a run of a YAML pipeline, optionally on a specific branch and with template parameters or variable overrides. Returns the run's id and state; the run itself proceeds asynchronously. Set Preview Run to validate instead: Azure DevOps then starts nothing and returns the final expanded YAML document rather than a run. Use this to deploy or test on demand.
- **Update Pull Request** - Update a pull request - retitle it, edit its description, retarget it, publish a draft, or complete or abandon it. At least one field is required. Returns the updated pull request. Use status completed to merge and abandoned to close without merging.
- **Update Work Item** - Update an existing work item - retitle it, move it between states, reassign it, repoint its area and iteration, or link it to another work item. At least one field or a link is required. Returns the updated work item. Use when closing out automated work or reflecting a change from another system.
- **List Project ID Options** - Retrieves available options for the Project ID field.
- **List Event Type Options** - Retrieves available options for the Event Type field.

## Viktor uses Azure DevOps together with

- [Slack](https://viktor.com/integrations/slack)
- [Gmail](https://viktor.com/integrations/gmail)
- [Google Sheets](https://viktor.com/integrations/google-sheets)
- [HubSpot](https://viktor.com/integrations/hubspot)
- [Notion](https://viktor.com/integrations/notion)
- [Salesforce](https://viktor.com/integrations/salesforce)

## More Cloud & Data integrations

- [Neon](https://viktor.com/integrations/neon)
- [Supabase](https://viktor.com/integrations/supabase)
- [Google Cloud](https://viktor.com/integrations/google-cloud)
- [Cloudflare](https://viktor.com/integrations/cloudflare)
- [Dropbox](https://viktor.com/integrations/dropbox)
- [Roblox](https://viktor.com/integrations/roblox)
- [Datadog](https://viktor.com/integrations/datadog)
- [WhoisFreaks](https://viktor.com/integrations/whoisfreaks)

## FAQ

### Does Viktor integrate with Azure DevOps?

Yes. Azure DevOps is one of the 9,800+ tools Viktor connects to, via a managed connector. Once connected, anyone on your team can put Viktor to work in Azure DevOps from their workspace - no workflow builder, no code.

### How do I connect Azure DevOps to Viktor?

Ask Viktor in your workspace to connect Azure DevOps, then approve the one-click OAuth prompt. Viktor never sees your password, handles authentication itself, and starts working right away. Setup takes about two minutes, and you can revoke access at any time.

### What can Viktor do in Azure DevOps?

Viktor can run 75 Azure DevOps actions, including Get Team, Get User, and Get Build - and chain them with other tools in a single request. In practice that means Viktor helps you build, test, and deploy code through CI/CD pipelines. If a task spans several actions, Viktor plans the sequence itself and reports back when the work is done.

### Do I need to build workflows for Azure DevOps?

No. Viktor isn't a workflow builder - there are no triggers to map and nothing to maintain. You ask for the outcome in plain English in your workspace, and Viktor decides which Azure DevOps actions to take, runs them, and reports back.

### Is my Azure DevOps data secure with Viktor?

Yes. Viktor connects to Azure DevOps in one click via OAuth, runs in an isolated environment per team, and never trains models on your data. Sensitive actions wait for your approval, and you can revoke access at any time. Viktor is SOC 2 Type 1 compliant, with Type 2 and ISO 27001 in progress.

### How much does the Azure DevOps integration cost?

Nothing extra - every integration, including Azure DevOps, is available on every plan. You can start free with up to $100 in credits, no credit card required; the Team plan is $100 a month.

### Can Viktor use Azure DevOps together with my other tools?

Yes - that's the point. Viktor connects to 9,800+ tools and works across them in a single run: he can pull data from Azure DevOps, cross-reference it with another tool - for example Slack or Gmail, and deliver the finished result in your workspace.

## Get started

Viktor is free to start - up to $100 in credits, no credit card required. All 9,800+ integrations are included on every plan. Sign up at https://viktor.com or browse all integrations at https://viktor.com/integrations.
