{
  "id": "axvgeIfBbcec3FS6",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Ask your business data in Slack and get AI-powered insights",
  "tags": [
    {
      "id": "ZLNp4q7bLInAPzlr",
      "name": "Databox MCP",
      "createdAt": "2026-02-12T05:49:19.149Z",
      "updatedAt": "2026-02-12T05:49:19.149Z"
    },
    {
      "id": "bFIOup2OMjumNSaA",
      "name": "Slack",
      "createdAt": "2026-03-25T10:40:09.364Z",
      "updatedAt": "2026-03-25T10:40:09.364Z"
    },
    {
      "id": "fjJWe0P5GkqnbIXj",
      "name": "Automation",
      "createdAt": "2026-02-12T05:49:19.177Z",
      "updatedAt": "2026-02-12T05:49:19.177Z"
    }
  ],
  "nodes": [
    {
      "id": "f5b4185a-5d5b-44b1-8990-78ddafcd5b69",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3680,
        1776
      ],
      "parameters": {
        "color": 7,
        "width": 1688,
        "height": 408,
        "content": "## Ask Your Business Data in Slack and Get AI-powered Insights via Databox MCP\n\nGet instant answers about your business metrics directly in Slack. Mention the bot with any question - \"How did Google Ads perform this week?\" or \"What's our YouTube watch time vs. last month?\" - and the AI agent pulls live data from Databox via MCP and replies in the channel.\n\n### How it works\n`Slack Trigger (Bot Mention)` \u2192 `AI Agent (queries Databox MCP)` \u2192 `Reply in Slack`\n\n### What you need\n- Databox account with data sources connected \u2192 Free plan available: https://databox.com/?ref=n8n\n- A custom Slack app (see setup instructions below)\n- OpenAI or Claude API key\n\n### Supported Data Sources\nGoogle Ads \u2022 Google Analytics \u2022 Facebook Ads \u2022 YouTube \u2022 HubSpot \u2022 Salesforce \u2022 Stripe \u2022 And 100+ more \u2192 https://databox.com/integrations"
      },
      "typeVersion": 1
    },
    {
      "id": "ce43c8be-01bf-4152-9867-67ab2d8c45cc",
      "name": "Sticky Note 1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3680,
        2208
      ],
      "parameters": {
        "color": 4,
        "width": 500,
        "height": 1436,
        "content": "## 1\ufe0f\u20e3 Slack App + Trigger Setup\n\n### What this section does\nListens for @mentions of your Slack bot in a specific channel and forwards the question to the AI Agent.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n### What you need to do \u26a0\ufe0f\n### Step 1 - Create a Slack app \n1. Go to https://api.slack.com/apps and click **Create an App** \u2192 From scratch\n2. Name it (e.g. \"Databox Assistant\") and select your workspace\n3. Go to **OAuth & Permissions** \u2192 under Bot Token Scopes, add:\n   - `app_mentions:read`\n   - `chat:write`\n4. Click **Install to Workspace** and authorize - you'll get a **Bot User OAuth Token** (starts with `xoxb-`)\n5. Go to **Basic Information** \u2192 copy the **Signing Secret**\n\n### Step 2 - Create credential in n8n \n1. In n8n, go to **Credentials** \u2192 Add credential \u2192 search **Slack API**\n2. Paste the **Bot User OAuth Token** into Access Token\n3. Paste the **Signing Secret** into Signature Secret\n4. Save and select this credential in both the **Slack Trigger** and **Reply in Thread** nodes\n\n### Step 3 - Register the webhook \n1. Copy the **Production URL** from the Slack Trigger node (expand Webhook URLs at the top)\n2. Make the workflow **Active** (toggle top right in n8n)\n3. In your Slack app, go to **Event Subscriptions** \u2192 toggle On\n4. Paste the webhook URL - Slack will verify it automatically\n5. Under **Subscribe to bot events**, add `app_mention`\n6. Click **Save Changes**\n\n### Step 4 - Add bot to channel \n1. In Slack, go to the channel you want to monitor\n2. Type `/invite @YourBotName` to add the bot\n3. Update the **Channel to Watch** field in this trigger node to your channel ID\n   - Find your channel ID: right-click channel \u2192 View channel details \u2192 scroll to bottom"
      },
      "typeVersion": 1
    },
    {
      "id": "93ded68c-a533-491a-8002-128057675dc7",
      "name": "Sticky Note 2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4224,
        2208
      ],
      "parameters": {
        "color": 6,
        "width": 550,
        "height": 1148,
        "content": "## 2\ufe0f\u20e3 AI Agent + Databox MCP Setup\n\n### What this section does\nThe AI Agent reads the user's Slack question, queries Databox via MCP for the relevant data, and formats a concise Slack-friendly reply.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n### What you need to do \u26a0\ufe0f\n1. Click **OpenAI Chat Model** \u2192 add your `API key` credential\n   - You can replace this with the **Anthropic Chat Model** node\n2. Click **Databox MCP Tool** \u2192 set Authentication to `OAuth2` \u2192 authorize with your Databox account\n3. Ensure the data sources relevant to your team's questions are connected in Databox\n\n\n### How to connect Databox MCP Tool in n8n\n@[youtube](892KtXhv-vI)"
      },
      "typeVersion": 1
    },
    {
      "id": "9fe07b6a-5290-46a5-9823-8576b22e25f9",
      "name": "Sticky Note 3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4816,
        2208
      ],
      "parameters": {
        "color": 5,
        "width": 550,
        "height": 1148,
        "content": "## 3\ufe0f\u20e3 Slack Message\n\n### What this section does\nThe AI agent delivers in Slack, augmented with intelligent analysis to provide deeper insights and actionable information.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n### What you need to do \u26a0\ufe0f\n- Use the **same Slack API credential** as in the Slack Trigger node (the bot token, not a personal OAuth account)\n- Ensure your bot has been invited to the channel with `/invite @YourBotName`\n- **Optional**: Add an error message node if the agent returns no data"
      },
      "typeVersion": 1
    },
    {
      "id": "554aa5e2-eb21-4950-a26e-aacca3f1b490",
      "name": "Slack Trigger",
      "type": "n8n-nodes-base.slackTrigger",
      "notes": "Triggers when someone @mentions the bot - change channel ID to your channel",
      "position": [
        3856,
        2432
      ],
      "parameters": {
        "options": {},
        "trigger": [
          "app_mention"
        ],
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "C0AELRTHZAA"
        }
      },
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "4443080d-06cb-476b-9eb4-9d3117e12be3",
      "name": "Databox AI Assistant",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        4384,
        2432
      ],
      "parameters": {
        "text": "=={{ $json.text }}",
        "options": {
          "systemMessage": "You are a data assistant for Databox. A team member has asked you a question about their business metrics via Slack.\n\nSTEP-BY-STEP WORKFLOW:\n1. Call list_accounts to get the account ID.\n2. Call list_data_sources to discover all connected data sources.\n3. Based on the user's question, identify the relevant data source(s) and metrics.\n4. Fetch the relevant data using load_metric_data or ask_genie for the time period mentioned (default to last 7 days if not specified).\n5. Calculate any comparisons or trends the user asked about.\n6. Reply in a concise, Slack-friendly format.\n\nFORMAT RULES:\n- Keep the answer short and focused - this is a Slack message, not a full report\n- Use *bold* for key numbers and metric names\n- Use emojis to make it scannable (\ud83d\udcca \ud83d\udcc8 \ud83d\udcc9 \ud83d\udcb0 \ud83c\udfaf)\n- If comparing two periods, show the WoW or MoM % change\n- Format numbers with commas. Use $ for currency, % for rates\n- End with one short AI-generated insight or recommendation\n- Do NOT include preamble, disclaimers, or sign-offs\n- If the question is ambiguous, make a reasonable assumption and answer it"
        },
        "promptType": "define"
      },
      "retryOnFail": false,
      "typeVersion": 3,
      "alwaysOutputData": true
    },
    {
      "id": "7bed168f-5d5a-45f4-9e57-b2d646754209",
      "name": "Databox MCP Tool",
      "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
      "position": [
        4576,
        2656
      ],
      "parameters": {
        "options": {},
        "endpointUrl": "https://mcp.databox.com/mcp",
        "authentication": "mcpOAuth2Api"
      },
      "credentials": {
        "mcpOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "5997d629-1be2-4c36-b72f-4c22b239d306",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        4320,
        2656
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o",
          "cachedResultName": "gpt-4o"
        },
        "options": {
          "maxTokens": 4096
        },
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "f8b06d7a-31c6-4ce6-9f79-03e680612195",
      "name": "Post message",
      "type": "n8n-nodes-base.slack",
      "notes": "Replies in the same Slack channel - use the same Slack API credential as the trigger",
      "position": [
        5024,
        2432
      ],
      "parameters": {
        "text": "={{ $json.output }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Slack Trigger').item.json.channel }}"
        },
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.2
    }
  ],
  "active": true,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "c2a8a269-27bb-43cb-9daa-3b3b9fe22e5a",
  "connections": {
    "Slack Trigger": {
      "main": [
        [
          {
            "node": "Databox AI Assistant",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Databox MCP Tool": {
      "ai_tool": [
        [
          {
            "node": "Databox AI Assistant",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Databox AI Assistant",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Databox AI Assistant": {
      "main": [
        [
          {
            "node": "Post message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}