Alchemy RecipeIntermediateworkflow

Real estate listing creation and virtual tour generation

Published

Property agents spend hours on repetitive tasks that should be automated: writing descriptions, generating property metadata, creating virtual tours, and formatting everything for listings. Most do this manually, copying information between documents, writing descriptions from scratch, and then arranging photographers or tour companies separately. This workflow is slow, error-prone, and costs money each time you repeat it.......

The good news is that AI tools exist to handle each of these steps. The challenge is wiring them together without spending your entire day switching between platforms and moving data around manually. An orchestrated workflow lets you upload property details once, then sit back while AI writes descriptions, generates images, creates virtual tours, and formats everything ready for publication.

This guide shows you how to connect AI-Boost, Hour One, and WeryAI through an orchestration platform to build a fully automated real estate pipeline. You'll have property listings and virtual tours ready to publish without touching a single tool manually.

The Automated Workflow

The workflow operates in this sequence:

  1. You submit property details (address, square footage, bedrooms, amenities) via a form or API call
  2. AI-Boost generates a compelling listing description from those details
  3. Hour One creates a professional video presenter who narrates the property tour
  4. WeryAI generates photorealistic images of the property from descriptions
  5. Everything gets formatted into a structured listing package ready for publication

For intermediate difficulty, we'll use n8n as the orchestration platform. It's self-hosted, handles complex data transformations, and offers good flexibility without steep pricing. You could also use Make (Integromat) if you prefer a fully managed service, though it costs more at scale.

Step 1:

Set Up Your Trigger

Create an n8n workflow that starts with a webhook. This allows external systems (your CRM, property management software, or a simple form) to send property data directly into the workflow.


POST https://your-n8n-instance.com/webhook/property-intake
Content-Type: application/json

{
  "property_id": "PROP-2025-001",
  "address": "42 Mansion Lane, London, SW1A 1AA",
  "bedrooms": 4,
  "bathrooms": 3,
  "square_feet": 3850,
  "price": 850000,
  "key_features": [
    "Period cornicing",
    "Original fireplaces",
    "Large south-facing garden",
    "Off-street parking"
  ],
  "neighbourhood_info": "Quiet residential area near Hyde Park",
  "special_notes": "Recently renovated kitchen, new boiler installed 2024"
}

In n8n, add a Webhook node and configure it to accept POST requests. Set it to store the incoming data in memory so subsequent nodes can access it.

Step 2:

Generate Listing Description with AI-Boost

AI-Boost accepts property details and returns polished marketing copy. Its API endpoint accepts structured data and returns formatted descriptions suitable for property portals............. For more on this, see From Script to Polished Video: Using AI for Demo and Mark....

Add an HTTP Request node in n8n configured to call AI-Boost:


POST https://api.ai-boost.io/v1/property/describe
Authorization: Bearer YOUR_AI_BOOST_API_KEY
Content-Type: application/json

{
  "property_id": "{{ $json.property_id }}",
  "address": "{{ $json.address }}",
  "bedrooms": {{ $json.bedrooms }},
  "bathrooms": {{ $json.bathrooms }},
  "square_feet": {{ $json.square_feet }},
  "price": {{ $json.price }},
  "features": "{{ $json.key_features.join(', ') }}",
  "tone": "professional",
  "length": "medium",
  "include_neighbourhood": true
}

The response returns something like:

{
  "short_description": "Stunning 4-bedroom Victorian townhouse with period features and contemporary updates...",
  "long_description": "This exceptional property combines period charm with modern comfort. Original cornicing and fireplaces create character throughout, whilst the newly renovated kitchen offers state-of-the-art fittings...",
  "key_selling_points": [
    "Period architecture with modern amenities",
    "Recently updated kitchen and boiler",
    "Generous garden space"
  ],
  "seo_tags": ["london property", "period property", "hyde park area"]
}

Store this response in a variable called listing_description.

Step 3:

Create Virtual Tour Video with Hour One

Hour One generates video content using AI presenters. You provide a script and it returns a video file. We'll use the listing description from the previous step as the script base.

Add another HTTP Request node to call Hour One:


POST https://api.hourone.com/v1/video/create
Authorization: Bearer YOUR_HOUR_ONE_API_KEY
Content-Type: application/json

{
  "project_id": "{{ $json.property_id }}_tour",
  "presenter": {
    "name": "professional_presenter_1",
    "style": "friendly"
  },
  "script": "Welcome to 42 Mansion Lane. {{ $node['AI-Boost'].json.short_description }} Let me show you the highlights. {{ $node['AI-Boost'].json.key_selling_points.join('. ') }}",
  "video_settings": {
    "duration": "90_seconds",
    "background": "property_slides",
    "quality": "1080p"
  },
  "webhook_url": "https://your-n8n-instance.com/webhook/hour-one-complete"
}

Hour One operates asynchronously, so it returns a job ID and calls your webhook when the video is ready:

{
  "job_id": "job_8f3x9k2l",
  "status": "processing",
  "estimated_completion": "2025-01-15T14:30:00Z"
}

Set up another webhook node to receive the completion notification. When Hour One finishes, it will send:

{
  "job_id": "job_8f3x9k2l",
  "status": "completed",
  "video_url": "https://cdn.hourone.com/videos/job_8f3x9k2l/output.mp4",
  "duration": 87,
  "property_id": "PROP-2025-001"
}

Step 4:

Generate Property Images with WeryAI

WeryAI creates photorealistic images from detailed descriptions. Use the property description and features to generate compelling visuals.


POST https://api.weryai.com/v1/images/generate
Authorization: Bearer YOUR_WERYAI_API_KEY
Content-Type: application/json

