마케팅 담당자가 업계 뉴스를 놓치지 않는 뉴스 모니터링 자동화 9가지
n8n 은 화면에서 상자(노드)를 선으로 이어 여러 서비스를 자동으로 연결하는 노코드 도구입니다. 마케팅·홍보 담당자가 매일 업계 뉴스를 놓치지 않는 게 일인데도 여러 사이트를 돌아다니다 지쳐 뉴스 모니터링 자동화를 찾아보신다면, 이 아홉 가지가 RSS 로 뉴스를 모으고 거르고 표로
자동 재생 · 눌러서 해당 항목으로 · 전부 한 zip
- 01 RSS 기본 읽기
- 02 두 RSS 합쳐서 최신순 정렬
- 03 여러 피드 건수 요약
- 04 키워드로 걸러 상위 N개만
- 05 최근 N일 안 글만 남기기
- 06 실행마다 새 글만 남기기
- 07 표로 만드는 뉴스 다이제스트
- 08 키워드로 갈래 나누기
- 09 매일 정해진 시각에 다이제스트 발송
이 아홉 가지는 뉴스를 다루는 실제 업무 흐름을 그대로 따라 배치했습니다. 하나의 소스를 받는 법(01)에서 출발해 여러 소스를 합치는 두 가지(02 이어붙이기·03 나눠 세기)로 넘어가고, 필요한 것만 골라내는 두 가지(04 키워드·05 날짜)를 지나, 결과를 다듬는 두 가지(06 중복 제거·07 표 만들기)를 거쳐, 조건에 따라 갈래를 나누는 한 가지(08)를 지나, 마지막으로 이 전부를 실제로 매일 돌아가게 묶는 한 가지(09)로 마무리됩니다. 뉴스 모니터링을 손으로 하다가 자동화로 옮길 때도 보통 이 순서로 하나씩 늘려갑니다.
01RSS 기본 읽기
관심 있는 사이트를 매번 들어가 확인하는 대신, RSS Read 노드가 최신 글 목록을 그대로 받아오고 Set 노드가 제목·링크·발행일 세 가지만 남겨 정리합니다. 관심 블로그 모니터링, 자동화 실습 첫 단계처럼 가장 단순한 형태로 자동화를 시작할 때 이 조합부터 씁니다.
{
"name": "Keep Fields",
"type": "n8n-nodes-base.set",
"typeVersion": 3.5,
"parameters": {
"mode": "manual",
"assignments": {
"assignments": [
{ "name": "title", "value": "={{ $json.title }}", "type": "string" },
{ "name": "link", "value": "={{ $json.link }}", "type": "string" },
{ "name": "pubDate", "value": "={{ $json.pubDate }}", "type": "string" }
]
}
}
}
02두 RSS 합쳐서 최신순 정렬
RSS Read 두 개가 서로 다른 사이트를 각각 읽고 Merge 노드가 append 모드로 두 흐름을 그대로 이어붙인 뒤 Sort 가 최신 글부터 줄 세웁니다. 여러 매체 뉴스 한 곳에서 보기, 경쟁사 블로그 모니터링처럼 소스가 둘 이상으로 늘어나는 순간부터 필요해집니다.
{
"name": "Merge Append",
"type": "n8n-nodes-base.merge",
"typeVersion": 3.2,
"parameters": {
"mode": "append",
"numberInputs": 2
}
}
03여러 피드 건수 요약
02번이 두 소스를 하나의 흐름으로 섞는다면 이번엔 Aggregate 노드 두 개가 소스별로 제목을 따로 배열에 모으고 Code 노드가 소스마다 건수와 대표 제목 3개를 담은 요약 객체를 만듭니다. 소스별 발행량 비교, 주간 리포트 재료로 쓸 때는 섞기보다 나눠 세는 이 형태가 낫습니다.
{
"name": "Build Summary",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"parameters": {
"jsCode": "const bbc = $json.bbcTitles || [];\nconst ars = $json.arsTitles || [];\nconst summary = {\n bbc: { count: bbc.length, titles: bbc.slice(0, 3) },\n ars: { count: ars.length, titles: ars.slice(0, 3) }\n};\nreturn [{ json: { summary } }];"
}
}
04키워드로 걸러 상위 N개만
Filter 노드가 제목에 "ai" 라는 낱말이 대소문자 구분 없이 들어간 글만 남기고 Limit 이 그중 앞 3개만 자릅니다. 관심 주제만 알림 받기, 노이즈 줄이기가 목적이라면 전체를 다 보내는 대신 이렇게 먼저 좁혀야 합니다.
{
"conditions": {
"options": { "caseSensitive": false, "version": 2 },
"conditions": [
{
"leftValue": "={{ $json.title }}",
"rightValue": "ai",
"operator": { "type": "string", "operation": "contains" }
}
],
"combinator": "and"
}
}
05최근 N일 안 글만 남기기
Filter 노드가 dateTime 조건의 after 연산자로 pubDate 를 현재 시각에서 3일 뺀 값과 비교해 최근 글만 남깁니다. 주간 정리에서 오래된 글 제외, 최신성 보장이 필요할 때 날짜만으로 거르는 이 방식을 씁니다.
{
"conditions": [
{
"leftValue": "={{ $json.pubDate }}",
"rightValue": "={{ $now.minus({ days: 3 }) }}",
"operator": { "type": "dateTime", "operation": "after" }
}
],
"combinator": "and"
}
06실행마다 새 글만 남기기
Remove Duplicates 의 Remove Items Processed in Previous Executions 오퍼레이션이 링크를 기준으로 이전 실행에서 이미 본 글을 걸러내고 Set 이 새 글에 isNew 표시를 답니다. 매일 같은 시간 실행해도 중복 알림 없이 새 글만 전달하고 싶을 때, 한 번 실행 안에서의 중복 제거로는 부족하고 실행과 실행 사이의 기억이 필요합니다.
{
"name": "Remove Seen Links",
"type": "n8n-nodes-base.removeDuplicates",
"typeVersion": 2,
"parameters": {
"operation": "removeItemsSeenInPreviousExecutions",
"logic": "removeItemsWithAlreadySeenKeyValues",
"dedupeValue": "={{ $json.link }}",
"options": { "scope": "workflow" }
}
}
07표로 만드는 뉴스 다이제스트
Limit 이 앞 8개만 남긴 뒤 HTML 노드의 Convert to HTML Table 오퍼레이션이 그대로 표로 바꿉니다. 이메일 본문에 뉴스 표 넣기, 대시보드 위젯처럼 사람이 훑어보기 좋은 형태가 필요할 때 목록보다 표가 낫습니다.
{
"name": "Build Table",
"type": "n8n-nodes-base.html",
"typeVersion": 1.2,
"parameters": {
"operation": "convertToHtmlTable",
"options": {
"capitalize": true,
"caption": "Fox News latest headlines"
}
}
}
08키워드로 갈래 나누기
Switch 가 제목에 든 낱말로 ai·security(또는 breach)·그 외 세 갈래로 나누고 각 갈래의 Set 이 route 라벨을 붙인 뒤 Merge 가 다시 모읍니다. 주제별 채널로 자동 분류 발송, 알림 라우팅처럼 갈래가 셋 이상으로 늘어나면 IF 하나로는 감당이 안 됩니다.
{
"mode": "rules",
"rules": {
"values": [
{
"conditions": {
"conditions": [
{ "leftValue": "={{ $json.title }}", "rightValue": "ai",
"operator": { "type": "string", "operation": "contains" } }
]
},
"outputKey": "ai"
}
]
},
"options": { "fallbackOutput": "extra", "renameFallbackOutput": "other" }
}
09매일 정해진 시각에 다이제스트 발송
Schedule 이 매일 08:00 에 깨어나고(Manual Trigger 로도 바로 테스트됩니다) RSS Read 가 최신 글을 가져와 Aggregate 가 제목·링크 배열로 모으면 Markdown 이 그 둘을 짝지어 digest 필드에 담습니다. 매일 아침 팀 채널에 뉴스 다이제스트, 개인 알림 봇으로 실제로 쓰려면 예약 실행과 수동 테스트가 같은 흐름 안에 있어야 합니다.
{
"name": "Build Digest",
"type": "n8n-nodes-base.markdown",
"typeVersion": 1,
"parameters": {
"mode": "markdownToHtml",
"markdown": "={{ '# Daily Digest\\n\\n' + $json.title.map((t, i) => '- [' + t + '](' + $json.link[i] + ')').join('\\n') }}",
"destinationKey": "digest"
}
}
준비물
아홉 개 다 준비물 행이 "없음"인데도 표가 필요한 이유는 n8n 버전이 낮으면 typeVersion 오류가 날 수 있기 때문입니다. 등급은 V0(구조)·V1(가져오기 확인)·V2(실행까지 확인) 세 단계로 재는데, 이 편은 아홉 개 전부 V2 입니다.
| 항목 | 등급 | 준비물 | n8n 버전 |
|---|---|---|---|
| 01 RSS 기본 읽기 | V2 | 없음 | 2.38.5 |
| 02 두 RSS 합쳐서 최신순 정렬 | V2 | 없음 | 2.38.5 |
| 03 여러 피드 건수 요약 | V2 | 없음 | 2.38.5 |
| 04 키워드로 걸러 상위 N개만 | V2 | 없음 | 2.38.5 |
| 05 최근 N일 안 글만 남기기 | V2 | 없음 | 2.38.5 |
| 06 실행마다 새 글만 남기기 | V2 | 없음 | 2.38.5 |
| 07 표로 만드는 뉴스 다이제스트 | V2 | 없음 | 2.38.5 |
| 08 키워드로 갈래 나누기 | V2 | 없음 | 2.38.5 |
| 09 매일 정해진 시각에 다이제스트 발송 | V2 | 없음 | 2.38.5 |
화면에서 넣는 길은 두 가지, 명령줄로 넣는 길은 한 가지입니다. n8n 캔버스를 열어 두고 zip 안 JSON 파일 내용을 복사해 Ctrl/Cmd+V 로 붙여넣어도 되고, 캔버스 우측 상단 메뉴의 Import from File 로 파일 자체를 선택해도 됩니다. 서버에 직접 배포해 놓고 쓰는 경우라면 n8n import:workflow --input=파일.json 명령 하나로 끝납니다. 어느 쪽이든 들어온 뒤에는 좌측 상단의 실행 버튼을 눌러 곧바로 결과를 확인할 수 있습니다.
어디서 깨지는가
가장 조용히 사람을 속이는 함정은 06번에서 겪었습니다 — Set 노드에 "원래 필드도 같이 남기기"(Include Other Input Fields) 옵션을 켜려고 그 값을 Options 블록 안에 넣었더니, 실행은 성공(exit 0)했는데 title 필드만 조용히 사라지고 isNew 만 남았습니다. 실제로는 이 옵션이 Options 블록 안이 아니라 mode·assignments 와 같은 층인 노드 최상위 파라미터라, 잘못된 자리에 넣으면 n8n 이 그냥 기본값(false)으로 무시해버립니다. 압축 파일을 풀 때 묻는 암호는 xu26t3qn 이며, 풀고 나면 workflows/ 폴더 안에 항목 아홉 개의 JSON 이 각각 파일로 들어 있습니다. 06번의 Remove Duplicates 도 비슷하게 헷갈리기 쉬운데, 실행 사이의 기억(cross-execution scope)을 쓰다 보니 같은 워크플로를 테스트로 여러 번 돌릴수록 "새 글" 로 잡히는 항목이 줄어들어 결국 0건이 되고, 그러면 뒤에 연결된 Set 노드 자체가 아예 실행되지 않아 isNew 필드가 통째로 빠지는 현상도 겪었습니다.
FAQ
n8n cloud 에서도 되나요?
문제없습니다. 아홉 개 다 별도 계정 연결이나 서드파티 노드 설치 없이 표준 노드만으로 짜여 있어 Import 메뉴에 바로 붙습니다. 다만 09번 Schedule Trigger 가 실제로 매일 자동 실행되게 하려면 워크플로를 Active 상태로 바꿔 둬야 합니다.
내 n8n 버전이 다르면 어떻게 하나요?
버전 차이로 typeVersion 이 안 맞는다는 메시지가 뜨면, 같은 종류의 노드를 지금 쓰는 n8n 화면에서 직접 하나 만들어 export 파일을 열어 그 안의 숫자를 확인한 다음 그 값으로 바꿔 넣으면 됩니다. 이번 zip 의 아홉 개는 Node 24 위에서 도는 n8n 2.38.5 로 가져오기와 실행 둘 다 실제로 마쳤습니다.
자바스크립트를 몰라도 06번을 따라 만들 수 있나요?
충분히 가능합니다. 03번 하나만 Code 노드를 쓰고 나머지 여덟 개는 화면의 드롭다운과 입력창만으로 완성되기 때문입니다. 06번 역시 Remove Duplicates 노드에서 오퍼레이션과 로직을 마우스로 고르는 게 전부이고, 옵션별 의미는 n8n 공식 문서에서 더 자세히 볼 수 있습니다.
n8n 이 낯설다면 자동화 카테고리에 다른 예제들이 더 있고, 여기 올라오는 워크플로를 어떤 절차로 검증하는지는 소개 페이지에서 볼 수 있습니다.