발행일: 2026-10-06(화) 11:44
← 목차로 돌아가기|하루 30분 n8n 시리즈 ② 실무 자동화 레시피 100
RECIPE P2

미니 프로젝트 — 1인 마케터의 하루 자동화 파이프라인

  • ▸리드 수집부터 SNS 발행, 성과 집계까지 마케팅 전 과정을 자동화할 수 있다
  • ▸여러 채널 데이터를 하나의 Google Sheets 대시보드에 통합할 수 있다
  • ▸조건 분기(IF 노드)로 성과 기준 충족 시 자동 알림을 구성할 수 있다

✅사전 준비

  • □레시피 011~025 핵심 워크플로우 동작 확인
  • □Mailchimp 또는 ActiveCampaign API 키 준비
  • □Google Analytics 4 API 자격증명 연결
  • □Buffer 또는 Hootsuite API 키 준비 (SNS 예약 발행용)
  • □Google Sheets '마케팅 대시보드' 시트 생성 및 헤더 설정

전체 파이프라인 구성

① 리드 수집 파이프 (실시간)
   Webhook → 데이터 정제 → CRM 등록 → Slack 알림

② 콘텐츠 발행 파이프 (매일 09:00)
   Schedule → Sheets에서 예약 콘텐츠 조회
   → Buffer API로 SNS 예약 등록

③ 성과 집계 파이프 (매일 18:00)
   Schedule → GA4 API 호출 → Mailchimp 통계 호출
   → Sheets 기록 → IF(목표 달성) → Slack 축하 알림

GA4 API 호출 — HTTP Request 설정

Method: POST
URL: https://analyticsdata.googleapis.com/v1beta/properties/YOUR_PROPERTY_ID:runReport
Authentication: OAuth2 (Google)

Body (JSON):
{
  "dateRanges": [{ "startDate": "today", "endDate": "today" }],
  "metrics": [
    { "name": "sessions" },
    { "name": "newUsers" },
    { "name": "conversions" }
  ]
}

IF 노드 — 일일 목표 달성 판단

조건 1: {{ $json.sessions }} >= 500   (세션 목표)
조건 2: {{ $json.newUsers }} >= 100   (신규 유저 목표)

True  → Slack #marketing 채널에 🎉 달성 알림 발송
False → Sheets에 미달 항목 기록 후 종료

Sheets 대시보드 기록 — 컬럼 매핑

날짜:        {{ $today.toFormat("yyyy-MM-dd") }}
세션수:      {{ $('GA4 API').item.json.sessions }}
신규유저:    {{ $('GA4 API').item.json.newUsers }}
전환수:      {{ $('GA4 API').item.json.conversions }}
이메일발송:  {{ $('Mailchimp').item.json.emails_sent }}
오픈율:      {{ $('Mailchimp').item.json.open_rate }}
클릭율:      {{ $('Mailchimp').item.json.click_rate }}
💡 TIPBuffer API가 없다면 n8n의 내장 RSS 트리거 대신 Google Sheets에 '발행 예정 콘텐츠' 행을 추가하고 Schedule Trigger로 조회해 Twitter(X) API, Instagram Graph API에 직접 POST하는 방식으로도 구현할 수 있습니다.
⚠️ 주의GA4 API는 당일 데이터가 실시간 반영되지 않고 최대 24~48시간 지연될 수 있습니다. 성과 집계는 전날(yesterday) 기준으로 설정하는 것이 더 정확합니다.
⚡

워크플로우 JSON

아래 JSON을 복사해 n8n에 바로 임포트하세요