{
  "property_id": "{{ $json.property_id }}",
  "prompts": [
    "Exterior shot of period Victorian townhouse at 42 Mansion Lane, with well-maintained garden and period windows, professional real estate photography",
    "Modern kitchen with contemporary fixtures and period cornicing, bright south-facing windows, professional property photography",
    "Master bedroom with period fireplace and large windows overlooking garden, professional real estate photography",
    "Large south-facing garden with mature plants and patio area, period townhouse backdrop"
  ],
  "style": "professional_real_estate",
  "quantity_per_prompt": 2,
  "resolution": "1920x1080",
  "webhook_url": "https://your-n8n-instance.com/webhook/weryai-complete"
}

WeryAI also works asynchronously and will callback when images are ready:

{
  "property_id": "PROP-2025-001",
  "status": "completed",
  "images": [
    {
      "prompt_index": 0,
      "urls": [
        "https://cdn.weryai.com/images/exterior_01.jpg",
        "https://cdn.weryai.com/images/exterior_02.jpg"
      ]
    },
    {
      "prompt_index": 1,
      "urls": [
        "https://cdn.weryai.com/images/kitchen_01.jpg",
        "https://cdn.weryai.com/images/kitchen_02.jpg"
      ]
    }
  ]
}

Step 5:

Assemble Final Listing Package

Once all components are ready, create a final node that compiles everything into a structured JSON object ready for publication to property portals.


{
  "property_id": "PROP-2025-001",
  "address": "42 Mansion Lane, London, SW1A 1AA",
  "listing_content": {
    "short_description": "{{ $node['AI-Boost'].json.short_description }}",
    "long_description": "{{ $node['AI-Boost'].json.long_description }}",
    "key_points": "{{ $node['AI-Boost'].json.key_selling_points }}",
    "seo_tags": "{{ $node['AI-Boost'].json.seo_tags }}"
  },
  "media": {
    "virtual_tour_video": "{{ $node['Hour-One-Complete'].json.video_url }}",
    "property_images": "{{ $node['WeryAI-Complete'].json.images }}"
  },
  "metadata": {
    "bedrooms": "{{ $json.bedrooms }}",
    "bathrooms": "{{ $json.bathrooms }}",
    "price": "{{ $json.price }}",
    "square_feet": "{{ $json.square_feet }}"
  },
  "generated_at": "{{ now().toISOString() }}",
  "status": "ready_for_publication"
}

This final object can then be sent to your property portal's API, saved to a database, or exported as a formatted document.

Handling Asynchronous Operations

Since Hour One and WeryAI work asynchronously, your workflow needs to wait for their webhooks rather than blocking. In n8n, use a Wait node that pauses the workflow until a signal arrives:

// After calling Hour One, add a Wait node with these settings:
// - Wait for: Webhook call
// - Webhook name: hour-one-complete
// - Timeout: 3600 (seconds, 1 hour max)

Similarly, use another Wait node for WeryAI completion. Once both complete, the workflow automatically continues to assembly.

If you prefer linear execution without async waiting, use polling instead: call the status endpoint every 30 seconds until the job completes. This is simpler but slower.

The Manual Alternative

If you prefer more control over each step (or want to customise outputs extensively), you can run this workflow semi-manually:

  1. Upload property details to AI-Boost via their web dashboard, review and adjust the description
  2. Copy the refined description into Hour One, customise the presenter and script, generate the video
  3. Copy property details into WeryAI, adjust image prompts if needed, generate images
  4. Manually compile everything in a spreadsheet or property management system

This approach takes 30-45 minutes per property instead of 5-10 minutes automated. It's worth doing manually only if you're publishing fewer than 2-3 properties per month, or if you have very specific customisation needs that automated prompts can't capture reliably.

Pro Tips

Handle Rate Limits Gracefully. Both Hour One and WeryAI impose request limits. Space out property submissions with a delay node in n8n (2-3 seconds between requests) to avoid hitting limits. Monitor your API usage dashboard weekly.

Store Outputs in Long-Term Storage. Don't rely on temporary URLs from Hour One and WeryAI. Download videos and images immediately after generation and store them in cloud storage (AWS S3, Google Cloud Storage) with your own CDN. This prevents broken links months later if providers delete files.

Add Quality Checks. Before marking a listing as "ready for publication", add a human review step. Use n8n's assignment node to flag any property where AI-Boost's description fell below a character count threshold, or where WeryAI generated fewer than expected images.

Monitor API Costs. WeryAI charges per image generated, Hour One charges per video minute, and AI-Boost charges per request. Track spending weekly. If you're generating 20+ properties monthly, costs add up; negotiate volume pricing with providers or adjust generation parameters (fewer images, shorter videos).

Test with One Property First. Before automating 50 listings, run the full workflow on a single property manually. Check each output, adjust prompts and settings, then scale up. Small tweaks to your Hour One script or WeryAI prompts can significantly improve final quality.

Cost Breakdown

ToolPlan NeededMonthly CostNotes
AI-BoostProfessional£150500 descriptions/month; £0.30 per additional
Hour OneCreator£29950 videos/month; additional videos £5.99 each
WeryAIPro£3991000 images/month; overage £0.40 per image
n8nSelf-hosted (open source)£0Or £50/month for managed cloud hosting
Make (Integromat)Pro alternative£32410k operations/month, if you prefer managed service
ZapierAlternative£6242000 tasks/month, most expensive option

For a real estate agent publishing 10 properties monthly, expect total monthly spend of £848-1272 depending on tool choices. This pays for itself after 5-6 property sales, and eliminates 10-15 hours of manual work per month.

If you're currently paying photographers £300-500 per property shoot, virtual tours and AI images reduce that cost significantly, though won't fully replace professional photography for premium markets.

More Recipes