AutomationFlowsAI & RAG › Agent Smoke E2e

Agent Smoke E2e

agent_smoke_e2e. Uses httpRequest. Event-driven trigger; 4 nodes.

Event trigger★★★★☆ complexity4 nodesHTTP Request
AI & RAG Trigger: Event Nodes: 4 Complexity: ★★★★☆ Added:

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
{
  "id": "2d9f4b6a-1e44-4a71-8d52-b1c6f7a9d404",
  "name": "agent_smoke_e2e",
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "nodes": [
    {
      "id": "ManualTriggerSmoke",
      "name": "Manual Trigger",
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        220,
        320
      ],
      "parameters": {}
    },
    {
      "id": "BuildSmokeInput",
      "name": "Build Smoke Input",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        460,
        320
      ],
      "parameters": {
        "jsCode": "const now = new Date().toISOString();\nconst sessionId = `smoke-${Date.now()}`;\nreturn [{\n  json: {\n    session_id: sessionId,\n    question: 'smoke: ping',\n    user_id: 'smoke-check',\n    token: $env.AGENT_WORKFLOW_TOKEN || '',\n    run_at: now\n  }\n}];"
      }
    },
    {
      "id": "CallAgentQuery",
      "name": "HTTP: agent_query_main",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        700,
        320
      ],
      "continueOnFail": true,
      "parameters": {
        "method": "POST",
        "url": "={{ (($env.INTERNAL_WEBHOOK_BASE_URL || 'http://127.0.0.1:5678').replace(/\\/?$/, '')) + '/webhook/' + ($env.N8N_AGENT_QUERY_WEBHOOK_PATH || 'agent-query') }}",
        "responseFormat": "string",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={{ { session_id: $json.session_id, user_id: $json.user_id, question: $json.question } }}",
        "options": {
          "timeout": 120000
        }
      }
    },
    {
      "id": "AssertAgentResponse",
      "name": "Assert Agent Response",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        940,
        320
      ],
      "parameters": {
        "jsCode": "if ($json.error) {\n  const message = String($json.error.message ?? $json.error ?? 'unknown upstream error');\n  throw new Error('agent_query_main call failed: ' + message);\n}\nconst rawBody = $json.body ?? $json.data ?? $json.response ?? $json;\nlet payload = rawBody;\nif (typeof rawBody === 'string') {\n  const text = rawBody.trim();\n  if (!text) throw new Error('agent_query_main returned empty body');\n  try {\n    payload = JSON.parse(text);\n  } catch {\n    throw new Error('agent_query_main returned non-JSON body: ' + text.slice(0, 300));\n  }\n}\nif (!payload || typeof payload !== 'object') {\n  throw new Error('agent_query_main returned unexpected payload type');\n}\nconst answer = String(payload.answer ?? '').trim();\nif (!answer) {\n  throw new Error('agent_query_main returned payload without answer');\n}\nreturn [{\n  json: {\n    session_id: String(payload.session_id ?? $json.session_id ?? ''),\n    answer\n  }\n}];"
      }
    }
  ],
  "connections": {
    "Manual Trigger": {
      "main": [
        [
          {
            "node": "Build Smoke Input",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Build Smoke Input": {
      "main": [
        [
          {
            "node": "HTTP: agent_query_main",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP: agent_query_main": {
      "main": [
        [
          {
            "node": "Assert Agent Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Assert Agent Response": {
      "main": [
        []
      ]
    }
  },
  "versionId": "00000000-0000-0000-0000-000000000004",
  "meta": {
    "templateCredsSetupCompleted": false
  },
  "tags": [
    {
      "name": "agent"
    },
    {
      "name": "smoke"
    }
  ]
}
Pro

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

About this workflow

agent_smoke_e2e. Uses httpRequest. Event-driven trigger; 4 nodes.

Source: https://github.com/Andrey787878/ai-knowledge-assistant/blob/main/n8n/workflows/agent_smoke_e2e.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

This is for SaaS founders, agency owners, and Sales Ops managers who use HubSpot but are tired of "toe-stepping." If your BDRs are accidentally emailing your AE’s active deals, or Marketing is blastin

Data Table, HTTP Request
AI & RAG

Inquiry-Agent. Uses @digitalocean/n8n-nodes-digitalocean-gradient-serverless-inference, stopAndError, googleDocs, gmail. Event-driven trigger; 59 nodes.

@Digitalocean/N8N Nodes Digitalocean Gradient Serverless Inference, Stop And Error, Google Docs +4
AI & RAG

AI Social Media Automation for Multiple Platforms using Blotato. Uses telegramTrigger, @blotato/n8n-nodes-blotato, telegram, httpRequest. Event-driven trigger; 52 nodes.

Telegram Trigger, @Blotato/N8N Nodes Blotato, Telegram +1
AI & RAG

CLEAN Agent - Manual Trigger. Uses googleDrive, googleSheets, httpRequest. Event-driven trigger; 49 nodes.

Google Drive, Google Sheets, HTTP Request
AI & RAG

🤖🧑‍💻 AI Agent for Top n8n Creators Leaderboard Reporting. Uses httpRequest, executeWorkflowTrigger, readWriteFile, googleDrive. Event-driven trigger; 49 nodes.

HTTP Request, Execute Workflow Trigger, Read Write File +3