{
  "name": "Generate personalized Strava ride titles & descriptions with DeepSeek AI",
  "nodes": [
    {
      "id": "58ef8481-49d7-4522-9797-f191db60fa33",
      "name": "Combine Everything",
      "type": "n8n-nodes-base.code",
      "position": [
        -80,
        340
      ]
    },
    {
      "id": "d81a3699-09c6-4114-ad6e-652ce34854e8",
      "name": "Code",
      "type": "n8n-nodes-base.code",
      "position": [
        -300,
        340
      ]
    },
    {
      "id": "ee87a5ae-331f-4066-84e8-43acdfaaf038",
      "name": "OpenRouter Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        160,
        520
      ]
    },
    {
      "id": "7690c43e-282c-4fc6-af91-ba468040fdba",
      "name": "Strava Trigger",
      "type": "n8n-nodes-base.stravaTrigger",
      "position": [
        -520,
        340
      ]
    },
    {
      "id": "b0dbf6f6-d3c9-43e3-997a-3593229e891e",
      "name": "Edit Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        520,
        340
      ]
    },
    {
      "id": "38316beb-1f92-43e5-ac48-ac982be6407f",
      "name": "Strava",
      "type": "n8n-nodes-base.strava",
      "position": [
        740,
        340
      ]
    },
    {
      "id": "4be1f7de-7f50-45fb-8aa0-4707d25a23fb",
      "name": "Strava Social Manager",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        140,
        340
      ]
    },
    {
      "id": "f2941949-f743-4214-88a6-37899770e4df",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -940,
        0
      ],
      "parameters": {
        "width": 340,
        "height": 680,
        "content": "### **Step 0 – Connecting to the Strava API**\nBefore anything else, connect your Strava account to n8n via OAuth2:\n- Go to **Credentials** > **Strava OAuth2 API** in n8n.\n- Enter the Client ID and Cli"
      }
    },
    {
      "id": "885370b1-7f2f-4411-b35e-3090dcbec2b8",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -580,
        0
      ],
      "parameters": {
        "width": 220,
        "height": 680,
        "content": "### **Step 1 – Strava Trigger**\nThis node automatically monitors the creation of new activities on your Strava account.\n- For each new activity, it retrieves all associated data (distance, duration, e"
      }
    },
    {
      "id": "28121d2d-ddd0-422b-b56d-099a32708216",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -340,
        0
      ],
      "parameters": {
        "width": 420,
        "height": 680,
        "content": "### **Step 2a – Data Processing (Code)**\nA Code node (JavaScript) adds or modifies fields in the activity data.\n- Example: Adding a custom field `myNewField` to enrich or prepare the data for use by t"
      }
    },
    {
      "id": "fb1139ae-b154-49fa-a2f0-dd9e1d440f17",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        100,
        0
      ],
      "parameters": {
        "width": 340,
        "height": 680,
        "content": "### **Step 3 – AI Generation of Title and Description (Strava Social Manager)**\nThis node calls an AI agent (via OpenRouter or other service) with a detailed prompt:\n- It sends the activity data (flat"
      }
    },
    {
      "id": "c2897c26-5e64-44a4-8201-12f25f3a8e13",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        460,
        0
      ],
      "parameters": {
        "width": null,
        "height": 680,
        "content": "### **Step 4 – Extracting AI Results (Edit Fields)**\nThe Set node extracts the AI-generated title and description from the output text.\n- It splits the text to isolate the title and description, stori"
      }
    },
    {
      "id": "88418116-adc3-4438-8fa5-0fbfd399495b",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        720,
        0
      ],
      "parameters": {
        "width": null,
        "height": 680,
        "content": "### **Step 5 – Automatic Update of the Activity on Strava**\nThe Strava node updates the relevant activity with the generated title and description.\n- It uses the activity ID provided by the initial tr"
      }
    }
  ],
  "connections": {
    "Code": {
      "main": [
        [
          {
            "node": "Combine Everything",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "Strava",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Strava Trigger": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Combine Everything": {
      "main": [
        [
          {
            "node": "Strava Social Manager",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Strava Social Manager",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Strava Social Manager": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}