{
  "updatedAt": "2025-11-16T12:10:03.000Z",
  "createdAt": "2025-11-16T09:29:34.344Z",
  "id": "CEREUymv8Tli6LYh",
  "name": "Slack",
  "description": null,
  "active": false,
  "isArchived": true,
  "nodes": [
    {
      "parameters": {
        "trigger": [
          "message"
        ],
        "watchWorkspace": true,
        "options": {
          "resolveIds": false
        }
      },
      "type": "n8n-nodes-base.slackTrigger",
      "typeVersion": 1,
      "position": [
        -1440,
        -96
      ],
      "id": "b07fbe97-b809-404b-84bc-ce5699d8d658",
      "name": "Slack Trigger",
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=You are an AI assistant that lives in a Slack workspace.\n\nYour job:\n- Have friendly, helpful conversations with users.\n- Always respond as a helpful coworker, not a robot.\n- Your answer will be sent as a *thread reply* to the user\u2019s original message.\n\nAvailable tool:\n- \"Get Thread Messages\": use this tool to fetch the existing Slack thread so you can see previous messages and maintain context.\n  - Call this when the user\u2019s message seems to be a follow-up, unclear, or missing context.\n  - After you read the thread, respond based on the full conversation, not just the last message.\n\nReply rules:\n1. **Always assume your reply will be posted in the same thread** as the message with the given timestamp.\n   - Do NOT output channel IDs, thread_ts, or any metadata \u2014 only the message text itself.\n2. Be concise and clear. Prefer short paragraphs and bullet points when helpful.\n3. If something is ambiguous, ask a short clarifying question instead of guessing.\n4. Use the user\u2019s name naturally once at the start if it feels appropriate.\n5. Do not mention tools or internal implementation details in your reply.\n\nContext:\n- User first name: {{ $json.first_name }}\n- Channel ID: {{ $json.channel }}\n- Thread timestamp: {{ $json.timestamp }}\n- User message: {{ $json.text }}\n\nGiven the user message and the context above, decide whether you need to call \"Get Thread Messages\". \nThen, write the best possible reply that should be posted as a Slack thread message.\n\n\n",
        "options": {
          "systemMessage": "You are a helpful assistant, your name is Jarvis, your ai assistant for today"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 3,
      "position": [
        -656,
        -224
      ],
      "id": "b14a55c9-62d2-4def-8d89-61524b020f86",
      "name": "AI Agent"
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "typeVersion": 1,
      "position": [
        -672,
        288
      ],
      "id": "8f4f333e-f79d-4511-8a94-b8c82ef48f30",
      "name": "Google Gemini Chat Model",
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "resource": "user",
        "user": {
          "__rl": true,
          "value": "={{ $json.user }}",
          "mode": "id"
        }
      },
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.3,
      "position": [
        -1040,
        -80
      ],
      "id": "303aebe9-defb-4676-8955-668aa16a474d",
      "name": "Get information about a user",
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "80f580b8-2091-4235-99fb-858510bff83e",
              "name": "timestamp",
              "value": "={{ $('Slack Trigger').item.json.ts }}",
              "type": "string"
            },
            {
              "id": "576c521b-199b-430b-82bc-f8f9d0b389bf",
              "name": "user",
              "value": "={{ $('Slack Trigger').item.json.user }}",
              "type": "string"
            },
            {
              "id": "7936a6ba-62aa-49f3-b600-8910a6c210f4",
              "name": "channel",
              "value": "={{ $('Slack Trigger').item.json.channel }}",
              "type": "string"
            },
            {
              "id": "5698a03c-cdd0-46ca-86bb-312802f7066f",
              "name": "text",
              "value": "={{ $('Slack Trigger').item.json.text }}",
              "type": "string"
            },
            {
              "id": "2d0d000c-45c1-4256-b72c-d00d2d6651e2",
              "name": "first_name",
              "value": "={{ $json.profile.first_name }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        -832,
        -48
      ],
      "id": "9f265e32-c116-4319-bde8-84961b361ff7",
      "name": "Edit Fields"
    },
    {
      "parameters": {
        "select": "channel",
        "channelId": {
          "__rl": true,
          "value": "C09PQU0KVB3",
          "mode": "list",
          "cachedResultName": "bookings"
        },
        "text": "={{ $json.output }}",
        "otherOptions": {
          "includeLinkToWorkflow": false,
          "thread_ts": {
            "replyValues": {
              "thread_ts": "={{ $('Edit Fields').item.json.timestamp }}"
            }
          }
        }
      },
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.3,
      "position": [
        -288,
        -64
      ],
      "id": "5c819c3b-9712-4dfe-b739-6e5078ce8a80",
      "name": "send message and reply to a thread",
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "sessionIdType": "customKey",
        "sessionKey": "={{ $json.user }}"
      },
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "typeVersion": 1.3,
      "position": [
        -496,
        32
      ],
      "id": "5c2b72d8-4f3f-4bd2-bb03-1828f0899d4d",
      "name": "Simple Memory"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "20626904-1647-4305-be34-a3f1a9fd2bc4",
              "leftValue": "={{ $json.bot_id }}",
              "rightValue": "={{ $json.user }}",
              "operator": {
                "type": "string",
                "operation": "empty",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        -1264,
        240
      ],
      "id": "c3076ed2-2242-4b89-9bf7-4ec1d7f2d317",
      "name": "If"
    }
  ],
  "connections": {
    "Slack Trigger": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "send message and reply to a thread",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get information about a user": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "If": {
      "main": [
        [
          {
            "node": "Get information about a user",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "staticData": null,
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "versionId": "a9346146-249e-4216-9226-f4d3d0842488",
  "activeVersionId": null,
  "versionCounter": 3,
  "triggerCount": 0,
  "shared": [
    {
      "updatedAt": "2025-11-16T09:29:34.346Z",
      "createdAt": "2025-11-16T09:29:34.346Z",
      "role": "workflow:owner",
      "workflowId": "CEREUymv8Tli6LYh",
      "projectId": "6TsYTzg0HY92xH2K",
      "project": {
        "updatedAt": "2025-11-14T08:33:27.896Z",
        "createdAt": "2025-11-14T07:49:25.938Z",
        "id": "6TsYTzg0HY92xH2K",
        "name": "Christine Kam <windowrevival@gmail.com>",
        "type": "personal",
        "icon": null,
        "description": null,
        "creatorId": "bc31a112-3ed8-48ca-b94c-7225571c3d7b"
      }
    }
  ],
  "tags": [],
  "activeVersion": null
}