Apify와 GPT-4.1을 사용하여 Skool 커뮤니티에서 상호작용 기회 발견
고급
이것은Social Media, AI Summarization분야의자동화 워크플로우로, 18개의 노드를 포함합니다.주로 Set, Filter, Airtable, SplitOut, HttpRequest 등의 노드를 사용하며. Apify와 GPT-4.1을 통해 Skool 커뮤니티에서 상호작용 기회를 발견합니다.
사전 요구사항
- •Airtable API Key
- •대상 API의 인증 정보가 필요할 수 있음
- •OpenAI API Key
사용된 노드 (18)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"meta": {
"instanceId": "638c66f7dba65e767f3bbdca0571085c3b0f378be7062f284b8b1840b332ce48",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "bfc28649-af1b-4dcc-ace6-31e631b04a93",
"name": "메모",
"type": "n8n-nodes-base.stickyNote",
"position": [
912,
-288
],
"parameters": {
"color": 4,
"width": 256,
"height": 432,
"content": "## Get posts + comments from the choosen communities\n"
},
"typeVersion": 1
},
{
"id": "93cf8510-9bd8-4c8f-8398-f6f42727d27b",
"name": "메모1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1144,
-288
],
"parameters": {
"color": 5,
"height": 432,
"content": "## Extract data\n- Content\n- comments > 50chars\n- url\n"
},
"typeVersion": 1
},
{
"id": "c3645f17-79b4-4b40-9a34-af6fd7c8c632",
"name": "OpenAI 채팅 모델",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1472,
208
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1",
"cachedResultName": "gpt-4.1"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "pYrY40uieQQ0KNHA",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "43f6566d-ab87-48f1-880b-8e1239fa9d41",
"name": "구조화된 출력 파서",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1600,
208
],
"parameters": {
"jsonSchemaExample": "{\n \"opportunity\": true,\n \"reason\": \"The user is overwhelmed managing manual booking and lead response, which can be easily automated.\",\n \"trigger_sentence\": \"I can't keep up with replying to all DMs and booking calls manually.\",\n \"suggested_comment\": \"I totally get that—juggling messages and scheduling is exhausting. Have you looked into using automation tools to streamline that flow?\"\n}"
},
"typeVersion": 1.3
},
{
"id": "6e740eaf-7448-4f32-b84c-60670caff939",
"name": "Get Config",
"type": "n8n-nodes-base.airtable",
"position": [
96,
-16
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "appImGQn0rh53oCPE",
"cachedResultUrl": "https://airtable.com/appImGQn0rh53oCPE",
"cachedResultName": "Skool comments"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblfSVVKzXJxrOXEY",
"cachedResultUrl": "https://airtable.com/appImGQn0rh53oCPE/tblfSVVKzXJxrOXEY",
"cachedResultName": "config"
},
"options": {},
"operation": "search"
},
"credentials": {
"airtableTokenApi": {
"id": "9uiZQNs5rb3wcFIX",
"name": "Airtable Personal Access Token account"
}
},
"typeVersion": 2.1
},
{
"id": "bfa95924-c9fa-434f-9371-b7517cf3eaad",
"name": "Extract Config",
"type": "n8n-nodes-base.set",
"position": [
544,
-16
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "4db9375d-ca80-4421-8025-145ddabc2ba0",
"name": "Skool URLs",
"type": "array",
"value": "={{ $json['Skool URLs'].split(',').map(item => ({\n\"url\": item.replaceAll(\"\\n\",\"\").trim(),\n})) }}"
},
{
"id": "97bd58cf-83b1-4ff2-bcb0-5ba6a912d26d",
"name": "cookies",
"type": "string",
"value": "={{ $json.cookies.replaceAll(\"\\n\",\"\").trim() }}"
},
{
"id": "b41ff8da-e638-4b21-84e0-2526ce143489",
"name": "Domain of Activity",
"type": "string",
"value": "={{ $json['Domain of Activity'] }}"
},
{
"id": "caf22e0b-acbc-4bfb-9be5-0102f49c10d6",
"name": "Tools Used",
"type": "string",
"value": "={{ $json['Tools Used'] }}"
},
{
"id": "0acc3cc2-80cf-421d-b67a-898d0d4e1f11",
"name": "Name",
"type": "string",
"value": "={{ $json.Name }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "62ffe1f8-383f-4fc1-952f-fc5a0d7c4bc8",
"name": "Get Skool Posts",
"type": "n8n-nodes-base.httpRequest",
"position": [
992,
-16
],
"parameters": {
"url": "https://api.apify.com/v2/acts/memo23~skool-posts-with-comments-scraper/run-sync-get-dataset-items",
"method": "POST",
"options": {},
"jsonBody": "={\n \"commentsLimit\": 20,\n \"cookies\":{{ $json.cookies }}\n \"includeComments\": true,\n \"includeMedia\": false,\n \"itemStartDate\": \"{{$now.minus(24,'hours')}}\",\n \"proxy\": {\n \"useApifyProxy\": true\n },\n \"startUrls\": [\n { \n \"url\":\"{{ $json['Skool URLs'].url }}\"\n }\n ],\n \"tab\": \"community\"\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpQueryAuth"
},
"credentials": {
"httpQueryAuth": {
"id": "c6JAh6mPlHzGRyan",
"name": "apify 2"
}
},
"typeVersion": 4.2
},
{
"id": "af39e0d1-8151-4eae-bfa3-e5f62114d1c7",
"name": "Extract Post Data",
"type": "n8n-nodes-base.set",
"position": [
1216,
-16
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "ab379ef2-7aa7-46f3-943b-134f29a192b4",
"name": "name",
"type": "string",
"value": "={{ $json.name }}"
},
{
"id": "7fa6eb26-75de-48e4-abda-82c2045e3592",
"name": "content",
"type": "string",
"value": "={{ $json.metadata.content }}"
},
{
"id": "97e3e1e9-2378-4caf-b8e7-301675b11518",
"name": "comments",
"type": "array",
"value": "={{ $json.comments.map(item => item.post.metadata.content).filter(item => item.length>50) }}"
},
{
"id": "ff6a31c4-a656-4612-9f25-4aebf8441224",
"name": "likes",
"type": "number",
"value": "={{ $json.metadata.upvotes }}"
},
{
"id": "f1e2cc9e-58e4-4d4e-979d-271a86a07df8",
"name": "createdAt",
"type": "string",
"value": "={{ $json.createdAt }}"
},
{
"id": "b3a98244-7117-42e4-b704-c24df45b3192",
"name": "postType",
"type": "string",
"value": "={{ $json.postType }}"
},
{
"id": "f9d85eb1-5764-437b-8ed2-89665ab6738d",
"name": "url",
"type": "string",
"value": "={{ $json.url }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "282cd9dd-889e-44c9-a803-83346096a180",
"name": "EvaluateOpportunities And Generate Comments",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
1440,
-16
],
"parameters": {
"text": "=Post content: {{ $json.content }}\nComments: {{ $json.comments }}",
"batching": {},
"messages": {
"messageValues": [
{
"type": "AIMessagePromptTemplate",
"message": "=user_domain:{{ $('Extract Config').first().json['Domain of Activity'] }}\nuser_tool: {{ $('Extract Config').first().json['Tools Used'] }}\n\n\n🧑💼 Role\nAct as a stealth engagement strategist who identifies precise opportunities to insert insightful, helpful comments into Skool posts and comments. Your contributions subtly demonstrate expertise in {user_domain} without explicitly promoting your own community or product.\n\n🎯 Task\nAnalyze a post or comment and determine whether it offers a relevant opportunity to engage with a valuable, helpful comment related to {user_domain}. Return the result as JSON.\n\n📌 Specifics\nOutput must follow this JSON schema:\n\njson\nCopy\nEdit\n{\n \"opportunity\": true | false,\n \"reason\": \"why this is or isn't a fit for {user_domain} support\",\n \"trigger_sentence\": \"exact phrase or sentence from the post/comment indicating need\",\n \"suggested_comment\": \"only include this if opportunity is true, respond in the same language as the original post\"\n}\nThink like a value-driven expert spotting inefficiencies or challenges where {user_domain} could help.\n\nAlways suggest {user_tool} if a tool is mentioned.\nHelping here could spark a valuable connection. Respond with heart and clarity.\n\nDo not promote yourself or your community directly. Be insightful, curious, and helpful.\n\n🌍 Context\nYou are using this automation to grow visibility by helping users who express challenges or frustrations that {user_domain} can solve. Your smart, relevant comments will inspire profile visits and interest in your expertise—organically and trust-based.\n\n🧪 Examples\n✅ Opportunity Exists\njson\nCopy\nEdit\n{\n \"opportunity\": true,\n \"reason\": \"The user is overwhelmed managing manual tasks, which can be streamlined using {user_tool}.\",\n \"trigger_sentence\": \"I can't keep up with replying to all DMs and booking calls manually.\",\n \"suggested_comment\": \"I totally get that—juggling messages and scheduling is exhausting. You might want to try using a tool like user_tool}} to automate that flow and save hours each week.\"\n}\n❌ No Opportunity\njson\nCopy\nEdit\n{\n \"opportunity\": false,\n \"reason\": \"The post is purely motivational with no mention of workflows, tools, or pain points that {user_domain} could solve.\",\n \"trigger_sentence\": \"Just stay consistent and the results will come!\"\n}\n📝 Notes\nTranslate suggested_comment to match the post’s original language.\n\nBe helpful, not salesy.\n\nIf a tool is mentioned, always recommend {user_tool}.\n\nIf there's no clear problem or inefficiency, set \"opportunity\": false.\n\n"
},
{
"message": "You're an engagement strategist"
}
]
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.7
},
{
"id": "0448f716-a891-4677-97f7-7339b4625c84",
"name": "병합 AI Answers With Extracted Data",
"type": "n8n-nodes-base.set",
"position": [
1840,
-16
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "fea627fd-6fed-4913-8297-566326e5df1d",
"name": "opportunity",
"type": "boolean",
"value": "={{ $json.output.opportunity }}"
},
{
"id": "e11d151c-63ea-4096-a95e-c2029d9b398b",
"name": "reason",
"type": "string",
"value": "={{ $json.output.reason }}"
},
{
"id": "8bcdfa3b-1b6e-4fa9-9276-9764b9d40391",
"name": "trigger_sentence",
"type": "string",
"value": "={{ $json.output.trigger_sentence }}"
},
{
"id": "75353e12-7795-420d-ac3e-2acbbe6c6fbe",
"name": "suggested_comment",
"type": "string",
"value": "={{ $json.output.suggested_comment }}"
},
{
"id": "be81a3ae-ebe0-48f2-b329-0f0e64141cb9",
"name": "name",
"type": "string",
"value": "={{ $('Extract Post Data').item.json.name }}"
},
{
"id": "05983218-c090-45e2-8d30-5d2be725b350",
"name": "createdAt",
"type": "string",
"value": "={{ $('Extract Post Data').item.json.createdAt }}"
},
{
"id": "74815fe9-f761-4496-913a-b757042a80b7",
"name": "url",
"type": "string",
"value": "={{ $('Extract Post Data').item.json.url }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "6546a6b7-d53e-40b8-ac21-1e90d65b3b13",
"name": "필터 Opportunities To Comment",
"type": "n8n-nodes-base.filter",
"position": [
2064,
-16
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "2a0b06dd-f7c0-412e-916a-f8fe89b1f97e",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json.opportunity }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "211d371b-1193-4920-b35e-e7f610df7cb1",
"name": "Record Results",
"type": "n8n-nodes-base.airtable",
"position": [
2288,
-16
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "appImGQn0rh53oCPE",
"cachedResultUrl": "https://airtable.com/appImGQn0rh53oCPE",
"cachedResultName": "Skool comments"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblkB1UJ5dihXvDoi",
"cachedResultUrl": "https://airtable.com/appImGQn0rh53oCPE/tblkB1UJ5dihXvDoi",
"cachedResultName": "Table 1"
},
"columns": {
"value": {
"url": "={{ $json.url }}",
"date": "={{ $now }}",
"title": "={{ $json.name }}",
"config": "=[\"{{ $('Extract Config').first().json.Name }}\"]",
"reason": "={{ $json.reason }}",
"trigger": "={{ $json.trigger_sentence }}",
"suggested answer": "={{ $json.suggested_comment }}"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "id",
"defaultMatch": true
},
{
"id": "title",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "date",
"type": "dateTime",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "url",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "reason",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "reason",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "trigger",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "trigger",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "suggested answer",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "suggested answer",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Select",
"type": "options",
"display": true,
"options": [
{
"name": "not commented",
"value": "not commented"
},
{
"name": "commented",
"value": "commented"
}
],
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Select",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "config",
"type": "array",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "config",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"title"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {
"typecast": true
},
"operation": "upsert"
},
"credentials": {
"airtableTokenApi": {
"id": "9uiZQNs5rb3wcFIX",
"name": "Airtable Personal Access Token account"
}
},
"typeVersion": 2.1
},
{
"id": "f884d6b6-d2a7-4645-aa76-8165aeb17331",
"name": "메모2",
"type": "n8n-nodes-base.stickyNote",
"position": [
40,
-288
],
"parameters": {
"width": 1072,
"height": 432,
"content": "## Get config\nGet config from airtable\ngroup it by url (the apify actor seems to have a bug and is only getting the first url if we pass it as an array)"
},
"typeVersion": 1
},
{
"id": "b38546ec-218e-4cb6-9e58-19d4435c6aee",
"name": "메모3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1392,
-288
],
"parameters": {
"color": 3,
"width": 816,
"height": 432,
"content": "## Analyze posts with AI\nThis is dynamic based on the config criterias\n- does it worth commenting and why?\n- if yes create the comment"
},
"typeVersion": 1
},
{
"id": "f7d2a5ab-41d3-4ce4-b0c7-06489b81c5b3",
"name": "일정 트리거",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-128,
-16
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 19
}
]
}
},
"typeVersion": 1.2
},
{
"id": "c23eb77f-60e4-4f0e-b37d-19d1db708566",
"name": "분할 출력1",
"type": "n8n-nodes-base.splitOut",
"position": [
768,
-16
],
"parameters": {
"include": "allOtherFields",
"options": {},
"fieldToSplitOut": "Skool URLs"
},
"typeVersion": 1
},
{
"id": "a622f65e-ca43-4a1e-9fcd-5456b61485ca",
"name": "Is Active?",
"type": "n8n-nodes-base.filter",
"position": [
320,
-16
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "95a95eba-ab46-481c-8754-8c6c8b75df5a",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json.active }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "80e966f3-06e9-47e3-9e72-e09e6923162e",
"name": "메모4",
"type": "n8n-nodes-base.stickyNote",
"position": [
48,
-528
],
"parameters": {
"color": 4,
"content": "## Airtable tempplate\nhttps://airtable.com/appImGQn0rh53oCPE/shrqBY3WUtMxUZnYa"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"6e740eaf-7448-4f32-b84c-60670caff939": {
"main": [
[
{
"node": "a622f65e-ca43-4a1e-9fcd-5456b61485ca",
"type": "main",
"index": 0
}
]
]
},
"a622f65e-ca43-4a1e-9fcd-5456b61485ca": {
"main": [
[
{
"node": "bfa95924-c9fa-434f-9371-b7517cf3eaad",
"type": "main",
"index": 0
}
]
]
},
"Split Out1": {
"main": [
[
{
"node": "62ffe1f8-383f-4fc1-952f-fc5a0d7c4bc8",
"type": "main",
"index": 0
}
]
]
},
"bfa95924-c9fa-434f-9371-b7517cf3eaad": {
"main": [
[
{
"node": "Split Out1",
"type": "main",
"index": 0
}
]
]
},
"211d371b-1193-4920-b35e-e7f610df7cb1": {
"main": [
[]
]
},
"62ffe1f8-383f-4fc1-952f-fc5a0d7c4bc8": {
"main": [
[
{
"node": "af39e0d1-8151-4eae-bfa3-e5f62114d1c7",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "6e740eaf-7448-4f32-b84c-60670caff939",
"type": "main",
"index": 0
}
]
]
},
"af39e0d1-8151-4eae-bfa3-e5f62114d1c7": {
"main": [
[
{
"node": "282cd9dd-889e-44c9-a803-83346096a180",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "282cd9dd-889e-44c9-a803-83346096a180",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "282cd9dd-889e-44c9-a803-83346096a180",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Filter Opportunities To Comment": {
"main": [
[
{
"node": "211d371b-1193-4920-b35e-e7f610df7cb1",
"type": "main",
"index": 0
}
]
]
},
"Merge AI Answers With Extracted Data": {
"main": [
[
{
"node": "Filter Opportunities To Comment",
"type": "main",
"index": 0
}
]
]
},
"282cd9dd-889e-44c9-a803-83346096a180": {
"main": [
[
{
"node": "Merge AI Answers With Extracted Data",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 소셜 미디어, AI 요약
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
미국 하원 법안을 기반으로 Gemini AI를 사용하여 주간 동물권 행동 요약 보고서 생성
미국 하원 법안을 기반으로 Gemini AI를 사용하여 주간 동물권 행동 요약 보고서 생성
If
Set
Html
+
If
Set
Html
26 노드Open Paws
소셜 미디어
演示 - 分享模板 - 에서职位描述构建候选人短名单
AI招聘流程:사용Apollo및Airtable에서职位로候选人短名单
Set
Limit
Switch
+
Set
Limit
Switch
40 노드Fabian Herhold
기타
GPT-4와 Airtable을 사용한 작업 기록 및 백업 워크플로 자동화
GPT-4와 Airtable로 워크플로우 자동 기록 및 백업
If
N8n
Set
+
If
N8n
Set
38 노드Guillaume Duvernay
AI 요약
커뮤니티 문제 모니터링 및 OpenRouter AI, Reddit, 포럼 크롤링
OpenRouter AI, Reddit, 포럼을 사용하여 커뮤니티 문제를 모니터링합니다.
Set
Code
Html
+
Set
Code
Html
29 노드Julian Kaiser
시장 조사
연락처 정보 풍부화
Apollo, LinkedIn 및 GPT-4o 기반의 전면적인 연락처 정보 풍부화, HubSpot에 적합
If
Set
Code
+
If
Set
Code
24 노드Interlock GTM
리드 생성
콘텐츠생성기 v3
AI驱动블로그자동화:사용GPT-4생성并게시SEO기사至WordPress및Twitter
If
Set
Code
+
If
Set
Code
144 노드Jay Emp0
콘텐츠 제작