Twitter 모니터링 워크플로우
중급
이것은Market Research, AI Summarization분야의자동화 워크플로우로, 15개의 노드를 포함합니다.주로 If, Set, Slack, Switch, HttpRequest 등의 노드를 사용하며. OpenAI, Google Sheets 및 Slack 알림을 사용한 Twitter 감정 분석 자동화
사전 요구사항
- •Slack Bot Token 또는 Webhook URL
- •대상 API의 인증 정보가 필요할 수 있음
- •Google Sheets API 인증 정보
- •OpenAI API Key
사용된 노드 (15)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "GHDkm5yryfu6FoXN",
"meta": {
"instanceId": "fcb622cbd5234c565b9b78babeaf0ea2455df9d2aad0d1adff7c1ef99583e685",
"templateCredsSetupCompleted": true
},
"name": "Twitter Monitoring Workflow",
"tags": [],
"nodes": [
{
"id": "8fa04bf9-68e5-43b7-81f2-ee5f2355abd9",
"name": "항목 반복",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-60,
210
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "dec03e00-a5fa-44eb-b269-b486259ac1aa",
"name": "OpenAI",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1380,
-220
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "GPT-4O-MINI"
},
"options": {},
"messages": {
"values": [
{
"content": "={{ $('Set Field for Loop').item.json.tweet_text }}"
},
{
"role": "system",
"content": "=You are a professional Twitter social media user replying to the original poster (admin).\n\nAnalyze the sentiment of the tweet below. If the sentiment is positive, write a short, thoughtful reply **from a user's perspective**, directed to the person who posted it.\n\nThe reply should:\n- Show appreciation, agreement, or excitement\n- Be friendly, intelligent, and relevant to tech or AI fields\n- Use no emojis\n- Be under 160 characters\n- Address the original poster directly as a real person would\n\nTweet:\n\"\"\"\nuse a user prompt\n\"\"\""
}
]
}
},
"credentials": {
"openAiApi": {
"id": "ga54eHkT3k6225Zq",
"name": "OpenAi account"
}
},
"typeVersion": 1.8
},
{
"id": "a6ebd6b7-29a4-4d02-ab90-5e74235485ea",
"name": "구조화된 출력 파서",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1020,
180
],
"parameters": {
"jsonSchemaExample": "{\n\"category\": \"neutral\"\n}"
},
"typeVersion": 1.2
},
{
"id": "c725e544-b9c4-4b5f-9e48-3e4ca1e8aec1",
"name": "게시물 데이터 가져오기",
"type": "n8n-nodes-base.googleSheets",
"position": [
160,
-40
],
"parameters": {
"options": {},
"filtersUI": {
"values": [
{
"lookupValue": "={{ $json.id }}",
"lookupColumn": "ID"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1040262065,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sOxYQtX-O6p35FCNSRsovKEHL4w4GsfF-ylMVcwpb_E/edit#gid=1040262065",
"cachedResultName": "Twitter(hashtag)"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1sOxYQtX-O6p35FCNSRsovKEHL4w4GsfF-ylMVcwpb_E",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sOxYQtX-O6p35FCNSRsovKEHL4w4GsfF-ylMVcwpb_E/edit?usp=drivesdk",
"cachedResultName": "Google Map Scraper"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "cOspDa8h1hkwDLvX",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6,
"alwaysOutputData": true
},
{
"id": "1def5fb1-e928-4c9e-bb7a-4f1ea5658d46",
"name": "감정 분석가",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
740,
-80
],
"parameters": {
"text": "={{ $('Loop Over Items').item.json.tweet_text }}",
"options": {
"systemMessage": "You are a helpful AI assistant.Perfectly analyze the sentiment of this tweet_text and tell me in one word it is Positive, Neutral, or Negative."
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2
},
{
"id": "bc3fdb44-6588-4607-8e22-27a9bdf9ce9c",
"name": "분석가에 따른 전환",
"type": "n8n-nodes-base.switch",
"position": [
1180,
-40
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "Positive",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "394765f1-3f6b-484c-88ac-6eb699acd292",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output.category }}",
"rightValue": "Positive"
}
]
},
"renameOutput": true
},
{
"outputKey": "Nagative",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "d102e916-73dc-4774-81eb-7ca7e6e1033e",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output.category }}",
"rightValue": "Negative"
}
]
},
"renameOutput": true
},
{
"outputKey": "Neutral",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "9e383471-7b1b-4311-9fab-92ce4db0301f",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output.category }}",
"rightValue": "Neutral"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "ce1e35b7-df4a-4969-81ed-21d8967cc834",
"name": "게시물 데이터 추가",
"type": "n8n-nodes-base.googleSheets",
"position": [
1700,
240
],
"parameters": {
"columns": {
"value": {
"ID": "={{ $('Set Field for Loop').item.json.id }}",
"TweetUrl": "={{ $('Set Field for Loop').item.json.tweet_url }}",
"TweetText": "={{ $('Set Field for Loop').item.json.tweet_text }}",
"Post Reply": "={{ $json.message.content }}",
"Sentiment ": "={{ $('Switch According Analyst').item.json.output.category }}"
},
"schema": [
{
"id": "ID",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "ID",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "TweetUrl",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "TweetUrl",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "TweetText",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "TweetText",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Sentiment ",
"type": "string",
"display": true,
"required": false,
"displayName": "Sentiment ",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Post Reply",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Post Reply",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"ID"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1040262065,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sOxYQtX-O6p35FCNSRsovKEHL4w4GsfF-ylMVcwpb_E/edit#gid=1040262065",
"cachedResultName": "Twitter(hashtag)"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1sOxYQtX-O6p35FCNSRsovKEHL4w4GsfF-ylMVcwpb_E",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1sOxYQtX-O6p35FCNSRsovKEHL4w4GsfF-ylMVcwpb_E/edit?usp=drivesdk",
"cachedResultName": "Google Map Scraper"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "cOspDa8h1hkwDLvX",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6,
"alwaysOutputData": false
},
{
"id": "0ac588c7-2612-482e-91c2-e2622840ec5e",
"name": "일정 트리거",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-940,
220
],
"parameters": {
"rule": {
"interval": [
{
"field": "hours",
"hoursInterval": 6
}
]
}
},
"typeVersion": 1.2
},
{
"id": "b84b9a8a-e13e-41bf-96d0-aeb36c13c4be",
"name": "반복을 위한 필드 설정",
"type": "n8n-nodes-base.set",
"position": [
-280,
210
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "56262d1d-f624-4e77-a03f-a0f2230070a6",
"name": "id",
"type": "string",
"value": "={{ $json.postId }}"
},
{
"id": "a32fc77b-7378-4ac4-a0af-193ae7092ae3",
"name": "tweet_url",
"type": "string",
"value": "={{ $json.postUrl }}"
},
{
"id": "f744541d-80db-46c6-91ad-3747ebac2c49",
"name": "tweet_text",
"type": "string",
"value": "={{ $json.postText }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "3e8a8b36-69c8-42dd-86c2-fdda0259184c",
"name": "Slack에 부정적 게시물 메시지 전송",
"type": "n8n-nodes-base.slack",
"position": [
1440,
-60
],
"webhookId": "ea8f7d60-91af-4452-adfa-2e00cf80acc6",
"parameters": {
"text": "=Received a Negative retweet on {{ $('Check Duplicate').item.json.TweetUrl }}. Consider if a response or clarification is needed.",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": "C090F70N52M",
"cachedResultName": "website-uptime"
},
"otherOptions": {
"includeLinkToWorkflow": false
},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"id": "rURgzu95YUHybmaa",
"name": "Slack account"
}
},
"typeVersion": 2.3
},
{
"id": "31469921-4053-435f-9909-ab5a7eb85204",
"name": "Apify를 통한 트위터 게시물 요청",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueErrorOutput",
"position": [
-720,
220
],
"parameters": {
"url": "https://api.apify.com/v2/acts/scraper_one~x-posts-search/run-sync?token=api_key",
"method": "POST",
"options": {},
"jsonBody": "={\n \"query\": \"LaraconIn\",\n \"resultsCount\": 5,\n \"searchType\": \"latest\",\n \"lang\":\"en\"\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.1
},
{
"id": "10774b92-a390-43de-a7a5-62ce25587e3e",
"name": "Apify에서 요청된 게시물 가져오기",
"type": "n8n-nodes-base.httpRequest",
"position": [
-500,
200
],
"parameters": {
"url": "https://api.apify.com/v2/acts/scraper_one~x-posts-search/runs/last/dataset/items?token=api_key",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "31525bf2-922d-413e-bad7-9ea8b9099880",
"name": "스티커 메모",
"type": "n8n-nodes-base.stickyNote",
"position": [
-900,
-460
],
"parameters": {
"width": 800,
"height": 560,
"content": "## Sample Output Sheet\n- https://docs.google.com/spreadsheets/d/1sOxYQtX-O6p35FCNSRsovKEHL4w4GsfF-ylMVcwpb_E/edit?usp=sharing\n\n\n## Workflow Summary\nThis n8n workflow is designed to automate the collection, sentiment analysis, and response process for trending content. It uses the Apify API(https://apify.com/) to fetch trending data, performs sentiment analysis, and takes conditional actions based on the results. All outcomes are logged in a Google Sheet for record-keeping and future insights.\n\n## How to Use Apify API in n8n for Trending Data\n ### API Endpoint\n**Use this Apify Actor to fetch trending data via a POST request**\n*https://api.apify.com/v2/acts/scraper_one~x-posts-search/run-sync?token=YOUR_API_TOKEN*\nImportant: Replace YOUR_API_TOKEN with your actual Apify API token.\n\n### Request Body Format\n{\n \"search\": \"YOUR TOPIC\", \n \"mode\": \"latest\",\n \"maxItems\": 10\n}"
},
"typeVersion": 1
},
{
"id": "29960d67-1378-49b3-9174-ac26aef71ad9",
"name": "OpenAI 채팅 모델",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
760,
140
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "ga54eHkT3k6225Zq",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "8bd4d3f7-9020-43c6-bf0e-788075c5ec6f",
"name": "중복 확인",
"type": "n8n-nodes-base.if",
"position": [
380,
-40
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "6f5c821d-8b4b-40ab-a025-1b7fcc42c78d",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.ID }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "09a99040-3fec-411f-a270-2f73092e0c8d",
"connections": {
"dec03e00-a5fa-44eb-b269-b486259ac1aa": {
"main": [
[
{
"node": "ce1e35b7-df4a-4969-81ed-21d8967cc834",
"type": "main",
"index": 0
}
]
]
},
"8bd4d3f7-9020-43c6-bf0e-788075c5ec6f": {
"main": [
[
{
"node": "8fa04bf9-68e5-43b7-81f2-ee5f2355abd9",
"type": "main",
"index": 0
}
],
[
{
"node": "1def5fb1-e928-4c9e-bb7a-4f1ea5658d46",
"type": "main",
"index": 0
}
]
]
},
"ce1e35b7-df4a-4969-81ed-21d8967cc834": {
"main": [
[
{
"node": "8fa04bf9-68e5-43b7-81f2-ee5f2355abd9",
"type": "main",
"index": 0
}
]
]
},
"c725e544-b9c4-4b5f-9e48-3e4ca1e8aec1": {
"main": [
[
{
"node": "8bd4d3f7-9020-43c6-bf0e-788075c5ec6f",
"type": "main",
"index": 0
}
]
]
},
"8fa04bf9-68e5-43b7-81f2-ee5f2355abd9": {
"main": [
[],
[
{
"node": "c725e544-b9c4-4b5f-9e48-3e4ca1e8aec1",
"type": "main",
"index": 0
}
]
]
},
"0ac588c7-2612-482e-91c2-e2622840ec5e": {
"main": [
[
{
"node": "31469921-4053-435f-9909-ab5a7eb85204",
"type": "main",
"index": 0
}
]
]
},
"29960d67-1378-49b3-9174-ac26aef71ad9": {
"ai_languageModel": [
[
{
"node": "1def5fb1-e928-4c9e-bb7a-4f1ea5658d46",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"1def5fb1-e928-4c9e-bb7a-4f1ea5658d46": {
"main": [
[
{
"node": "bc3fdb44-6588-4607-8e22-27a9bdf9ce9c",
"type": "main",
"index": 0
}
]
]
},
"b84b9a8a-e13e-41bf-96d0-aeb36c13c4be": {
"main": [
[
{
"node": "8fa04bf9-68e5-43b7-81f2-ee5f2355abd9",
"type": "main",
"index": 0
}
]
]
},
"a6ebd6b7-29a4-4d02-ab90-5e74235485ea": {
"ai_outputParser": [
[
{
"node": "1def5fb1-e928-4c9e-bb7a-4f1ea5658d46",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"bc3fdb44-6588-4607-8e22-27a9bdf9ce9c": {
"main": [
[
{
"node": "dec03e00-a5fa-44eb-b269-b486259ac1aa",
"type": "main",
"index": 0
}
],
[
{
"node": "3e8a8b36-69c8-42dd-86c2-fdda0259184c",
"type": "main",
"index": 0
}
],
[
{
"node": "ce1e35b7-df4a-4969-81ed-21d8967cc834",
"type": "main",
"index": 0
}
]
]
},
"10774b92-a390-43de-a7a5-62ce25587e3e": {
"main": [
[
{
"node": "b84b9a8a-e13e-41bf-96d0-aeb36c13c4be",
"type": "main",
"index": 0
}
]
]
},
"31469921-4053-435f-9909-ab5a7eb85204": {
"main": [
[
{
"node": "10774b92-a390-43de-a7a5-62ce25587e3e",
"type": "main",
"index": 0
}
]
]
},
"3e8a8b36-69c8-42dd-86c2-fdda0259184c": {
"main": [
[
{
"node": "ce1e35b7-df4a-4969-81ed-21d8967cc834",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급 - 시장 조사, AI 요약
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
매일 WhatsApp 그룹 지능형 분석: GPT-4.1 분석 및 음성 메시지 변환
매일 WhatsApp 그룹 지능 분석: GPT-4.1 분석 및 음성 메시지 트랜스크립션
If
Set
Code
+
If
Set
Code
52 노드Daniel Lianes
기타
콜센터 녹취록 감정 분석 n8n
GPT-4o-mini와 Google Sheets를 사용한 콜 센터 감정 분석 자동화
Set
Google Sheets
Split In Batches
+
Set
Google Sheets
Split In Batches
9 노드InfyOm Technologies
AI 요약
브랜드 보이콧성 검사 - AI 연구소 데모 프로젝트
跨AI검색工具의品牌可见性및情感분석 (OpenAI、Perplexity、ChatGPT)
If
Set
Limit
+
If
Set
Limit
48 노드AOE Agent Lab
시장 조사
반려동물 가게 4
🐶 펫 샵 예약 AI 대리자
If
Set
Code
+
If
Set
Code
187 노드Bruno Dias
인공지능
Facebook 페이지 댓글 관리 봇: 답글, 삭제, 차단 및 알림
AI 기반 Facebook 댓글 관리: 자동 답글, 삭제, 차단 및 알림
If
Set
Code
+
If
Set
Code
59 노드SpaGreen Creative
소셜 미디어
AI 고객 지원 분류 및 요약 시스템
GPT-4o, Slack 및 CRM 통합을 사용한 고객 지원 자동 처리
If
Set
Code
+
If
Set
Code
32 노드NodeAlchemy
티켓 관리
워크플로우 정보
난이도
중급
노드 수15
카테고리2
노드 유형13
저자
InfyOm Technologies
@infyomWe are an AI Automation Agency focusing on various AI Automation Services like, workflow automation, shopify automation, chatbot developerment, custom ai agent development and more.
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유