AutomationFlowsAI & RAG › Jarvis

Jarvis

jarvis. Uses agent, lmChatOpenAi, outputParserStructured, toolWorkflow. Webhook trigger; 13 nodes.

Webhook trigger★★★☆☆ complexityAI-powered13 nodesAgentOpenAI ChatOutput Parser StructuredTool WorkflowTool CalculatorMemory Redis Chat
AI & RAG Trigger: Webhook Nodes: 13 Complexity: ★★★☆☆ AI nodes: yes Added:

This workflow follows the Agent → OpenAI Chat recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "name": "Jarvis",
  "nodes": [
    {
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {
          "download": "={{ true }}"
        }
      },
      "type": "n8n-nodes-base.telegramTrigger",
      "typeVersion": 1.1,
      "position": [
        -80,
        -60
      ],
      "id": "3c3562a1-d5ff-4f43-9185-2b7fc738bcfe",
      "name": "Telegram Trigger",
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "mode": "raw",
        "jsonOutput": "={\n  \"chatInput\": \"{{ $json.message.text }}\",\n  \"chat_id\": \"{{$json['message']['chat']['id']}}\"\n}",
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        460,
        -40
      ],
      "id": "616a8282-4ea9-4a13-aca6-2bad483ce820",
      "name": "Edit Fields"
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1,
      "position": [
        1080,
        -260
      ],
      "id": "3af98bf8-36da-4b65-9690-59c705852e5e",
      "name": "OpenAI Chat Model",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 2
                },
                "conditions": [
                  {
                    "leftValue": "={{$json[\"message\"][\"voice\"] ? true : false}}",
                    "rightValue": true,
                    "operator": {
                      "type": "boolean",
                      "operation": "true",
                      "singleValue": true
                    }
                  }
                ],
                "combinator": "and"
              }
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 2
                },
                "conditions": [
                  {
                    "id": "0a1c0edc-59d2-4483-a7d7-06caac0deef7",
                    "leftValue": "={{$json[\"message\"][\"text\"] ? true : false}}",
                    "rightValue": "",
                    "operator": {
                      "type": "boolean",
                      "operation": "true",
                      "singleValue": true
                    }
                  }
                ],
                "combinator": "and"
              }
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.switch",
      "typeVersion": 3.2,
      "position": [
        120,
        -60
      ],
      "id": "9f2ab304-f8ab-43d4-81da-3949c091cb37",
      "name": "Switch"
    },
    {
      "parameters": {
        "resource": "audio",
        "operation": "transcribe",
        "binaryPropertyName": "=data",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.7,
      "position": [
        500,
        -280
      ],
      "id": "fcc8d95c-b961-48f1-81bc-0b724dec3673",
      "name": "OpenAI",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "resource": "file",
        "fileId": "={{ $json.message.voice.file_id }}"
      },
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [
        300,
        -280
      ],
      "id": "800d7304-3dd4-48ef-92ac-5fe8236ba2f1",
      "name": "Telegram",
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
        "text": "={{ $json.output }}",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [
        1520,
        -180
      ],
      "id": "560b0b71-0322-4b08-bb03-cbeb1f9f1382",
      "name": "Telegram1",
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "descriptionType": "manual",
        "toolDescription": "=Call this tool to create an event in Yash's calendar - it will need a start date/time, an end date/time, and a title for the event.",
        "calendar": {
          "__rl": true,
          "value": "yashsoni.coding@gmail.com",
          "mode": "list",
          "cachedResultName": "yashsoni.coding@gmail.com"
        },
        "start": "={{ $fromAI(\"start_time\", \"The date and time for when the event should start\") }}",
        "end": "={{ $fromAI(\"end_time\", \"The date and time for when the event should end\") }}",
        "additionalFields": {
          "summary": "={{ $fromAI(\"title\", \"The title or summary of the calendar event\") }}"
        }
      },
      "type": "n8n-nodes-base.googleCalendarTool",
      "typeVersion": 1.2,
      "position": [
        640,
        260
      ],
      "id": "3b512edb-be6b-4a3d-986b-690a360374be",
      "name": "Create Event",
      "credentials": {
        "googleCalendarOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "descriptionType": "manual",
        "toolDescription": "Call this tool to get events from Neil's calendar using a before and after date to filter.",
        "operation": "getAll",
        "calendar": {
          "__rl": true,
          "value": "yashsoni.coding@gmail.com",
          "mode": "list",
          "cachedResultName": "yashsoni.coding@gmail.com"
        },
        "options": {
          "timeMin": "={{ $fromAI(\"after\", \"the date that the events are after\") }}",
          "timeMax": "={{ $fromAI(\"before\", \"the date that the events are before\") }}",
          "timeZone": {
            "__rl": true,
            "value": "Asia/Calcutta",
            "mode": "list",
            "cachedResultName": "Asia/Calcutta"
          }
        }
      },
      "type": "n8n-nodes-base.googleCalendarTool",
      "typeVersion": 1.2,
      "position": [
        780,
        260
      ],
      "id": "2b9fc858-671e-4211-ab21-339bce472b1e",
      "name": "Get Events",
      "credentials": {
        "googleCalendarOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "name": "GetTodaysTasks",
        "description": "Call this tool to get a list of tasks from yash's Todoist account",
        "workflowId": {
          "__rl": true,
          "value": "I9oE8GBtemyEAiyi",
          "mode": "list",
          "cachedResultName": "My Sub-Workflow 2"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "typeVersion": 1.3,
      "position": [
        520,
        260
      ],
      "id": "afa20357-13d3-4a22-abc0-15a5618133c8",
      "name": "get Tasks"
    },
    {
      "parameters": {
        "sessionIdType": "customKey",
        "sessionKey": "={{ $('Telegram Trigger').item.json.message.chat.id }}"
      },
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "typeVersion": 1.3,
      "position": [
        1280,
        -260
      ],
      "id": "27bce9db-3b1d-4612-be23-76b14c140a08",
      "name": "Window Buffer Memory"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "15bc9c50-5a08-4b84-a15c-958acf266ec3",
              "name": "chatInput",
              "value": "={{ $json.text }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        700,
        -280
      ],
      "id": "ae1df3dd-8988-4501-b9b0-4335c84986ef",
      "name": "Edit Fields1"
    },
    {
      "parameters": {
        "name": "CreateTask",
        "description": "Call this tool to create a task in Todoist. The input should be the task name and due date in plain text.",
        "workflowId": {
          "__rl": true,
          "value": "fo2DjBeOxbDV65Ik",
          "mode": "list",
          "cachedResultName": "My Sub-Workflow 1"
        },
        "fields": {
          "values": [
            {
              "name": "task_name",
              "stringValue": "={{ $fromAI('query').split(/\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z/)[0].trim() }}"
            },
            {
              "name": "due_date",
              "stringValue": "={{ $fromAI('query').match(/\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z/)[0] }}"
            }
          ]
        }
      },
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "typeVersion": 1.3,
      "position": [
        400,
        260
      ],
      "id": "111502c7-879f-427d-ba8f-2459c3691d24",
      "name": "Create Task"
    },
    {
      "parameters": {
        "descriptionType": "manual",
        "toolDescription": "Call this tool to send a text email from Yash. It requires an email address or email addresses to send to, a subject, and a message.",
        "sendTo": "={{ $fromAI(\"email\", \"the email address or addresses of the recipient or recipients\") }}",
        "subject": "={{ $fromAI(\"subject\", \"the subject of the email\") }}",
        "emailType": "text",
        "message": "={{ $fromAI(\"message\", \"the content of the email to be sent\") }}",
        "options": {
          "appendAttribution": "={{ false }}"
        }
      },
      "type": "n8n-nodes-base.gmailTool",
      "typeVersion": 2.1,
      "position": [
        900,
        260
      ],
      "id": "6a57ca1e-d33a-4533-ae41-1860d2dc82b2",
      "name": "Send Emails",
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "descriptionType": "manual",
        "toolDescription": "Call this tool to get emails from Neil's inbox. To filter, it will need date/time info for \"received after\" and \"received before\"",
        "operation": "getAll",
        "returnAll": true,
        "filters": {
          "labelIds": [
            "INBOX"
          ],
          "readStatus": "both",
          "receivedAfter": "={{ $fromAI(\"after_date\", \"the date that emails were received after\") }}",
          "receivedBefore": "={{ $fromAI(\"before_date\", \"the date that emails were received before\") }}",
          "sender": "={{ $fromAI(\"sender_name\", \"the name or email of the person who sent the email\") }}"
        }
      },
      "type": "n8n-nodes-base.gmailTool",
      "typeVersion": 2.1,
      "position": [
        1020,
        260
      ],
      "id": "4ec322f0-8f1e-411d-b9ba-dd5612208205",
      "name": "Get Emails",
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {},
      "type": "@n8n/n8n-nodes-langchain.toolCalculator",
      "typeVersion": 1,
      "position": [
        1640,
        260
      ],
      "id": "2ffd4df5-f2ac-4391-9ca6-e8c677357592",
      "name": "Calculator"
    },
    {
      "parameters": {
        "options": {
          "gl": "in"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.toolSerpApi",
      "typeVersion": 1,
      "position": [
        1120,
        260
      ],
      "id": "3cbc67d3-7ff6-45ec-8a84-4e09e8efa6d0",
      "name": "SerpAPI",
      "credentials": {
        "serpApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "descriptionType": "manual",
        "toolDescription": "\u2022 This tool fetches the latest trending articles and discussions from Hacker News.\n\u2022 Focuses on technology, startups, programming, and innovation.\n\u2022 Delivers headlines and article links directly to Yash, keeping him updated with industry trends.",
        "resource": "all",
        "additionalFields": {
          "keyword": "={{ $fromAI('query') }}"
        }
      },
      "type": "n8n-nodes-base.hackerNewsTool",
      "typeVersion": 1,
      "position": [
        1240,
        260
      ],
      "id": "c5ec3f89-e26d-4a69-b269-22cda9b91c89",
      "name": "Hacker News"
    },
    {
      "parameters": {},
      "type": "@n8n/n8n-nodes-langchain.toolWikipedia",
      "typeVersion": 1,
      "position": [
        1380,
        260
      ],
      "id": "8444b0f1-a115-415c-94a2-1823c0433fcb",
      "name": "Wikipedia"
    },
    {
      "parameters": {},
      "type": "@n8n/n8n-nodes-langchain.toolWolframAlpha",
      "typeVersion": 1,
      "position": [
        1500,
        260
      ],
      "id": "3317d11f-e931-4a35-954c-7c1d81e3f27e",
      "name": "Wolfram Alpha",
      "credentials": {
        "wolframAlphaApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "options": {
          "systemMessage": "=You are a highly capable and intelligent personal assistant for Yash Soni, tasked with helping him manage his daily responsibilities. Your role is to organize, automate, and execute tasks across his calendar, email, to-do list, and broader workflows. You are proactive, efficient, and capable of delegating complex tasks to specialized sub-agents when necessary.\n\nCore Responsibilities:\n\t\u2022\tTime Management \u2013 Manage Yash\u2019s schedule, set meetings, and retrieve calendar events.\n\t\u2022\tCommunication \u2013 Send and retrieve emails efficiently.\n\t\u2022\tTask Management \u2013 Handle to-do lists, create and retrieve tasks from Todoist.\n\t\u2022\tNotes \u2013 Document important thoughts, ideas, and reminders when prompted.\n\nAvailable Tools and Agents:\n- Google Sheets: Search the Google Sheet \u2018Contacts\u2019 for an exact or closest match to [Name] in the \u2018Name\u2019 or \u2018Full Name\u2019 column. If found, retrieve the corresponding email from the \u2018Email\u2019 column. Return the email address. If no match is found, respond with \u2018Contact not found\u2019 and do not proceed with sending the email.\n\n- Google Calendar:\n\t\u2022\tGet Events \u2013 Retrieve events from Yash\u2019s calendar filtered by date and time.\n\t\u2022\tCreate Event \u2013 Use AI to parse the natural language input to get the summary, start time and end time. This tool is used to create an event in Yash's calendar - it will need a start date/time, an end date/time, and a title for the event.\nSchedule events by providing:\n\t\u2022\tTitle (summary)\n\t\u2022\tStart date/time (RFC3339 format)\n\t\u2022\tEnd date/time (RFC3339 format)\n\tGmail:\n\t\u2022\tGet Emails \u2013 Fetch emails received between specified date and time ranges.\n\t\u2022\tSend Email \u2013 Send emails on Yash\u2019s behalf (requires recipient, subject, and message).\n- Todoist (Task Management):\n\t\u2022\tGet Today's Tasks \u2013 Retrieve a list of tasks.\n\t\u2022\tCreate Task - This tool is used to create a task in Yash's Todoist account. The input should be the task name and due date. with each task including a task name and due date. If due date is not mentioned assume today's date. i want the due date in Specific date and time in RFC3339 format in UTC.\n\n- Search and Information Retrieval (New):\nYou have access to Wikipedia to search and retrieve information on any topic. Use it to provide Yash with quick summaries of historical events, technical concepts, biographies, and general knowledge topics. When relevant, include a link to the full article for further reading.\n- Weather:\nYou have access to a weather tool capable of retrieving real-time and forecasted weather data for any location. When responding to weather inquiries, provide the requested information concisely\n\n- Google Search (via SerpAPI):\n\t\u2022\tRetrieve top search results for any query.\nIdeal for finding articles, verifying information, market research, and answering general queries.\n\t\u2022\tProvide summaries and relevant links.\n\n- Hacker News (via API):\n\t\u2022\tFetch the latest headlines, tech news, and trending topics.\nThis tool fetches the latest trending articles and discussions from Hacker News.\n\t\u2022\tFocuses on technology, startups, programming, and innovation.\n\n- Wolfram Alpha -\nYou have access to Wolfram Alpha \u2013 a powerful computational knowledge engine capable of performing complex mathematical calculations, solving equations, analyzing data, and retrieving factual, scientific, and real-time information.\n\nGuidelines:\n\t\u2022\tContext Awareness \u2013 Maintain awareness of the current time and date. Yash is based in Bangalore, India (IST timezone).\n\t\u2022\tProactive Assistance \u2013 Anticipate needs and provide suggestions to streamline workflows.\n\t\u2022\tEfficiency \u2013 Aim to execute tasks quickly and accurately, minimizing the need for follow-up.\n\nAt this moment, the current time is: {{ $now }}.\n\nIf the task is ambiguous or missing details, request clarification from Yash directly."
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 1.7,
      "position": [
        900,
        -40
      ],
      "id": "d6e2103e-9bb4-42f8-a0ae-5fc40b40b9e6",
      "name": "Jarvis"
    },
    {
      "parameters": {
        "messages": {
          "messageValues": [
            {
              "message": "=You are Jarvis, the sophisticated and quick-witted AI assistant from Iron Man. You have a refined British accent, a calm and confident demeanor, and a talent for dry, understated humor. When responding, adapt your tone based on the type of interaction.\n\nFor Specific Information Requests: If the user is asking for specific information (e.g., weather, schedule, contacts), begin with \u2018Here\u2019s what you requested, sir,\u2019 and DO NOT repeat the information but instead just follow provide a witty or snarky comment, something Jarvis would naturally say that adds personality without repeating the information.\n\nExamples:\nFor a weather update: \u2018Ah, another fine day for conquering the world\u2014or at least your to-do list, sir.\u2019\nFor a list of meetings: \u2018Looks like another thrilling day of\u2026 meetings. Try not to let the excitement overwhelm you.\u2019\n\nFor General or Casual Comments: If the user says something casual or conversational (like \u2018Are you ready to get started Sir?\u2019 or \u2018We\u2019ve got a lot of work to do Sir\u2019), respond naturally without stating \u2018Here\u2019s what you requested.\u2019 Instead, respond in a conversational style, with charm and a touch of humor. Engage in the flow of conversation as if you\u2019re part of a team.\n\nExamples:\nIf the user says, \u2018Are you ready to get started?\u2019 respond with: \u2018Absolutely, sir. I\u2019ve already polished my circuits for the occasion.\u2019\nFor \u2018Look alive, Jarvis!\u2019 you might say: \u2018Always, sir. I\u2019m operating at peak sophistication.\u2019\n\nKeep responses concise, engaging, and true to Jarvis\u2019s character\u2014a blend of intelligence, subtle humor, and a bit of charm that\u2019s never over the top.\n\noutput:  {{ $json.output }}"
            }
          ]
        }
      },
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "typeVersion": 1.5,
      "position": [
        1820,
        0
      ],
      "id": "157e41fc-73ba-4481-9095-6d2884c6c551",
      "name": "Basic LLM Chain"
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1,
      "position": [
        1940,
        160
      ],
      "id": "9a3f7d5f-4f63-4a9f-af40-24683ad84fec",
      "name": "OpenAI Chat Model1",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "resource": "audio",
        "input": "={{ $json.text }}",
        "voice": "onyx",
        "options": {
          "binaryPropertyOutput": "data"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.7,
      "position": [
        2180,
        0
      ],
      "id": "87642fc8-8854-4289-abe5-fbcdc211d94c",
      "name": "OpenAI1",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "cb2f2596-dfde-4b17-9942-60d043ef327c",
              "name": "chatInput",
              "value": "={{ $json.output }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        1540,
        0
      ],
      "id": "737fb724-2fc3-4df0-9237-f4a921518eae",
      "name": "Edit Fields2"
    },
    {
      "parameters": {
        "operation": "sendAudio",
        "chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
        "binaryData": true,
        "additionalFields": {}
      },
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [
        2400,
        0
      ],
      "id": "23d85d00-e102-4abc-b46c-4bed6ab41699",
      "name": "Telegram2",
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "name": "weather",
        "description": "Call this tool to get the weather information for today.",
        "workflowId": {
          "__rl": true,
          "value": "H8Db8IWhQWltqjVH",
          "mode": "list",
          "cachedResultName": "My Sub-Workflow 3"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "typeVersion": 1.3,
      "position": [
        1760,
        260
      ],
      "id": "f3d6baed-01cb-4713-b24a-c3e0304df9da",
      "name": "Weather"
    },
    {
      "parameters": {
        "descriptionType": "manual",
        "toolDescription": "Read, update and write data to Contacts list on Google Sheets. It contains Name, Full Name and email.",
        "documentId": {
          "__rl": true,
          "value": "1gSXgmxFP-v53XRl7PIxcuo-Z_etmsAZqX3nE1Gg256s",
          "mode": "list",
          "cachedResultName": "Contacts",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1gSXgmxFP-v53XRl7PIxcuo-Z_etmsAZqX3nE1Gg256s/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": "gid=0",
          "mode": "list",
          "cachedResultName": "Sheet1",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1gSXgmxFP-v53XRl7PIxcuo-Z_etmsAZqX3nE1Gg256s/edit#gid=0"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleSheetsTool",
      "typeVersion": 4.5,
      "position": [
        260,
        260
      ],
      "id": "e812a9d5-cb8e-4293-9a53-b1d2811d13a6",
      "name": "Contacts",
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "Telegram Trigger": {
      "main": [
        [
          {
            "node": "Switch",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "Jarvis",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Jarvis",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Switch": {
      "main": [
        [
          {
            "node": "Telegram",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Telegram": {
      "main": [
        [
          {
            "node": "OpenAI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI": {
      "main": [
        [
          {
            "node": "Edit Fields1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Event": {
      "ai_tool": [
        [
          {
            "node": "Jarvis",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get Events": {
      "ai_tool": [
        [
          {
            "node": "Jarvis",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "get Tasks": {
      "ai_tool": [
        [
          {
            "node": "Jarvis",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Window Buffer Memory": {
      "ai_memory": [
        [
          {
            "node": "Jarvis",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields1": {
      "main": [
        [
          {
            "node": "Jarvis",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Task": {
      "ai_tool": [
        [
          {
            "node": "Jarvis",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Send Emails": {
      "ai_tool": [
        [
          {
            "node": "Jarvis",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get Emails": {
      "ai_tool": [
        [
          {
            "node": "Jarvis",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Calculator": {
      "ai_tool": [
        [
          {
            "node": "Jarvis",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "SerpAPI": {
      "ai_tool": [
        [
          {
            "node": "Jarvis",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Hacker News": {
      "ai_tool": [
        [
          {
            "node": "Jarvis",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Wikipedia": {
      "ai_tool": [
        [
          {
            "node": "Jarvis",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Wolfram Alpha": {
      "ai_tool": [
        [
          {
            "node": "Jarvis",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Jarvis": {
      "main": [
        [
          {
            "node": "Telegram1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Basic LLM Chain": {
      "main": [
        [
          {
            "node": "OpenAI1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI1": {
      "main": [
        [
          {
            "node": "Telegram2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields2": {
      "main": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Weather": {
      "ai_tool": [
        [
          {
            "node": "Jarvis",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Contacts": {
      "ai_tool": [
        [
          {
            "node": "Jarvis",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "3a83d122-da69-4a55-8abd-71168e88690d",
  "id": "KtkaHBKkbY9Nd8ug",
  "tags": []
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

jarvis. Uses agent, lmChatOpenAi, outputParserStructured, toolWorkflow. Webhook trigger; 13 nodes.

Source: https://github.com/reklis/ovos-n8n-jarvis-persona/blob/33fc762ada5e4f88ce1b53d5ae607d9d52c3aae0/workflows/jarvis.json — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

friday. Uses lmChatOpenAi, outputParserStructured, toolCalculator, memoryRedisChat. Webhook trigger; 14 nodes.

OpenAI Chat, Output Parser Structured, Tool Calculator +6
AI & RAG

1-[Agente-Abogado]-Asistente-Whatsapp. Uses lmChatOpenAi, toolWorkflow, toolCalculator, agent. Webhook trigger; 52 nodes.

OpenAI Chat, Tool Workflow, Tool Calculator +8
AI & RAG

[Agente-Abogado]-Asistente-Whatsapp. Uses lmChatOpenAi, toolWorkflow, memoryPostgresChat, toolCalculator. Webhook trigger; 51 nodes.

OpenAI Chat, Tool Workflow, Memory Postgres Chat +8
AI & RAG

Multi-Agent ReAct Orchestrator. Uses agent, lmChatOpenAi, outputParserStructured, memoryBufferWindow. Webhook trigger; 29 nodes.

Agent, OpenAI Chat, Output Parser Structured +2
AI & RAG

This workflow automates automotive regulatory compliance evaluation by intelligently routing assessments through parallel evaluation paths based on component type. Designed for automotive compliance o

Agent, OpenAI Chat, Output Parser Structured +3