{
  "nodes": [
    {
      "id": "350fef5e-f003-412d-a061-7dd3165d6055",
      "name": "Zoom Meeting Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -192,
        256
      ],
      "parameters": {
        "path": "zoom-meeting-ended",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 1
    },
    {
      "id": "ddd1c9c7-8f7c-4c1b-8075-43a27febb40d",
      "name": "Normalize Data",
      "type": "n8n-nodes-base.code",
      "position": [
        48,
        256
      ],
      "parameters": {
        "jsCode": "// Normalize Zoom payload\nconst e = $input.first().json;\n\nreturn {\n  json: {\n    meeting_id: e.payload.object.id,\n    topic: e.payload.object.topic,\n    host: e.payload.object.host_email,\n    start_time: e.payload.object.start_time,\n    end_time: e.payload.object.end_time,\n    duration: e.payload.object.duration,\n    participants: e.payload.object.participant_count || 0,\n    transcript: e.payload.object.transcript || '', // if transcript available\n    timestamp: new Date().toISOString()\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "00538f67-0cad-4e9c-ba72-d4744470c772",
      "name": "Generate AI Notes",
      "type": "n8n-nodes-base.openAi",
      "position": [
        256,
        256
      ],
      "parameters": {
        "resource": "chat",
        "operation": "create",
        "requestOptions": {}
      },
      "typeVersion": 1
    },
    {
      "id": "de229a4a-d353-4a0b-b6c4-010ca22e3e50",
      "name": "Save to Google Docs",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        496,
        256
      ],
      "parameters": {
        "title": "Meeting Notes - {{ $json.topic }} - {{ $json.timestamp }}"
      },
      "typeVersion": 2
    },
    {
      "id": "07bdd64e-bdb8-470e-a3e6-604f51c2ac66",
      "name": "Post to Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        720,
        256
      ],
      "parameters": {
        "text": "\ud83d\udcdd *New Meeting Notes Available*\\n*Topic:* {{ $('Normalize Data').item.json.topic }}\\n*Host:* {{ $('Normalize Data').item.json.host }}\\n*Duration:* {{ $('Normalize Data').item.json.duration }} mins\\n\\n\ud83d\udc49 Read full notes here: {{ $('Save to Google Docs').item.json.webViewLink }}",
        "channel": "#team-meetings",
        "attachments": [],
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "typeVersion": 1
    },
    {
      "id": "a21376f0-b3a7-4c50-ad69-81793a723242",
      "name": "Setup Instructions",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -192,
        -64
      ],
      "parameters": {
        "width": 432,
        "height": 384,
        "content": "## \ud83d\udee0\ufe0f Setup Steps\n### 1. Zoom App\n- Go to Zoom Developer Console \u2192 create App.  \n- Enable event **`meeting.ended`**.  \n- Paste workflow webhook URL.\n\n### 2. Google Docs\n- Connect Google OAuth in n8n.  \n- Docs auto-saved in your Google Drive.\n\n### 3. Slack\n- Connect Slack OAuth.  \n- Replace channel `#team-meetings`.\n\n### 4. OpenAI\n- Add your OpenAI API key.  \n- Uses **GPT-4** for accurate summaries.\n\n---"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Normalize Data": {
      "main": [
        [
          {
            "node": "Generate AI Notes",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate AI Notes": {
      "main": [
        [
          {
            "node": "Save to Google Docs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save to Google Docs": {
      "main": [
        [
          {
            "node": "Post to Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Zoom Meeting Webhook": {
      "main": [
        [
          {
            "node": "Normalize Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}