{ "id": "OVSyGmI6YFviPu8Q", "meta": { "instanceId": "workflow-471af9a4", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:51.737947", "updatedAt": "2025-09-29T07:07:51.737968", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production" }, "name": "Generate audio from text using OpenAI - text-to-speech Workflow", "tags": [ "automation", "n8n", "production-ready", "excellent", "optimized" ], "nodes": [ { "id": "c40966a4-1709-4998-ae95-b067ce3496c9", "name": "Respond to Webhook", "type": "n8n-nodes-base.respondToWebhook", "position": [ 1320, 200 ], "parameters": { "options": {}, "respondWith": "binary" }, "typeVersion": 1.1, "notes": "This respondToWebhook node performs automated tasks as part of the workflow." }, { "id": "c4e57bb6-79a4-4b26-a179-73e30d681521", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [ 280, -140 ], "parameters": { "width": 501.55, "height": 493.060000000001, "content": "This `Webhook` node triggers the workflow when it receives a POST request.\n\n### 1. Test Mode:\n* Use the test webhook URL\n* Click the `Test workflow` button on the canvas. (In test mode, the webhook only works for one call after you click this button)\n\n### 1. Production Mode:\n* The workflow must be active for a **Production URL** to run successfully.\n* You can activate the workflow using the toggle in the top-right of the editor.\n* Note that unlike test URL calls, production URL calls aren't shown on the canvas (only in the executions list)." }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "1364a4b6-2651-4b38-b335-c36783a25f12", "name": "Sticky Note1", "type": "n8n-nodes-base.stickyNote", "position": [ 825, 60 ], "parameters": { "color": 4, "width": 388.35000000000025, "height": 292.71000000000043, "content": "### Configure the OpenAI node with your API key:\nIf you haven't connected your OpenAI credentials in n8n yet, log in to your OpenAI account to get your API Key. Then, open the OpenAI node, click `Create New Credentials` and connect with the **OpenAI API**.\n" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "ba755814-75e6-4e16-b3a6-50cf4fc06350", "name": "Webhook", "type": "n8n-nodes-base.webhook", "position": [ 480, 200 ], "webhookId": "28feeb38-ef2d-4a2e-bd7c-25a524068e25", "parameters": { "path": "generate_audio", "options": {}, "httpMethod": "POST", "responseMode": "responseNode" }, "typeVersion": 2, "notes": "This webhook node performs automated tasks as part of the workflow." }, { "id": "ac46df50-cb1f-484c-8edf-8131192ba464", "name": "OpenAI", "type": "n8n-nodes-base.noOp", "position": [ 960, 200 ], "parameters": { "input": "={{ $json.body.text_to_convert }}", "voice": "fable", "options": {}, "resource": "audio" }, "credentials": { "openAiApi": { "id": "2Cije3KX7OIVwn9B", "name": "n8n OpenAI" } }, "typeVersion": 1.3, "notes": "This openAi node performs automated tasks as part of the workflow." } ], "active": false, "pinData": {}, "settings": { "executionOrder": "v1", "saveManualExecutions": true, "callerPolicy": "workflowsFromSameOwner", "errorWorkflow": null, "timezone": "UTC", "executionTimeout": 3600, "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3, "retryDelay": 1000 }, "versionId": "84f1b893-e1a3-40c3-83b0-7cd637b353c4", "connections": { "c40966a4-1709-4998-ae95-b067ce3496c9": { "main": [ [ { "node": "error-handler-c40966a4-1709-4998-ae95-b067ce3496c9", "type": "main", "index": 0 } ], [ { "node": "error-handler-c40966a4-1709-4998-ae95-b067ce3496c9-d28fb262", "type": "main", "index": 0 } ], [ { "node": "error-handler-c40966a4-1709-4998-ae95-b067ce3496c9-ee0ecf40", "type": "main", "index": 0 } ], [ { "node": "error-handler-c40966a4-1709-4998-ae95-b067ce3496c9-79070cd0", "type": "main", "index": 0 } ], [ { "node": "error-handler-c40966a4-1709-4998-ae95-b067ce3496c9-d2f800a0", "type": "main", "index": 0 } ], [ { "node": "error-handler-c40966a4-1709-4998-ae95-b067ce3496c9-9eac37c7", "type": "main", "index": 0 } ], [ { "node": "error-handler-c40966a4-1709-4998-ae95-b067ce3496c9-32380504", "type": "main", "index": 0 } ], [ { "node": "error-handler-c40966a4-1709-4998-ae95-b067ce3496c9-2e41c6a6", "type": "main", "index": 0 } ], [ { "node": "error-handler-c40966a4-1709-4998-ae95-b067ce3496c9-7fc5829e", "type": "main", "index": 0 } ] ] }, "ba755814-75e6-4e16-b3a6-50cf4fc06350": { "main": [ [ { "node": "error-handler-ba755814-75e6-4e16-b3a6-50cf4fc06350", "type": "main", "index": 0 } ], [ { "node": "error-handler-ba755814-75e6-4e16-b3a6-50cf4fc06350-5cdb69b8", "type": "main", "index": 0 } ], [ { "node": "error-handler-ba755814-75e6-4e16-b3a6-50cf4fc06350-97cf7581", "type": "main", "index": 0 } ], [ { "node": "error-handler-ba755814-75e6-4e16-b3a6-50cf4fc06350-2f4506b4", "type": "main", "index": 0 } ], [ { "node": "error-handler-ba755814-75e6-4e16-b3a6-50cf4fc06350-abaf2d10", "type": "main", "index": 0 } ], [ { "node": "error-handler-ba755814-75e6-4e16-b3a6-50cf4fc06350-1e3bc39b", "type": "main", "index": 0 } ], [ { "node": "error-handler-ba755814-75e6-4e16-b3a6-50cf4fc06350-bf79970b", "type": "main", "index": 0 } ], [ { "node": "error-handler-ba755814-75e6-4e16-b3a6-50cf4fc06350-34007f18", "type": "main", "index": 0 } ], [ { "node": "error-handler-ba755814-75e6-4e16-b3a6-50cf4fc06350-471ffc04", "type": "main", "index": 0 } ] ] }, "ac46df50-cb1f-484c-8edf-8131192ba464": { "main": [ [ { "node": "error-handler-ac46df50-cb1f-484c-8edf-8131192ba464-1a635d52", "type": "main", "index": 0 } ] ] } }, "description": "Automated workflow: Generate audio from text using OpenAI - text-to-speech Workflow. This workflow integrates 5 different services: webhook, stickyNote, respondToWebhook, stopAndError, openAi. It contains 10 nodes and follows best practices for error handling and security.", "notes": "Excellent quality workflow: Generate audio from text using OpenAI - text-to-speech Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation." }