Asana Connector for Azure Data Factory (SSIS)

In this article you will learn how to quickly and efficiently integrate Asana data in Azure Data Factory (SSIS) without coding. We will use high-performance Asana Connector to easily connect to Asana and then access the data inside Azure Data Factory (SSIS).

Read and write data related to Tasks, Projects, Workspaces, Portfolios, TimeEntries, Memberships and more.

Let's follow the steps below to see how we can accomplish that!

Download Documentation

Create SSIS package

First of all, create an SSIS package, which will connect to Asana in SSIS. Once you do that, you are one step closer to deploying and running it in Azure-SSIS integration runtime in Azure Data Factory (ADF). Then simply proceed to the next step - creating and configuring Azure Blob Storage Container.

Prepare custom setup files for Azure-SSIS runtime

Now it's time to start preparing custom setup files for Azure-SSIS runtime. During Azure-SSIS runtime creation you can instruct ADF to perform a custom setup on a VM (Azure-SSIS node); i.e. to run the custom installer, copy files, execute PowerShell scripts, etc. In that case, your custom setup files are downloaded and run in the Azure-SSIS node (a VM) when you start the runtime. In this section we will prepare custom setup files so that you can run SSIS packages with SSIS PowerPack connectors inside in Azure-SSIS runtime.

Read more on Azure-SSIS runtime custom setup in Microsoft Azure Data Factory reference.

Trial Users

Use the step below if you are a Trial User, when you did not purchase a license key. Proceed with these steps:

  1. Download SSIS PowerPack trial installer.
    Make sure you don't rename the installer and keep it named as SSISPowerPackSetup_64bit_Trial.msi.
  2. Create a text file and name it main.cmd (make it all lowercase, very important).
  3. Copy and paste this script into it and save it:
    set DIR=%CUSTOM_SETUP_SCRIPT_LOG_DIR%
    
    echo Calling Step 1 : %TIME% >> "%DIR%\steps_log.txt"
    dir /s /b > "%DIR%\file_list.txt"
    
    echo Calling Step 2 : %TIME% >> "%DIR%\steps_log.txt"
    
    ::Install SSIS PowerPack
    msiexec /i  "SSISPowerPackSetup_64bit_Trial.msi" ADDLOCAL=ALL /q  /L*V "%DIR%\powerpack_trial_install_log.txt"
    
    echo Calling Step 3 : %TIME% >> "%DIR%\steps_log.txt"
    dir "C:\Program Files\Microsoft SQL Server\*Zappy*.*"  /s /b >> "%DIR%\installed_files.txt"
    dir "C:\Program Files (x86)\Microsoft SQL Server\*Zappy*.*"  /s /b >> "%DIR%\installed_files.txt"
    
    echo DONE : %TIME% >> "%DIR%\steps_log.txt"
    
    echo complete
    This is the entry-point script that is executed when Azure-SSIS runtime is started.
  4. At last! You are ready to upload these two files — main.cmd & SSISPowerPackSetup_64bit_Trial.msi — into your Azure Blob Storage container's folder, which we will do in the Upload custom setup files to Azure Blob Storage container step.

Paid Customers

Use the steps below if you are a Paid Customer, when you purchased a license. Proceed with these steps:

  1. Download SSIS PowerPack paid installer.
    Make sure you don't rename the installer and keep it named as SSISPowerPackSetup_64bit.msi.
  2. Have your SSIS PowerPack license key handy, we will need it in the below script.
  3. Create a text file and name it main.cmd (make it all lowercase, very important).
  4. Copy and paste the below script into it.
  5. Paste your license key by replacing parameter's --register argument with your real license key.
  6. Finally, save main.cmd:
    set DIR=%CUSTOM_SETUP_SCRIPT_LOG_DIR%
    
    echo Calling Step 1 : %TIME% >> "%DIR%\steps_log.txt"
    dir /s /b > "%DIR%\file_list.txt"
    
    echo Calling Step 2 : %TIME% >> "%DIR%\steps_log.txt"
    
    ::Install SSIS PowerPack
    msiexec /i  "SSISPowerPackSetup_64bit.msi" ADDLOCAL=ALL /q  /L*V "%DIR%\powerpack_install_log.txt"
    
    echo Calling Step 3 : %TIME% >> "%DIR%\steps_log.txt"
    
    ::Activate PowerPack license (Optional)
    "C:\Program Files (x86)\ZappySys\SSIS PowerPack (64 bit)\LicenseManager.exe" -p SSISPowerPack --register "lgGAAO0-----REPLACE-WITH-YOUR-LICENSE-KEY-----czM=" --logfile "%DIR%\powerpack_register_log.txt"
    
    ::Show System Info
    echo Calling Step 4 : %TIME% >> "%DIR%\steps_log.txt"
    "C:\Program Files (x86)\ZappySys\SSIS PowerPack (64 bit)\LicenseManager.exe" -i -l "%DIR%\sysinfo_log.txt"
    
    echo Calling Step 5 : %TIME% >> "%DIR%\steps_log.txt"
    dir "C:\Program Files\Microsoft SQL Server\*Zappy*.*"  /s /b >> "%DIR%\installed_files.txt"
    dir "C:\Program Files (x86)\Microsoft SQL Server\*Zappy*.*"  /s /b >> "%DIR%\installed_files.txt"
    
    echo DONE : %TIME% >> "%DIR%\steps_log.txt"
    
    echo complete
    This is the entry-point script that is executed when Azure-SSIS runtime is started.
  7. At last! You are ready to upload these two files — main.cmd & SSISPowerPackSetup_64bit.msi — into your Azure Blob Storage container's folder, which we will do in the Upload custom setup files to Azure Blob Storage container step.

Upload custom setup files to Azure Blob Storage container

Within Azure Blob Storage container we will store custom setup files we prepared in the previous step so that Azure-SSIS can use them in custom setup process. Just perform these very simple, but very important steps:

  1. Create Azure Blob Storage container, if you haven't done it already
    Make sure you create and use Azure Blob Storage container instead of Azure Data Lake Storage folder. Azure Data Lake Storage won't allow creating an SAS URI for the container, which is a crucial step in the process.
  2. Find Blob Containers node, right-click on it and hit Create Blob Container option: Create a new blob container in Azure Storage Explorer
  3. Upload the two custom setup files — main.cmd & the MSI installer — into your Azure Blob Storage container's folder: Upload SSIS Custom Setup Files to Azure Data Factory
  4. It was easy, wasn't it? It's time we create an SAS URI in the next step.

Create SAS URI for Azure Blob Container

Once you have custom setup files prepared, it's time we generate an SAS URI. This SAS URI will be used by a new Azure-SSIS runtime to install SSIS PowerPack inside the runtime's node, a VM. Let's proceed together by performing the steps below:

  1. Install and launch Azure Storage Explorer.
  2. Right-click on the Storage Accounts node and then hit Connect to Azure storage... menu item: Add Azure Storage account to Azure Storage Explorer
  3. Proceed by right-clicking on that container node and select Get Shared Access Signature... option.
  4. Next, set the Expiry time field to a date far in the future.
    If you restart Azure-SSIS runtime and your SAS URI is expired by that time, it will not start.
  5. Select Read, Create, Write, and List permissions: Generate SAS URI in Azure Storage Explorer for Azure Data Factory Custom Setup
    We also recommend to add Delete permission too to support future functionality.
  6. Copy SAS URL to the clipboard and save it for the next step: Get container SAS URI for Azure Data Factory SSIS Custom Setup You can also generate and copy SAS URL from within Azure Portal itself: Generate SAS URI in Azure Data Factory Custom Setup via online portal

Create Azure-SSIS integration runtime

Once you have the SAS URL we obtained in the previous step, we are ready to move on to create an Azure-SSIS runtime in Azure Data Factory:

  1. Firstly, perform the steps described in Create an Azure-SSIS integration runtime article in Azure Data Factory reference.
  2. In Advanced settings page section, configure Custom setup container SAS URI you obtained in the previous step: Configure SAS URI in Azure Data Factory custom setup
  3. And you are done! That was quick! You can see your Azure-SSIS runtime up and running: Verify Azure-SSIS runtime status in Azure Data Factory portal

The custom setup script is executed only once — at the time an Azure-SSIS runtime is started.

It is also executed if you stop and start Azure-SSIS runtime again.

Deploy SSIS package in Visual Studio

We are ready to deploy the SSIS package to Azure-SSIS runtime. Once you do that, proceed to the next step for the grand finale! Deploy SSIS package to Azure Data Factory from Visual Studio

Execute SSIS package in SQL Server Management Studio (SSMS)

After all hard work, we are ready to execute SSIS package in SQL Server Management Studio (SSMS):

  1. Connect to the SQL Server which is linked to your Azure-SSIS runtime and contains SSISDB database.
  2. Navigate to Integration Services Catalog » Your Folder » Your Project » Your Package, right-click on it, and hit Execute...: Execute SSIS package using SQL Server Management Studio (SSMS)
  3. To view the status of the past execution, navigate to Integration Services Catalog » Your Folder » Your Project » Your Package, right-click on it, and select Reports » Standard Reports » All Executions menu item: Monitor SSIS package execution using SSMS UI

Scenarios

Moving SSIS PowerPack license to another Azure-SSIS runtime

If you are a Paid Customer, there will be a time when you no longer use Azure-SSIS runtime or you need to use your license on a different ADF instance. To transfer a license from one Azure-SSIS runtime to another, perform these steps:

  1. Copy & paste this script into main.cmd we used in the previous step:
    set DIR=%CUSTOM_SETUP_SCRIPT_LOG_DIR%
    
    echo Calling Step 1 : %TIME% >> "%DIR%\steps_log.txt"
    dir /s /b > "%DIR%\file_list.txt"
     
    echo Calling Step 2 : %TIME% >> "%DIR%\steps_log.txt"
    
    ::Install SSIS PowerPack
    msiexec /i  "SSISPowerPackSetup_64bit.msi" ADDLOCAL=ALL /q  /L*V "%DIR%\powerpack_install_log.txt"
     
    echo Calling Step 3 : %TIME% >> "%DIR%\steps_log.txt"
     
    ::De-Activate same license
    "C:\Program Files (x86)\ZappySys\SSIS PowerPack (64 bit)\LicenseManager.exe" -p SSISPowerPack --unregister --logfile "%DIR%\powerpack_un_register_log.txt"
     
    ::Show System Info
    echo Calling Step 4 : %TIME% >> "%DIR%\steps_log.txt"
    "C:\Program Files (x86)\ZappySys\SSIS PowerPack (64 bit)\LicenseManager.exe" -i -l "%DIR%\sysinfo_log.txt"
     
    echo Calling Step 5 : %TIME% >> "%DIR%\steps_log.txt"
    dir "C:\Program Files\Microsoft SQL Server\*Zappy*.*"  /s /b >> "%DIR%\installed_files.txt"
    dir "C:\Program Files (x86)\Microsoft SQL Server\*Zappy*.*"  /s /b >> "%DIR%\installed_files.txt"
     
    echo DONE : %TIME% >> "%DIR%\steps_log.txt"
     
    echo complete
  2. Start Azure-SSIS runtime.
    This will unregister your license on the original Azure-SSIS runtime.
  3. Stop Azure-SSIS runtime to deallocate resources in Azure.
  4. Now you are free to activate it on another Azure-SSIS runtime.

Advanced topics

Create Custom Stored Procedure in ZappySys Driver

You can create procedures to encapsulate custom logic and then only pass handful parameters rather than long SQL to execute your API call.

