{
  "id": "3wbxkdT6hilhq0Na",
  "name": "Workflow Results to Markdown Notes in Your Obsidian Vault, via Google Drive",
  "tags": [],
  "nodes": [
    {
      "id": "be787ece-4118-4063-98b0-41672dd570c0",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        560,
        -480
      ],
      "parameters": {
        "width": 440,
        "height": 680,
        "content": "## Obsidian Vault\uc5d0 \ud3f4\ub354 \uc5f0\uacb0  \n**\uc124\uc815 \uc9c0\uce68:**  \n- Google Drive\uc5d0 \ub370\uc2a4\ud06c\ud1b1\uacfc \ub3d9\uae30\ud654\ub418\ub294 \ud3f4\ub354\ub97c \uc0dd\uc131\ud558\uc138\uc694.  \n- Google Drive \ub178\ub4dc\ub97c \ub2e4\uc74c\uacfc \uac19\uc774 \uad6c\uc131\ud558\uc138\uc694:  \n   - \uc0c8\ub85c \uc0dd\uc131\ub41c \ud3f4\ub354\ub97c \uc0c1\uc704 \ud3f4\ub354\ub85c \uc9c0\uc815\ud558\uc138\uc694.  \n   - \ud30c\uc77c \uc774\ub984\uc744 \uc9c0\uc815\ud558\uc138\uc694, .md\ub97c \ucd94\uac00\ud558\uc5ec (\uc608: `{{ $json.title }}.md`).  \n   - File Content \ud544\ub4dc\uc5d0 Markdown \ub0b4\uc6a9\uc744 \ucd94\uac00\ud558\uc138\uc694, \uc120\ud0dd\uc801\uc778 YAML Frontmatter\ub97c \ud3ec\ud568\ud558\uc5ec.  \n- Google Drive \ud3f4\ub354\uc640 Obsidian Vault\uc758 \uc0c8 \ud3f4\ub354 \uc0ac\uc774\uc5d0 \uc2ec\ub9c1\ud06c\ub97c \uc124\uc815\ud558\uc138\uc694."
      },
      "typeVersion": 1
    },
    {
      "id": "a30f3fdc-95a1-44ff-844a-58353dc7e177",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -800,
        -480
      ],
      "parameters": {
        "width": 440,
        "height": 680,
        "content": "## \uc6cc\ud06c\ud50c\ub85c \uacb0\uacfc Obsidian \ubcf4\uad00\ud568\uc73c\ub85c  \n\uc774 \ud15c\ud50c\ub9bf\uc740 n8n \uc6cc\ud06c\ud50c\ub85c \uacb0\uacfc\uc5d0\uc11c \uc2e4\uc2dc\uac04\uc73c\ub85c Obsidian \ubcf4\uad00\ud568\uc5d0 \ub178\ud2b8\ub97c \uc790\ub3d9\uc73c\ub85c \uc0dd\uc131\ud558\uace0 \uc5c5\ub370\uc774\ud2b8\ud569\ub2c8\ub2e4. Google Drive\uc5d0 \uc800\uc7a5\ub41c Markdown \ud30c\uc77c\uacfc \ucca8\ubd80 \ud30c\uc77c\uc774 \uc989\uc2dc Obsidian \ubcf4\uad00\ud568\uc5d0 \ub098\ud0c0\ub0a9\ub2c8\ub2e4.  \n\n**\ubaa8\ub4e0 \uc6cc\ud06c\ud50c\ub85c\uc758 \ucd9c\ub825\uc744 Execute Workflow Trigger beow\ub85c \ubcf4\ub0b4\uc138\uc694**  \n\n### \ucd9c\ub825"
      },
      "typeVersion": 1
    },
    {
      "id": "d9527913-dad1-4abc-8c86-8c76f53dd513",
      "name": "Save Markdown file",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        740,
        0
      ],
      "parameters": {
        "name": "={{ $json.title }}.md",
        "content": "=---\n{{ $json.frontmatter }}\n---\n{{ $json.content }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive",
          "cachedResultUrl": "https://drive.google.com/drive/my-drive",
          "cachedResultName": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "15dvUtfSjaCCXmnOVeIUfeyRd_raI3PnQ",
          "cachedResultUrl": "https://drive.google.com/drive/folders/15dvUtfSjaCCXmnOVeIUfeyRd_raI3PnQ",
          "cachedResultName": "clippings-attachments"
        },
        "operation": "createFromText"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "6484937e-17fd-444c-916b-1527382927d4",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1020,
        -380
      ],
      "parameters": {
        "color": 3,
        "width": 460,
        "height": 540,
        "content": "## \uc2ec\ubcfc\ub9ad \ub9c1\ud06c \uc0dd\uc131\nGoogle Drive \ub370\uc2a4\ud06c\ud1b1 \ud3f4\ub354\ub97c Obsidian Vault\uc640 \ud1b5\ud569\ud558\uae30 \uc704\ud574 \uc2ec\ubcfc\ub9ad \ub9c1\ud06c\ub97c \uc0dd\uc131\ud558\uc138\uc694. \uc774\ub807\uac8c \ud558\uba74 Google Drive\uc5d0 \uc800\uc7a5\ub41c \uc6cc\ud06c\ud50c\ub85c\uc6b0 \uc0dd\uc131 \ub178\ud2b8\uac00 Obsidian\uc5d0\uc11c \uc989\uc2dc \ub098\ud0c0\ub098\uace0 \uc5c5\ub370\uc774\ud2b8\ub429\ub2c8\ub2e4.\n\n- **\uad00\ub9ac\uc790 \uba85\ub839 \ud504\ub86c\ud504\ud2b8 \uc5f4\uae30:** `Win + S`\ub97c \ub204\ub978 \ud6c4, `cmd`\ub97c \uc785\ub825\ud558\uace0, \uba85\ub839 \ud504\ub86c\ud504\ud2b8\uc5d0\uc11c \uc624\ub978\ucabd \ud074\ub9ad\ud55c \ud6c4 `\uad00\ub9ac\uc790 \uad8c\ud55c\uc73c\ub85c \uc2e4\ud589`\uc744 \uc120\ud0dd\ud558\uc138\uc694.\n\n- **\ud3f4\ub354 \uacbd\ub85c \uac00\uc838\uc624\uae30:** \uc18c\uc2a4 \uacbd\ub85c\ub97c \uc2dd\ubcc4\ud558\uc138\uc694: \uc774\uac83\uc740 \uc5f0\uacb0\ud558\uace0 \uc2f6\uc740 \uae30\uc874 Google Drive \ud3f4\ub354\uc785\ub2c8\ub2e4. \ub300\uc0c1 \uacbd\ub85c\ub97c \uacb0\uc815\ud558\uc138\uc694: \uc774\uac83\uc740 \uc2ec\ubcfc\ub9ad \ub9c1\ud06c\uac00 \uc0dd\uc131\ub420 Obsidian Vault\uc758 \ud3f4\ub354\uc785\ub2c8\ub2e4. \ub300\uc0c1 \uacbd\ub85c\uac00 \uc774\ubbf8 \uc874\uc7ac\ud558\uc9c0 \uc54a\ub3c4\ub85d \ud558\uc138\uc694.\n\n- **mklink \uba85\ub839 \uc2e4\ud589:** \ub514\ub809\ud1a0\ub9ac \uc2ec\ubcfc\ub9ad \ub9c1\ud06c\ub97c \uc0dd\uc131\ud558\uae30 \uc704\ud574 \ub2e4\uc74c \uad6c\ubb38\uc744 \uc0ac\uc6a9\ud558\uc138\uc694: `mklink /D \"Target Path\" \"Source Path\"` \ub300\uc0c1 \uacbd\ub85c\ub294 Vault\uc5d0\uc11c \uc2ec\ubcfc\ub9ad \ub9c1\ud06c\uac00 \uc0dd\uc131\ub420 \uc704\uce58\uc785\ub2c8\ub2e4. \uc18c\uc2a4 \uacbd\ub85c\ub294 Google Drive \ud3f4\ub354\uc785\ub2c8\ub2e4.\n\n- **\uc608\uc81c \uba85\ub839:** `mklink /D \"C:\\Users\\YourName\\Vault\\OtherFolder\" \"C:\\Users\\YourName\\Google Drive\\MyFolder\"`"
      },
      "typeVersion": 1
    },
    {
      "id": "fe21a7c2-e8db-46be-87e7-63888bf6e9e7",
      "name": "Receive results from any workflow",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        -660,
        0
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "8f2399ba-0bda-4a2e-b773-7e28df16e7c2",
      "name": "If the input has binary attachment",
      "type": "n8n-nodes-base.if",
      "position": [
        20,
        -160
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "9f56b367-2313-4a92-9572-b2d2687aba71",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{$json[\"binary\"]}}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "d7cae1d6-5bfe-4e69-8257-0f7947b51c96",
      "name": "Write Zettlekasten note from input1",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -280,
        240
      ],
      "parameters": {
        "text": "={{ JSON.stringify($json) }}",
        "options": {
          "systemMessage": "You are an expert knowledge management assistant creating a Zettlekasten note from raw input data. Follow these precise steps:\n\n1. Extract key insights and meaningful connections from the provided JSON input.\n\n2. Structure the note using these Zettlekasten principles:\n- Create a clear, atomic central idea\n- Use precise, concise language\n- Link potential connections to other knowledge domains\n- Ensure the note can stand alone as a meaningful knowledge unit\n\n3. Note format:\n- Unique ID: Generate a unique identifier \n- Title: Concise, descriptive headline capturing core insight\n- Content: Synthesized information with clear reasoning\n- Tags: Relevant conceptual tags for future retrieval\n- References: Source of original data (optional)\n\n4. Prioritize intellectual clarity, semantic depth, and potential for future knowledge expansion.\n\nRespond ONLY with the completed Zettlekasten note in JSON format. Do not include any additional commentary or explanation."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.7
    },
    {
      "id": "303d6633-8e98-4fbc-8ee1-9f1075bcaa3e",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -100,
        420
      ],
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n  \"title\": \"Concise, Descriptive Title\",\n  \"content\": \"Synthesized insights and key information\"\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "62800f09-8659-47b8-9a85-7d3d2c07ec1a",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -300,
        420
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "df11dfcb-fb38-4796-9b28-eb1876f68261",
      "name": "Restructure JSON",
      "type": "n8n-nodes-base.set",
      "position": [
        400,
        240
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "c9061623-d0d0-4b63-a166-4766d88992aa",
              "name": "title",
              "type": "string",
              "value": "={{ $('Write Zettlekasten note from input1').item.json.output.title }}"
            },
            {
              "id": "9f870307-3cbf-41b3-ba69-309610b2d020",
              "name": "content",
              "type": "string",
              "value": "={{ $('Write Zettlekasten note from input1').item.json.output.content }}"
            },
            {
              "id": "1f40b120-00e4-479f-85b0-3fd903e629cb",
              "name": "frontmatter",
              "type": "string",
              "value": "={{ $json.output.frontmatter }}"
            },
            {
              "id": "5b845683-5a25-486b-92b0-98990fcbf7af",
              "name": "references",
              "type": "string",
              "value": "={{ $('Write Zettlekasten note from input1').item.json.output.references }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "2a701cf8-e59d-47ae-83c6-9ac7148bd2c8",
      "name": "Structured Output Parser1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        240,
        420
      ],
      "parameters": {
        "jsonSchemaExample": "{\n\t\"frontmatter\": \"frontmatter here\"\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "1e4da42e-e945-4be8-88ac-2579857ff3fa",
      "name": "OpenAI Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        60,
        420
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "af5494d8-a53f-48b1-b939-210c882485be",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -340,
        100
      ],
      "parameters": {
        "color": 4,
        "width": 880,
        "height": 460,
        "content": "## \uc120\ud0dd \uc0ac\ud56d - AI \uc5d0\uc774\uc804\ud2b8\ub85c \ub178\ud2b8 \uad6c\uc131 \uc0ac\uc6a9\n\ub178\ud2b8\uc758 \uc81c\ubaa9, YAML \ud504\ub860\ud2b8\ub9e4\ud130, \uadf8\ub9ac\uace0 \ucf58\ud150\uce20\uc5d0 \ub300\ud55c JSON \ud30c\ub77c\ubbf8\ud130\ub97c \uc9c1\uc811 \uc0ac\uc6a9\ud558\ub294 \ub300\uc2e0, AI \uc5d0\uc774\uc804\ud2b8\ub97c \uc774\uc6a9\ud558\uc5ec \uc774\ub7ec\ud55c \uc694\uc18c\ub97c \uad6c\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uc811\uadfc \ubc29\uc2dd\uc740 \uc6f9\ud6c5\uacfc Google Drive \ub178\ud2b8 \uc0ac\uc774\uc5d0 AI \uc9c0\uc6d0 \uc6cc\ud06c\ud50c\ub85c\ub97c \uc0bd\uc785\ud558\ub294 \uac83\uc744 \ud3ec\ud568\ud558\uba70, \uc9c1\uc811 \uc5f0\uacb0 \ub300\uc2e0\uc785\ub2c8\ub2e4."
      },
      "typeVersion": 1
    },
    {
      "id": "5d184ea4-88d0-4658-ab94-55246f3507fc",
      "name": "Write YAML Frontmatter",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        60,
        240
      ],
      "parameters": {
        "text": "={{ $json.output.content }}",
        "options": {
          "systemMessage": "=Generate comprehensive YAML frontmatter for an Obsidian note, focusing on metadata extraction and organization.\n\nOutput Format:\n```yaml\ntitle: \"{Extract a clear, concise title from input data}\"\ndate: {{ $now.toFormat('yyyy-MM-dd') }}\n\ntags:\n - {Derive 3-4 most relevant conceptual tags}\naliases:\n - {Alternative titles or key phrases}\nstatus: \"draft\"\nsource: \"{Infer original data source if possible}\""
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.7
    },
    {
      "id": "d2b291be-97af-4bcb-8cc6-b21439bdcfb9",
      "name": "Save attachment",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        740,
        -180
      ],
      "parameters": {
        "name": "=",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive",
          "cachedResultUrl": "https://drive.google.com/drive/my-drive",
          "cachedResultName": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "15dvUtfSjaCCXmnOVeIUfeyRd_raI3PnQ",
          "cachedResultUrl": "https://drive.google.com/drive/folders/15dvUtfSjaCCXmnOVeIUfeyRd_raI3PnQ",
          "cachedResultName": "clippings-attachments"
        },
        "inputDataFieldName": "=data"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "c87bbecc-453d-4b8c-8b86-dcf7e1d6907b",
  "connections": {
    "Restructure JSON": {
      "main": [
        []
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Write Zettlekasten note from input1",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "Write YAML Frontmatter",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Save Markdown file": {
      "main": [
        []
      ]
    },
    "Write YAML Frontmatter": {
      "main": [
        [
          {
            "node": "Restructure JSON",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Write Zettlekasten note from input1",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser1": {
      "ai_outputParser": [
        [
          {
            "node": "Write YAML Frontmatter",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Receive results from any workflow": {
      "main": [
        [
          {
            "node": "If the input has binary attachment",
            "type": "main",
            "index": 0
          },
          {
            "node": "Save Markdown file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If the input has binary attachment": {
      "main": [
        [
          {
            "node": "Save attachment",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Write Zettlekasten note from input1": {
      "main": [
        [
          {
            "node": "Write YAML Frontmatter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}