> For the complete documentation index, see [llms.txt](https://docs.getint.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.getint.io/guides/integration-synchronization/non-jira-connectors/asana-servicenow-integration.md).

# Asana ServiceNow integration

## Integrating Asana and ServiceNow <a href="#integrating-asana-and-servicenow" id="integrating-asana-and-servicenow"></a>

Integrating Asana with ServiceNow keeps project management data and development records synchronized, helping technical and sales teams stay aligned. This integration automatically updates information across both platforms, reducing manual data entry and lowering the risk of inconsistencies between departments.

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

The Getint licensing model for Asana and ServiceNow 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 ServiceNow instance for a fixed fee. It includes unlimited project and work item synchronization without hidden charges.

You can find more information about our pricing structure here: [Getint Pricing](https://www.getint.io/pricing).

#### 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 ServiceNow 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 ServiceNow Integration <a href="#setting-up-your-asana-servicenow-integration" id="setting-up-your-asana-servicenow-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/mi5sihoP9MGPXc8XttTw" alt=""><figcaption></figcaption></figure>

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

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

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

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

* The Getint interface will load.

<figure><img src="/files/WaY1qxcjqffycpOaijqK" 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/sNd6q6txzsXTJ9pFacqH" 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. Creating a ServiceNow User for Getint <a href="#id-4.-creating-a-servicenow-user-for-getint" id="id-4.-creating-a-servicenow-user-for-getint"></a>

Rather than using Admin credentials, the recommended approach is to create a dedicated ServiceNow user with specific, scoped permissions. Follow these steps:

* **Create the user**: In ServiceNow, go to **All** → **User Administration** → **Users**, click **New**, fill in the user details, and click **Submit**. ⚠️*Make sure to uncheck **Password needs reset**, or Getint will block the connection with a misleading permissions error. Then click **Set Password** to generate credentials.*
* **Create a custom role**: Go to **System Security** → **Users and Groups** → **Roles**, click **New**, name your role (e.g., `getint`), and click **Submit**.
* **Elevate to Security Admin**: Click your profile image, select **Elevate Role**, choose **security\_admin**, and click update. This is required to modify ACL settings.
* **Create 6 ACL records**: Go to **System Security → Access Control (ACL)** and create the following permission records, adding your custom role to the **Requires Role** section of each:

| Record | Table                               | Field         | Operation |
| ------ | ----------------------------------- | ------------- | --------- |
| 1      | `Dictionary Entry (sys_dictionary)` | \* (Asterisk) | Read      |
| 2      | `Dictionary Entry (sys_dictionary)` | None          | Read      |
| 3      | `Field Class (sys_glide_object)`    | \*(Asterisk)  | Read      |
| 4      | `Choice (sys_choice)`               | \*(Asterisk)  | Read      |
| 5      | `Field Class (sys_glide_object)`    | None          | Read      |
| 6      | `Journal Entry (sys_journal_field)` | None          | Read      |

&#x20;

* **Assign roles to the user**: Go back to **User Administration → Users**, find your user, open the **Roles** tab, click **Edit**, and add both itil permission and your custom role. Click **Save → Update**.

The user is now ready to establish the ServiceNow connection.

{% hint style="info" %}
For full details and screenshots, see the complete guide: [Creating a ServiceNow User for Getint Integration](https://docs.getint.io/guides/integration-synchronization/jira-servicenow-integration/creating-a-servicenow-user-for-getint-integration).
{% endhint %}

#### 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/nmMFjMh36Kawry400smz" alt=""><figcaption></figcaption></figure>

* Select the project(s) you wish to integrate with Asana.

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

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

#### 6. Connect to ServiceNow <a href="#id-6.-connect-to-servicenow" id="id-6.-connect-to-servicenow"></a>

* Click on **Connect App** and choose ServiceNow. Enter your ServiceNow instance URL, then enter your username and password. At last, click **Add** to create the connection.

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

* **Add** the connection, and now it will be available for selection.

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

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

* **Quick Build**: Automatically align fields and data types between applications using this feature.

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

* **Manual Mapping**: If you want full control over the integration, select **+ Add Type Mapping** to define how your types map between systems, such as Incident, Task, or Change Request.
  * **Example**: Task ↔ Change Request.

<figure><img src="/files/7RbfbdZWRTwI3DBOMeH5" alt=""><figcaption></figcaption></figure>

#### 8. Item Routing <a href="#id-8.-item-routing" id="id-8.-item-routing"></a>

If you selected multiple projects for the Asana connection, you must define Item Routing. All relevant information about defining conditions is here: [Syncing Many Projects](https://docs.getint.io/getintio-platform/syncing-many-to-many-projects#defining-conditions-in-items-routing).

<figure><img src="/files/UAdyfjmXVcLyF0hfW2bT" 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/nU5W5q0WEA3NR31kParW" alt=""><figcaption></figcaption></figure>

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

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

Use the **Assignee mapping** option to match ServiceNow assignees (assigned to) with their corresponding Asana assignees. This step ensures that when a task, incident, or ticket syncs between the two systems, it’s automatically assigned to the right person in each tool

This mapping is especially important when usernames or email formats differ between platforms. By defining these relationships once, you prevent mismatches and avoid manual reassignment later.

For more details, visit our doc: [Assignees (users) mapping](https://docs.getint.io/getintio-platform/workflows/assignees-users-mapping).

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

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

Use the **Status mapping** option to align workflow states between ServiceNow and Asana. Each platform uses its own terminology for task or ticket progress, so mapping ensures that updates stay consistent when items sync in either direction.

Status mapping lets you pair equivalent states across both systems. For example, you might map:

* **To Do** in Asana → **New** in ServiceNow
* **In Progress** in Asana → **Review** in ServiceNow
* **Completed** in Asana → **Closed** in ServiceNow

Once these relationships are defined, any status change in one system is translated into the correct status in the other.

<figure><img src="/files/3uE9vfe5Gq0V2infyFaa" alt=""><figcaption></figcaption></figure>

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

#### 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>

Check the **Comments & Attachments** tab. These settings are active by default, but you can modify them to fit your specific requirements.

**Synchronization Directions**

The platform supports three distinct logic flows for these items:

* **Bidirectional**: Updates to comments or attachments in either Asana or ServiceNow will reflect in the other platform.
* **Unidirectional to Asana**: Data flows exclusively from ServiceNow to Asana. Changes made in Asana will not sync back to ServiceNow.
* **Unidirectional to ServiceNow**: Data flows exclusively from Asana to ServiceNow. Changes made in ServiceNow will not sync back to Asana.

**Disabling Sync**

If your organization has strict data privacy policies or if these items are not relevant to a specific integration, you can **disable** comments and attachments entirely. This prevents any data transfer for these specific fields while keeping other mapped fields active.

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

To sync files between both systems, turn on the **Synchronize attachments** option. Once enabled, you can also choose the **sync direction** for attachments, deciding whether they should flow from ServiceNow to Asana, from Asana to ServiceNow, or both ways.

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

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

#### 13. Advanced Tab <a href="#id-13.-advanced-tab" id="id-13.-advanced-tab"></a>

* 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/XCLVO52rmNFmorMCNVJW" alt=""><figcaption></figcaption></figure>

#### 14. Filtering: <a href="#id-14.-filtering" id="id-14.-filtering"></a>

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/4ZjDUpWHt4D1um5eP7RW" 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/BlgEf3sNb3XrgeCuNBiC" alt=""><figcaption></figcaption></figure>

#### 15. Filtering Items Across Multiple Asana–ServiceNow Integrations <a href="#id-15.-filtering-items-across-multiple-asana-servicenow-integrations" id="id-15.-filtering-items-across-multiple-asana-servicenow-integrations"></a>

* If you want to sync **Asana Project A** only with ServiceNow incidents assigned to **Assignment Group A**, use the filter items feature. In Getint, you configure the connection by mapping the types and fields between ServiceNow and Asana so fields like **Assignee** and **Assignment Group** stay aligned during syncs.

  This filtering ensures that only incidents belonging to the correct group appear in **Asana Project A**.

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

* On a separate integration, you can set up (or duplicate the existing integration) to integrate **Asana Project B** with ServiceNow Incidents that belong to **Assignment Group B.** Here, different filtering will be needed. You can define filter rules in Getint to control which items are synchronized, specifying criteria such as status or priority to ensure only relevant items are synced. This helps manage data efficiently and avoids unnecessary clutter. Remember to save the integration once the filters are applied to ensure they are active.

{% hint style="info" %}
Instead of applying filters for each individual project, you can use **Item Routing for Many Projects** to manage all Asana projects within a single integration. This feature automatically routes incoming ServiceNow items to the correct Asana project based on the rules you define, reducing the need to maintain multiple separate integrations.
{% endhint %}

#### 16. Test the Integration <a href="#id-16.-test-the-integration" id="id-16.-test-the-integration"></a>

* Create test issues or tasks in ServiceNow 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 <a href="#conclusion" id="conclusion"></a>

Following this guide lets you set up the ServiceNow-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
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
