> For the complete documentation index, see [llms.txt](https://docs.ticket-log.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ticket-log.com/troubleshooting/authorizing-azure-devops.md).

# Authorizing Azure DevOps

## Check your Azure DevOps connection

If you have problems connecting TicketLog to Azure DevOps, please review the steps below.

<figure><img src="/files/CEF5g6l1sFlCZbbnpDUG" alt="" width="563"><figcaption></figcaption></figure>

1. Before connecting TicketLog to Azure DevOps:\
   \
   You must choose which Azure DevOps user you would like to act as the **Integration user**. The Integration user's name will appear on all comments, so instead of using a personal account you may prefer to use a dedicated user account (such as *<devops@your-company.com>*).\
   \
   If you decide to use a dedicated account, you must create this account with the proper access privilages (Project Administrator) for your Azure DevOps project. We recommend authorizing the Integration user from the Visual Studio Extension instead of from TicketLog configuration page. See [Azure DevOps extension](/documentation/azure-devops-extension.md#authorize-service-desk) for more information on this method.
2. If you see the error *"Identity {Identity number} has not been materialized, please use interactive login over the browser first"* this means that the user has not completed a first-time sign in to Azure DevOps. Please sign in to Azure DevOps with this user to setup the user's account.
3. Check that the Integration user is a Project Administrator of the target project.
   * Visit **Organization Settings** > **Users**.
   * Find the Integration user and select **Manage User** in the context menu.
   * For the intended project, select *Project Administrators*.<br>

     <figure><img src="/files/1ApFpmeR7aU9yfUIukcN" alt=""><figcaption></figcaption></figure>
4. Check that API access is permitted for your Organization.
   * Visit **Organization Settings** > **Policies**.
   * Ensure *Third-party application access via OAuth* is **On**.<br>

     <figure><img src="/files/3bOBESauv9licXcPnSFS" alt=""><figcaption></figcaption></figure>
5. Check the Integration user has been granted access to the project.
   * Open a new *Incognito* or *Private* browser session.
   * Visit the Azure Dev Ops "AEX" page here:
     * <https://aex.dev.azure.com/me>
   * Log into Azure DevOps with the Integration user.
   * Click **Manage authorizations** in the bottom left:<br>

     <figure><img src="/files/JgmaUwROkvvLLO9VmQAF" alt=""><figcaption></figcaption></figure>
   * In the popup, you should see "TicketLog" as an authorized application:\ <br>

     <figure><img src="/files/AtMbssGXbE3AbOksgrXb" alt=""><figcaption></figcaption></figure>
6. Check the Integration user is from the intended Directory.
   * If your Integration user has access to multiple directories, then you must carefully ensure you have authorized the user from the proper directory.
   * Open a new Incognito or Private browser session.
   * Visit the Azure Dev Ops "AEX" page here:
     * <https://aex.dev.azure.com/me>
   * Log into Azure DevOps with the Integration user.
   * Check each directory in the drop list (see "1" in screenshot), and verify in "Manage Authorizations" (see "2" in screenshot) that you have given authorization to the correct directory.<br>

     <figure><img src="/files/IDLDxOxzZa7lE7Hnhvz5" alt=""><figcaption></figcaption></figure>
   * If it is missing, then you can simply re-authorize from TicketLog configuration page. When doing so, check the correct user (see "1" in screenshot) and Directory (see "2" in screenshot) are being used.
     * *Note: the Grant Access step will use the directory most recently selected in the "AEX" page.*<br>

       <figure><img src="/files/yWfHfgVUjhzPQl6enaCs" alt=""><figcaption></figcaption></figure>

## Additional Requirements

TicketLog assumes the Azure DevOps project being connected to is based on a Basic, Agile, or CMMI project template, and that standard Project Administrator permissions are set for the integration user. TicketLog does support customised project templates or user permissions, however there are a few requirements:

* The target Project has correct workitem type.
  * By default, TicketLog uses the "Issue" type, however other workitem types are configurable in TicketLog settings.
* The integration user is allowed to create Service Hooks
* The intgation user is allowed to create Tags
* The target Area Path exists
  * By default, no Area Path is specified.
* There are no unexpected "required" fields.
  * The standard required fields are: IterationId, AreaId, Title, and State. No other required system fields are currently supported.&#x20;
  * Required custom fields are supported, but this requires a TicketLog PRO subscription and properly configured Custom fields.<br>
