{
  "name": "🍎 Update grocery lists in Asana via Telegram voice & text using GPT-4o mini",
  "nodes": [
    {
      "id": "2fb8eb78-7430-4d93-b4e2-bc8ef7937887",
      "name": "Telegram Trigger",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        -928,
        -480
      ]
    },
    {
      "id": "5c7d4876-0440-48c4-8c83-b7ef81983d5d",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1536,
        -784
      ],
      "parameters": {
        "width": 528,
        "height": 944,
        "content": "## Update Grocery Lists in Asana via Telegram using Natural Language AI\nThis n8n workflow demonstrates how to use AI to update your grocery list in Asana via Telegram chat or voice. \n\n## Use cases\n- U"
      }
    },
    {
      "id": "d3e3cd4d-e68b-4182-841d-b78ba7b9fd9e",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -992,
        -672
      ],
      "parameters": {
        "width": 432,
        "height": 464,
        "content": "## 1. Trigger\nSetup Telegram bot - details [here](https://core.telegram.org/bots/tutorial).\n"
      }
    },
    {
      "id": "20899615-f262-4916-b11e-025c088b470e",
      "name": "Download Voice File",
      "type": "n8n-nodes-base.telegram",
      "position": [
        -480,
        -384
      ]
    },
    {
      "id": "f9d25bdc-96b8-420a-956a-2c48d79967e1",
      "name": "Get Text Field",
      "type": "n8n-nodes-base.set",
      "position": [
        -384,
        -544
      ]
    },
    {
      "id": "c1777520-3ccf-431a-9fa4-698bda89fcfc",
      "name": "Transcribe a recording",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        -288,
        -384
      ]
    },
    {
      "id": "71b06cdc-3ef6-4fbd-ba55-ccfc17fb03e1",
      "name": "Grocery Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        144,
        -544
      ]
    },
    {
      "id": "b7fa365d-0877-43d0-9cd6-0c5d5023f0c4",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -544,
        -672
      ],
      "parameters": {
        "width": 432,
        "height": 464,
        "content": "## 2. Voice/Text\nSet fields that Agent will take in. For voice files, transcribe to text.\n"
      }
    },
    {
      "id": "183e4683-17b4-4c04-b8ad-fb4d15fb8dbe",
      "name": "GPT 4o mini",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        -48,
        -368
      ]
    },
    {
      "id": "60dc16fe-3bf1-4967-bef8-75fcb8931651",
      "name": "Search for Grocery Item",
      "type": "n8n-nodes-base.asanaTool",
      "position": [
        128,
        -368
      ]
    },
    {
      "id": "d46489de-29b9-4ade-a867-d0272b34dada",
      "name": "Check or Uncheck Grocery Items",
      "type": "n8n-nodes-base.asanaTool",
      "position": [
        304,
        -368
      ]
    },
    {
      "id": "3d6dd43b-7d8f-4377-85ac-ac1649372d82",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -96,
        -672
      ],
      "parameters": {
        "width": 720,
        "height": 464,
        "content": "## 3. Grocery Updates\nAgent takes in instructions which includes the grocery item, quantity and expiry date to be updated. It will first search for the item, then check/uncheck it, then update the qua"
      }
    },
    {
      "id": "ac1b8783-7997-4dd0-b73b-75b0dc51651b",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        640,
        -672
      ],
      "parameters": {
        "width": 320,
        "height": 464,
        "content": "## 4. Response\nReply will summarise what was updated and include a hyperlink to Asana if you wish to see it directly in Asana."
      }
    },
    {
      "id": "1e6e953d-753c-43a7-b8ed-32d3f4b55c44",
      "name": "Reply in Chat",
      "type": "n8n-nodes-base.telegram",
      "position": [
        752,
        -464
      ]
    },
    {
      "id": "c13c8083-7339-47ef-9d0a-bda7ba44fb70",
      "name": "Update Expiry Date & Qty",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        480,
        -368
      ]
    },
    {
      "id": "5e54818e-0699-4790-b867-0f8d150c75e5",
      "name": "Route Text or Voice",
      "type": "n8n-nodes-base.switch",
      "position": [
        -736,
        -480
      ]
    }
  ],
  "connections": {
    "GPT 4o mini": {
      "ai_languageModel": [
        [
          {
            "node": "Grocery Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Grocery Agent": {
      "main": [
        [
          {
            "node": "Reply in Chat",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Text Field": {
      "main": [
        [
          {
            "node": "Grocery Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Telegram Trigger": {
      "main": [
        [
          {
            "node": "Route Text or Voice",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download Voice File": {
      "main": [
        [
          {
            "node": "Transcribe a recording",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route Text or Voice": {
      "main": [
        [
          {
            "node": "Get Text Field",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Download Voice File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Transcribe a recording": {
      "main": [
        [
          {
            "node": "Grocery Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search for Grocery Item": {
      "ai_tool": [
        [
          {
            "node": "Grocery Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Update Expiry Date & Qty": {
      "ai_tool": [
        [
          {
            "node": "Grocery Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Check or Uncheck Grocery Items": {
      "ai_tool": [
        [
          {
            "node": "Grocery Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  }
}