Steps to create Custom Stored Procedure in ZappySys Driver. You can insert Placeholders anywhere inside Procedure Body. Read more about placeholders here

  1. Go to Custom Objects Tab and Click on Add button and Select Add Procedure:
    ZappySys Driver - Add Stored Procedure

  2. Enter the desired Procedure name and click on OK:
    ZappySys Driver - Add Stored Procedure Name

  3. Select the created Stored Procedure and write the your desired stored procedure and Save it and it will create the custom stored procedure in the ZappySys Driver:
    Here is an example stored procedure for ZappySys Driver. You can insert Placeholders anywhere inside Procedure Body. Read more about placeholders here

    CREATE PROCEDURE [usp_get_orders]
        @fromdate = '<<yyyy-MM-dd,FUN_TODAY>>'
     AS
        SELECT * FROM Orders where OrderDate >= '<@fromdate>';
    

    ZappySys Driver - Create Custom Stored Procedure

  4. That's it now go to Preview Tab and Execute your Stored Procedure using Exec Command. In this example it will extract the orders from the date 1996-01-01:

    Exec usp_get_orders '1996-01-01';

    ZappySys Driver - Execute Custom Stored Procedure

  5. Let's generate the SQL Server Query Code to make the API call using stored procedure. Go to Code Generator Tab, select language as SQL Server and click on Generate button the generate the code.
    As we already created the linked server for this Data Source, in that you just need to copy the Select Query and need to use the linked server name which we have apply on the place of [MY_API_SERVICE] placeholder.

    SELECT * FROM OPENQUERY([LINKED_SERVER_TO_ASANA_IN_DATA_GATEWAY], 'EXEC usp_get_orders @fromdate=''1996-07-30''')

    ZappySys Driver - Generate SQL Server Query

  6. Now go to SQL served and execute that query and it will make the API call using stored procedure and provide you the response.
    ZappySys Driver - Generate SQL Server Query

Create Custom Virtual Table in ZappySys Driver

ZappySys API Drivers support flexible Query language so you can override Default Properties you configured on Data Source such as URL, Body. This way you don't have to create multiple Data Sources if you like to read data from multiple EndPoints. However not every application support supplying custom SQL to driver so you can only select Table from list returned from driver.

If you're dealing with Microsoft Access and need to import data from an SQL query, it's important to note that Access doesn't allow direct import of SQL queries. Instead, you can create custom objects (Virtual Tables) to handle the import process.