📥 n8n 임포트 방법
n8n 화면 우측 상단 메뉴 (⋮) → Import from JSON → 아래 JSON 전체 복사 후 붙여넣기 → Import 클릭
{
  "name": "recipe025p_marketer_daily_pipeline",
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "30 7 * * *"
            }
          ]
        }
      },
      "id": "schedule-025p-01",
      "name": "매일 오전 7시 30분 모닝 리포트",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.1,
      "position": [
        200,
        400
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://googleads.googleapis.com/v17/customers/{{ $env.GOOGLE_ADS_CUSTOMER_ID }}/googleAds:search",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "query",
              "value": "SELECT metrics.impressions, metrics.clicks, metrics.cost_micros FROM campaign WHERE segments.date DURING YESTERDAY"
            }
          ]
        },
        "options": {}
      },
      "id": "http-025p-02",
      "name": "광고 성과 수집 (레시피013)",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        420,
        200
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://analyticsdata.googleapis.com/v1beta/properties/{{ $env.GA4_PROPERTY_ID }}:runReport",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "dateRanges",
              "value": "[{\"startDate\": \"yesterday\", \"endDate\": \"yesterday\"}]"
            },
            {
              "name": "metrics",
              "value": "[{\"name\": \"sessions\"}]"
            }
          ]
        },
        "options": {}
      },
      "id": "http-025p-03",
      "name": "채널 성과 수집 (레시피025)",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        420,
        400
      ]
    },
    {
      "parameters": {
        "mode": "combine",
        "combinationMode": "mergeByPosition",
        "options": {}
      },
      "id": "merge-025p-04",
      "name": "데이터 통합",
      "type": "n8n-nodes-base.merge",
      "typeVersion": 3,
      "position": [
        640,
        400
      ]
    },
    {
      "parameters": {
        "operation": "appendOrUpdate",
        "documentId": {
          "value": "={{ $env.MARKETING_DASHBOARD_SHEET_ID }}"
        },
        "sheetName": {
          "value": "daily"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "date": "={{ $now.minus({days:1}).format('YYYY-MM-DD') }}",
            "gaSessions": "={{ $('채널 성과 수집 (레시피025)').item.json.rows[0].metricValues[0].value }}",
            "updatedAt": "={{ $now.format('YYYY-MM-DD HH:mm') }}"
          }
        },
        "options": {
          "upsertOptions": {
            "upsertKey": "date"
          }
        }
      },
      "id": "sheets-025p-05",
      "name": "대시보드 기록",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.4,
      "position": [
        860,
        400
      ]
    },
    {
      "parameters": {
        "resource": "message",
        "operation": "post",
        "channel": "#marketing-team",
        "text": "=📊 1인 마케터 모닝 브리핑 ({{ $now.format('M월 D일') }})\n\n📈 어제 광고 성과\n→ Google Ads 데이터 확인 완료\n\n🌐 웹 트래픽\n→ GA4 세션 데이터 확인 완료\n\n✅ 오늘의 자동화 파이프라인 정상 작동 중!"
      },
      "id": "slack-025p-06",
      "name": "모닝 브리핑 Slack 발송",
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.2,
      "position": [
        1080,
        400
      ]
    },
    {
      "parameters": {
        "url": "={{ $env.BLOG_RSS_URL }}"
      },
      "id": "rss-025p-07",
      "name": "블로그 새 글 감지 → SNS 배포 (레시피012)",
      "type": "n8n-nodes-base.rssFeedReadTrigger",
      "typeVersion": 1.1,
      "position": [
        200,
        700
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.twitter.com/2/tweets",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "text",
              "value": "={{ $json.title + ' ' + $json.link }}"
            }
          ]
        },
        "options": {}
      },
      "id": "http-025p-08",
      "name": "Twitter 자동 배포",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        420,
        700
      ]
    }
  ],
  "connections": {
    "매일 오전 7시 30분 모닝 리포트": {
      "main": [
        [
          {
            "node": "광고 성과 수집 (레시피013)",
            "type": "main",
            "index": 0
          },
          {
            "node": "채널 성과 수집 (레시피025)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "광고 성과 수집 (레시피013)": {
      "main": [
        [
          {
            "node": "데이터 통합",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "채널 성과 수집 (레시피025)": {
      "main": [
        [
          {
            "node": "데이터 통합",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "데이터 통합": {
      "main": [
        [
          {
            "node": "대시보드 기록",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "대시보드 기록": {
      "main": [
        [
          {
            "node": "모닝 브리핑 Slack 발송",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "블로그 새 글 감지 → SNS 배포 (레시피012)": {
      "main": [
        [
          {
            "node": "Twitter 자동 배포",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "timezone": "Asia/Seoul"
  },
  "meta": {
    "chapter": 2,
    "recipe": "025p",
    "title": "1인 마케터의 하루 자동화 파이프라인",
    "difficulty": "⭐⭐⭐",
    "estimatedTime": "60분",
    "apps": [
      "Google Ads API",
      "Google Analytics",
      "Mailchimp",
      "RSS Feed",
      "Twitter",
      "Google Sheets",
      "Slack"
    ],
    "type": "mini-project"
  }
}
← 이전 레시피☰ 목차다음 레시피 →