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

# Azure DevOps

> Automatically track your incidents in Azure DevOps by creating and maintaining work items

export const StatusBanner = ({status}) => {
  const HIDE_STATUS_BANNERS = false;
  if (!status || HIDE_STATUS_BANNERS) return null;
  const statusUpper = status.toUpperCase();
  if (statusUpper === 'DRAFT') {
    return <div style={{
      backgroundColor: '#FEF3C7',
      border: '2px solid #F59E0B',
      borderRadius: '8px',
      padding: '16px 20px',
      marginBottom: '24px',
      display: 'flex',
      alignItems: 'center',
      gap: '12px'
    }}>
<div style={{
      fontSize: '24px',
      fontWeight: 'bold',
      color: '#B45309'
    }}>
⚠️
</div>
<div>
<div style={{
      fontSize: '16px',
      fontWeight: 'bold',
      color: '#B45309',
      marginBottom: '4px'
    }}>
DRAFT
</div>
<div style={{
      fontSize: '14px',
      color: '#92400E'
    }}>
Someone has drafted this, but it needs review.
</div>
</div>
</div>;
  }
  if (statusUpper === 'STUB') {
    return <div style={{
      backgroundColor: '#DBEAFE',
      border: '2px solid #3B82F6',
      borderRadius: '8px',
      padding: '16px 20px',
      marginBottom: '24px',
      display: 'flex',
      alignItems: 'center',
      gap: '12px'
    }}>
<div style={{
      fontSize: '24px',
      fontWeight: 'bold',
      color: '#1E40AF'
    }}>
🧪
</div>
<div>
<div style={{
      fontSize: '16px',
      fontWeight: 'bold',
      color: '#1E40AF',
      marginBottom: '4px'
    }}>
Stub
</div>
<div style={{
      fontSize: '14px',
      color: '#1E3A8A'
    }}>
This page is a stub only and needs to be written up
</div>
</div>
</div>;
  }
  if (statusUpper === 'PLACEHOLDER') {
    return <div style={{
      backgroundColor: '#FEE2E2',
      border: '2px solid #DC2626',
      borderRadius: '8px',
      padding: '16px 20px',
      marginBottom: '24px',
      display: 'flex',
      alignItems: 'center',
      gap: '12px'
    }}>
<div style={{
      fontSize: '24px',
      fontWeight: 'bold',
      color: '#991B1B'
    }}>
⚠️
</div>
<div>
<div style={{
      fontSize: '16px',
      fontWeight: 'bold',
      color: '#991B1B',
      marginBottom: '4px'
    }}>
PLACEHOLDER
</div>
<div style={{
      fontSize: '14px',
      color: '#7F1D1D'
    }}>
Placeholder content created by AI, needs rewriting and careful review.
</div>
</div>
</div>;
  }
  return null;
};

<StatusBanner status="PLACEHOLDER" />

# Syncing incidents with Azure DevOps

incident.io allows you to automatically track your incidents in Azure DevOps by creating and maintaining "Issue" work items.

This is helpful if Azure DevOps is your source of truth, and you need everything to be in one place.

Each issue will be updated in real-time with the latest title and description, and comments will be added for each incident update.

You can also use templates and conditions to create different issues in different projects depending on custom fields and incident types within incident.io. For example:

* Create issues in your Security project where Incident Type = Security
* Create issues in your Engineering project where Incident Type = Production

## Getting started

First, you'll need to enable the integration. Ensure you are logged in as an Azure DevOps user with access to the relevant projects.

Navigate to Settings > Integrations, locate Azure DevOps via the search bar, and click "Connect".

A modal will appear. Click "Sign in with Microsoft" to be redirected to Microsoft for the authorisation flow.

<img src="https://mintcdn.com/incidentio-18bb4170/YyaXj7lNF5_8OSsE/images/integrations/azure-devops/azure-connect.png?fit=max&auto=format&n=YyaXj7lNF5_8OSsE&q=85&s=d18d2aebdc53f896fd3dd2dfa86d6270" alt="Screenshot 2025-06-23 at 15.16.49.png" width="1054" height="670" data-path="images/integrations/azure-devops/azure-connect.png" />

<Note>
  We do not support authentication via Azure service accounts due to differences in API behavior. We suggest creating a
  personal account under a shared "service" email for authentication purposes
</Note>

## Creating a template

Next, we need to define what the contents of each issue should be.

Navigate to Settings > Incident Tickets, and click "+ Add a new template"

The issue template determines which project the issue will be created in, and who it should be assigned to. It also allows for customisation of the issue title and description, using variables and custom fields on the incident.

<img src="https://mintcdn.com/incidentio-18bb4170/YyaXj7lNF5_8OSsE/images/integrations/azure-devops/azure-template.png?fit=max&auto=format&n=YyaXj7lNF5_8OSsE&q=85&s=f438938f25370c22afcf23df1c4aba70" alt="Screenshot 2025-02-11 at 17.06.15.png" width="470" height="589" data-path="images/integrations/azure-devops/azure-template.png" />

## Enabling the feature

Once your template has been configured, use the toggle to 'Create tickets for incidents'.

<img src="https://mintcdn.com/incidentio-18bb4170/YyaXj7lNF5_8OSsE/images/integrations/azure-devops/azure-enable.png?fit=max&auto=format&n=YyaXj7lNF5_8OSsE&q=85&s=fac5d565b3d15adf9ffa3b6af9cc9442" alt="Screenshot 2025-02-11 at 17.15.18.png" width="840" height="488" data-path="images/integrations/azure-devops/azure-enable.png" />

If there are no conditions specified we will use the first template in the list and create a ticket for all new, active incidents.

Conditions can be used to control which template should be used for any given incident. For example, incidents of type "Security" may need to be directed to a security-specific Azure DevOps project.

## Private incidents

If you wish to create tickets for private incidents, then tick this checkbox.

<img src="https://mintcdn.com/incidentio-18bb4170/YyaXj7lNF5_8OSsE/images/integrations/azure-devops/azure-private.png?fit=max&auto=format&n=YyaXj7lNF5_8OSsE&q=85&s=735421e59fdc27ad7b08d809deb00943" alt="Screenshot 2025-02-11 at 17.30.10.png" width="1236" height="242" data-path="images/integrations/azure-devops/azure-private.png" />

**Note:** Anyone with access to the chosen Azure DevOps project will be able to see these tickets.
