Real-estate media delivery, automated

The delivery desk that runs itself.

Delivery App Ultra runs on the team's PCs all day. It creates the property sites, sorts and uploads the photos, delivers the videos and checks every job at the end of the day. It asks a person only when a person is needed.

See the workflow

Create Site

DELIVER THE DAY Selected:
Press RUN ALL to watch the four steps work through a sample day.
BOOKINGS OF THE DAY
#NotesPhotographerClientAddressOrderStatusSiteLinks
30412NOTESDana WhitAvery Collins12 Maple CourtPhotography, Drone
30413Dana WhitJordan Pike48 Harbor View RoadPhotography, Video
30414Leo MarshPriya Nair7 Linden Terrace, unit 3Photography
30415Leo MarshSam Ortega2210 Old Mill LaneFloor plan
30416Leo MarshCasey Brandt9 Juniper WayPhotography, Video
0 bookingsSample data. The real table refreshes itself the moment the database changes.
≈1,200photos compressed, sorted and uploaded on a normal day
9outside systems the app works across, from the job boards to the video host
≤5 sfrom a status change on Monday.com to a PC starting the job
1,020automated checks that must pass before any release ships
Workflow

One job, from booking to delivered.

Eight stages. People shoot and edit; the app does the rest and leaves a record of each step. Pick a stage to see what happens in it.

The app

The day's bookings are read from the calendar.

Step 1 opens the booking system, reads every booking of the day with its services and its notes, and reconciles them against the property sites that already exist. Nothing is spent at this stage.

  • Each booking's notes are filtered against an ignore list, so editors see the notes that matter and nothing else.
  • A booking that needs no site, such as a floor plan on its own, is marked and left alone.
Booking systemShared database
The app

The property site is created, activated and linked.

Steps 2 and 3 create the property site, activate it and write its download and preview links onto the booking's media page. Each link is read back after saving, so a link that did not stick is caught at once.

  • Activating a site costs real money, so the step is status-driven: running it twice never creates a second site.
  • A daily cap stops a runaway from spending more than a normal day would.
Property sitesBooking media page
People

Photographers shoot. Editors edit.

This part stays human. The team works in Monday.com as usual, and the app watches for one thing: the moment a job's editing status changes. It does not ask Monday every few seconds. Monday tells it.

  • Status changes arrive as webhooks, so the app reacts within seconds and stays silent the rest of the time.
Monday.comDropbox job folders
Automatic

Gemini works out the photo order before anyone asks.

When a job turns from Processing to Editing Finished, a pre-sort is queued. The app sends small copies of the photos to Gemini, which returns the whole delivery order: exterior first, then room by room. The order is saved with the job.

  • The small copies never touch the team's Dropbox folders.
  • Jobs with fewer than 16 photos are skipped. They are quicker to arrange by hand.
  • A failed sort is retried once, 15 minutes later.
Monday.com webhookGemini
The app

Photos are compressed, uploaded and arranged.

An operator drops the job folder on the Compress tab. The app compresses every photo with its camera data intact, uploads the set to the property site and arranges the tiles in the saved AI order. Monday is then marked QC Approved.

  • If the photo count does not match what was ordered, the upload is held until a person says to go on.
Dropbox job folderProperty siteMonday.com
Automatic

The video is uploaded and proven to play.

Setting a video to Auto Delivery sends the job to the first free PC. It downloads the video, uploads it to the property site and the job's Dropbox folder, and on request to a video host under an address-only title. Then it checks that the video really plays.

  • A video that does not play is re-uploaded, up to twice, before a person is asked.
  • A file that is already there, by name and fingerprint, is never uploaded again.
Monday.com webhookProperty siteDropboxVideo host
The app

The client's page gets its links.

Once every video plays, the app tidies the booking's media page: the delivery links go in, the "video coming later" placeholders come out, and the Monday item moves to Ready to send.

  • The final "send to client" stays a person's decision.
Booking media pageMonday.com
The app

Every booking is checked: ordered against delivered.

The Daily Check reads each booking of the day and compares what was ordered with what is actually on the client's download page. Each job gets a verdict: delivered, partial, mismatch, waiting for video, or not started.

  • Red first, then yellow. All-clear jobs are counted and hidden.
  • A false alarm can be dismissed once and stays dismissed for every operator.
  • The results are shared on a web page every operator can open.
Booking systemClient download pageShared database
Features

Seven tools in one window.

Each tab does one job well. They share one database, one log and one set of rules.

Compress, and deliver the photos.

Drop a job folder in. The app compresses every photo, uploads the set to the property site and arranges it in the AI's order, then marks the job on Monday.

  • Camera data survives compression, guaranteed by a bundled metadata tool.
  • The whole photo order comes from one Gemini call, made ahead of time.
  • A photo-count mismatch holds the upload until a person approves it.
  • A special delivery mode writes a full-size set and a downscaled set side by side.

