{
  "id":"port13UgcOrchestrator","name":"Portfolio 13A - AI UGC Video Orchestrator","active":false,
  "nodes":[
    {"parameters":{"httpMethod":"POST","path":"portfolio-ugc-create","responseMode":"responseNode","options":{}},"webhookId":"f1310000-0000-4000-8000-000000000098","id":"f1310000-0000-4000-8000-000000000001","name":"UGC Brief Webhook","type":"n8n-nodes-base.webhook","typeVersion":2.1,"position":[-1100,0]},
    {"parameters":{"jsCode":"const i=$json.body??$json; const required=['requestId','product','description','benefits','audience','tone','platform','callToAction','templateId','targetSeconds','consentPolicyAccepted','scriptApproved','provider']; const missing=required.filter(k=>i[k]===undefined||i[k]===null||i[k]===''); if(missing.length)return[{json:{valid:false,error:`Missing UGC brief fields: ${missing.join(', ')}`}}]; if(!Array.isArray(i.benefits)||!i.benefits.length)return[{json:{valid:false,error:'Benefits must be a non-empty array'}}]; return[{json:{valid:true,...i,targetSeconds:Number(i.targetSeconds),idempotencyKey:`ugc:${i.requestId}`}}];"},"id":"f1310000-0000-4000-8000-000000000002","name":"Validate Marketing Brief","type":"n8n-nodes-base.code","typeVersion":2,"position":[-880,0]},
    {"parameters":{"conditions":{"options":{"caseSensitive":true,"typeValidation":"strict","version":2},"conditions":[{"id":"f1310000-0000-4000-8000-000000000003","leftValue":"={{ $json.valid }}","rightValue":true,"operator":{"type":"boolean","operation":"true","singleValue":true}}],"combinator":"and"},"options":{}},"id":"f1310000-0000-4000-8000-000000000004","name":"Valid Brief?","type":"n8n-nodes-base.if","typeVersion":2.2,"position":[-660,0]},
    {"parameters":{"method":"POST","url":"http://127.0.0.1:8787/ugc/campaigns","sendBody":true,"contentType":"raw","rawContentType":"application/json","body":"={{ JSON.stringify($json) }}","options":{"timeout":10000}},"id":"f1310000-0000-4000-8000-000000000005","name":"Create Campaign","type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"position":[-420,-100],"onError":"continueRegularOutput"},
    {"parameters":{"conditions":{"options":{"caseSensitive":true,"typeValidation":"strict","version":2},"conditions":[{"id":"f1310000-0000-4000-8000-000000000006","leftValue":"={{ Boolean($json.campaignId) }}","rightValue":true,"operator":{"type":"boolean","operation":"true","singleValue":true}}],"combinator":"and"},"options":{}},"id":"f1310000-0000-4000-8000-000000000007","name":"Campaign Accepted?","type":"n8n-nodes-base.if","typeVersion":2.2,"position":[-180,-100]},
    {"parameters":{"method":"POST","url":"http://127.0.0.1:8787/ugc/scripts","sendBody":true,"contentType":"raw","rawContentType":"application/json","body":"={{ JSON.stringify({campaignId:$json.campaignId,product:$json.product,benefits:$json.benefits,audience:$json.audience,tone:$json.tone,callToAction:$json.callToAction,idempotencyKey:`ugc:script:${$json.requestId}`}) }}","options":{"timeout":10000}},"id":"f1310000-0000-4000-8000-000000000008","name":"Generate Structured Script","type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"position":[60,-180],"retryOnFail":true,"maxTries":3,"waitBetweenTries":1000},
    {"parameters":{"conditions":{"options":{"caseSensitive":true,"typeValidation":"strict","version":2},"conditions":[{"id":"f1310000-0000-4000-8000-000000000009","leftValue":"={{ $('Validate Marketing Brief').item.json.scriptApproved }}","rightValue":true,"operator":{"type":"boolean","operation":"true","singleValue":true}}],"combinator":"and"},"options":{}},"id":"f1310000-0000-4000-8000-000000000010","name":"Operator Approved Script?","type":"n8n-nodes-base.if","typeVersion":2.2,"position":[300,-180]},
    {"parameters":{"method":"POST","url":"http://127.0.0.1:8787/ugc/render-jobs","sendBody":true,"contentType":"raw","rawContentType":"application/json","body":"={{ JSON.stringify({campaignId:$json.campaignId||$('Create Campaign').item.json.campaignId,scriptId:$json.scriptId,templateId:$('Validate Marketing Brief').item.json.templateId,approved:true,provider:$('Validate Marketing Brief').item.json.provider,idempotencyKey:`ugc:render:${$('Validate Marketing Brief').item.json.requestId}`}) }}","options":{"timeout":10000}},"id":"f1310000-0000-4000-8000-000000000011","name":"Queue Avatar Render","type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"position":[540,-280],"onError":"continueRegularOutput","retryOnFail":true,"maxTries":3,"waitBetweenTries":1000},
    {"parameters":{"respondWith":"json","responseBody":"={{ JSON.stringify({ok:true,status:'render-queued',renderJob:$json,script:$('Generate Structured Script').item.json}) }}","options":{"responseCode":202}},"id":"f1310000-0000-4000-8000-000000000012","name":"Return Render Job","type":"n8n-nodes-base.respondToWebhook","typeVersion":1.4,"position":[780,-280]},
    {"parameters":{"respondWith":"json","responseBody":"={{ JSON.stringify({ok:true,status:'script-awaiting-approval',script:$json}) }}","options":{"responseCode":200}},"id":"f1310000-0000-4000-8000-000000000013","name":"Return Script Draft","type":"n8n-nodes-base.respondToWebhook","typeVersion":1.4,"position":[540,-80]},
    {"parameters":{"respondWith":"json","responseBody":"={{ JSON.stringify({ok:false,status:'invalid-ugc-brief',error:$json.error}) }}","options":{"responseCode":400}},"id":"f1310000-0000-4000-8000-000000000014","name":"Return Invalid Brief","type":"n8n-nodes-base.respondToWebhook","typeVersion":1.4,"position":[-420,180]},
    {"parameters":{"respondWith":"json","responseBody":"={{ JSON.stringify({ok:false,status:'consent-or-campaign-rejected',error:'Licensed avatar, voice, and media consent is required'}) }}","options":{"responseCode":409}},"id":"f1310000-0000-4000-8000-000000000015","name":"Return Consent Failure","type":"n8n-nodes-base.respondToWebhook","typeVersion":1.4,"position":[60,40]}
  ],
  "connections":{"UGC Brief Webhook":{"main":[[{"node":"Validate Marketing Brief","type":"main","index":0}]]},"Validate Marketing Brief":{"main":[[{"node":"Valid Brief?","type":"main","index":0}]]},"Valid Brief?":{"main":[[{"node":"Create Campaign","type":"main","index":0}],[{"node":"Return Invalid Brief","type":"main","index":0}]]},"Create Campaign":{"main":[[{"node":"Campaign Accepted?","type":"main","index":0}]]},"Campaign Accepted?":{"main":[[{"node":"Generate Structured Script","type":"main","index":0}],[{"node":"Return Consent Failure","type":"main","index":0}]]},"Generate Structured Script":{"main":[[{"node":"Operator Approved Script?","type":"main","index":0}]]},"Operator Approved Script?":{"main":[[{"node":"Queue Avatar Render","type":"main","index":0}],[{"node":"Return Script Draft","type":"main","index":0}]]},"Queue Avatar Render":{"main":[[{"node":"Return Render Job","type":"main","index":0}]]}},
  "settings":{"executionOrder":"v1"},"pinData":{},"versionId":"f1310000-0000-4000-8000-000000000099","meta":{"templateCredsSetupCompleted":true},"tags":[]
}
