This workflow corresponds to n8n.io template #16854 — we link there as the canonical source.
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": "Create real estate listing video ads with Videotok",
"tags": [
"videotok",
"openai",
"real estate",
"listing ads"
],
"nodes": [
{
"id": "685cad66-c13e-4a5b-8085-77612c238183",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1232,
0
],
"parameters": {
"width": 480,
"height": 624,
"content": "## Create real estate listing video ads with Videotok\n\n### How it works\n\n1. The workflow is manually triggered to start.\n2. Real estate listing details are set up in the workflow.\n3. An ad text is generated using OpenAI's API.\n4. A payload for Videotok is built from the gathered data.\n5. The payload is sent to create a video ad via the Videotok API.\n\n### Setup steps\n\n- [ ] Ensure OpenAI API credentials are configured for the 'Post to OpenAI for Ad Text' node.\n- [ ] Ensure Videotok API credentials are configured for the 'Post to Videotok API' node.\n\n### Customization\n\nModify the 'Set Real Estate Listing Details' node to input your own listing details."
},
"typeVersion": 1
},
{
"id": "06e73f6a-40bb-4cea-9021-0f6c642f7efa",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-672,
0
],
"parameters": {
"color": 7,
"width": 464,
"height": 304,
"content": "## Workflow trigger and setup\n\nStarts the workflow and sets the real estate listing details"
},
"typeVersion": 1
},
{
"id": "bc89c529-e4a6-40a9-87ea-c77ba4651380",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-128,
16
],
"parameters": {
"color": 7,
"width": 816,
"height": 272,
"content": "## Generate ad text\n\nUses OpenAI to generate ad copy for the listing"
},
"typeVersion": 1
},
{
"id": "manual",
"name": "Manually Initiate Workflow",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-624,
128
],
"parameters": {},
"typeVersion": 1
},
{
"id": "listing-source",
"name": "Set Listing Details",
"type": "n8n-nodes-base.set",
"position": [
-352,
128
],
"parameters": {
"assignments": {
"assignments": [
{
"id": "address",
"name": "address",
"type": "string",
"value": "Via Torino 21, Milan"
},
{
"id": "details",
"name": "listing_details",
"type": "string",
"value": "Bright two-bedroom apartment, renovated kitchen, balcony, close to metro and parks."
},
{
"id": "images",
"name": "listing_image_urls",
"type": "array",
"value": [
"https://example.com/living-room.jpg",
"https://example.com/kitchen.jpg"
]
}
]
}
},
"typeVersion": 3.4
},
{
"id": "openai-real-estate",
"name": "Generate Ad Text with OpenAI",
"type": "n8n-nodes-base.httpRequest",
"position": [
-80,
128
],
"parameters": {
"url": "https://api.openai.com/v1/responses",
"method": "POST",
"jsonBody": "={\"model\":\"gpt-4.1-mini\",\"input\":\"Create real-estate video ad JSON. Include title, hook, script, generation_prompt, caption, compliance_notes. Avoid unsupported claims. Input: \" + JSON.stringify($json)}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "=Bearer {{$vars.OPENAI_API_KEY}}"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "prepare-listing",
"name": "Prepare Videotok Data",
"type": "n8n-nodes-base.code",
"position": [
224,
128
],
"parameters": {
"jsCode": "const listing = $('Set Listing Details').first().json;\nconst raw = $input.first().json.output_text || '{}';\nlet brief;\ntry { brief = JSON.parse(raw); } catch { brief = { title: listing.address, generation_prompt: raw, caption: raw }; }\nreturn [{ json: { type: 'video_ad', template_slug: 'viral-video-ads', prompt: brief.generation_prompt, aspect_ratio: '9:16', duration: 8, quality_tier: 'high', reference_image_urls: listing.listing_image_urls || [], brand_kit_id: $vars.VIDEOTOK_BRAND_KIT_ID, idempotency_key: `real-estate-listing-${$execution.id}`, caption: brief.caption, compliance_notes: brief.compliance_notes } }];"
},
"typeVersion": 2
},
{
"id": "create-listing-ad",
"name": "Create Video Ad in Videotok",
"type": "n8n-nodes-base.httpRequest",
"position": [
544,
128
],
"parameters": {
"url": "https://videotok.app/api/v1/generations",
"method": "POST",
"jsonBody": "={{$json}}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "=Bearer {{$vars.VIDEOTOK_API_KEY}}"
},
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "Idempotency-Key",
"value": "={{$json.idempotency_key}}"
}
]
}
},
"typeVersion": 4.2
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "videotok-real-estate-listing-video-ads-1",
"connections": {
"Set Listing Details": {
"main": [
[
{
"node": "Generate Ad Text with OpenAI",
"type": "main",
"index": 0
}
]
]
},
"Prepare Videotok Data": {
"main": [
[
{
"node": "Create Video Ad in Videotok",
"type": "main",
"index": 0
}
]
]
},
"Manually Initiate Workflow": {
"main": [
[
{
"node": "Set Listing Details",
"type": "main",
"index": 0
}
]
]
},
"Generate Ad Text with OpenAI": {
"main": [
[
{
"node": "Prepare Videotok Data",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow takes a real estate listing, uses OpenAI to generate ad copy and a video generation prompt, then sends it to the Videotok API to create a 9:16 vertical listing video ad with a caption and compliance notes. Starts manually to test the workflow with a sample property…
Source: https://n8n.io/workflows/16854/ — 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.
legal_rag_telegram_api_current_github_ready. Uses telegramTrigger, httpRequest. Event-driven trigger; 56 nodes.
This workflow discovers trending topics from YouTube Most Popular and Google Trends, uses OpenAI to rank and draft Shorts-ready angles, stores items for review in Airtable, then sends approved records
This n8n workflow automatically generates presentation-style "screen recording" videos with AI-generated slides and a talking head avatar overlay. You provide a topic and intention, and the workflow h
Monitor Google Drive folder, parsing PDF, DOCX and image file into a destination folder, ready for further processing (e.g. RAG ingestion, translation, etc.) Keep processing log in Google Sheet and se
This workflow is designed for individuals and businesses looking to streamline the creation of engaging promotional videos. Whether you're marketing a product or developing a personal brand, this AI-d