This workflow follows the HTTP Request → Postgres 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": "01 - Audio Upload Pipeline",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "audio-uploaded",
"responseMode": "onReceived",
"responseData": "{ \"status\": \"processing\" }"
},
"name": "Webhook: audio.uploaded",
"type": "n8n-nodes-base.webhook",
"position": [
250,
300
],
"id": "node-webhook-audio-uploaded"
},
{
"parameters": {
"url": "={{ $env.DJ_SERVICE_URL }}/process",
"method": "POST",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "track_id",
"value": "={{ $json.track_id }}"
},
{
"name": "r2_url_raw",
"value": "={{ $json.r2_url_raw }}"
},
{
"name": "operations",
"value": [
"transcode",
"stems",
"analyze",
"vibe"
]
}
]
},
"options": {
"timeout": 120000
}
},
"name": "dj-service: Full Process",
"type": "n8n-nodes-base.httpRequest",
"position": [
500,
300
],
"id": "node-dj-process"
},
{
"parameters": {
"url": "={{ $env.VIBE_ENGINE_URL }}/classify",
"method": "POST",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "audio_features",
"value": "={{ $json.audio_features }}"
}
]
}
},
"name": "Vibe Engine: Classify",
"type": "n8n-nodes-base.httpRequest",
"position": [
750,
300
],
"id": "node-vibe-classify"
},
{
"parameters": {
"url": "={{ $env.MESHTOOL_API_URL }}/v1/tools/imagegen",
"method": "POST",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "prompt",
"value": "Album cover art: {{ $json.vibe_packet.primary_vibe }} music, {{ $json.vibe_packet.emotion }} mood, {{ $json.vibe_packet.mood_tags.join(', ') }}"
},
{
"name": "style",
"value": "music album cover, professional, cinematic"
}
]
}
},
"name": "MeshTool: Generate Cover Art",
"type": "n8n-nodes-base.httpRequest",
"position": [
1000,
200
],
"id": "node-cover-art"
},
{
"parameters": {
"operation": "executeQuery",
"query": "INSERT INTO tracks (id, creator_id, title, bpm, key, vibe_packet, r2_url_raw, r2_url_processed, stems) VALUES ('{{ $json.track_id }}', '{{ $json.creator_id }}', '{{ $json.title }}', {{ $json.audio_features.bpm }}, '{{ $json.audio_features.key }}', '{{ JSON.stringify($json.vibe_packet) }}'::jsonb, '{{ $json.r2_url_raw }}', '{{ $json.r2_url_processed }}', '{{ JSON.stringify($json.stems) }}'::jsonb) ON CONFLICT (id) DO UPDATE SET vibe_packet = EXCLUDED.vibe_packet, r2_url_processed = EXCLUDED.r2_url_processed, stems = EXCLUDED.stems;"
},
"name": "Neon DB: Write Track Record",
"type": "n8n-nodes-base.postgres",
"position": [
1000,
400
],
"id": "node-neon-write"
},
{
"parameters": {
"url": "={{ $env.BRAIN_URL }}/events/core",
"method": "POST",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "event",
"value": "audio.processed"
},
{
"name": "payload",
"value": "={{ { track_id: $json.track_id, creator_id: $json.creator_id, vibe_packet: $json.vibe_packet, title: $json.title } }}"
}
]
}
},
"name": "Brain: Emit audio.processed",
"type": "n8n-nodes-base.httpRequest",
"position": [
1250,
300
],
"id": "node-brain-emit"
}
],
"connections": {
"Webhook: audio.uploaded": {
"main": [
[
{
"node": "dj-service: Full Process",
"type": "main",
"index": 0
}
]
]
},
"dj-service: Full Process": {
"main": [
[
{
"node": "Vibe Engine: Classify",
"type": "main",
"index": 0
}
]
]
},
"Vibe Engine: Classify": {
"main": [
[
{
"node": "MeshTool: Generate Cover Art",
"type": "main",
"index": 0
},
{
"node": "Neon DB: Write Track Record",
"type": "main",
"index": 0
}
]
]
},
"Neon DB: Write Track Record": {
"main": [
[
{
"node": "Brain: Emit audio.processed",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
},
"tags": [
"disco-bass",
"audio",
"pipeline"
]
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
01 - Audio Upload Pipeline. Uses httpRequest, postgres. Webhook trigger; 6 nodes.
Source: https://github.com/think-zone/creator-os/blob/main/n8n-workflows/01-audio-upload-pipeline.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.
CMM. Uses httpRequest, postgres, redis. Webhook trigger; 90 nodes.
Scraping. Uses httpRequest, postgres, @apify/n8n-nodes-apify, respondToWebhook. Webhook trigger; 61 nodes.
Workflow B — AI Listing Engine. Uses httpRequest, postgres, errorTrigger. Webhook trigger; 47 nodes.
LogSentinel Workflow. Uses postgres, emailSend, httpRequest. Webhook trigger; 44 nodes.
Post-Prayer. Uses postgres, httpRequest. Webhook trigger; 44 nodes.