# Asana GitLab integration

## Integrating Asana and GitLab <a href="#integrating-asana-and-gitlab" id="integrating-asana-and-gitlab"></a>

Connecting Asana with GitLab synchronizes project management data with development records, ensuring technical and sales teams remain aligned. This integration automates updates between platforms, eliminating manual data entry and reducing the risk of cross-departmental discrepancies.

### Asana GitLab Licensing Model <a href="#asana-gitlab-licensing-model" id="asana-gitlab-licensing-model"></a>

The Getint licensing model for Asana and GitLab focuses on predictable costs and scalability:

#### Standard Licensing <a href="#standard-licensing" id="standard-licensing"></a>

* This tier covers a direct integration between one Asana instance and one GitLab instance for a fixed fee. It includes unlimited project and work item synchronization without hidden charges.

#### Network License <a href="#network-license" id="network-license"></a>

* Designed for managed service providers or large organizations, this option supports three or more instances. It allows for a specific number of connections (e.g., up to 10 instances) and provides the flexibility to swap integrated tools while the license is active.

For more details on licensing, visit our [**Licensing Page**](https://docs.getint.io/billing-and-services/licensing).

&#x20;

#### Requirements to Build Your Integration: <a href="#requirements-to-build-your-integration" id="requirements-to-build-your-integration"></a>

* **Deployment Options**: Getint provides two ways to host your integration: a managed [SaaS platform](https://app.live.getint.io/) or a self-hosted On-premise version. More information about Getint On-premise [here](https://docs.getint.io/getting-started-with-the-platform/deployment-options/on-premise-deployment).
* **Authentication**: Both Asana and GitLab require Personal Access Tokens to establish a secure connection. You can find the steps to generate the access token for your connectors here: [Connection Guide](https://docs.getint.io/guides/quickstart/connection#asana).
* **Service Accounts**: Because the integration attributes comments to the user who created the connection, we recommend using dedicated Service Accounts for both instances to maintain a clear distinction between automated updates and individual user activity.

&#x20;

### Setting Up Your Asana GitLab Integration <a href="#setting-up-your-asana-gitlab-integration" id="setting-up-your-asana-gitlab-integration"></a>

#### 1. Access the Getint App <a href="#id-1.-access-the-getint-app" id="id-1.-access-the-getint-app"></a>

* Log in at [app.live.getint.io](http://app.live.getint.io/). If you do not have an account, click **Sign up** to create one.

<figure><img src="/files/8WEYnfxFMTsHRXQfTKcz" alt=""><figcaption></figcaption></figure>

* Enter your details, select the apps you want to connect, and click **Create new workspace**.

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

* After you create the workspace, go to it to launch Getint.

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

* The Getint interface will load.

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

#### 2. Create an Integration <a href="#id-2.-create-an-integration" id="id-2.-create-an-integration"></a>

* Go to **Workflows** (lightning bolt icon), and click **Create Integration**. From this menu, select **Continuous Sync** or **Data Migration**.

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

#### 3. Generate an Asana Personal Access Token <a href="#id-3.-generate-an-asana-personal-access-token" id="id-3.-generate-an-asana-personal-access-token"></a>

* Log in to Asana and follow the video below to generate your Access Token.

{% embed url="<https://www.loom.com/share/639cea037a6244bebc40e2441bbdb46f>" %}

#### 4. Generate a GitLab Token <a href="#id-4.-generate-a-gitlab-token" id="id-4.-generate-a-gitlab-token"></a>

* Log in to your GitLab account. In the top-left or top-right corner (depending on your version), click on your **Avatar/Profile Picture** and select **Preferences**.
* In the left-hand sidebar, look for the **Access** section (usually near the top) and select **Personal access tokens**.
* Click the **Generate token** button to open the configuration form. Make sure to use the **Legacy token**, as we don’t support fine-grained tokens.

For specific permissions, please follow the video tutorial below:

{% embed url="<https://www.loom.com/share/537c44d6c8ff42fa9d582b5e633c3189>" %}

#### 5. Connect to Asana <a href="#id-5.-connect-to-asana" id="id-5.-connect-to-asana"></a>

* In Getint, click on **Connect App** and choose Asana.
* Enter your Access Token for Asana.

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

* Select the project you wish to integrate with Asana.

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

{% hint style="warning" %}
You can only select one project when syncing with GitLab. Selecting multiple projects will cause GitLab to disappear from your available integration options.
{% endhint %}

* Click **Connect** to establish the connection.

#### 6. Connect to GitLab <a href="#id-6.-connect-to-gitlab" id="id-6.-connect-to-gitlab"></a>

* Click on **Connect App** and choose GitLab. Enter your GitLab instance URL (if using GitLab On-premise), then enter the generated Access token and click **Next**.

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

* **Add** the connection and select it.

#### 7. Select GitLab Project <a href="#id-7.-select-gitlab-project" id="id-7.-select-gitlab-project"></a>

* Select the established GitLab connection and choose the project you want to integrate with.

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

#### 8. Configure Type Mapping <a href="#id-8.-configure-type-mapping" id="id-8.-configure-type-mapping"></a>

* **Quick Build**: Automatically map fields and types between applications with this feature.

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

* **Manual Mapping**: Use this feature for full control over the integration. Select **+Add Type Mapping** to define your types, such as Incident, Task, or Issue.
  * **Example:** Task ↔ Issue.

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

#### 9. Field Mapping <a href="#id-9.-field-mapping" id="id-9.-field-mapping"></a>

* Review or manually map fields within mapped types, including **title**, **description**, and **assignees**.

<figure><img src="/files/8Afc3sekrFfLwLv4gIib" alt=""><figcaption></figcaption></figure>

* Ensure synchronization flow is defined for each field, using the arrows and selecting **Apply**.

{% hint style="warning" %}
Unlike Assignees, Reporters are not supported in this integration because they are read-only on both platforms, and read-only fields cannot be modified.
{% endhint %}

#### 10. Assignee Mapping <a href="#id-10.-assignee-mapping" id="id-10.-assignee-mapping"></a>

* Use the assignee mapping option to match GitLab assignees to Asana assignees. For more details, visit our doc: [Assignees (users) mapping](https://docs.getint.io/getintio-platform/workflows/assignees-users-mapping).

<figure><img src="/files/0vu9sDks1SzIgrKHZXLN" alt=""><figcaption></figcaption></figure>

#### 11. Status Mapping <a href="#id-11.-status-mapping" id="id-11.-status-mapping"></a>

* Map status fields to align between GitLab and Asana. For example, **To do** in Asana could be mapped to **Opened** in GitLab.

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

* You can also configure the status direction to support unidirectional transitions instead of bidirectional updates.

&#x20;

#### 12. How to Manage Comments & Attachments: <a href="#id-12.-how-to-manage-comments-and-attachments" id="id-12.-how-to-manage-comments-and-attachments"></a>

* The **Comments** are enabled by default. You can configure these settings to match your organization’s needs, such as selecting unidirectional or bidirectional sync and filtering by criteria like creation date, author, or visibility (public/private).

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

* For attachments, toggle on the **Synchronize attachments** setting. You will notice that you need to enter a cookie header.

<figure><img src="/files/5JBdywWR0JhMAByJMfOW" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
**Inline images** aren’t supported for the **Description** field.
{% endhint %}

* To locate your GitLab Cookie, open your GitLab Groups page, right-click, and select Inspect. Navigate to the Network tab and refresh the page to capture the network activity. Next, select the entry named **groups** from the list of requests. You can then retrieve the required value by viewing the Cookie field under the Request Headers section of the Headers tab.

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

{% hint style="warning" %}
Sometimes the developer tools won't display any data for the cookie header. To fix this, click on your Group or Project, and this should make the options visible.
{% endhint %}

* Copy the information and paste it into the **GitLab Cookie Header** field in Getint. Click **Apply** to submit the changes and save your integration.

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

* Ensure to test the attachments after enabling them.

{% hint style="warning" %}
Currently, attachments are only supported one way from GitLab to the other app in the integration. Also, there is no API available to download and upload attachments via a GitLab integration. As a result, this alternative remains the only option for downloading attachments from synced comments, provided they come from GitLab.
{% endhint %}

#### 13. Advanced Tab

* Enable **Customize create/update actions** to manage item synchronization. This allows for specific rules, such as one-way creation for the left application combined with bidirectional updates.

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

#### 14. Filtering:

It is possible to filter the synchronization to have it customized for your needs and requirements. Please see the doc [Items Filtering](https://docs.getint.io/getintio-platform/workflows/items-filtering) for more details.

**UI Filtering Option:**

* Click on the filtering icon near the app icon in your integration. This will apply to that side of the integration.

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

* Select if the filtering applies to *All*, *New*, and *Synced* items.
* Note that if the option **New items** is selected, the filtering will apply only to the new items, and the already synced items will continue to sync and update. If the option **Synced items** is selected, only the already synced items will be updated based on that filter.
* Choose the options and add the value for the filter. It is possible to filter more than one option for each field.
* Select **Apply** after creating the filters and **Save** the integration.

<figure><img src="/files/4cmUfFB5qQeYxBA5zIUo" alt=""><figcaption></figcaption></figure>

#### 15. Test the Integration

* Create test issues or tasks in Jira or Asana and observe how they synchronize.
* Ensure that the data between the two platforms is correctly synced.
* Monitor the integration status and the logs in Getint to verify that everything functions as expected.

***

#### Conclusion

Following this guide lets you set up the Jira-Asana integration with Getint. This configuration supports data synchronization of issues, tasks, and workflows across development and project management tools, allowing teams to collaborate while connecting developers and project managers.

For further assistance, please contact us at the [Support Center](https://getint.io/help-center) or [Schedule a Demo](https://calendly.com/d/cpws-jb2-8xx/demo-call-all-team).

<figure><img src="/files/otyodSR2k1YTwh3mrnVq" alt=""><figcaption><p><a href="https://calendly.com/d/cpws-jb2-8xx/demo-call-all-team
">Start your integration journey. Schedule a free consultation with our Getint Integration Expert today!</a></p></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.getint.io/guides/integration-synchronization/non-jira-connectors/asana-gitlab-integration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
