{
  "name": "Summarize Apple App Store reviews with Pinecone, GPT-4 Mini & Slack",
  "nodes": [
    {
      "id": "8d29dacc-12dc-4b59-8f61-94c06633c85e",
      "name": "Split Out6",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        448,
        464
      ]
    },
    {
      "id": "851e89ba-22be-4a77-92ab-87d5a996e43c",
      "name": "Split Out8",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        480,
        928
      ]
    },
    {
      "id": "8b3b836b-e9c9-49bf-9a47-2eaad4b70487",
      "name": "Loop Over Items3",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        656,
        928
      ]
    },
    {
      "id": "41b33c31-6d86-475f-a5b0-b837310cf310",
      "name": "JWT",
      "type": "n8n-nodes-base.jwt",
      "position": [
        848,
        464
      ]
    },
    {
      "id": "9871f543-2071-4ead-ab58-6ea3fd652867",
      "name": "HTTP Request - CUSTOMER REVIEWS",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1040,
        464
      ]
    },
    {
      "id": "14faa3b0-63a2-42d2-9bb0-e5af2e380768",
      "name": "Pinecone Vector Store9",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "position": [
        1536,
        464
      ]
    },
    {
      "id": "da56079e-cb79-477d-8975-0ce5d6986719",
      "name": "Embeddings OpenAI9",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        1536,
        640
      ]
    },
    {
      "id": "fd593a5c-7a30-4cc3-b176-a70e71eb7367",
      "name": "Default Data Loader8",
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "position": [
        1632,
        640
      ]
    },
    {
      "id": "29922c0f-d2dc-4753-abc1-4e52de4be1bf",
      "name": "Split Out9",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1216,
        464
      ]
    },
    {
      "id": "ed1b9229-af94-4757-a920-068d08d50c39",
      "name": "OpenAI Chat Model10",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        880,
        1152
      ]
    },
    {
      "id": "49252522-8491-4099-9b53-699d81bc8fac",
      "name": "Embeddings OpenAI12",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        976,
        1328
      ]
    },
    {
      "id": "e7ab3d96-4ceb-448c-b059-ccc314943589",
      "name": "Pinecone Vector Store12",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "position": [
        976,
        1200
      ]
    },
    {
      "id": "e6bdf836-c130-44f5-80fb-04afd274fed9",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1232,
        864
      ],
      "parameters": {
        "width": 192,
        "height": 224,
        "content": "Post the summary to a Slack channel"
      }
    },
    {
      "id": "7997491f-54e8-4a1c-8f8d-62171d58e45e",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        48,
        400
      ],
      "parameters": {
        "width": 150,
        "height": 208,
        "content": "Fetch reviews once a day"
      }
    },
    {
      "id": "1cee29d5-8b94-4cbc-b9e0-9d5312dd3490",
      "name": "Daily Trigger1",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        80,
        464
      ]
    },
    {
      "id": "fc49497e-d286-406d-8d80-22be63779d5e",
      "name": "Set App Store app ids",
      "type": "n8n-nodes-base.set",
      "position": [
        256,
        464
      ]
    },
    {
      "id": "0a5b71ee-bf43-4312-9d26-799e3669b6d3",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        208,
        400
      ],
      "parameters": {
        "width": 192,
        "height": 208,
        "content": "Define app ids and names"
      }
    },
    {
      "id": "ada28eab-f4f1-4720-8ea5-55371299289d",
      "name": "Sticky Note11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        432,
        400
      ],
      "parameters": {
        "width": 304,
        "height": 208,
        "content": "Loop over app ids (apps) in the list"
      }
    },
    {
      "id": "56f0e43e-9687-46e2-8aff-50b1548db9a8",
      "name": "Loop Over Items2",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        624,
        464
      ]
    },
    {
      "id": "32631042-deb4-494d-93be-800695376bfc",
      "name": "Sticky Note12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        752,
        208
      ],
      "parameters": {
        "width": 224,
        "height": 400,
        "content": "Generate a JWT token for Apple's App Store Connect API. Required fields: \n- iss: Issuer ID generated by Apple\n- bid: Bundle id of one of the apps in the App Store account\n- exp: Token expiry date. Set"
      }
    },
    {
      "id": "94eef180-922d-4e24-a35a-30ebf3526059",
      "name": "Sticky Note13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        992,
        400
      ],
      "parameters": {
        "width": 192,
        "height": 208,
        "content": "HTTP call to fetch App Store reviews of the app"
      }
    },
    {
      "id": "cd008073-8feb-4cac-bde8-502e726bd06b",
      "name": "Sticky Note15",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1344,
        384
      ],
      "parameters": {
        "width": 464,
        "height": 224,
        "content": "Store the previous day's reviews in the vector store. Create a different namespace for each app (app id). Clear the name space once a week to remove old reviews."
      }
    },
    {
      "id": "85942bd2-57d2-4504-bb39-ce32b3d47389",
      "name": "Filter1",
      "type": "n8n-nodes-base.filter",
      "position": [
        1376,
        464
      ]
    },
    {
      "id": "79baaaa8-8c25-4bdf-a98e-1427a116ce49",
      "name": "Weekly Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        112,
        928
      ]
    },
    {
      "id": "58011080-6343-4314-91c5-fb45f8795013",
      "name": "Sticky Note16",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        48,
        864
      ],
      "parameters": {
        "width": 176,
        "height": 224,
        "content": "Prepare and send the summary once a week"
      }
    },
    {
      "id": "ef95861d-7a8e-47f3-8eac-017cc530d090",
      "name": "Set App Store app ids1",
      "type": "n8n-nodes-base.set",
      "position": [
        288,
        928
      ]
    },
    {
      "id": "ca10af78-f185-4c10-9431-2d20a3c6e327",
      "name": "Sticky Note17",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        864
      ],
      "parameters": {
        "width": 192,
        "height": 224,
        "content": "Define app ids and names"
      }
    },
    {
      "id": "247fe591-2a5f-43cc-98e3-db448ff8666c",
      "name": "Sticky Note18",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        464,
        864
      ],
      "parameters": {
        "width": 320,
        "height": 224,
        "content": "Loop over app ids (apps) in the list"
      }
    },
    {
      "id": "25651392-868b-4481-98d5-cbb1fb628b09",
      "name": "AI Agent - Summariser",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        928,
        944
      ]
    },
    {
      "id": "b86bb808-114c-45d2-99f9-2ee24ff47684",
      "name": "Send to Slack channel1",
      "type": "n8n-nodes-base.slack",
      "position": [
        1280,
        944
      ]
    },
    {
      "id": "c15903ad-8adc-4a93-beb7-51b7337a369d",
      "name": "Sticky Note19",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        896,
        864
      ],
      "parameters": {
        "width": 288,
        "height": 224,
        "content": "Generate Apple App Store review summary for the app"
      }
    },
    {
      "id": "b0bc0432-3765-4037-9983-2b883417278a",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -384,
        336
      ],
      "parameters": {
        "width": 336,
        "height": 784,
        "content": "## Apple App Store Reviews Summary with Pinecone, OpenAI & Slack Notification\n\nThis n8n workflow automates the process of collecting, storing, and summarizing customer reviews from the Apple App Store"
      }
    }
  ],
  "connections": {
    "JWT": {
      "main": [
        [
          {
            "node": "HTTP Request - CUSTOMER REVIEWS",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter1": {
      "main": [
        [
          {
            "node": "Pinecone Vector Store9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out6": {
      "main": [
        [
          {
            "node": "Loop Over Items2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out8": {
      "main": [
        [
          {
            "node": "Loop Over Items3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out9": {
      "main": [
        [
          {
            "node": "Filter1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Daily Trigger1": {
      "main": [
        [
          {
            "node": "Set App Store app ids",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Weekly Trigger": {
      "main": [
        [
          {
            "node": "Set App Store app ids1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items2": {
      "main": [
        [],
        [
          {
            "node": "JWT",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items3": {
      "main": [
        [],
        [
          {
            "node": "AI Agent - Summariser",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI9": {
      "ai_embedding": [
        [
          {
            "node": "Pinecone Vector Store9",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI12": {
      "ai_embedding": [
        [
          {
            "node": "Pinecone Vector Store12",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model10": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent - Summariser",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Default Data Loader8": {
      "ai_document": [
        [
          {
            "node": "Pinecone Vector Store9",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent - Summariser": {
      "main": [
        [
          {
            "node": "Send to Slack channel1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set App Store app ids": {
      "main": [
        [
          {
            "node": "Split Out6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Pinecone Vector Store9": {
      "main": [
        [
          {
            "node": "Loop Over Items2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send to Slack channel1": {
      "main": [
        [
          {
            "node": "Loop Over Items3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set App Store app ids1": {
      "main": [
        [
          {
            "node": "Split Out8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Pinecone Vector Store12": {
      "ai_tool": [
        [
          {
            "node": "AI Agent - Summariser",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request - CUSTOMER REVIEWS": {
      "main": [
        [
          {
            "node": "Split Out9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}