8
n8n 한국어amn8n.com

Google Search Console 데이터를 자동으로 Airtable로 내보내기

고급

이것은Market Research, Multimodal AI분야의자동화 워크플로우로, 21개의 노드를 포함합니다.주로 Set, Airtable, SplitOut, HttpRequest, ScheduleTrigger 등의 노드를 사용하며. Google Search Console 데이터를 자동으로 Airtable로 내보내

사전 요구사항
  • Airtable API Key
  • 대상 API의 인증 정보가 필요할 수 있음
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "id": "AJCFkuIkFN45QXA4",
  "meta": {
    "instanceId": "18b0d04ad5030054be4ab49562e84ea4a079ab4cb036003697394140227c7e76",
    "templateId": "2613",
    "templateCredsSetupCompleted": true
  },
  "name": "Export Google Search Console Data to Airtable Automatically",
  "tags": [],
  "nodes": [
    {
      "id": "8e3f167d-cbeb-4f7f-a867-c356d2dca9d0",
      "name": "분할",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1968,
        416
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "rows"
      },
      "typeVersion": 1
    },
    {
      "id": "19370d12-f6de-44a1-91a6-da097abdf7de",
      "name": "필드 편집",
      "type": "n8n-nodes-base.set",
      "position": [
        2192,
        416
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "7343c80f-37f3-4bb5-84d8-9f21f8a350cd",
              "name": "Keyword",
              "type": "string",
              "value": "={{ $json.keys[0] }}"
            },
            {
              "id": "436e7c8b-2df2-40a9-97af-597dc00cf143",
              "name": "clicks",
              "type": "number",
              "value": "={{ $json.clicks }}"
            },
            {
              "id": "5b4aaffe-391a-4c9d-8249-f447397a3f5d",
              "name": "impressions",
              "type": "number",
              "value": "={{ $json.impressions }}"
            },
            {
              "id": "33677237-57fe-48f4-aff8-72ae81b5f5a2",
              "name": "ctr",
              "type": "number",
              "value": "={{ $json.ctr }}"
            },
            {
              "id": "f961deee-d222-4df7-a7ff-b7286405e4a7",
              "name": "position",
              "type": "number",
              "value": "={{ $json.position }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "9eae4908-5266-439c-a66b-5679036234de",
      "name": "분할1",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1968,
        544
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "rows"
      },
      "typeVersion": 1
    },
    {
      "id": "b05926b1-507f-4531-a05c-a15e835ee82e",
      "name": "필드 편집1",
      "type": "n8n-nodes-base.set",
      "position": [
        2192,
        544
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "7343c80f-37f3-4bb5-84d8-9f21f8a350cd",
              "name": "page",
              "type": "string",
              "value": "={{ $json.keys[0] }}"
            },
            {
              "id": "436e7c8b-2df2-40a9-97af-597dc00cf143",
              "name": "clicks",
              "type": "number",
              "value": "={{ $json.clicks }}"
            },
            {
              "id": "5b4aaffe-391a-4c9d-8249-f447397a3f5d",
              "name": "impressions",
              "type": "number",
              "value": "={{ $json.impressions }}"
            },
            {
              "id": "33677237-57fe-48f4-aff8-72ae81b5f5a2",
              "name": "ctr",
              "type": "number",
              "value": "={{ $json.ctr }}"
            },
            {
              "id": "f961deee-d222-4df7-a7ff-b7286405e4a7",
              "name": "position",
              "type": "number",
              "value": "={{ $json.position }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "42321587-2565-4a0a-9d9d-25cbfdeb9f49",
      "name": "분할2",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1968,
        672
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "rows"
      },
      "typeVersion": 1
    },
    {
      "id": "9e25eef9-daa4-47dd-b2cf-03cfebadb5c6",
      "name": "필드 편집2",
      "type": "n8n-nodes-base.set",
      "position": [
        2192,
        672
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "7343c80f-37f3-4bb5-84d8-9f21f8a350cd",
              "name": "date",
              "type": "string",
              "value": "={{ $json.keys[0] }}"
            },
            {
              "id": "436e7c8b-2df2-40a9-97af-597dc00cf143",
              "name": "clicks",
              "type": "number",
              "value": "={{ $json.clicks }}"
            },
            {
              "id": "5b4aaffe-391a-4c9d-8249-f447397a3f5d",
              "name": "impressions",
              "type": "number",
              "value": "={{ $json.impressions }}"
            },
            {
              "id": "33677237-57fe-48f4-aff8-72ae81b5f5a2",
              "name": "ctr",
              "type": "number",
              "value": "={{ $json.ctr }}"
            },
            {
              "id": "f961deee-d222-4df7-a7ff-b7286405e4a7",
              "name": "position",
              "type": "number",
              "value": "={{ $json.position }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "e8f1ab65-9594-45e7-ba9e-7873bd53a107",
      "name": "날짜",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1744,
        672
      ],
      "parameters": {
        "url": "=https://www.googleapis.com/webmasters/v3/sites/sc-domain:{{$json.domain}}/searchAnalytics/query",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"startDate\": \"{{ $now.format('yyyy-MM-dd') }}\",\n  \"endDate\": \"{{ $now.minus($json.days, 'days').format('yyyy-MM-dd') }}\",\n  \"dimensions\": [\"date\"]\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "googleOAuth2Api"
      },
      "credentials": {
        "googleOAuth2Api": {
          "id": "rgqJrGcq1fg3mqLm",
          "name": "Google account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "d3bbf719-9524-4269-8c26-0eb7599add55",
      "name": "일정 트리거",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        1072,
        608
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "092645b2-9e75-4ff0-8d33-4a3acadac789",
      "name": "도메인 설정",
      "type": "n8n-nodes-base.set",
      "position": [
        1360,
        608
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "6f74dee0-3789-433e-b60e-ed2a05202675",
              "name": "domain",
              "type": "string",
              "value": "funautomations.io"
            },
            {
              "id": "8c73135e-9d39-4f66-821d-7decb3c64085",
              "name": "days",
              "type": "number",
              "value": 30
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "0b04b552-e484-417b-9a7e-a90d477dd45a",
      "name": "쿼리 보고서 가져오기",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1744,
        416
      ],
      "parameters": {
        "url": "=https://www.googleapis.com/webmasters/v3/sites/sc-domain:{{$json.domain}}/searchAnalytics/query",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"startDate\": \"{{ $now.format('yyyy-MM-dd') }}\",\n  \"endDate\": \"{{ $now.minus($json.days, 'days').format('yyyy-MM-dd') }}\",\n  \"dimensions\": [\"query\"]\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "googleOAuth2Api"
      },
      "credentials": {
        "googleOAuth2Api": {
          "id": "rgqJrGcq1fg3mqLm",
          "name": "Google account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "9f9f2be7-1301-4c91-8da1-86eab5725683",
      "name": "페이지 보고서 가져오기",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1744,
        544
      ],
      "parameters": {
        "url": "=https://www.googleapis.com/webmasters/v3/sites/sc-domain:{{$json.domain}}/searchAnalytics/query",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"startDate\": \"{{ $now.format('yyyy-MM-dd') }}\",\n  \"endDate\": \"{{ $now.minus($json.days, 'days').format('yyyy-MM-dd') }}\",\n  \"dimensions\": [\"page\"]\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "googleOAuth2Api"
      },
      "credentials": {
        "googleOAuth2Api": {
          "id": "rgqJrGcq1fg3mqLm",
          "name": "Google account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "d2b91103-2fb1-429c-9d90-50f92f3d6a42",
      "name": "레코드 생성",
      "type": "n8n-nodes-base.airtable",
      "position": [
        2512,
        416
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appzCPTyUrpA1fXpf",
          "cachedResultUrl": "https://airtable.com/appzCPTyUrpA1fXpf",
          "cachedResultName": "Search Console Reports"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblK0ZkihGpOc7ADu",
          "cachedResultUrl": "https://airtable.com/appzCPTyUrpA1fXpf/tblK0ZkihGpOc7ADu",
          "cachedResultName": "Queries"
        },
        "columns": {
          "value": {
            "ctr": "={{ $json.ctr }}",
            "clicks": "={{ $json.clicks }}",
            "Keyword": "={{ $json.Keyword }}",
            "position": "={{ $json.position }}",
            "impressions": "={{ $json.impressions }}"
          },
          "schema": [
            {
              "id": "Keyword",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Keyword",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "clicks",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "clicks",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "impressions",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "impressions",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "ctr",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "ctr",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "position",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "position",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "create"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "vKZ5Wl43rmNFe0My",
          "name": "Airtable Personal Access Token account 3"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "7ea7d226-ba6c-4f08-b6f6-fda31185cbbb",
      "name": "레코드 생성1",
      "type": "n8n-nodes-base.airtable",
      "position": [
        2512,
        544
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appzCPTyUrpA1fXpf",
          "cachedResultUrl": "https://airtable.com/appzCPTyUrpA1fXpf",
          "cachedResultName": "Search Console Reports"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblA6tGocjen8W0iN",
          "cachedResultUrl": "https://airtable.com/appzCPTyUrpA1fXpf/tblA6tGocjen8W0iN",
          "cachedResultName": "Pages"
        },
        "columns": {
          "value": {
            "ctr": "={{ $json.ctr }}",
            "page": "={{ $json.keys[0] }}",
            "clicks": "={{ $json.clicks }}",
            "position": "={{ $json.position }}",
            "impressions": "={{ $json.impressions }}"
          },
          "schema": [
            {
              "id": "page",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "page",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "clicks",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "clicks",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "impressions",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "impressions",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "ctr",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "ctr",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "position",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "position",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "create"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "vKZ5Wl43rmNFe0My",
          "name": "Airtable Personal Access Token account 3"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "fe31cb29-ae45-4fb0-a39e-c8fe337b4984",
      "name": "레코드 생성2",
      "type": "n8n-nodes-base.airtable",
      "position": [
        2512,
        672
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appzCPTyUrpA1fXpf",
          "cachedResultUrl": "https://airtable.com/appzCPTyUrpA1fXpf",
          "cachedResultName": "Search Console Reports"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblSJx4WuIm3feGGw",
          "cachedResultUrl": "https://airtable.com/appzCPTyUrpA1fXpf/tblSJx4WuIm3feGGw",
          "cachedResultName": "Dates"
        },
        "columns": {
          "value": {
            "ctr": "={{ $json.ctr }}",
            "date": "={{ $json.keys[0] }}",
            "clicks": "={{ $json.clicks }}",
            "position": "={{ $json.position }}",
            "impressions": "={{ $json.impressions }}"
          },
          "schema": [
            {
              "id": "date",
              "type": "dateTime",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "clicks",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "clicks",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "impressions",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "impressions",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "ctr",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "ctr",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "position",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "position",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "create"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "vKZ5Wl43rmNFe0My",
          "name": "Airtable Personal Access Token account 3"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "e86d0696-7d10-4a76-8ba7-953862d65b1d",
      "name": "메모지",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        480,
        -432
      ],
      "parameters": {
        "width": 544,
        "height": 1216,
        "content": "# Export Google Search Console Data to Airtable Automatically  \n\n![automatiserdonneessearchconsoleairtable.png](1)\n\n*If you’ve ever downloaded CSV files from Google Search Console, opened them in Excel, cleaned the weird formatting, and pasted them into a sheet just to get a simple report… this workflow is made for you.*  \n\n\n\n## Who Is This Workflow For?  \n\nThis automation is perfect for:  \n- **SEO freelancers and consultants** → who want to track client performance without wasting time on manual exports.  \n- **Marketing teams** → who need fresh daily/weekly reports to check what keywords and pages are performing.  \n- **Website owners** → who just want a clean way to see how their site is doing without logging into Google Search Console every day.  \n\nBasically, if you care about SEO but don’t want to babysit CSV files, this workflow is your new best friend.  \n\n## What Does It Do?  \n\nHere’s the big picture:  \n1. It runs on a schedule (every day, or whenever you want).  \n2. It fetches data directly from the **Google Search Console API**.  \n3. It pulls 3 types of reports:  \n   - By **Query** (keywords people used).  \n   - By **Page** (URLs that ranked).  \n   - By **Date** (daily performance).  \n4. It splits and cleans the data so it’s human-friendly.  \n5. It saves everything into **Airtable**, organized in three tables.  \n\nEnd result: every time you open Airtable, you have a neat SEO database with clicks, impressions, CTR, and average position — no manual work required.  \n\n\n## Prerequisites  \n\nYou’ll need a few things to get started:  \n- Access to [Google Search Console](https://search.google.com/search-console).  \n- A [Google Cloud project](https://console.cloud.google.com/) with the Search Console API enabled.  \n- An [Airtable](https://airtable.com) account to store the data.  \n- An automation tool that can connect APIs (like the one we’re using here).  \n\nThat’s it!  "
      },
      "typeVersion": 1
    },
    {
      "id": "4eb3576c-7590-4d30-857b-da1632fcd074",
      "name": "메모지1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1024,
        96
      ],
      "parameters": {
        "height": 688,
        "content": "## Step 1: Schedule the Workflow  \n\nThe very first node in the workflow is the **Schedule Trigger**.  \n\n- **Why?** → So you don’t have to press “Run” every day.  \n- **What it does** → It starts the whole workflow at fixed times.  \n\nIn the JSON, you can configure things like:  \n- Run every day at a specific hour (e.g., 8 AM).  \n- Or run every X hours/minutes if you want more frequent updates.  \n\nThis is the alarm clock of your automation ⏰.  \n\n---"
      },
      "typeVersion": 1
    },
    {
      "id": "38400f18-ed3e-4f39-8424-77a631437b89",
      "name": "메모지2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1264,
        96
      ],
      "parameters": {
        "height": 688,
        "content": "## Step 2: Set Your Domain and Time Range  \n\nNext, we define the site and the time window for the report.  \n\nIn the JSON, there’s a **Set node** with two important parameters:  \n- `domain` → your website (example: `https://www.0vni.fr/`).  \n- `days` → how many days back you want the data (default: 30).  \n\n👉 Changing these two values updates the whole workflow. Super handy if you want 7-day reports instead of 30.  "
      },
      "typeVersion": 1
    },
    {
      "id": "0f72bcf5-f4c3-4617-9835-07163ebc381b",
      "name": "메모지3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1504,
        -272
      ],
      "parameters": {
        "width": 400,
        "height": 1056,
        "content": "## Step 3: Fetch Data from Google Search Console  \n\nThis is where the workflow talks to the API.  \nThere are **3 HTTP Request nodes**:  \n\n1. **Get Query Report**  \n   - Pulls data grouped by search queries (keywords).  \n   - Parameters in the JSON:  \n     - `startDate` = today - 30 days  \n     - `endDate` = today  \n     - `dimensions` = `\"query\"`  \n     - `rowLimit` = `25000` (maximum rows the API can return)  \n\n2. **Get Page Report**  \n   - Same idea, but grouped by page URLs.  \n   - Parameters:  \n     - `dimensions` = `\"page\"`  \n     - Same dates and row limit.  \n\n3. **Get Date Report**  \n   - This one groups performance by date.  \n   - Parameters:  \n     - `dimensions` = `\"date\"`  \n     - You get a day-by-day performance view.  \n\nEach request returns rows like this:  \n\n\n{\n  \"keys\": [\"example keyword\"],\n  \"clicks\": 42,\n  \"impressions\": 1000,\n  \"ctr\": 0.042,\n  \"position\": 8.5\n}"
      },
      "typeVersion": 1
    },
    {
      "id": "3b260edd-5a2f-4818-9ab9-40db86ad3e96",
      "name": "메모지4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1904,
        -272
      ],
      "parameters": {
        "width": 208,
        "height": 1056,
        "content": "## Step 4: Split the Data  \n\n\n\nThe API sends results in a big array (`rows`). That’s not very usable directly.  \n\nSo we add a **Split Out node** for each report.  \n\n**What it does**: breaks the array into single items → 1 item per keyword, per page, or per date.  \n\nThis way, each line can be saved individually into Airtable.  \n\n👉 Think of it like opening a bag of candy and laying each one neatly on the table 🍬.  \n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "f4834663-b817-41b0-82fe-9a1624908979",
      "name": "메모지5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2112,
        -272
      ],
      "parameters": {
        "width": 208,
        "height": 1056,
        "content": "## Step 5: Clean and Rename Fields  \n\nAfter splitting, we use **Edit Fields nodes** to make the data human-friendly.  \n\nFor example:  \n- In the **Query report** → rename `keys[0]` into `Keyword`.  \n- In the **Page report** → rename `keys[0]` into `page`.  \n- In the **Date report** → rename `keys[0]` into `date`.  \n\nThis is also where we keep only the useful fields:  \n- `Keyword` / `page` / `date`  \n- `clicks`  \n- `impressions`  \n- `ctr`  \n- `position`  "
      },
      "typeVersion": 1
    },
    {
      "id": "1c81b533-fecf-485f-9269-73fe2975f25d",
      "name": "메모지6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2320,
        -704
      ],
      "parameters": {
        "width": 464,
        "height": 1488,
        "content": "## Step 6: Save Everything into Airtable  \n\nFinally, the polished data is sent into Airtable.  \n\nIn the JSON, there are 3 Airtable nodes:  \n- **Queries table** → stores all the keywords.  \n- **Pages table** → stores all the URLs.  \n- **Dates table** → stores day-by-day metrics.  \n\nEach node is set to:  \n- **Operation** = `Create` → adds a new record.  \n- **Base** = `Search Console Reports`.  \n- **Table** = `Queries`, `Pages`, or `Dates`.  \n\n### Field Mapping  \n\nFor **Queries**:  \n- `Keyword` → `{{ $json.Keyword }}`  \n- `clicks` → `{{ $json.clicks }}`  \n- `impressions` → `{{ $json.impressions }}`  \n- `ctr` → `{{ $json.ctr }}`  \n- `position` → `{{ $json.position }}`  \n\n👉 Same logic for **Pages** and **Dates**, just replace `Keyword` with `page` or `date`.  \n\n---\n\n## Expected Output  \n\n\n\nEvery time this workflow runs:  \n- **Queries table** fills with fresh keyword performance data.  \n- **Pages table** shows how your URLs performed.  \n- **Dates table** tracks the evolution day by day.  \n\nIn Airtable, you now have a complete **SEO database** with no manual exports.  \n\n---\n\n## Why This Is Awesome  \n\n- 🚫 No more messy CSV exports.  \n- 📈 Data is always up-to-date.  \n- 🎛 You can build Airtable dashboards, filters, and interfaces.  \n- ⚙️ Easy to adapt → just change `domain` or `days` to customize.  \n\nAnd the best part? You can spend the time you saved on actual **SEO improvements** instead of spreadsheet gymnastics 💃.  \n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {},
  "versionId": "3f8ec591-388b-45a3-afab-829b086b8fe2",
  "connections": {
    "e8f1ab65-9594-45e7-ba9e-7873bd53a107": {
      "main": [
        [
          {
            "node": "42321587-2565-4a0a-9d9d-25cbfdeb9f49",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8e3f167d-cbeb-4f7f-a867-c356d2dca9d0": {
      "main": [
        [
          {
            "node": "19370d12-f6de-44a1-91a6-da097abdf7de",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9eae4908-5266-439c-a66b-5679036234de": {
      "main": [
        [
          {
            "node": "b05926b1-507f-4531-a05c-a15e835ee82e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "42321587-2565-4a0a-9d9d-25cbfdeb9f49": {
      "main": [
        [
          {
            "node": "9e25eef9-daa4-47dd-b2cf-03cfebadb5c6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "19370d12-f6de-44a1-91a6-da097abdf7de": {
      "main": [
        [
          {
            "node": "d2b91103-2fb1-429c-9d90-50f92f3d6a42",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b05926b1-507f-4531-a05c-a15e835ee82e": {
      "main": [
        [
          {
            "node": "7ea7d226-ba6c-4f08-b6f6-fda31185cbbb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9e25eef9-daa4-47dd-b2cf-03cfebadb5c6": {
      "main": [
        [
          {
            "node": "fe31cb29-ae45-4fb0-a39e-c8fe337b4984",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9f9f2be7-1301-4c91-8da1-86eab5725683": {
      "main": [
        [
          {
            "node": "9eae4908-5266-439c-a66b-5679036234de",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "092645b2-9e75-4ff0-8d33-4a3acadac789": {
      "main": [
        [
          {
            "node": "0b04b552-e484-417b-9a7e-a90d477dd45a",
            "type": "main",
            "index": 0
          },
          {
            "node": "9f9f2be7-1301-4c91-8da1-86eab5725683",
            "type": "main",
            "index": 0
          },
          {
            "node": "e8f1ab65-9594-45e7-ba9e-7873bd53a107",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0b04b552-e484-417b-9a7e-a90d477dd45a": {
      "main": [
        [
          {
            "node": "8e3f167d-cbeb-4f7f-a867-c356d2dca9d0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d3bbf719-9524-4269-8c26-0eb7599add55": {
      "main": [
        [
          {
            "node": "092645b2-9e75-4ff0-8d33-4a3acadac789",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

이 워크플로우를 어떻게 사용하나요?

위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.

이 워크플로우는 어떤 시나리오에 적합한가요?

고급 - 시장 조사, 멀티모달 AI

유료인가요?

이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.

워크플로우 정보
난이도
고급
노드 수21
카테고리2
노드 유형6
난이도 설명

고급 사용자를 위한 16+개 노드의 복잡한 워크플로우

저자
Baptiste Fort

Baptiste Fort

@baptistefort

Baptiste.fort.pro@gmail.com

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34