MLS Import Documentation Dec 29, 2019 · 4 min read

How the hourly auto update works

The hourly sync updates imported listings. How to enable it per task, what each run does, and what it does not recover.

B
Benjamin Levy
Contributor · MLSimport

The hourly sync keeps imported properties current. Once an hour it asks your MLS which listings changed recently, then updates the matching properties on your site: price, status, description, photos and any other field you import.

It is enabled per import task, with the Enable Auto Update every hour switch. A task with the switch off is imported once and never updated again.

Turning it on

  1. Open the task under Import Tasks.
  2. Turn on Enable Auto Update every hour, near the top of the task screen.
  3. Click Update.
  4. Check the Auto Update Enabled column in the Import Tasks list. It reads yes for every task on the schedule.

What each run does

  1. It stops immediately if a previous run is still going, so two syncs never process the same listings at once.
  2. It stops if the MLS connection is not valid, rather than repeatedly failing against a dead token.
  3. It collects every import task with auto update switched on and works through them one at a time.
  4. For each task it asks the MLS for listings that match the task’s filters and were modified in the last two hours.
  5. Anything returned is written: existing properties are updated in place, and listings newly matching the filters are added.

The window is two hours rather than one on purpose. The overlap means a listing changed near a run boundary is caught by the following run instead of falling between them.

Pro Tip

The sync only runs on a task that has already completed an import. A brand new task is skipped until you run it manually once, and a task whose manual import was killed part way through stays skipped until you run it again and let it finish. That is the usual reason one task stops updating while the others carry on.

What the sync does not do

  1. It does not backfill missed hours. Each run looks at a two hour window. If cron was down for a week, the changes from that week are gone from the window and are not recovered. Re-run the import manually to bring the site current.
  2. It does not fetch listings that have not changed. A listing missing because an initial import stopped early is not picked up by the sync unless the MLS modifies it again.
  3. It does not delete listings that have left the MLS. That is reconciliation, a separate pass that runs once a day.
  4. It does not rebuild titles. Title format is applied when a property is imported.

Checking it is working

The Last Action column in the Import Tasks list shows when a run last found new or edited listings for that task. It moves when there was something to do, so on a quiet task it can be a few days old while the schedule is perfectly healthy.

For proof that properties are actually changing, open Import History and read the Source column. Every add, edit and delete is recorded there with a timestamp, and a scheduled run is labelled Automatically while a run you started by hand is labelled Manual. The screen filters by search term, by action and by import task, so narrow it to one task and read the sources down the column.

Pro Tip

Hourly means hourly on a site with visitors. WordPress fires its schedule when someone loads a page, so a quiet site can drift well behind. If your listings must be current at a fixed time, run the schedule from a real server cron.

Frequently asked questions

Can I make the sync run more often than hourly?

No. Hourly is the schedule, and it matches how often most MLS feeds are worth polling. Running more often adds load without adding accuracy, since your feed does not update faster.

Should auto update be on for every task?

Yes for anything you want kept current, which is normally all of them. The exception is a task built for a one time historical import that you do not want touched again.

Does the sync count against an MLS request limit?

It makes one query per enabled task per hour, plus a request for each batch of listings it has to write. Boards that impose a limit set it far above that, but if yours has a strict cap, reduce the number of tasks with auto update on.

My prices are stale but statuses are current. Is that possible?

Only if the price field is not among your imported fields. The sync writes every field you selected, so a field that is never updated is usually a field that was never selected on the Select Import fields tab.

  1. Checking that auto update is running
  2. How daily reconciliation works
  3. Setting up a real server cron
  4. Cron not working: a checklist

If a task is enabled and its Last Action has not moved in days, send us the task name and we will check what the feed is returning for it.

B
About the author
Benjamin Levy
Writes about MLS feeds, IDX compliance, and running real-estate websites on WordPress at scale.
All posts by Benjamin