n8n으로 ‘블로그 글 모니터링 → 대시보드’ 자동화 , 7개 지점 포스트를 실시간 집계 자동화 성공

소개

현재 병원 블로그 마케팅 대행을 하고 있습니다. 관리하는 지점이 늘어날수록 관리사항이 늘어나면서 자동화를 하고 싶어 이 스터디에 참여하게 되었습니다.

7개 지점의 네이버 블로그 신규 글을 자동으로 모니터링해서 월별 통합 시트까지 한번에 업데이트되는 자동화를 만들고 싶었습니다.

참고로 저는 이과생이지만 코드는 잘 모릅니다.

진행 방법

어떤 도구를 사용했고, 어떻게 활용하셨나요?

도구

활용 포인트

n8n

RSS 수집 → 최근 7 일 필터 → 중복 제거 → Google Sheets Append

Google Sheets

지점별 탭, 월별 집계 탭, QUERY / IMPORTRANGE 배열 공식

ChatGPT (o3)

Function 노드용 JS 스니펫·시트 공식 작성 & 디버깅

결국 가장 핵심은 중복이 되지 않게 새 글만 구글 시트에 적재하는 형태였는데,

필터링 기준은 블로그 링크를 기준으로 했고, RSS 를 통해 수집된 링크에서 뒷부분 쿼리스트링을 제거해서 중복 검사를 필터링 하는 코드를 넣었습니다.

“RSS에서 ?fromRss= 같은 쿼리스트링을 제거하고,
Google Sheet에 이미 있는 링크와 비교해 중복을 걸러주는
Function 노드 코드를 만들어줘.”

// Function: Dedup + Format (중복 제거 & 시트행 포맷)
const sheetLinks = $items('Read Google Sheet (Links)', 0)
  .map(r => (r.json.링크 || '').split('?')[0].trim());

return $input.all()
  .filter(rss => {
    const link = rss.json.link.split('?')[0];
    return !sheetLinks.includes(link);
  })
  .map(rss => {
    const d = new Date(rss.json.isoDate);
    return {
      json: {
        월: `${d.getFullYear()}.${('0'+(d.getMonth()+1)).slice(-2)}`,
        병원명: rss.json.blogName,   // Merge 전 Set 노드에서 주입
        제목: rss.json.title,
        게시일: d.toISOString().slice(0,10),
        비고: '자동 수집',
        링크: rss.json.link.split('?')[0]
      }
    };
  });

최종 워크 플로우입니다.

응용 프로그램의 프로세스를 보여주는 다이어그램

  • 블로그 RSS Read 내용을 파싱해서 최근 7일치만 필터링, 기존 시트의 링크를 함께 대조해서 새 글만 시트에 Append 하는 워크플로우입니다.

  • 이후에 구글시트 내에 지점별 탭 / 통합 탭이 있어서 통합 탭에서는 지점별 탭의 데이터들을 수집해서 한눈에 볼 수 있게끔 정리합니다.

결과와 배운 점

  • n8n은 입력 item 수만큼 노드가 반복되므로, RSS 호출을 1 회로 고정하려면 Set 노드로 “dummy 1 item”을 만든 뒤 HTTP Request에 연결하는 게 안전하다.

  • Google Sheets Split-In-Items:false + Merge(append) + Function 내부에서 $items('...') 참조 → “입력 2개 포트 제한”을 우회할 수 있다.

  • 시트 집계는 ARRAYFORMULA + COUNTIFS 로 끝. 링크 빈값까지 조건에 넣으면 더미 행 오류도 해결.

(시행착오 & 배운점)

  • 하나의 워크플로우로 간편하게 모든 지점을 순차 처리하려고 짜다보니, 굉장히 복잡해졌음. 토요일 오프 모임에서 멍멍님이 알려주신 내용을 토대로 지점별로 하나씩 워크플로우를 만들었더니 꽤나 단순해졌음. (멍멍님, 정기님 감사합니다!)

  • 처음부터 GPT한테 모든 것을 의존하면서 만들면 산으로 갈 가능성이 높아서, 어느 정도의 워크플로우와 큰 줄기는 세팅해두고, 부수적으로 물어보거나 추가하는 형태가 낫다는 것을 다시한번 깨달음.

앞으로의 계획이 있다면 들려주세요.

  • 지금 하고 있는 다른 업무들도 자동화 진행 예정임

도움 받은 글 (옵션)

(내용 입력)

6
4개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요