A property lister spends Tuesday morning photographing a three-bed terraced house. By Wednesday afternoon, those 47 photos still sit in a folder on their laptop. The description is half-written. The virtual tour doesn't exist. Meanwhile, three serious buyers have already moved on to competitors with polished listings. This scenario repeats across thousands of agents every single day, and it's almost entirely self-imposed friction. The gap between raw property data and a market-ready listing is not a technical problem anymore. It's an execution problem. You have the tools to move from photograph to finished product without once opening Photoshop, writing copy from scratch, or manually stitching together a video presentation. What's missing is the connective tissue: the automated workflow that treats your photos as inputs and produces a complete, publication-ready listing as output. This post walks through a practical automation that feeds property images through three separate AI systems, each adding value, and exits with polished copy and a presentable video tour. No manual handoff between stages. One trigger, multiple outputs.
The Automated Workflow
The most reliable approach here uses n8n as your orchestration engine, running on a self-hosted instance or n8n Cloud. n8n gives you native connectors to the tools you need and granular control over error handling, which matters when you're wiring together external APIs. Here's the flow: a real estate agent uploads property images to a shared folder (Google Drive, Dropbox, or local storage). A webhook or scheduled trigger fires. N8n retrieves those images, sends them to Pixelcut AI for enhancement and background removal, stores the processed images, generates property copy via Copy.ai, and finally constructs a video script and hands it to Hour One for presentable video output.
Step 1: Trigger and image ingestion
Set up a webhook in n8n or use a folder monitor node. When new images land in your designated directory, the workflow fires:
Webhook trigger:
POST /webhook/real-estate-upload
Payload expects:
{ "property_id": "prop_12345", "property_address": "42 Maple Street, Bristol", "agent_email": "agent@agency.co.uk", "image_urls": ["url1", "url2", "url3"] // or local paths
}
Alternatively, use a folder watch node if files are uploaded directly to cloud storage. N8n's Google Drive integration works reliably for this.
Step 2: Image processing with Pixelcut AI
Pixelcut's API removes backgrounds, enhances colour and brightness, and corrects lighting issues. You'll send each image individually or batch them depending on your volume.
POST /api/v1/images/enhance
Headers: Authorization: Bearer YOUR_PIXELCUT_API_KEY Content-Type: application/json Body:
{ "image_url": "https://example.com/photo_01.jpg", "operations": [ { "type": "background_removal", "mode": "auto" }, { "type": "enhancement", "brightness": 1.1, "contrast": 1.05 } ], "output_format": "webp"
}
Map the response (processed image URL) into a variable. If you're processing multiple images, use n8n's loop node to iterate through the array and collect all enhanced images. Store the processed image URLs in a temporary object or database. You'll reference these later for the video.
Step 3: Generate property copy with Copy.ai
Copy.ai accepts a prompt and returns formatted copy. Structure your input to be specific about property features, neighbourhood, and listing type.
POST /api/v1/copy/generate
Headers: Authorization: Bearer YOUR_COPYAI_API_KEY Content-Type: application/json Body:
{ "template": "real_estate_listing", "variables": { "property_address": "42 Maple Street, Bristol", "property_type": "terraced house", "bedrooms": 3, "bathrooms": 2, "square_footage": 1200, "key_features": ["period features", "modern kitchen", "enclosed garden"], "neighbourhood_highlights": ["excellent schools", "high street access", "transport links"], "price": 425000 }, "tone": "professional and welcoming", "length": "medium"
}
Copy.ai will return structured copy: headline, body paragraphs, bullet points. Extract the headline and main body text. Store these as separate variables for reuse.
Step 4: Create video with Hour One
Hour One accepts a script and generates a video featuring a virtual presenter. You'll feed it the property copy and tell it which images to include.
POST /api/v1/videos/create
Headers: Authorization: Bearer YOUR_HOURONE_API_KEY Content-Type: application/json Body:
{ "title": "42 Maple Street, Bristol | 3-Bed Terraced Home", "script": { "text": "Welcome to 42 Maple Street. This beautiful three-bedroom terraced house is waiting for you. [SLIDE] The heart of this home is a modern kitchen with plenty of natural light. [SLIDE] Three generous bedrooms offer flexibility for family or home office space. [SLIDE] The enclosed garden is perfect for entertaining or quiet relaxation.", "presenter": "female_1", "language": "en-GB", "speed": 1.0 }, "images": [ { "url": "https://processed-images.example.com/exterior.webp", "duration": 3 }, { "url": "https://processed-images.example.com/kitchen.webp", "duration": 4 }, { "url": "https://processed-images.example.com/bedroom.webp", "duration": 3 }, { "url": "https://processed-images.example.com/garden.webp", "duration": 3 } ], "output_format": "mp4", "resolution": "1080p"
}
Hour One will return a video URL once processing is complete. This typically takes 2 to 10 minutes depending on video length and queue load.
Step 5: Collect outputs and notify
Once all three processes complete, gather the results: - Enhanced property images (from Pixelcut)
- Listing copy (headline and body from Copy.ai)
- Video URL (from Hour One) Send an email to the agent with links to all assets, or push them directly into your property management system via API. Use a webhook to trigger downstream actions: uploading to Rightmove, Zoopla, your own website, or a property database.
POST /api/v1/listings/create
Headers: Authorization: Bearer YOUR_CMS_API_KEY Content-Type: application/json Body:
{ "property_id": "prop_12345", "title": "Copy.ai generated headline", "description": "Copy.ai generated body text", "images": [ "https://processed.example.com/image1.webp", "https://processed.example.com/image2.webp" ], "video_url": "https://hourone-output.example.com/video.mp4", "price": 425000, "status": "published"
}
In n8n, use the HTTP Request node to send this payload to your CMS or listing portal.
The Manual Alternative
If you want tighter control over copy tone or image selection, you can automate the image processing and video generation while keeping copywriting manual. Upload enhanced images to a shared folder automatically, let Copy.ai generate three versions, and have the agent choose one before the video step fires. Use n8n's wait node to pause the workflow until approval arrives via email or form submission. Alternatively, skip Hour One entirely and create static listings with just the enhanced images and copy. This works fine for high-volume portfolios where video isn't essential.
Pro Tips Image selection and ordering:
Not all photos need to be processed. Use a tagging system in your source folder to mark which images are priority (exterior, kitchen, main bedroom). Reference these tags in your n8n trigger condition so you're not processing every shot. Rate limits: Pixelcut and Hour One both have request quotas. If you're processing 20+ properties daily, space out requests across hours using n8n's scheduler. Copy.ai is generally more lenient, but batch requests where possible. Error handling: Add a try-catch structure in n8n. If Pixelcut fails on an image, log it and continue with the unprocessed version rather than stalling the entire workflow. Hour One videos sometimes fail to render; set a timeout of 15 minutes and retry once before alerting the agent. Cost optimisation: Process images in batched batches once per week rather than on-demand if your listing velocity allows it. Downsize images to 2MP before sending to Pixelcut to save API credits. Use GPT-4o mini via Copy.ai's backend if available for lighter prompts. Testing and iteration: Run a test workflow with a single property first. Check the generated copy for tone and accuracy, review the video output, and adjust Copy.ai prompts if needed before rolling out to the full agent network.
Cost Breakdown
| Tool | Plan Needed | Monthly Cost | Notes |
|---|---|---|---|
| n8n | Self-hosted or Cloud (Pro) | £0 or £264+ | Self-hosted is free but requires infrastructure |
| Pixelcut AI | Pay-as-you-go | £20–100 | ~£0.10 per image at typical volumes |
| Copy.ai | Standard or Professional | £49–99 | Unlimited API requests; professional tier for advanced features |
| Hour One | Creator Plan or API | £99–399/month | Variable; API pricing depends on video minutes generated |
| Google Drive (optional) | Free or Workspace | £0–10 | Storage for raw and processed images |