How does OmniFocus’ automatic syncing work? [A: see thread.]

I am having a pretty tough time keeping things in sync across my laptop, desktop, iPhone and iPad. I thought that the devices automatically synched data if you were using the Omni Sync Server but this is definitely not happening. I am having to remember to hit the SYNC button on whatever device I’m on to get the other devices to get updated. Is there a setting I’m missing? The only one that seems to be available in the choice setting in Prefeences->Sync.

This is rather annoying seeing that almost every other product of this kind automatically syncs with the supporting devices without a separate step. Am I missing something?

Yeah, they should automatically sync via the Omni Sync Server. You’re on the latest versions of all of them? I don’t believe there are any settings; sync should just sync.

Sorry for the trouble this is causing! The intent is basically as @CatOne described it. I’ll describe in broad terms how the process works, though, and if your results don’t match that description, email our Support Humans and we’ll be happy to investigate and help get this straightened out. Why email? Diagnosing sync problems sometimes involves looking at log files; beyond just being ugly on the forums, pasting log messages can sometimes reveal information that’s best handled in a more private setting.

In any case, here’s how it works: OmniFocus tries not to interrupt you when you’re using it, but when a copy of the app sees that you’ve edited or entered new information, it makes a note of that and begins to wait for a pause in your activity. When it goes idle because you’ve stopped editing things or switched to another app, it starts syncing those changes up to your server. That pushes the new information up to the server so your other devices can pull down those changes the next time they sync.

At the same time, we send out some signals to your local WiFi network telling other running copies of OmniFocus that there’s new information available on the server. Those signals are only sent to your local WiFi network, though, and if the other copies of OmniFocus aren’t running, they won’t be able to receive them. There are also some network configurations that can prevent two running copies from seeing those signals.

To avoid running down batteries (or running up internet charges in places where they charge based on the amount of data you use) a running copy of OmniFocus will check back with the server once an hour, or if it you launch it and it sees that it’s been more than an hour since the last successful sync.

In the same way that we use those WiFi signals I mentioned to accelerate the syncing process when possible, OmniFocus also takes advantage of a feature Apple introduced in recent versions of iOS called “background syncing”.

On those devices, OmniFocus asks for permission to sync even when it’s not running, but it’s important to know that OmniFocus cannot actually sync on any specific schedule. Preserving battery charge is even more important there, so instead iOS grants OmniFocus opportunities to sync on a schedule it decides. The schedule is influenced by a number of factors, including battery life, cell/WiFi signal availablity, and any patterns it sees in how you interact with an app.

If iOS sees that you tend to use a certain app at a particular time of day, it’ll try to do a background sync a little bit earlier to ensure that you have up-to-date info when you do launch the app. With a brand-new app, iOS doesn’t have that history to rely on, so the background syncs may not happen often enough. After a little bit of training time, though, things start working much better.

(One last note: an app needs to be running for iOS to let it sync in the background. If OmniFocus has been force-quit, it won’t be able to sync again until the next time it’s launched.)

Okay, that turned into more of a wall of text than I intended, but hopefully it’s helpful, and like I said, if you’re still having trouble, email us and we’ll be happy to help.