{
  "name": "Google Sync",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "google-sync",
        "authentication": "jwt"
      },
      "id": "Webhook1",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        260,
        300
      ],
      "credentials": {
        "jwtAuth": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "functionCode": "const google = $json?.oauth?.google;\n\nif (!google) {\n  throw new Error('Missing Google OAuth credentials in request body');\n}\n\nreturn [\n  {\n    json: {\n      access_token: google.access_token,\n      refresh_token: google.refresh_token,\n      expiry_date: google.expiry_date,\n      token_type: google.token_type,\n      userData: $json?.data || {}\n    }\n  }\n];"
      },
      "id": "Function1",
      "name": "Parse OAuth",
      "type": "n8n-nodes-base.function",
      "typeVersion": 1,
      "position": [
        500,
        300
      ]
    },
    {
      "parameters": {
        "operation": "append",
        "sheetId": "YOUR_SPREADSHEET_ID",
        "range": "Sheet1!A1",
        "options": {},
        "values": "={{ Object.values($json.userData) }}"
      },
      "id": "GoogleSheets1",
      "name": "Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 1,
      "position": [
        760,
        300
      ],
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "Webhook1": {
      "main": [
        [
          {
            "node": "Function1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Function1": {
      "main": [
        [
          {
            "node": "GoogleSheets1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {},
  "triggerCount": 0,
  "versionId": "imported_workflow_1"
}