Many applications like MS Access, Informatica Designer wont give you option to specify custom SQL when you import Objects. In such case Virtual Table is very useful. You can create many Virtual Tables on the same Data Source (e.g. If you have 50 URLs with slight variations you can create virtual tables with just URL as Parameter setting.

  1. Go to Custom Objects Tab and Click on Add button and Select Add Table:
    ZappySys Driver - Add Table

  2. Enter the desired Table name and click on OK:
    ZappySys Driver - Add Table Name

  3. And it will open the New Query Window Click on Cancel to close that window and go to Custom Objects Tab.

  4. Select the created table, Select Text Type AS SQL and write the your desired SQL Query and Save it and it will create the custom table in the ZappySys Driver:
    Here is an example SQL query for ZappySys Driver. You can insert Placeholders also. Read more about placeholders here

    SELECT
      "ShipCountry",
      "OrderID",
      "CustomerID",
      "EmployeeID",
      "OrderDate",
      "RequiredDate",
      "ShippedDate",
      "ShipVia",
      "Freight",
      "ShipName",
      "ShipAddress",
      "ShipCity",
      "ShipRegion",
      "ShipPostalCode"
    FROM "Orders"
    Where "ShipCountry"='USA'

    ZappySys Driver - Create Custom Table

  5. That's it now go to Preview Tab and Execute your custom virtual table query. In this example it will extract the orders for the USA Shipping Country only:

    SELECT * FROM "vt__usa_orders_only"

    ZappySys Driver - Execute Custom Virtual Table Query

  6. Let's generate the SQL Server Query Code to make the API call using stored procedure. Go to Code Generator Tab, select language as SQL Server and click on Generate button the generate the code.
    As we already created the linked server for this Data Source, in that you just need to copy the Select Query and need to use the linked server name which we have apply on the place of [MY_API_SERVICE] placeholder.

    SELECT * FROM OPENQUERY([LINKED_SERVER_TO_ASANA_IN_DATA_GATEWAY], 'EXEC [usp_get_orders] ''1996-01-01''')

    ZappySys Driver - Generate SQL Server Query

  7. Now go to SQL served and execute that query and it will make the API call using stored procedure and provide you the response.
    ZappySys Driver - Generate SQL Server Query

Actions supported by Asana Connector

Asana Connector support following actions for REST API integration. If some actions are not listed below then you can easily edit Connector file and enhance out of the box functionality.
 Get Workspaces
 Get Workspace (Single)
   [ Read more... ]
Parameter Description
Workspace Id
 Get Projects
   [ Read more... ]
Parameter Description
Workspace Id
Team Id
 Get Project (Single)
   [ Read more... ]
Parameter Description
Project Id
 Get Tasks
   [ Read more... ]
Parameter Description
QueryBy
Option Value
project project
tag tag
section section
user_task_list user_task_list
assignee_and_workspace assignee_and_workspace
Project Id The project to filter tasks on.
Workspace Id The workspace to filter tasks on. Note: If you specify workspace, you must also specify the assignee to filter on.
Assignee Id The assignee to filter tasks on. If searching for unassigned tasks, assignee.any = null can be specified. Note: If you specify assignee, you must also specify the workspace to filter on.
Section Id The section to filter tasks on.
Tag Id
UserTaskListId
Completed Since Only return tasks that are either incomplete or that have been completed since this time.
Option Value
2023-12-31 2023-12-31
2023-12-31T00:00:00 2023-12-31T00:00:00
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Modified Since Only return tasks that have been modified since the given time. Note: A task is considered “modified” if any of its properties change, or associations between it and other objects are modified (e.g. a task being added to a project). A task is not considered modified just because another object it is associated with (e.g. a subtask) is modified. Actions that count as modifying the task include assigning, renaming, completing, and adding stories.
Option Value
2023-12-31 2023-12-31
2023-12-31T00:00:00 2023-12-31T00:00:00
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
 Get Sub Tasks
Only enter TaskId if QueryBy=task else you may get error.    [ Read more... ]
Parameter Description
QueryBy
Option Value
project project
task task
tag tag
section section
user_task_list user_task_list
assignee_and_workspace assignee_and_workspace
Parent Task Id The parent task id for which you would like to fetch all sub tasks.
Project Id The project to filter tasks on.
Workspace Id The workspace to filter tasks on. Note: If you specify workspace, you must also specify the assignee to filter on.
Assignee Id The assignee to filter tasks on. If searching for unassigned tasks, assignee.any = null can be specified. Note: If you specify assignee, you must also specify the workspace to filter on.
Section Id The section to filter tasks on.
Tag Id
UserTaskListId
Completed Since Only return tasks that are either incomplete or that have been completed since this time.
Option Value
2023-12-31 2023-12-31
2023-12-31T00:00:00 2023-12-31T00:00:00
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Modified Since Only return tasks that have been modified since the given time. Note: A task is considered “modified” if any of its properties change, or associations between it and other objects are modified (e.g. a task being added to a project). A task is not considered modified just because another object it is associated with (e.g. a subtask) is modified. Actions that count as modifying the task include assigning, renaming, completing, and adding stories.
Option Value
2023-12-31 2023-12-31
2023-12-31T00:00:00 2023-12-31T00:00:00
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
 Get Workspace Tasks
Get tasks for all projects in a specified workspace (or default workspace).    [ Read more... ]
Parameter Description
Fields
Option Value
actual_time_minutes actual_time_minutes
subtasks subtasks
approval_status approval_status
assignee assignee
assignee.name assignee.name
assignee_section assignee_section
assignee_section.name assignee_section.name
assignee_status assignee_status
completed completed
completed_at completed_at
completed_by completed_by
completed_by.name completed_by.name
created_at created_at
created_by created_by
created_by.name created_by.name
custom_fields custom_fields
custom_fields.asana_created_field custom_fields.asana_created_field
custom_fields.created_by custom_fields.created_by
custom_fields.created_by.name custom_fields.created_by.name
custom_fields.currency_code custom_fields.currency_code
custom_fields.custom_label custom_fields.custom_label
custom_fields.custom_label_position custom_fields.custom_label_position
custom_fields.date_value custom_fields.date_value
custom_fields.date_value.date custom_fields.date_value.date
custom_fields.date_value.date_time custom_fields.date_value.date_time
custom_fields.description custom_fields.description
custom_fields.display_value custom_fields.display_value
custom_fields.enabled custom_fields.enabled
custom_fields.enum_options custom_fields.enum_options
custom_fields.enum_options.color custom_fields.enum_options.color
custom_fields.enum_options.enabled custom_fields.enum_options.enabled
custom_fields.enum_options.name custom_fields.enum_options.name
custom_fields.enum_value custom_fields.enum_value
custom_fields.enum_value.color custom_fields.enum_value.color
custom_fields.enum_value.enabled custom_fields.enum_value.enabled
custom_fields.enum_value.name custom_fields.enum_value.name
custom_fields.format custom_fields.format
custom_fields.has_notifications_enabled custom_fields.has_notifications_enabled
custom_fields.id_prefix custom_fields.id_prefix
custom_fields.is_formula_field custom_fields.is_formula_field
custom_fields.is_global_to_workspace custom_fields.is_global_to_workspace
custom_fields.is_value_read_only custom_fields.is_value_read_only
custom_fields.multi_enum_values custom_fields.multi_enum_values
custom_fields.multi_enum_values.color custom_fields.multi_enum_values.color
custom_fields.multi_enum_values.enabled custom_fields.multi_enum_values.enabled
custom_fields.multi_enum_values.name custom_fields.multi_enum_values.name
custom_fields.name custom_fields.name
custom_fields.number_value custom_fields.number_value
custom_fields.people_value custom_fields.people_value
custom_fields.people_value.name custom_fields.people_value.name
custom_fields.precision custom_fields.precision
custom_fields.representation_type custom_fields.representation_type
custom_fields.resource_subtype custom_fields.resource_subtype
custom_fields.text_value custom_fields.text_value
custom_fields.type custom_fields.type
dependencies dependencies
dependents dependents
due_at due_at
due_on due_on
external external
external.data external.data
followers followers
followers.name followers.name
hearted hearted
hearts hearts
hearts.user hearts.user
hearts.user.name hearts.user.name
html_notes html_notes
is_rendered_as_separator is_rendered_as_separator
liked liked
likes likes
likes.user likes.user
likes.user.name likes.user.name
memberships memberships
memberships.project memberships.project
memberships.project.name memberships.project.name
memberships.section memberships.section
memberships.section.name memberships.section.name
modified_at modified_at
name name
notes notes
num_hearts num_hearts
num_likes num_likes
num_subtasks num_subtasks
parent parent
parent.created_by parent.created_by
parent.name parent.name
parent.resource_subtype parent.resource_subtype
permalink_url permalink_url
projects projects
projects.name projects.name
resource_subtype resource_subtype
start_at start_at
start_on start_on
tags tags
tags.name tags.name
workspace workspace
workspace.name workspace.name
Workspace Id The workspace to filter tasks on. Note: If you specify workspace.
Completed Since Only return tasks that are either incomplete or that have been completed since this time.
Option Value
2023-12-31 2023-12-31
2023-12-31T00:00:00 2023-12-31T00:00:00
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Modified Since Only return tasks that have been modified since the given time. Note: A task is considered “modified” if any of its properties change, or associations between it and other objects are modified (e.g. a task being added to a project). A task is not considered modified just because another object it is associated with (e.g. a subtask) is modified. Actions that count as modifying the task include assigning, renaming, completing, and adding stories.
Option Value
2023-12-31 2023-12-31
2023-12-31T00:00:00 2023-12-31T00:00:00
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
 Search Tasks (Advanced Filter)
Search tasks with in a specified workspace (or default workspace) using advanced server side filters.    [ Read more... ]
Parameter Description
Fields
Option Value
actual_time_minutes actual_time_minutes
subtasks subtasks
approval_status approval_status
assignee assignee
assignee.name assignee.name
assignee_section assignee_section
assignee_section.name assignee_section.name
assignee_status assignee_status
completed completed
completed_at completed_at
completed_by completed_by
completed_by.name completed_by.name
created_at created_at
created_by created_by
created_by.name created_by.name
custom_fields custom_fields
custom_fields.asana_created_field custom_fields.asana_created_field
custom_fields.created_by custom_fields.created_by
custom_fields.created_by.name custom_fields.created_by.name
custom_fields.currency_code custom_fields.currency_code
custom_fields.custom_label custom_fields.custom_label
custom_fields.custom_label_position custom_fields.custom_label_position
custom_fields.date_value custom_fields.date_value
custom_fields.date_value.date custom_fields.date_value.date
custom_fields.date_value.date_time custom_fields.date_value.date_time
custom_fields.description custom_fields.description
custom_fields.display_value custom_fields.display_value
custom_fields.enabled custom_fields.enabled
custom_fields.enum_options custom_fields.enum_options
custom_fields.enum_options.color custom_fields.enum_options.color
custom_fields.enum_options.enabled custom_fields.enum_options.enabled
custom_fields.enum_options.name custom_fields.enum_options.name
custom_fields.enum_value custom_fields.enum_value
custom_fields.enum_value.color custom_fields.enum_value.color
custom_fields.enum_value.enabled custom_fields.enum_value.enabled
custom_fields.enum_value.name custom_fields.enum_value.name
custom_fields.format custom_fields.format
custom_fields.has_notifications_enabled custom_fields.has_notifications_enabled
custom_fields.id_prefix custom_fields.id_prefix
custom_fields.is_formula_field custom_fields.is_formula_field
custom_fields.is_global_to_workspace custom_fields.is_global_to_workspace
custom_fields.is_value_read_only custom_fields.is_value_read_only
custom_fields.multi_enum_values custom_fields.multi_enum_values
custom_fields.multi_enum_values.color custom_fields.multi_enum_values.color
custom_fields.multi_enum_values.enabled custom_fields.multi_enum_values.enabled
custom_fields.multi_enum_values.name custom_fields.multi_enum_values.name
custom_fields.name custom_fields.name
custom_fields.number_value custom_fields.number_value
custom_fields.people_value custom_fields.people_value
custom_fields.people_value.name custom_fields.people_value.name
custom_fields.precision custom_fields.precision
custom_fields.representation_type custom_fields.representation_type
custom_fields.resource_subtype custom_fields.resource_subtype
custom_fields.text_value custom_fields.text_value
custom_fields.type custom_fields.type
dependencies dependencies
dependents dependents
due_at due_at
due_on due_on
external external
external.data external.data
followers followers
followers.name followers.name
hearted hearted
hearts hearts
hearts.user hearts.user
hearts.user.name hearts.user.name
html_notes html_notes
is_rendered_as_separator is_rendered_as_separator
liked liked
likes likes
likes.user likes.user
likes.user.name likes.user.name
memberships memberships
memberships.project memberships.project
memberships.project.name memberships.project.name
memberships.section memberships.section
memberships.section.name memberships.section.name
modified_at modified_at
name name
notes notes
num_hearts num_hearts
num_likes num_likes
num_subtasks num_subtasks
parent parent
parent.created_by parent.created_by
parent.name parent.name
parent.resource_subtype parent.resource_subtype
permalink_url permalink_url
projects projects
projects.name projects.name
resource_subtype resource_subtype
start_at start_at
start_on start_on
tags tags
tags.name tags.name
workspace workspace
workspace.name workspace.name
Workspace Id The workspace to filter tasks on. Note: If you specify workspace.
Text Performs full-text search on both task name and description.
Projects (NOT) Comma-separated list of project IDs.
Projects (ALL) Comma-separated list of project IDs.
Projects (ANY) Comma-separated list of project IDs.
Sections (NOT) Comma-separated list of section IDs.
Sections (ALL) Comma-separated list of section IDs.
Sections (ANY) Comma-separated list of section IDs.
Tags (NOT) Comma-separated list of tag IDs.
Tags (ALL) Comma-separated list of tag IDs.
Tags (ANY) Comma-separated list of tag IDs.
Assigned By (NOT) Comma-separated list of user IDs.
Assigned By (ALL) Comma-separated list of user IDs.
Assigned By (ANY) Comma-separated list of user IDs.
Portfolios (ANY) Comma-separated list of portfolio IDs.
Teams (ANY) Comma-separated list of team IDs.
Due On ISO 8601 date string (e.g. 2025-12-31).
Option Value
2023-12-31 2023-12-31
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Due On Before ISO 8601 date string (e.g. 2025-12-31).
Option Value
2023-12-31 2023-12-31
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Due On After ISO 8601 date string (e.g. 2025-12-31).
Option Value
2023-12-31 2023-12-31
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Due On (Null) Search for DueOn [null] value.
Option Value
null null
Start On ISO 8601 date string (e.g. 2025-12-31).
Option Value
2023-12-31 2023-12-31
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Start On Before ISO 8601 date string (e.g. 2025-12-31).
Option Value
2023-12-31 2023-12-31
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Start On After ISO 8601 date string (e.g. 2025-12-31).
Option Value
2023-12-31 2023-12-31
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Start On (Null) Search for StartOn [null] value.
Option Value
null null
Created On ISO 8601 date string (e.g. 2025-12-31).
Option Value
2023-12-31 2023-12-31
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Created On Before ISO 8601 date string (e.g. 2025-12-31).
Option Value
2023-12-31 2023-12-31
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Created On After ISO 8601 date string (e.g. 2025-12-31).
Option Value
2023-12-31 2023-12-31
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Created On (Null) Search for CreatedOn [null] value.
Option Value
null null
Modified On ISO 8601 date string (e.g. 2025-12-31).
Option Value
2023-12-31 2023-12-31
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Modified On Before ISO 8601 date string (e.g. 2025-12-31).
Option Value
2023-12-31 2023-12-31
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Modified On After ISO 8601 date string (e.g. 2025-12-31).
Option Value
2023-12-31 2023-12-31
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Modified On (Null) Search for ModifiedOn [null] value.
Option Value
null null
Completed On ISO 8601 date string (e.g. 2025-12-31).
Option Value
2023-12-31 2023-12-31
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Completed On Before ISO 8601 date string (e.g. 2025-12-31).
Option Value
2023-12-31 2023-12-31
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Completed On After ISO 8601 date string (e.g. 2025-12-31).
Option Value
2023-12-31 2023-12-31
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Completed On (Null) Search for CompletedOn [null] value.
Option Value
null null
Due At ISO 8601 date string (e.g. 2025-12-31T23:59:59).
Option Value
2023-12-31 2023-12-31
2023-12-31T00:00:00 2023-12-31T00:00:00
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Due At Before ISO 8601 date string (e.g. 2025-12-31T23:59:59).
Option Value
2023-12-31 2023-12-31
2023-12-31T00:00:00 2023-12-31T00:00:00
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Due At After ISO 8601 date string (e.g. 2025-12-31T23:59:59).
Option Value
2023-12-31 2023-12-31
2023-12-31T00:00:00 2023-12-31T00:00:00
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Start At ISO 8601 date string (e.g. 2025-12-31T23:59:59).
Option Value
2023-12-31 2023-12-31
2023-12-31T00:00:00 2023-12-31T00:00:00
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Start At Before ISO 8601 date string (e.g. 2025-12-31T23:59:59).
Option Value
2023-12-31 2023-12-31
2023-12-31T00:00:00 2023-12-31T00:00:00
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Start At After ISO 8601 date string (e.g. 2025-12-31T23:59:59).
Option Value
2023-12-31 2023-12-31
2023-12-31T00:00:00 2023-12-31T00:00:00
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Created At ISO 8601 date string (e.g. 2025-12-31T23:59:59).
Option Value
2023-12-31 2023-12-31
2023-12-31T00:00:00 2023-12-31T00:00:00
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Created At Before ISO 8601 date string (e.g. 2025-12-31T23:59:59).
Option Value
2023-12-31 2023-12-31
2023-12-31T00:00:00 2023-12-31T00:00:00
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Created At After ISO 8601 date string (e.g. 2025-12-31T23:59:59).
Option Value
2023-12-31 2023-12-31
2023-12-31T00:00:00 2023-12-31T00:00:00
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Modified At ISO 8601 date string (e.g. 2025-12-31T23:59:59).
Option Value
2023-12-31 2023-12-31
2023-12-31T00:00:00 2023-12-31T00:00:00
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Modified At Before ISO 8601 date string (e.g. 2025-12-31T23:59:59).
Option Value
2023-12-31 2023-12-31
2023-12-31T00:00:00 2023-12-31T00:00:00
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Modified At After ISO 8601 date string (e.g. 2025-12-31T23:59:59).
Option Value
2023-12-31 2023-12-31
2023-12-31T00:00:00 2023-12-31T00:00:00
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Completed At ISO 8601 date string (e.g. 2025-12-31T23:59:59).
Option Value
2023-12-31 2023-12-31
2023-12-31T00:00:00 2023-12-31T00:00:00
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Completed At Before ISO 8601 date string (e.g. 2025-12-31T23:59:59).
Option Value
2023-12-31 2023-12-31
2023-12-31T00:00:00 2023-12-31T00:00:00
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Completed At After ISO 8601 date string (e.g. 2025-12-31T23:59:59).
Option Value
2023-12-31 2023-12-31
2023-12-31T00:00:00 2023-12-31T00:00:00
now now
now-24h now-24h
today today
yesterday yesterday
yearstart-10y yearstart-10y
monthstart monthstart
monthend monthend
yearstart yearstart
yearend yearend
weekstart weekstart
weekend weekend
yearstart-1y yearstart-1y
yearend-1y yearend-1y
monthstart-1d monthstart-1d
monthend+1d monthend+1d
monthend+1d-1y monthend+1d-1y
Is Blocked
Option Value
true true
false false
Is Blocking
Option Value
true true
false false
Is Subtask
Option Value
true true
false false
Has Attachment
Option Value
true true
false false
Completed
Option Value
true true
false false
Sort By
Option Value
due_date due_date
created_at created_at
completed_at completed_at
modified_at modified_at
likes likes
Sort Ascending
Option Value
true true
false false
 Get Task (Single)
   [ Read more... ]
Parameter Description
TaskId
 Get Workspace Teams
Returns records for all teams in the workspace visible to the authorized user.    [ Read more... ]
Parameter Description
Workspace Id
 Get Project Sections
   [ Read more... ]
Parameter Description
Project Id
 Get Project Section
   [ Read more... ]
Parameter Description
Project Id
Section Id
 Get Users
   [ Read more... ]
Parameter Description
Workspace Id
 Get User (Single)
   [ Read more... ]
Parameter Description
User Id
 Get Allocations
   [ Read more... ]
Parameter Description
Workspace Id
Project Id
User Id
 Get Attachments (For Project refer to Key-Resources Upload only)
There are three possible parent values for this request: project, project_brief, and task. For a project, an attachment refers to a file uploaded to the [Key resources] section in the project Overview. For a project brief, an attachment refers to inline files in the project brief itself. For a task, an attachment refers to a file directly associated to that task. Note that within the Asana app, inline images in the task description do not appear in the index of image thumbnails nor as stories in the task. However, requests made to GET /attachments for a task will return all of the images in the task, including inline images.    [ Read more... ]
Parameter Description
Parent Id (e.g. Id of Project, Task or ProjectBrief) Globally unique identifier for object to fetch statuses from. Must be a GID for a project, project_brief, or task.
 Download Attachment
Download a specific attachment by Id.    [ Read more... ]
Parameter Description
Attachment ID The attachment Id for the attachment to get.
Fields
Option Value
name name
resource_subtype resource_subtype
connected_to_app connected_to_app
created_at created_at
download_url download_url
host host
parent parent
parent.name parent.name
parent.resource_subtype parent.resource_subtype
permanent_url permanent_url
size size
view_url view_url
 Download Multiple Attachments
Download Multiple Attachments for a specified parent.There are three possible parent values for this request: project, project_brief, and task. For a project, an attachment refers to a file uploaded to the [Key resources] section in the project Overview. For a project brief, an attachment refers to inline files in the project brief itself. For a task, an attachment refers to a file directly associated to that task. Note that within the Asana app, inline images in the task description do not appear in the index of image thumbnails nor as stories in the task. However, requests made to GET /attachments for a task will return all of the images in the task, including inline images.    [ Read more... ]
Parameter Description
Parent Id (e.g. Id of Project, Task or ProjectBrief) Globally unique identifier for object to fetch statuses from. Must be a GID for a project, project_brief, or task.
OverwriteFile
Option Value
True True
False False
SaveFolder Specify a disk folder path to save file(s) to
Fields
Option Value
name name
resource_subtype resource_subtype
connected_to_app connected_to_app
created_at created_at
download_url download_url
host host
parent parent
parent.name parent.name
parent.resource_subtype parent.resource_subtype
permanent_url permanent_url
size size
view_url view_url
 Get Portfolios
   [ Read more... ]
Parameter Description
Workspace Id
Owner Id
 Get Goals
   [ Read more... ]
Parameter Description
Workspace Id
Project Id
Portfolio Id
Team Id
Is Workspace Level
Option Value
true true
false false
Time Periods (e.g. Id1,Id2)
 Get Workspace Custom Fields
   [ Read more... ]
Parameter Description
Workspace Id
 Get Project Custom Fields
   [ Read more... ]
Parameter Description
Project Id
 Get Portfolio Custom Fields
   [ Read more... ]
Parameter Description
Portfolio Id
 Get User Task Lists
   [ Read more... ]
Parameter Description
User Id
Workspace Id
 Get Memberships
   [ Read more... ]
Parameter Description
Project Id
PortfolioId
GoalId
Member or Team Id (Use with Project OR Portfolio OR Goal)
 Get Tags
   [ Read more... ]
Parameter Description
Workspace Id
 Get Time Tracking Entries
   [ Read more... ]
Parameter Description
Task Id
 Generic Request
This is generic endpoint. Use this endpoint when some actions are not implemented by connector. Just enter partial URL (Required), Body, Method, Header etc. Most parameters are optional except URL.    [ Read more... ]
Parameter Description
Url API URL goes here. You can enter full URL or Partial URL relative to Base URL. If it is full URL then domain name must be part of ServiceURL or part of TrustedDomains
Body Request Body content goes here
IsMultiPart Set this option if you want to upload file(s) (i.e. POST RAW file data) or send data using Multi-Part encoding method (i.e. Content-Type: multipart/form-data). Multi-Part request allows you to mix key/value and upload files in same request. On the other hand raw upload allows only single file upload (without any key/value) ==== Raw Upload (Content-Type: application/octet-stream) ===== To upload single file in raw mode check this option and specify full file path starting with @ sign in the Body (e.g. @c:\data\myfile.zip ) ==== Form-Data / Multipart Upload (Content-Type: multipart/form-data) ===== To treat your Request data as multi part fields you must specify key/value pairs separated by new lines into RequestData field (i.e. Body). Each key value pair is entered on new-line and key/value are separated using equal sign (=). Preceding and trailing spaces are ignored also blank lines are ignored. If field value has some any special character(s) then use escape sequence (e.g. For NewLine: \r\n, For Tab: \t, For at (@): \@). When value of any field starts with at sign (@) its automatically treated as File you want to upload. By default file content type is determined based on extension however you can supply content type manually for any field using this way [ YourFileFieldName.Content-Type=some-content-type ]. By default File Upload Field always includes Content-Type in the request (non file fields do not have content-type by default unless you supply manually). For some reason if you dont want to use Content-Type header in your request then supply blank Content-Type to exclude this header altogather [e.g. SomeFieldName.Content-Type= ]. In below example we have supplied Content-Type for file2 and SomeField1, all other fields are using default content-type. See below Example of uploading multiple files along with additional fields. If some API requires you to pass Content-Type: multipart/form-data rather than multipart/form-data then manually set Request Header => Content-Type: multipart/mixed (it must starts with multipart/ else will be ignored). file1=@c:\data\Myfile1.txt file2=@c:\data\Myfile2.json file2.Content-Type=application/json SomeField1=aaaaaaa SomeField1.Content-Type=text/plain SomeField2=12345 SomeFieldWithNewLineAndTab=This is line1\r\nThis is line2\r\nThis is \ttab \ttab \ttab SomeFieldStartingWithAtSign=\@MyTwitterHandle
Filter Enter filter to extract array from response. Example: $.rows[*] --OR-- $.customers[*].orders[*]. Check your response document and find out hierarchy you like to extract
Option Value
No filter
Example1 $.store.books[*]
Example2 (Sections Under Books) $.store.books[*].sections[*]
Example3 (Equals) $.store.books[?(@author=='sam')]
Example4 (Equals - Any Section) $..[?(@author=='sam')]
Example5 (Not Equals - Any Section) $..[?(@author!='sam')]
Example6 (Number less than) $.store.books[?(@.price<10)] Example7 (Regular Expression - Contains Pattern)=$.store.books[?(@author=~ /sam|bob/ )]
Example8 (Regular Expression - Does Not Contain Pattern) $.store.books[?(@author=~ /^((?!sam|bob).)*$/ )]
Example9 (Regular Expression - Exact Pattern Match) $.store.books[?(@author=~ /^sam|bob$/ )]
Example10 (Regular Expression - Starts With) $.store.books[?(@author=~ /^sam/ )]
Example11 (Regular Expression - Ends With) $.store.books[?(@author=~ /sam$/ )]
Example12 (Between) $.store.employees[?( @.hiredate>'2015-01-01' && @.hiredate<'2015-01-04' )]
Headers Headers for Request. To enter multiple headers use double pipe or new line after each {header-name}:{value} pair
 Generic Request (Bulk Write)
This is a generic endpoint for bulk write purpose. Use this endpoint when some actions are not implemented by connector. Just enter partial URL (Required), Body, Method, Header etc. Most parameters are optional except URL.    [ Read more... ]
Parameter Description
Url API URL goes here. You can enter full URL or Partial URL relative to Base URL. If it is full URL then domain name must be part of ServiceURL or part of TrustedDomains
IsMultiPart Set this option if you want to upload file(s) (i.e. POST RAW file data) or send data using Multi-Part encoding method (i.e. Content-Type: multipart/form-data). Multi-Part request allows you to mix key/value and upload files in same request. On the other hand raw upload allows only single file upload (without any key/value) ==== Raw Upload (Content-Type: application/octet-stream) ===== To upload single file in raw mode check this option and specify full file path starting with @ sign in the Body (e.g. @c:\data\myfile.zip ) ==== Form-Data / Multipart Upload (Content-Type: multipart/form-data) ===== To treat your Request data as multi part fields you must specify key/value pairs separated by new lines into RequestData field (i.e. Body). Each key value pair is entered on new-line and key/value are separated using equal sign (=). Preceding and trailing spaces are ignored also blank lines are ignored. If field value has some any special character(s) then use escape sequence (e.g. For NewLine: \r\n, For Tab: \t, For at (@): \@). When value of any field starts with at sign (@) its automatically treated as File you want to upload. By default file content type is determined based on extension however you can supply content type manually for any field using this way [ YourFileFieldName.Content-Type=some-content-type ]. By default File Upload Field always includes Content-Type in the request (non file fields do not have content-type by default unless you supply manually). For some reason if you dont want to use Content-Type header in your request then supply blank Content-Type to exclude this header altogather [e.g. SomeFieldName.Content-Type= ]. In below example we have supplied Content-Type for file2 and SomeField1, all other fields are using default content-type. See below Example of uploading multiple files along with additional fields. If some API requires you to pass Content-Type: multipart/form-data rather than multipart/form-data then manually set Request Header => Content-Type: multipart/mixed (it must starts with multipart/ else will be ignored). file1=@c:\data\Myfile1.txt file2=@c:\data\Myfile2.json file2.Content-Type=application/json SomeField1=aaaaaaa SomeField1.Content-Type=text/plain SomeField2=12345 SomeFieldWithNewLineAndTab=This is line1\r\nThis is line2\r\nThis is \ttab \ttab \ttab SomeFieldStartingWithAtSign=\@MyTwitterHandle
Filter Enter filter to extract array from response. Example: $.rows[*] --OR-- $.customers[*].orders[*]. Check your response document and find out hierarchy you like to extract
Headers Headers for Request. To enter multiple headers use double pipe (||) or new line after each {header-name}:{value} pair

Conclusion

In this article we showed you how to connect to Asana in Azure Data Factory (SSIS) and integrate data without any coding, saving you time and effort. We encourage you to download Asana Connector for Azure Data Factory (SSIS) and see how easy it is to use it for yourself or your team.

If you have any questions, feel free to contact ZappySys support team. You can also open a live chat immediately by clicking on the chat icon below.

Download Asana Connector for Azure Data Factory (SSIS) Documentation

More integrations

Other connectors for Azure Data Factory (SSIS)

Other application integration scenarios for Asana

  • How to connect Asana in Azure Data Factory (SSIS)?

  • How to get Asana data in Azure Data Factory (SSIS)?

  • How to read Asana data in Azure Data Factory (SSIS)?

  • How to load Asana data in Azure Data Factory (SSIS)?

  • How to import Asana data in Azure Data Factory (SSIS)?

  • How to pull Asana data in Azure Data Factory (SSIS)?

  • How to push data to Asana in Azure Data Factory (SSIS)?

  • How to write data to Asana in Azure Data Factory (SSIS)?

  • How to POST data to Asana in Azure Data Factory (SSIS)?

  • Call Asana API in Azure Data Factory (SSIS)

  • Consume Asana API in Azure Data Factory (SSIS)

  • Asana Azure Data Factory (SSIS) Automate

  • Asana Azure Data Factory (SSIS) Integration

  • Integration Asana in Azure Data Factory (SSIS)

  • Consume real-time Asana data in Azure Data Factory (SSIS)

  • Consume real-time Asana API data in Azure Data Factory (SSIS)

  • Asana ODBC Driver | ODBC Driver for Asana | ODBC Asana Driver | SSIS Asana Source | SSIS Asana Destination

  • Connect Asana in Azure Data Factory (SSIS)

  • Load Asana in Azure Data Factory (SSIS)

  • Load Asana data in Azure Data Factory (SSIS)

  • Read Asana data in Azure Data Factory (SSIS)

  • Asana API Call in Azure Data Factory (SSIS)