AutomationFlowsAI & RAG › Pragmas - Ingest Paper

Pragmas - Ingest Paper

PRAGMAS - Ingest Paper. Uses executeCommand, httpRequest. Webhook trigger; 4 nodes.

Webhook trigger★★★★☆ complexity4 nodesExecute CommandHTTP Request
AI & RAG Trigger: Webhook Nodes: 4 Complexity: ★★★★☆ Added:

This workflow follows the Executecommand → HTTP Request 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": "PRAGMAS - Ingest Paper",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "pragmas/ingest-paper",
        "responseMode": "lastNode",
        "options": {}
      },
      "id": "1",
      "name": "Paper Ingest Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        240,
        300
      ]
    },
    {
      "parameters": {
        "jsCode": "const body = $json.body ?? {};\nconst query = $json.query ?? {};\nconst arxivId = String(body.arxivId ?? query.arxivId ?? $json.arxivId ?? '').trim();\nif (!arxivId) {\n  throw new Error('arxivId is required');\n}\nconst rawDownload = body.downloadPdf ?? query.downloadPdf ?? $json.downloadPdf ?? false;\nconst downloadPdf = ['1', 'true', 'yes', 'on'].includes(String(rawDownload).toLowerCase());\nconst shellQuote = (value) => JSON.stringify(String(value)).replace(/[`$]/g, '\\\\$&');\nconst parts = ['python3 /workspace/scripts/analysis/ingest_arxiv_paper.py', '--vault-path', '/workspace/obsidian-vault', '--arxiv-id', arxivId];\nif (downloadPdf) {\n  parts.push('--download-pdf');\n}\nreturn [{\n  json: {\n    arxivId,\n    downloadPdf,\n    command: parts.map((part, index) => index === 0 || part === '--download-pdf' ? part : shellQuote(part)).join(' ')\n  }\n}];"
      },
      "id": "2",
      "name": "Prepare Request",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        500,
        300
      ]
    },
    {
      "parameters": {
        "command": "={{$json.command}}"
      },
      "id": "3",
      "name": "Create Paper Note",
      "type": "n8n-nodes-base.executeCommand",
      "typeVersion": 1,
      "position": [
        780,
        300
      ]
    },
    {
      "parameters": {
        "method": "GET",
        "url": "={{$env.OBSIDIAN_API_BASE_URL + '/vault/search'}}",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "={{'Bearer ' + $env.OBSIDIAN_API_TOKEN}}"
            }
          ]
        },
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "query",
              "value": "={{$('Prepare Request').item.json.arxivId}}"
            },
            {
              "name": "limit",
              "value": "3"
            }
          ]
        },
        "options": {}
      },
      "id": "4",
      "name": "Verify In Vault",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1040,
        300
      ]
    }
  ],
  "connections": {
    "Paper Ingest Webhook": {
      "main": [
        [
          {
            "node": "Prepare Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Request": {
      "main": [
        [
          {
            "node": "Create Paper Note",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Paper Note": {
      "main": [
        [
          {
            "node": "Verify In Vault",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": true,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "pragmas-ingest-paper-v2",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "id": "pragmas-ingest-paper"
}
Pro

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

About this workflow

PRAGMAS - Ingest Paper. Uses executeCommand, httpRequest. Webhook trigger; 4 nodes.

Source: https://github.com/pragmasg/oros/blob/30d34ca64e9d5769a502747bfe15b88a7fe8e679/n8n-workflows/ingest-paper.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

HeyDinastia. Uses executeCommand, httpRequest, youTube, postgres. Webhook trigger; 66 nodes.

Execute Command, HTTP Request, YouTube +15
AI & RAG

ai agent flow. Uses httpRequest, agent, lmChatOllama, executeCommand. Webhook trigger; 21 nodes.

HTTP Request, Agent, Ollama Chat +5
AI & RAG

This workflow exposes a webhook-based FAQ endpoint that embeds incoming questions with OpenAI, retrieves relevant knowledge base chunks from Supabase pgvector, and asks Anthropic Claude to answer stri

HTTP Request
AI & RAG

Document Ingestion Pipeline. Uses executeCommand, readBinaryFile, readPDF, httpRequest. Event-driven trigger; 12 nodes.

Execute Command, Read Binary File, Read Pdf +2
AI & RAG

Agente IA con ChromaDB + Ollama + API Empresa. Uses httpRequest, functionItem. Webhook trigger; 8 nodes.

HTTP Request, Function Item