> 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-freshservice-integration.md).

# Asana Freshservice integration

Connect Asana and Freshservice so that project management and IT service teams share a single source of truth. Changes in one platform automatically reflect in the other, eliminating manual handoffs and duplicate work.

This guide walks you through licensing, prerequisites, and a step-by-step setup using Getint.

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

Make sure you have the following ready. Gathering these first will make the setup steps below go smoothly.

| Requirement             | Details                                                                                                                                                                                                                                   |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Getint Account**      | Sign up at [app.live.getint.io](https://app.live.getint.io/) (SaaS) or deploy the [On-premise version](https://docs.getint.io/getting-started-with-the-platform/deployment-options/on-premise-deployment) (provided by our Support Team). |
| **Asana Access**        | A Personal Access Token (see Step 3) and admin rights to the project you want to sync.                                                                                                                                                    |
| **Freshservice Access** | Your instance URL (e.g., `https://yourcompany.freshservice.com`) and an API key (see Step 4).                                                                                                                                             |
| **Service Accounts**    | Dedicated accounts in both tools are recommended so that synced comments are attributed consistently.                                                                                                                                     |

{% hint style="info" %}
**Why service accounts?** Comments and changes are attributed to the user who created the connection. Using a dedicated service account in each tool keeps attribution clean and avoids tying the integration to a personal login.
{% endhint %}

### Licensing Model <a href="#licensing-model" id="licensing-model"></a>

Getint offers two licensing options for the Asana-Freshservice connector.

|                  | Standard License                               | Network License                                                                |
| ---------------- | ---------------------------------------------- | ------------------------------------------------------------------------------ |
| **Best for**     | A single team connecting two tools             | Managed service providers or orgs integrating three or more instances          |
| **Coverage**     | One Asana instance ↔ one Freshservice instance | Up to a defined number of connections (e.g., up to 10 instances)               |
| **Tools**        | Fixed pair, priced by the apps you sync        | Any mix of tools; you can swap integrated tools while the license stays active |
| **Sync limits**  | Unlimited projects and work items              | Unlimited work items across covered connections                                |
| **Hidden costs** | None                                           | None                                                                           |

For full pricing and terms, see the [Licensing Page](https://docs.getint.io/billing-and-services/licensing).

{% hint style="info" %}
**Note**: This connector is a non-Jira connector, so it uses the simple fixed-fee Standard License rather than Jira-specific pricing.
{% endhint %}

### Setting Up Your Asana-Freshservice Integration <a href="#setting-up-your-asana-freshservice-integration" id="setting-up-your-asana-freshservice-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](https://app.live.getint.io/). No account yet? Click **Sign up**.

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

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

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

* Open the new workspace to launch Getint.

<figure><img src="/files/6JHv6nEXIzBwxCGlssOv" 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** (the lightning bolt icon). Click **Create Integration**.

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

* Choose your integration type:
  * **Continuous Sync** keeps both tools updated on an ongoing basis.
  * **Data Migration** moves data one time from one tool to another.

<figure><img src="/files/cefNKPMpWlP5NblKk684" 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, click your profile picture, and go to **Settings**.
* Open the **Apps** tab, scroll to **Build new apps**, and click **View developer console**.
* Click **Create new token**, add a description, and create it.
* Copy the token and store it somewhere secure, since you won't be able to view it again.

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

#### 4. Generate a Freshservice API Key <a href="#id-4.-generate-a-freshservice-api-key" id="id-4.-generate-a-freshservice-api-key"></a>

* Log in to Freshservice and click your **profile icon** (upper-right).
* Go to **Profile Settings**.
* Select **Show API Key** and complete the security captcha if prompted.
* Copy the key and store it securely.

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

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

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

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

* Select the project you want to integrate.

<figure><img src="/files/56Rw8XGkc1XjChtck4cy" alt=""><figcaption></figcaption></figure>

* Click **Connect**.

{% hint style="warning" %}
This integration syncs **one project** at a time. Selecting multiple projects will cause Freshservice to disappear from your available options. To sync more projects, create separate integrations.
{% endhint %}

#### 6. Connect to Freshservice <a href="#id-6.-connect-to-freshservice" id="id-6.-connect-to-freshservice"></a>

* Click **Connect App** and choose **Freshservice**.

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

* Enter your instance URL (e.g., `https://yourcompany.freshservice.com`) and click **Next**.

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

* Name the connection and paste your **API key** into the password field.

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

* Click **Add**, then select the connection to continue.

{% hint style="info" %}
For detailed steps on how to configure your **Freshservice API token**, please refer to our guide [Connection](https://docs.getint.io/guides/quickstart/connection#freshservice).
{% endhint %}

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

Decide which item types correspond across the two tools.

* **Quick Build** automatically maps fields and types between Asana and Freshservice.
* **Manual Mapping**: click **+ Add Type Mapping** to define mappings yourself, such as Asana **Tasks** to Freshservice **Service Requests** or **Incidents**.

**Example:** Task ↔ Service Request.

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

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

* Select the fields to synchronize, such as **Title**, **Description**, **Assignees**, and **Custom** fields. In addition to this, for the Freshservice connection to work, it is necessary to map some key fields:
  1. **Reporter/Requester Mapping**:
     * Link the **Reporter** field in Asana to the **Requester** field in Freshservice.
     * Ensure that requesters on both platforms are mapped to allow Getint to match them appropriately.
     * In case a fixed value, like an email, is supposed to be defined for this field, the configuration can be done like the picture below (also mapped automatically by default).
  2. **Status Field**:
     * Freshservice mandates status mapping for the integration to function. A default value needs to be set for the ticket creation only, pointing towards the Freshservice side, avoiding this option being picked up again when the issues are updated:
  3. **Priority Field**:
     * Mapping the priority field is necessary for the integration to operate within Freshservice.

<figure><img src="/files/40iziFogChIeDqwIarCn" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
**Inline images** in the **Description** field are not supported.
{% endhint %}

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

Match Freshservice agents to Asana members so work stays assigned to the right people. See [Assignees (users) mapping](https://docs.getint.io/getintio-platform/workflows/assignees-users-mapping) for details.

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

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

* Map status values so they stay aligned. For example, Asana **In Progress** → Freshservice **Pending**.
* Optionally set the status direction to **unidirectional** if you only want transitions to flow one way rather than both.

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

#### 11. Comments & Attachments <a href="#id-11.-comments-and-attachments" id="id-11.-comments-and-attachments"></a>

The **Comments & Attachments** tab is enabled by default.

* Choose **unidirectional** or **bidirectional** sync, and filter by criteria such as creation date or author.
* Use **Customize comments creation** to set comments as public or private, or to skip them entirely.

<figure><img src="/files/6vzEpMxsqqL3H1jXJu9C" alt=""><figcaption></figcaption></figure>

* Enable attachments, and set the attachment sync direction to **bidirectional**, **App A (left)**, or **App B (right)**.

<figure><img src="/files/9bAtxfqEvniykOvRTQAL" alt=""><figcaption></figcaption></figure>

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

Enable **Customize create/update actions** for fine-grained control over how items sync, for example, one-way creation from the left app combined with bidirectional updates.

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

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

Filtering lets you sync only the items you care about. See [Items Filtering](https://docs.getint.io/getintio-platform/workflows/items-filtering) for the full reference.

To add a filter in the UI:

1. Click the filtering icon next to an app icon. The filter applies to that side of the integration.

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

2. Choose the scope:
   * **All** applies to every item.
   * **New** applies only to new items; already-synced items keep syncing and updating.
   * **Synced** updates only items that are already synced, based on the filter.

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

3. Pick the field and value to filter on. You can add multiple conditions per field.

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

4. Click **Apply**, then **Save** the integration.

&#x20;

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

* Create a test task in Asana and a test ticket in Freshservice.
* Confirm each one appears and updates correctly in the other tool.
* Check the integration status and logs in Getint to verify everything runs as expected.

***

### Troubleshooting & FAQ <a href="#troubleshooting-and-faq" id="troubleshooting-and-faq"></a>

**The second app disappeared after I selected my project.** You likely selected more than one project in Step 5. Each integration supports a single project, so remove the extra selection or create a separate integration for each additional project.

**My comments are attributed to the wrong user.** Comments are attributed to the account that created the connection (generated the API token). Re-create the connection using a dedicated service account in each tool so attribution stays consistent.

**Images in my task descriptions aren't coming through.** Inline images in the **Description** field aren't supported. Attach images as file attachments instead, and confirm attachment sync is enabled in Step 11.

**Statuses aren't updating the way I expect.** Check your status mapping (Step 10). If a status only changes in one tool, confirm whether you set the direction to unidirectional, since bidirectional is required for changes to flow both ways.

**I can't find my Freshservice API key.** It's under **Profile Settings → Show API Key**. You may need to complete a captcha. If the option isn't visible, confirm your account has the necessary permissions.

**Can I sync more than two instances?** Yes. The **Network License** supports three or more instances and lets you swap tools while the license stays active. See the [Licensing Page](https://docs.getint.io/billing-and-services/licensing).

**Should I use Continuous Sync or Data Migration?** Use **Continuous Sync** for an ongoing two-way connection. Use **Data Migration** for a one-time transfer of existing data.

***

### Conclusion <a href="#conclusion" id="conclusion"></a>

You've now set up the Asana-Freshservice integration with Getint, keeping tasks, tickets, and workflows in sync across project management and IT service management so teams collaborate without switching tools.

Need a hand? Reach out through 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-freshservice-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.