Web Size, in one click.

Makes the web-sized copies clients ask for, in the folder layout each client expects.

  • A single "Web Size" folder with the original file names, by default.
  • A switch for the Print and Web folder pair one partner requires.
  • Works on the locally synced Dropbox folder, so nothing is downloaded twice.

Create Site: a day's sites in four steps.

Scan, create and activate, write the links, check for errors. Run them one at a time or all together. The table at the top of this page is a working model of it.

  • Driven by each booking's status, so stopping and resuming a half-done day is safe.
  • Right-click one booking to run the whole pipeline for that job alone.
  • The day table updates live when another operator or PC changes a row.
  • Shows each job's delivery status and whether its photos are already AI-sorted.

Daily Check: nothing slips through.

Reconciles a whole day of deliveries in minutes and shows only the jobs that need a look.

  • Verdicts are colour-coded and sorted by severity.
  • Hover a row to see the evidence: each ordered item, found or missing.
  • Dismissals are shared between operators and survive a re-check.
  • It only reads the booking system and the sites. It never changes them.

Video Delivery: one queue, every PC.

Video jobs go to the first free PC in a set order. Each PC reports its progress to a shared page, so anyone can see where every video is.

  • An upload that has started is never interrupted, whatever else happens.
  • A slow upload can switch to a VPN route on its own, per PC, when that is switched on.
  • Playback is verified on the video host before a job counts as delivered.
  • A PC that drops out hands its queued work to the next one.

Editing Fetch: the right originals, found for you.

When a client orders an edit, the app finds the job the photos came from and puts the full-size originals in the editor's folder.

  • Finds the job even when the address is typed differently: a ZIP for the road type, a typo, a missing unit.
  • If the address matches nothing, it tries the same client's recent jobs, and uses one only when the photo is really there.
  • Matches photos by name first, then by how they look.
  • Uses the client's own file when it is already full size.

Remote control, from any browser.

A private web page shows every PC and every job, and can start a step on any PC from a phone.

  • Start, stop or retry a job on a chosen PC.
  • An Automations log shows what ran on its own, and why.
  • A PC picks up a command within five seconds.
  • New PCs are approved on the server before they receive any account access.
Automations

Work starts the moment something changes.

Nothing in the cloud runs on a timer. A status change on Monday.com sends a webhook, the job is queued, and the first free PC hears about it within five seconds. Try the queue yourself.

WhenA photo job turns to Editing Finished
ThenGemini sorts the photos. The order waits with the job until delivery.
WhenA video is set to Auto Delivery
ThenA free PC uploads it to the property site and Dropbox, and checks it plays.
WhenAn edit order lands on the Editing board
ThenThe original photos are found and placed in the job's Modifications folder.
WhenEvery uploaded video plays
ThenThe booking's placeholders are removed and Monday moves to Ready to send.
WhenA new release is published
ThenEach PC verifies its signature and updates itself the next time it is idle.

The video queue

0 waiting
1PC 1free
2PC 2free
3PC 3free
  • Queue a job to see which PC takes it.

The rule is the real one: a job goes to the first PC in the order that is free. Mark a PC busy and the job moves down the list. An upload in progress is always allowed to finish.

Safeguards

Fast is easy. Careful is the hard part.

Every rule below exists because something once went wrong. Each one is written down with the incident behind it.

An upload is never interrupted.

Stop, cancel, retry, a VPN switch, even a restart: all of them wait until the upload in progress has finished.

Money is guarded.

Creating a property site costs money. A daily cap and status-driven steps mean a mistake or a re-run cannot create one twice.

Proven, not assumed.

A link is read back after it is saved. A video must actually play before it counts as delivered.

Never twice.

Files are recognised by name and fingerprint, so a job that is run again does not upload what is already there.

Secrets stay locked.

Logins are encrypted on each PC by Windows itself. A new PC receives account access only after it is approved on the server.

1,020 checks before every release.

Twelve test suites must all pass or the release is refused. Releases are signed, and each PC verifies the signature before updating.

Architecture

Heavy work on the PCs. A thin, quiet cloud.

The PCs do the browsing, compressing and uploading. Cloudflare holds the shared state and passes messages. After the last rewrite, database reads fell by 77%.

The team's PCs

Windows, running all day
Delivery App UltraA desktop app that updates itself on launch
A built-in browserWorks the booking system and the property sites the way a person would
Local Dropbox foldersPhotos are processed where they already are
held request, 5 s

Cloudflare

Shared state and messaging
One databaseBookings, checks, the job queue, each PC's presence
Two WorkersThe API, the web pages and the webhook receivers
Release storageSigned updates for every PC
webhooks and APIs

Outside systems

Where the work comes from and goes to
Monday.comJob boards
Booking systemBookings and client pages
Property sitesPhotos and video for the client
DropboxJob folders
GeminiPhoto order
Video hostUnbranded video links
SlackReports
VPNUpload routes