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 →
{
"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"
}
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 →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
HeyDinastia. Uses executeCommand, httpRequest, youTube, postgres. Webhook trigger; 66 nodes.
Chatbot-Query-Qdrant. Uses httpRequest, postgres. Webhook trigger; 7 nodes.
Camila IA. Uses postgres, crypto, redis, agent. Webhook trigger; 92 nodes.
Turn unstructured pitch decks and investment memos into polished Due Diligence PDF reports automatically. This n8n workflow handles everything from document ingestion to final delivery, combining inte
Transform raw investment memorandums and financial decks into comprehensive, professional Due Diligence (DD) PDF reports. This workflow automates document parsing via LlamaParse, enriches internal dat