{
  "name": "Vocea – Generate Audio from Webhook",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "vocea-generate",
        "options": {
          "responseMode": "responseNode"
        }
      },
      "id": "n1-webhook",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [240, 300],
      "webhookId": "vocea-generate-audio"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://vocea.app/api/v1/audios/generate",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "=Bearer {{ $vars.VOCEA_API_KEY }}"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        },
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "voice_id",
              "value": "={{ $('Webhook').item.json.body.voice_id }}"
            },
            {
              "name": "text",
              "value": "={{ $('Webhook').item.json.body.text }}"
            },
            {
              "name": "language_code",
              "value": "={{ $('Webhook').item.json.body.language_code ?? 'en' }}"
            }
          ]
        },
        "options": {}
      },
      "id": "n3-generate",
      "name": "Generate Audio",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [480, 300]
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "={\n  \"audioUrl\": \"{{ $('Generate Audio').item.json.audioUrl }}\",\n  \"audioId\": \"{{ $('Generate Audio').item.json.id }}\",\n  \"durationSeconds\": {{ $('Generate Audio').item.json.durationSeconds ?? null }},\n  \"characterCount\": {{ $('Generate Audio').item.json.characterCount }}\n}",
        "options": {
          "responseCode": 200
        }
      },
      "id": "n4-respond",
      "name": "Respond to Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.1,
      "position": [720, 300]
    }
  ],
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "Generate Audio",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Audio": {
      "main": [
        [
          {
            "node": "Respond to Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "meta": {
    "templateCredsSetupCompleted": true
  }
}
