8
n8n 한국어amn8n.com

Explorium MCP - Slack 로봇

중급

이것은Support Chatbot, AI Chatbot분야의자동화 워크플로우로, 13개의 노드를 포함합니다.주로 If, Set, Code, Slack, HttpRequest 등의 노드를 사용하며. Explorium MCP와 Claude AI를 사용한 Slack 비즈니스 인텔리전스 어시스턴트

사전 요구사항
  • Slack Bot Token 또는 Webhook URL
  • 대상 API의 인증 정보가 필요할 수 있음
  • Anthropic API Key
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "id": "nKluKJXe6qIz7tnR",
  "meta": {
    "instanceId": "0a70652f43c1b29dd16c35b61a38fd31c8004f58bc7e723bf43262a797407c77",
    "templateCredsSetupCompleted": true
  },
  "name": "Explorium MCP - Slack Bot",
  "tags": [],
  "nodes": [
    {
      "id": "2cdc96cf-c1b6-4177-ba58-6feae2c38bb5",
      "name": "스티커 노트",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5472,
        -256
      ],
      "parameters": {
        "width": 640,
        "height": 880,
        "content": "## 1. Create Slack App\n\n### Create App\n1. Go to api.slack.com/apps\n2. Click **Create New App** → **From scratch**\n3. Give it name (e.g., \"Explorium Agent\") and select workspace\n\n### Bot Permissions (OAuth & Permissions)\nAdd these **Bot Token Scopes**:\n```\napp_mentions:read\nchannels:history\nchannels:read\nchat:write\nemoji:read\ngroups:history\ngroups:read\nim:history\nim:read\nmpim:history\nmpim:read\nreactions:read\nusers:read\n```\n\n### Enable Events\n1. **Event Subscriptions** → Enable\n2. Add **Request URL** (from n8n Slack Trigger node)\n3. Subscribe to **bot events**:\n   - app_mention\n   - message.channels\n   - message.groups\n   - message.im\n   - message.mpim\n   - reaction_added\n\n### Install App\n1. **Install App** → **Install to Workspace**\n2. Copy **Bot User OAuth Token** (xoxb-...)\n"
      },
      "typeVersion": 1
    },
    {
      "id": "cbb39059-80ea-45b3-8cf3-65b39b7aed52",
      "name": "스티커 노트1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        6160,
        -256
      ],
      "parameters": {
        "width": 640,
        "height": 608,
        "content": "## 2. Configure n8n\n\n### Import & Setup\n1. Import this JSON template\n2. **Slack Trigger** node:\n   - Add Slack credential with Bot Token\n   - Copy webhook URL\n   - Paste in Slack Event Subscriptions Request URL\n\n3. **Anthropic Chat Model** node:\n   - Add Anthropic API credential\n   - Model: claude-haiku-4-5-20251001\n\n(You can replace it with other chat models)\n\n4. **MCP Client** node:\n   - Endpoint: https://mcp.explorium.ai/mcp\n   - Header Auth: Add Explorium API key\n\n\n## Usage Examples\n```\n@Bot find tech companies in SF with 50-200 employees\n@Bot show Microsoft's technology stack\n@Bot get CMO contacts at healthcare companies\n```"
      },
      "typeVersion": 1
    },
    {
      "id": "fdf690d4-4175-47a8-8a55-9b9051a5d9af",
      "name": "스티커 노트2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5472,
        -560
      ],
      "parameters": {
        "width": 2912,
        "height": 256,
        "content": "# Explorium Agent for Slack\n\nAI-powered Slack bot for business intelligence queries using Explorium API through MCP.\n\n## Prerequisites\n- Slack workspace with admin access\n- Anthropic API key (You can replace with other LLM Chat)\n- Explorium API Key\n"
      },
      "typeVersion": 1
    },
    {
      "id": "68135d6e-9061-4e6b-a4fc-b0bacadff82c",
      "name": "Slack 트리거",
      "type": "n8n-nodes-base.slackTrigger",
      "position": [
        6848,
        -160
      ],
      "webhookId": "5d3fa63f-ef0a-48f1-9550-d95e527fba61",
      "parameters": {
        "options": {
          "resolveIds": true
        },
        "trigger": [
          "app_mention"
        ],
        "watchWorkspace": true
      },
      "credentials": {},
      "typeVersion": 1
    },
    {
      "id": "82327159-f01d-433f-bd6a-6a66489eb568",
      "name": "스레드 여부 확인",
      "type": "n8n-nodes-base.if",
      "position": [
        7072,
        -160
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "combineOperation": "any"
          },
          "conditions": [
            {
              "id": "condition1",
              "operator": {
                "type": "string",
                "operation": "notEmpty"
              },
              "leftValue": "={{ $json.thread_ts }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "fa24f726-de97-46a5-91e9-da0ace8b2ef5",
      "name": "스레드 메시지 가져오기",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        7296,
        -256
      ],
      "parameters": {
        "url": "https://slack.com/api/conversations.replies",
        "options": {},
        "sendQuery": true,
        "authentication": "predefinedCredentialType",
        "queryParameters": {
          "parameters": [
            {
              "name": "channel",
              "value": "={{ $json.channel }}"
            },
            {
              "name": "ts",
              "value": "={{ $json.thread_ts }}"
            }
          ]
        },
        "nodeCredentialType": "slackApi"
      },
      "credentials": {},
      "typeVersion": 4.2
    },
    {
      "id": "4ab45f74-0e4d-4686-af3c-3b6865adb3d5",
      "name": "스레드 컨텍스트 포맷팅",
      "type": "n8n-nodes-base.code",
      "position": [
        7520,
        -256
      ],
      "parameters": {
        "jsCode": "// Get the original trigger data from the first item\nconst triggerData = $('Slack Trigger').first().json;\n\n// Get thread messages from Slack API response\nconst slackResponse = $input.first().json;\nconst messagesList = slackResponse.messages || [];\n\n// Build thread context from all messages\nlet threadContext = '';\nif (messagesList.length > 1) {\n  threadContext = messagesList\n    .map((msg, idx) => {\n      const text = msg.text || '';\n      const user = msg.user || 'Unknown';\n      const isBot = msg.bot_id ? ' (bot)' : '';\n      return `Message ${idx + 1} from ${user}${isBot}: ${text}`;\n    })\n    .join('\\n');\n}\n\n// Get current message text\nconst currentText = triggerData.text || (triggerData.blocks && triggerData.blocks[0] && triggerData.blocks[0].elements && triggerData.blocks[0].elements[0] && triggerData.blocks[0].elements[0].elements && triggerData.blocks[0].elements[0].elements[1] ? triggerData.blocks[0].elements[0].elements[1].text : '');\n\n// Combine context with current message\nconst finalText = messagesList.length > 1 \n  ? `Thread Context:\\n${threadContext}\\n\\nCurrent Message: ${currentText}`\n  : currentText;\n\nreturn {\n  channel: triggerData.channel || '',\n  ts: triggerData.ts || '',\n  thread_ts: triggerData.thread_ts || '',\n  type: triggerData.type || '',\n  text: finalText,\n  original_text: currentText,\n  is_bot: triggerData.bot_id ? true : false,\n  user: triggerData.user || '',\n  is_thread_continuation: triggerData.thread_ts ? true : false,\n  session_id: triggerData.thread_ts || triggerData.ts,\n  reaction: triggerData.reaction || '',\n  item_ts: triggerData.item ? triggerData.item.ts : '',\n  is_emoji: triggerData.blocks && triggerData.blocks[0] && triggerData.blocks[0].elements && triggerData.blocks[0].elements[0] && triggerData.blocks[0].elements[0].elements && triggerData.blocks[0].elements[0].elements[0] && triggerData.blocks[0].elements[0].elements[0].type === 'emoji' ? true : false,\n  has_thread_context: messagesList.length > 1\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "32e8b75b-844f-4cb7-9f1d-a1e9621a7b6c",
      "name": "스레드 없이 포맷팅",
      "type": "n8n-nodes-base.set",
      "position": [
        7520,
        -64
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "2c1ec1ad-72f2-4bcd-bfef-dc12f49de48b",
              "name": "channel",
              "type": "string",
              "value": "={{ $json.channel || '' }}"
            },
            {
              "id": "af7e1d94-946c-4257-824e-a5d91a2b007a",
              "name": "ts",
              "type": "string",
              "value": "={{ $json.ts || '' }}"
            },
            {
              "id": "28583957-bddd-4bd2-b937-79b7554a7a65",
              "name": "thread_ts",
              "type": "string",
              "value": "={{ $json.thread_ts || '' }}"
            },
            {
              "id": "53179618-0ca1-43a2-a416-af8a39f792e0",
              "name": "type",
              "type": "string",
              "value": "={{ $json.type || '' }}"
            },
            {
              "id": "fbe15475-5924-41fa-a7b1-6017ae766a23",
              "name": "text",
              "type": "string",
              "value": "={{ $json.text || ($json.blocks && $json.blocks[0] && $json.blocks[0].elements && $json.blocks[0].elements[0] && $json.blocks[0].elements[0].elements && $json.blocks[0].elements[0].elements[1] ? $json.blocks[0].elements[0].elements[1].text : '') }}"
            },
            {
              "id": "49376ca5-079b-4993-9f15-6847734d9c5d",
              "name": "is_bot",
              "type": "boolean",
              "value": "={{ $json.bot_id ? true : false }}"
            },
            {
              "id": "b0ae1eed-7adf-49d2-b19d-0a1efdb5f435",
              "name": "user",
              "type": "string",
              "value": "={{ $json.user || '' }}"
            },
            {
              "id": "13fab869-b570-444d-903b-11d4b4f0ebe6",
              "name": "is_thread_continuation",
              "type": "boolean",
              "value": "={{ $json.thread_ts ? true : false }}"
            },
            {
              "id": "a148580e-6fe3-4689-be2f-7996c54f6118",
              "name": "session_id",
              "type": "string",
              "value": "={{ $json.thread_ts || $json.ts }}"
            },
            {
              "id": "311146c6-e6cf-492e-a4a9-09066e927879",
              "name": "reaction",
              "type": "string",
              "value": "={{ $json.reaction || '' }}"
            },
            {
              "id": "1b358df2-7062-4c7b-be7d-28bc69611322",
              "name": "item_ts",
              "type": "string",
              "value": "={{ $json.item ? $json.item.ts : '' }}"
            },
            {
              "id": "1e9d1f5a-4e0a-4ed8-8e23-660fe8b6a950",
              "name": "is_emoji",
              "type": "boolean",
              "value": "={{ $json.blocks && $json.blocks[0] && $json.blocks[0].elements && $json.blocks[0].elements[0] && $json.blocks[0].elements[0].elements && $json.blocks[0].elements[0].elements[0] && $json.blocks[0].elements[0].elements[0].type === 'emoji' ? true : false }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "cc74fb30-c9ba-4837-8af3-15fc79c91c0b",
      "name": "Explorium 에이전트",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        7800,
        -160
      ],
      "parameters": {
        "text": "={{ $json.text }}",
        "options": {
          "systemMessage": "=You are **Explorium Business Intelligence Agent**, created by Explorium.  \n\nAdvanced Explorium API agent with comprehensive business intelligence data through MCP.\n\n## Core Capabilities\n\n### Company Intelligence\n• Discovery: Search by industry, size, revenue, location, technology, growth metrics\n• Firmographics: Profiles, employee counts, revenue, industry classifications  \n• Technographics: Technology stacks, software usage, digital infrastructure\n• Financial Data: Revenue trends, funding rounds, investor information, financial metrics for public companies\n• Company Ratings: Employee satisfaction, company culture, work-life balance, management quality\n• Competitive Analysis: Market positioning, competitive landscape, strategic insights\n• Strategic Intelligence: Strategic focus areas, value propositions, target markets from SEC filings\n• Business Challenges: Risk analysis, security breaches, competitive pressures from public disclosures\n• Events: Funding, product launches, partnerships, office changes, business developments\n• Workforce Analytics: Department composition, hiring trends, organizational structure\n• Social Intelligence: LinkedIn posts, website changes, digital presence\n• Website Intelligence: Keyword searches, content analysis, website changes tracking\n• Market Statistics: Aggregated industry insights, geographic distribution, revenue analysis\n\n### Prospect Intelligence  \n• Discovery: Find executives, decision-makers by role, company, industry, experience\n• Contact Enrichment: Professional/personal emails, phone numbers, verification\n• Profiles: Work history, education, skills, career progression\n• Role Intelligence: Current positions, job levels, departments, reporting structure\n• Social Activity: LinkedIn posts, engagement metrics, professional content\n• Career Events: Job changes, promotions, role transitions, anniversaries\n\n### Analytics & Communication\n• Market Research: Industry trends, competitive positioning, landscape analysis\n• Investment Intelligence: Funding rounds, investor networks, financial milestones\n• Growth Tracking: Company expansion, headcount changes, business evolution\n• Personalized Outreach: Targeted messaging using real-time business intelligence\n• Trigger-Based Communication: Messages based on events, role changes, milestones\n• Smart Autocomplete: Intelligent suggestions for industries, technologies, job titles, locations\n• Web Search: General web search capabilities for additional context and research\n\n## Response Guidelines\n\n### Workflow\n1. **Discovery**: Search companies/prospects using filters\n2. **Intelligence**: Enrich with detailed data\n3. **Analysis**: Analyze trends, patterns, competitive insights  \n4. **Action**: Generate personalized messages, recommendations, strategic insights\n\n### Communication\n• Always mention using **\"Explorium API\"** (never internal function names)\n• **Keep responses concise and focused** - provide essential information without unnecessary elaboration\n• State total matches found and suggest relevant enrichments\n• When responding to thread conversations, consider the full context provided\n• Format your responses for slack, the output will be post in slack so it should looks good and well formated there. use the slack guidelines below and not md format (for example for headline use *Some Header* and not **Some Header**):\n\nSlack Guidelines:\n*bold text* - makes text bold\n_italic text_ - makes text italic\n~strikethrough~ - strikes through text\n`code` - inline code formatting\n```code block``` - multi-line code block\n\n- Use asterisk + space for bullet points\n- Like this\n\n1. Numbered lists\n2. Work like this\n\n<https://example.com|Link text> - creates a clickable link\n<@U123ABC> - mentions a user (using their user ID)\n<#C123ABC|channel-name> - links to a channel\n\n> Quoted text\n> Continues on next line\n\n--- \n\nCreates a horizontal line\n```\n\n### Error Handling\n• Tool errors/no data: respond **\"An error occurred.\"**\n• Invalid queries: guide toward valid parameters\n• Off-topic requests: redirect to business intelligence use cases\n\n## Off-Topic Handling\nFor non-business intelligence requests:\n\n> I'm the Explorium Business Intelligence Agent, designed to demonstrate our comprehensive company and prospect intelligence platform.  \n>   \n> **Example capabilities:**  \n> • Find SaaS firms in New York with 50‑200 employees  \n> • Show Microsoft's technology stack  \n> • Get marketing‑director contacts at healthcare companies  \n> • Compare funding rounds of fintech startups\n>   \n> What business intelligence would you like to explore?\n\n## Technical Notes\n• Use autocomplete for industries, technologies, job titles, company categories before filtering\n• Combine multiple criteria for precise targeting and comprehensive results\n• Prioritize recent data and real-time insights over historical data\n• Maintain conversation context for follow-up enrichments and related queries\n• Use web search for general information, news, and context not available in business intelligence data\n• Leverage aggregated statistics tools for market-level insights and trends\n• Provide alternative search strategies when initial queries fail\n• When using fetch_prospects or fetch_businesses tools limit the results (size and page_size) to 5 results\n• Thread context is automatically provided when responding to messages in a thread",
          "returnIntermediateSteps": false
        },
        "promptType": "define"
      },
      "typeVersion": 2.1
    },
    {
      "id": "533e4626-aeb0-42e1-a55c-452229bdcfcc",
      "name": "Anthropic 채팅 모델",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        7744,
        64
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "claude-haiku-4-5-20251001",
          "cachedResultName": "Claude Haiku 4.5"
        },
        "options": {}
      },
      "credentials": {},
      "typeVersion": 1.3
    },
    {
      "id": "2504c14b-2d58-467d-ac40-d4a1317b8a7a",
      "name": "심플 메모리",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        7872,
        64
      ],
      "parameters": {
        "sessionKey": "={{ $json.session_id }}",
        "sessionIdType": "customKey",
        "contextWindowLength": 20
      },
      "typeVersion": 1.3
    },
    {
      "id": "95bcd5f2-ffd7-4925-95ae-7fc5f9e32937",
      "name": "Explorium MCP",
      "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
      "position": [
        8000,
        64
      ],
      "parameters": {
        "options": {},
        "endpointUrl": "https://mcp.explorium.ai/mcp",
        "authentication": "headerAuth"
      },
      "credentials": {},
      "typeVersion": 1.2
    },
    {
      "id": "cb0f9fbf-1150-4a70-be4d-2d459376e52c",
      "name": "메시지 전송",
      "type": "n8n-nodes-base.slack",
      "position": [
        8208,
        -160
      ],
      "webhookId": "a840217b-6faa-474a-9cc5-21bcbb9c8db8",
      "parameters": {
        "text": "={{ $json.output }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $item(\"0\").$node[\"Slack Trigger\"].json[\"channel\"] }}"
        },
        "otherOptions": {
          "thread_ts": {
            "replyValues": {
              "thread_ts": "={{ $item(\"0\").$node[\"Slack Trigger\"].json[\"thread_ts\"] || $item(\"0\").$node[\"Slack Trigger\"].json[\"ts\"] }}"
            }
          },
          "includeLinkToWorkflow": false
        }
      },
      "credentials": {},
      "typeVersion": 2.3
    }
  ],
  "active": true,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "34a61d7c-9ded-4af2-b24d-b462106cfe11",
  "connections": {
    "95bcd5f2-ffd7-4925-95ae-7fc5f9e32937": {
      "ai_tool": [
        [
          {
            "node": "cc74fb30-c9ba-4837-8af3-15fc79c91c0b",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "2504c14b-2d58-467d-ac40-d4a1317b8a7a": {
      "ai_memory": [
        [
          {
            "node": "cc74fb30-c9ba-4837-8af3-15fc79c91c0b",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "68135d6e-9061-4e6b-a4fc-b0bacadff82c": {
      "main": [
        [
          {
            "node": "82327159-f01d-433f-bd6a-6a66489eb568",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "82327159-f01d-433f-bd6a-6a66489eb568": {
      "main": [
        [
          {
            "node": "fa24f726-de97-46a5-91e9-da0ace8b2ef5",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "32e8b75b-844f-4cb7-9f1d-a1e9621a7b6c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "cc74fb30-c9ba-4837-8af3-15fc79c91c0b": {
      "main": [
        [
          {
            "node": "cb0f9fbf-1150-4a70-be4d-2d459376e52c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "533e4626-aeb0-42e1-a55c-452229bdcfcc": {
      "ai_languageModel": [
        [
          {
            "node": "cc74fb30-c9ba-4837-8af3-15fc79c91c0b",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "fa24f726-de97-46a5-91e9-da0ace8b2ef5": {
      "main": [
        [
          {
            "node": "4ab45f74-0e4d-4686-af3c-3b6865adb3d5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4ab45f74-0e4d-4686-af3c-3b6865adb3d5": {
      "main": [
        [
          {
            "node": "cc74fb30-c9ba-4837-8af3-15fc79c91c0b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "32e8b75b-844f-4cb7-9f1d-a1e9621a7b6c": {
      "main": [
        [
          {
            "node": "cc74fb30-c9ba-4837-8af3-15fc79c91c0b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

이 워크플로우를 어떻게 사용하나요?

위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.

이 워크플로우는 어떤 시나리오에 적합한가요?

중급 - 지원 챗봇, AI 챗봇

유료인가요?

이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.

워크플로우 정보
난이도
중급
노드 수13
카테고리2
노드 유형11
난이도 설명

일정 경험을 가진 사용자를 위한 6-15개 노드의 중간 복잡도 워크플로우

저자
explorium

explorium

@explorium

Explorium empowers businesses to build high-performance GTM agents with specialized data infrastructure. Our seamless API integrations and high-quality data drive faster agent development and better results. With years of experience and robust data sets, we deliver context-aware solutions, helping AI agents achieve human-level support. Explorium is the essential data partner for teams building agent-driven technologies.

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34