Created
July 23, 2018 21:16
-
-
Save bumbu/1cda244cdc386e9248d95ffa2ca3a890 to your computer and use it in GitHub Desktop.
Microsoft flow for Todoist (changing the priority of next item in a project when a task is completed)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "$schema":"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", | |
| "contentVersion":"1.0.0.0", | |
| "parameters":{ | |
| "logicAppName":{ | |
| "type":"String", | |
| "metadata":{ | |
| "description":"Name of the logic app." | |
| } | |
| }, | |
| "logicAppLocation":{ | |
| "defaultValue":"[resourceGroup().location]", | |
| "allowedValues":[ | |
| "eastasia", | |
| "southeastasia", | |
| "centralus", | |
| "eastus", | |
| "eastus2", | |
| "westus", | |
| "northcentralus", | |
| "southcentralus", | |
| "northeurope", | |
| "westeurope", | |
| "japanwest", | |
| "japaneast", | |
| "brazilsouth", | |
| "australiaeast", | |
| "australiasoutheast", | |
| "southindia", | |
| "centralindia", | |
| "westindia", | |
| "canadacentral", | |
| "canadaeast", | |
| "westcentralus", | |
| "westus2", | |
| "[resourceGroup().location]" | |
| ], | |
| "type":"String", | |
| "metadata":{ | |
| "description":"Location of the logic app." | |
| } | |
| }, | |
| "todoist_Connection_Name":{ | |
| "defaultValue":"todoist", | |
| "type":"String", | |
| "metadata":{ | |
| "description":"Name of the connection." | |
| } | |
| } | |
| }, | |
| "resources":[ | |
| { | |
| "type":"Microsoft.Logic/workflows", | |
| "name":"[parameters('logicAppName')]", | |
| "apiVersion":"2016-06-01", | |
| "location":"[parameters('logicAppLocation')]", | |
| "properties":{ | |
| "state":"Disabled", | |
| "definition":{ | |
| "$schema":"https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#", | |
| "contentVersion":"1.0.0.0", | |
| "parameters":{ | |
| "$connections":{ | |
| "defaultValue":{ | |
| }, | |
| "type":"Object" | |
| }, | |
| "$authentication":{ | |
| "defaultValue":{ | |
| }, | |
| "type":"SecureObject" | |
| } | |
| }, | |
| "triggers":{ | |
| "When_a_task_is_completed":{ | |
| "recurrence":{ | |
| "interval":15, | |
| "frequency":"Second" | |
| }, | |
| "splitOn":"@triggerBody()?.items", | |
| "metadata":{ | |
| "flowSystemMetadata":{ | |
| "swaggerOperationId":"OnItemCompleted" | |
| } | |
| }, | |
| "type":"ApiConnection", | |
| "inputs":{ | |
| "host":{ | |
| "connection":{ | |
| "name":"@parameters('$connections')['todoist']['connectionId']" | |
| } | |
| }, | |
| "method":"get", | |
| "path":"/trigger/completed/get_all", | |
| "queries":{ | |
| "project_id":"1" | |
| }, | |
| "authentication":"@parameters('$authentication')" | |
| } | |
| } | |
| }, | |
| "actions":{ | |
| "Initialize_variable":{ | |
| "runAfter":{ | |
| "Parse_JSON":[ | |
| "Succeeded" | |
| ] | |
| }, | |
| "type":"InitializeVariable", | |
| "inputs":{ | |
| "variables":[ | |
| { | |
| "name":"projectId", | |
| "type":"String", | |
| "value":"@body('Parse_JSON')?['project_id']" | |
| } | |
| ] | |
| } | |
| }, | |
| "Parse_JSON":{ | |
| "runAfter":{ | |
| }, | |
| "type":"ParseJson", | |
| "inputs":{ | |
| "content":"@triggerBody()", | |
| "schema":{ | |
| "type":"object", | |
| "properties":{ | |
| "content":{ | |
| "type":"string" | |
| }, | |
| "meta_data":{ | |
| }, | |
| "user_id":{ | |
| "type":"number" | |
| }, | |
| "task_id":{ | |
| "type":"number" | |
| }, | |
| "project_id":{ | |
| "type":"string" | |
| }, | |
| "completed_date":{ | |
| "type":"string" | |
| }, | |
| "id":{ | |
| "type":"string" | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "List_projects":{ | |
| "runAfter":{ | |
| "Initialize_variable_2":[ | |
| "Succeeded" | |
| ] | |
| }, | |
| "metadata":{ | |
| "flowSystemMetadata":{ | |
| "swaggerOperationId":"ListProjects" | |
| } | |
| }, | |
| "type":"ApiConnection", | |
| "inputs":{ | |
| "host":{ | |
| "connection":{ | |
| "name":"@parameters('$connections')['todoist']['connectionId']" | |
| } | |
| }, | |
| "method":"get", | |
| "path":"/sync/listProjects", | |
| "authentication":"@parameters('$authentication')" | |
| } | |
| }, | |
| "Apply_to_each":{ | |
| "foreach":"@body('List_projects')?['projects']", | |
| "actions":{ | |
| "Condition":{ | |
| "actions":{ | |
| "Condition_2":{ | |
| "actions":{ | |
| "Tasks":{ | |
| "runAfter":{ | |
| }, | |
| "metadata":{ | |
| "flowSystemMetadata":{ | |
| "swaggerOperationId":"ListItemsByProject" | |
| } | |
| }, | |
| "type":"ApiConnection", | |
| "inputs":{ | |
| "host":{ | |
| "connection":{ | |
| "name":"@parameters('$connections')['todoist']['connectionId']" | |
| } | |
| }, | |
| "method":"get", | |
| "path":"/projects/get_data", | |
| "queries":{ | |
| "id":"@variables('projectId')" | |
| }, | |
| "authentication":"@parameters('$authentication')" | |
| } | |
| }, | |
| "Set_variable":{ | |
| "runAfter":{ | |
| "Filter_array":[ | |
| "Succeeded" | |
| ] | |
| }, | |
| "type":"SetVariable", | |
| "inputs":{ | |
| "name":"nextTask", | |
| "value":"@first(body('Filter_array'))" | |
| } | |
| }, | |
| "Filter_array":{ | |
| "runAfter":{ | |
| "Tasks":[ | |
| "Succeeded" | |
| ] | |
| }, | |
| "type":"Query", | |
| "inputs":{ | |
| "from":"@body('Tasks')?['items']", | |
| "where":"@equals(item()?['checked'], 0)" | |
| } | |
| }, | |
| "Parse_JSON_2":{ | |
| "runAfter":{ | |
| "Set_variable":[ | |
| "Succeeded" | |
| ] | |
| }, | |
| "type":"ParseJson", | |
| "inputs":{ | |
| "content":"@string(first(body('Filter_array')))", | |
| "schema":{ | |
| "type":"object", | |
| "properties":{ | |
| "is_deleted":{ | |
| "type":"number" | |
| }, | |
| "assigned_by_uid":{ | |
| }, | |
| "is_archived":{ | |
| "type":"number" | |
| }, | |
| "labels":{ | |
| "type":"array", | |
| "items":{ | |
| "type":"number" | |
| } | |
| }, | |
| "sync_id":{ | |
| }, | |
| "all_day":{ | |
| "type":"boolean" | |
| }, | |
| "in_history":{ | |
| "type":"number" | |
| }, | |
| "date_added":{ | |
| "type":"string" | |
| }, | |
| "indent":{ | |
| "type":"number" | |
| }, | |
| "date_lang":{ | |
| }, | |
| "id":{ | |
| "type":"string" | |
| }, | |
| "content":{ | |
| "type":"string" | |
| }, | |
| "checked":{ | |
| "type":"number" | |
| }, | |
| "user_id":{ | |
| "type":"number" | |
| }, | |
| "due_date_utc":{ | |
| }, | |
| "priority":{ | |
| "type":"number" | |
| }, | |
| "parent_id":{ | |
| }, | |
| "item_order":{ | |
| "type":"number" | |
| }, | |
| "responsible_uid":{ | |
| }, | |
| "project_id":{ | |
| "type":"string" | |
| }, | |
| "collapsed":{ | |
| "type":"number" | |
| }, | |
| "date_string":{ | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "Condition_3":{ | |
| "actions":{ | |
| "Update_a_task":{ | |
| "runAfter":{ | |
| }, | |
| "metadata":{ | |
| "flowSystemMetadata":{ | |
| "swaggerOperationId":"UpdateItem" | |
| } | |
| }, | |
| "type":"ApiConnection", | |
| "inputs":{ | |
| "host":{ | |
| "connection":{ | |
| "name":"@parameters('$connections')['todoist']['connectionId']" | |
| } | |
| }, | |
| "method":"post", | |
| "path":"/sync/updateItem", | |
| "queries":{ | |
| "id":"@variables('projectId')", | |
| "item_id":"@body('Parse_JSON_2')?['id']" | |
| }, | |
| "body":{ | |
| "priority":"2" | |
| }, | |
| "authentication":"@parameters('$authentication')" | |
| } | |
| } | |
| }, | |
| "runAfter":{ | |
| "Parse_JSON_2":[ | |
| "Succeeded" | |
| ] | |
| }, | |
| "expression":"@less(body('Parse_JSON_2')?['priority'], 2)", | |
| "type":"If" | |
| } | |
| }, | |
| "runAfter":{ | |
| }, | |
| "expression":"@equals(1, 1)", | |
| "type":"If" | |
| } | |
| }, | |
| "runAfter":{ | |
| }, | |
| "expression":"@equals(items('Apply_to_each')?['id'], variables('projectId'))", | |
| "type":"If" | |
| } | |
| }, | |
| "runAfter":{ | |
| "List_projects":[ | |
| "Succeeded" | |
| ] | |
| }, | |
| "type":"Foreach" | |
| }, | |
| "Initialize_variable_2":{ | |
| "runAfter":{ | |
| "Initialize_variable_3":[ | |
| "Succeeded" | |
| ] | |
| }, | |
| "type":"InitializeVariable", | |
| "inputs":{ | |
| "variables":[ | |
| { | |
| "name":"nextTaskId", | |
| "type":"String" | |
| } | |
| ] | |
| } | |
| }, | |
| "Initialize_variable_3":{ | |
| "runAfter":{ | |
| "Initialize_variable":[ | |
| "Succeeded" | |
| ] | |
| }, | |
| "type":"InitializeVariable", | |
| "inputs":{ | |
| "variables":[ | |
| { | |
| "name":"nextTask", | |
| "type":"Object", | |
| "value":{ | |
| "id":-1 | |
| } | |
| } | |
| ] | |
| } | |
| } | |
| }, | |
| "outputs":{ | |
| }, | |
| "description":"When Todoist task is completed, associated task card from Trello is archived" | |
| }, | |
| "parameters":{ | |
| "$connections":{ | |
| "value":{ | |
| "todoist":{ | |
| "id":"[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', parameters('logicAppLocation'), '/managedApis/', 'todoist')]", | |
| "connectionId":"[resourceId('Microsoft.Web/connections', parameters('todoist_Connection_Name'))]", | |
| "connectionName":"[parameters('todoist_Connection_Name')]" | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "dependsOn":[ | |
| "[resourceId('Microsoft.Web/connections', parameters('todoist_Connection_Name'))]" | |
| ] | |
| }, | |
| { | |
| "type":"Microsoft.Web/connections", | |
| "name":"[parameters('todoist_Connection_Name')]", | |
| "apiVersion":"2016-06-01", | |
| "location":"[parameters('logicAppLocation')]", | |
| "properties":{ | |
| "api":{ | |
| "id":"[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', parameters('logicAppLocation'), '/managedApis/', 'todoist')]" | |
| }, | |
| "displayName":"[parameters('todoist_Connection_Name')]" | |
| } | |
| } | |
| ] | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment