The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "RJ4PaYq0JBr29KJm",
"name": "Reschedule overdue Asana tasks and clean up completed tasks",
"tags": [
{
"id": "oMfA3lEfbqs7MU2P",
"name": "Template",
"createdAt": "2025-01-06T20:33:18.396Z",
"updatedAt": "2025-01-06T20:33:18.396Z"
}
],
"nodes": [
{
"id": "9262720e-2beb-4426-a472-3d7bf8bc28af",
"name": "Everyday at 7am",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
80,
-520
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 7
}
]
}
},
"typeVersion": 1.2
},
{
"id": "0d074451-5d61-4ed4-86a8-f6cdf002e84b",
"name": "Get user tasks",
"type": "n8n-nodes-base.asana",
"position": [
320,
-520
],
"parameters": {
"filters": {
"assignee": "1201727447190193",
"workspace": "1201727656813934",
"completed_since": "={{ DateTime.now().format('yyyy-MM-dd') }}"
},
"operation": "getAll",
"returnAll": true
},
"credentials": {
"asanaApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "14939268-9bda-4fc1-9fef-aa6a74c2365a",
"name": "Get task infos",
"type": "n8n-nodes-base.asana",
"position": [
540,
-520
],
"parameters": {
"id": "={{ $json.gid }}",
"operation": "get"
},
"credentials": {
"asanaApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "e7d9a37c-66b7-46b9-b228-7372cb0d7b09",
"name": "Task is open?",
"type": "n8n-nodes-base.if",
"position": [
780,
-520
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "145d9367-7662-4ed9-8195-bf9b35c78d6b",
"operator": {
"type": "boolean",
"operation": "false",
"singleValue": true
},
"leftValue": "={{ $json.completed }}",
"rightValue": "false"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "11ae0bbb-8d76-4623-9a24-2c2a36600dd3",
"name": "Due date in the past?",
"type": "n8n-nodes-base.if",
"position": [
1020,
-640
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "dbecabb3-8075-4cc0-94af-b678c8af8f66",
"operator": {
"type": "number",
"operation": "lt"
},
"leftValue": "={{ $json.due_on.replaceAll(\"-\",\"\") }}",
"rightValue": "={{ DateTime.now().format('yyyyMMdd') }}"
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.2
},
{
"id": "282d79c7-e74a-4249-ad37-b4d81655a206",
"name": "Set due date to Today",
"type": "n8n-nodes-base.asana",
"position": [
1280,
-680
],
"parameters": {
"id": "={{ $json.gid }}",
"operation": "update",
"otherProperties": {
"due_on": "={{ DateTime.now().format('yyyy-MM-dd') }}"
}
},
"credentials": {
"asanaApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "7cc18243-d3d4-4624-a906-a1617e411b0c",
"name": "Clean up task",
"type": "n8n-nodes-base.asana",
"position": [
1020,
-440
],
"parameters": {
"id": "={{ $json.gid }}",
"operation": "delete"
},
"credentials": {
"asanaApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "f4aafa1f-8c5b-4fd1-9aca-fd096508dbfb",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
40,
-800
],
"parameters": {
"color": 5,
"width": 640,
"height": 240,
"content": "### \u2699\ufe0f Set Up \n\n1. Add your **Asana** credentials\n2. Schedule the workflow to run at desired intervals (e.g., daily or weekly).\n3. Select your **Workspace Name** and your **Assignee Name** (user) in the **Get user tasks** node\n4. *(Optional) Tailor filtering conditions to match your preferred due-date rules and removal criteria.*\n5. **Activate the workflow** and watch your Asana workspace stay up to date and clutter-free."
},
"typeVersion": 1
},
{
"id": "e4fcbdee-5dd0-40dc-b1ef-f7b8ce00dd03",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
60,
-360
],
"parameters": {
"color": 7,
"width": 160,
"height": 100,
"content": "\ud83d\udc46 \nUpdate the **Scheduler** here"
},
"typeVersion": 1
},
{
"id": "195f467d-1124-4216-ab0e-048c6a9fc752",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
280,
-360
],
"parameters": {
"color": 7,
"width": 200,
"height": 100,
"content": "\ud83d\udc46 \nSelect your **Workspace Name** & **Assignee Name** here"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"timezone": "Europe/Paris",
"callerPolicy": "workflowsFromSameOwner",
"executionOrder": "v1"
},
"versionId": "fdc51229-75f4-4489-a7f7-1f36a35d43ac",
"connections": {
"Task is open?": {
"main": [
[
{
"node": "Due date in the past?",
"type": "main",
"index": 0
}
],
[
{
"node": "Clean up task",
"type": "main",
"index": 0
}
]
]
},
"Get task infos": {
"main": [
[
{
"node": "Task is open?",
"type": "main",
"index": 0
}
]
]
},
"Get user tasks": {
"main": [
[
{
"node": "Get task infos",
"type": "main",
"index": 0
}
]
]
},
"Everyday at 7am": {
"main": [
[
{
"node": "Get user tasks",
"type": "main",
"index": 0
}
]
]
},
"Due date in the past?": {
"main": [
[
{
"node": "Set due date to Today",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
asanaApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
How this works
Keep your Asana projects on track effortlessly by automatically rescheduling overdue tasks to today and tidying up completed ones, saving you hours of manual admin each week. This workflow suits busy teams or individuals juggling multiple deadlines who rely on Asana for task management, ensuring nothing slips through the cracks without constant monitoring. The key step involves checking each open task's due date and updating it via Asana if it's in the past, while a separate branch handles archiving finished tasks to maintain a clutter-free workspace.
Use this daily at 7am for proactive maintenance in active projects with frequent task shifts, or adjust the cron trigger for different frequencies like weekly. Avoid it for static, low-volume lists where manual oversight suffices, or if your team uses custom Asana fields that might need extra handling. Common variations include adding email notifications for rescheduled tasks or integrating with Google Calendar to sync due dates across tools.
About this workflow
Reschedule overdue Asana tasks and clean up completed tasks. Uses scheduleTrigger, asana, stickyNote. Scheduled trigger; 10 nodes.
Source: https://github.com/Zie619/n8n-workflows — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This template creates a nightly backup of all n8n workflows and saves them to a Google Drive folder. Each night, the previous night's backups are moved to an “n8n_old” folder and renamed with the corr
Code Itemlists. Uses stickyNote, moveBinaryData, googleDrive, itemLists. Scheduled trigger; 33 nodes.
This workflow is perfect for n8n users who want to automatically backup all their workflows 💾 to Google Drive with zero manual effort. Perfect for teams managing multiple workflows or anyone who value
Shopify to Google Sheets Product Sync Automation. Uses noOp, graphql, googleSheets, scheduleTrigger. Scheduled trigger; 25 nodes.
Wait Code. Uses scheduleTrigger, markdown, splitInBatches, rssFeedRead. Scheduled trigger; 23 nodes.