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": "06 - AI Mashup Request Pipeline",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "mashup-requested",
"responseMode": "onReceived"
},
"name": "Webhook: mashup.requested",
"type": "n8n-nodes-base.webhook",
"position": [
250,
300
],
"id": "node-trigger"
},
{
"parameters": {
"operation": "executeQuery",
"query": "SELECT t1.r2_url_processed as track_a_url, t1.bpm as track_a_bpm, t1.key as track_a_key, t2.r2_url_processed as track_b_url, t2.bpm as track_b_bpm, t2.key as track_b_key FROM tracks t1, tracks t2 WHERE t1.id = '{{ $json.track_a_id }}' AND t2.id = '{{ $json.track_b_id }}'"
},
"name": "Neon: Get Track Data",
"type": "n8n-nodes-base.postgres",
"position": [
500,
300
],
"id": "node-get-tracks"
},
{
"parameters": {
"url": "={{ $env.DJ_SERVICE_URL }}/mash",
"method": "POST",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "track_a_url",
"value": "={{ $json.track_a_url }}"
},
{
"name": "track_b_url",
"value": "={{ $json.track_b_url }}"
},
{
"name": "track_a_bpm",
"value": "={{ $json.track_a_bpm }}"
},
{
"name": "track_b_bpm",
"value": "={{ $json.track_b_bpm }}"
},
{
"name": "stem_routing",
"value": "={{ $json.stem_routing || 'vocals_a_beat_b' }}"
},
{
"name": "output_format",
"value": "mp3_320"
}
]
},
"options": {
"timeout": 180000
}
},
"name": "dj-service: Generate Mashup",
"type": "n8n-nodes-base.httpRequest",
"position": [
750,
300
],
"id": "node-mashup"
},
{
"parameters": {
"operation": "executeQuery",
"query": "INSERT INTO tracks (id, creator_id, title, vibe_packet, r2_url_processed, stems) VALUES (gen_random_uuid(), '{{ $json.requester_id }}', 'Mashup: {{ $json.track_a_title }} x {{ $json.track_b_title }}', '{{ JSON.stringify($json.vibe_packet) }}'::jsonb, '{{ $json.mashup_url }}', '{}'::jsonb) RETURNING id"
},
"name": "Neon: Store Mashup Track",
"type": "n8n-nodes-base.postgres",
"position": [
1000,
300
],
"id": "node-store-mashup"
},
{
"parameters": {
"url": "={{ $env.BRAIN_URL }}/events/core",
"method": "POST",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "event",
"value": "mashup.completed"
},
{
"name": "payload",
"value": "={{ { mashup_track_id: $json.id, requester_id: $json.requester_id, source_tracks: [$json.track_a_id, $json.track_b_id] } }}"
}
]
}
},
"name": "Brain: Emit mashup.completed",
"type": "n8n-nodes-base.httpRequest",
"position": [
1250,
300
],
"id": "node-emit"
},
{
"parameters": {
"url": "={{ $env.BRAIN_URL }}/events/core",
"method": "POST",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "event",
"value": "discovery.new_track"
},
{
"name": "payload",
"value": "={{ { track_id: $json.id, source: 'mashup', push_to_feed: true } }}"
}
]
}
},
"name": "Brain: Push to Discovery Feed",
"type": "n8n-nodes-base.httpRequest",
"position": [
1500,
300
],
"id": "node-discovery"
}
],
"connections": {
"Webhook: mashup.requested": {
"main": [
[
{
"node": "Neon: Get Track Data",
"type": "main",
"index": 0
}
]
]
},
"Neon: Get Track Data": {
"main": [
[
{
"node": "dj-service: Generate Mashup",
"type": "main",
"index": 0
}
]
]
},
"dj-service: Generate Mashup": {
"main": [
[
{
"node": "Neon: Store Mashup Track",
"type": "main",
"index": 0
}
]
]
},
"Neon: Store Mashup Track": {
"main": [
[
{
"node": "Brain: Emit mashup.completed",
"type": "main",
"index": 0
}
]
]
},
"Brain: Emit mashup.completed": {
"main": [
[
{
"node": "Brain: Push to Discovery Feed",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
},
"tags": [
"disco-bass",
"mashup",
"dj"
]
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
06 - AI Mashup Request Pipeline. Uses postgres, httpRequest. Webhook trigger; 6 nodes.
Source: https://github.com/think-zone/creator-os/blob/main/n8n-workflows/06-mashup-request.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.