Siri AI Continues Across Devices, Apps Can Stay In Sync With Stable IDs

With Siri AI interacting with the same content from apps across devices, they need one stable ID to match up inside conversations.
Siri AI Continues Across Devices, Apps Can Stay In Sync With Stable IDs

In the WWDC 26 session “Discover new capabilities in the App Intents framework,” App Intents Engineer Moe Mehrabi talks about the importance of making Siri AI work across devices using SyncableEntity:

Now, what happens when the same entity needs to work on multiple devices?

With our 2027 releases, Siri can continue conversations across devices – and your entities can be part of those conversations.

If your app runs on multiple devices, people might start a conversation on one device and continue on another. But there’s a challenge.

If I ask Siri on my iPhone to add a photo to an album…

…then switch to my other device and ask Siri to tag that photo – Siri might not be able to find that photo.

To understand why, let’s think about how entities are identified.

Every entity needs an ID – that’s how the system finds it. Your entity’s ID might be generated locally on each device. Local IDs work great eon the device they were created on.

But each device generates its own local IDs. So the same entity can end up with a different ID on each device.

For Siri to reference your entities across devices, it needs a stableID that’s the same everywhere. That could come from your server, or from CloudKit record IDs.

Then, you need a way to tell the system your entity’s ID is stable. That’s what SyncableEntity does – it declares to the system that your entity’s ID is stable and can be used across devices. Here’s how to adopt it.

I start by adding the SyncableEntity protocol to my entity.

Then, I need to provide the stable ID.

If your entity already uses an ID that’s the same across all devices, like a server-assigned UUID or a CloudKit record ID – no more changes needed.

c

But, if you use local identifiers, like CoreData row IDs, you need both: a local ID and a stable one.

a pairs them into a single ID.

On-device, your code uses the local ID…

…and across devices, the system uses the stable one.

View the full segment on YouTube, learn about SyncableEntity from the Apple Developer documentation, as well as how to Use entities across devices .

P.S. If you’re looking for help with your App Intents integration, you can always hire me as a consultant.

Posts You Might Like

Apple’s Foundation Models Framework Unlocks New App Experiences Powered by Apple Intelligence »
Apple’s Foundation Models Framework Unlocks New App Experiences Powered by Apple Intelligence »
Developers around the world are able to bring even more intelligent experiences into their apps by tapping into Apple’s Foundation Models framework.
Build from anywhere with Cursor for iOS »
Build from anywhere with Cursor for iOS »
Curor has released their iOS app, bringing the agentic coding platform to iOS with remote sessions or cloud agents.
Now Available For App Intents Consulting: Hire Me For Your Apple Intelligence Integration
Now Available For App Intents Consulting: Hire Me For Your Apple Intelligence Integration
Looking to add Apple Intelligence to your app? Hire me as your App Intents consultant and together we'll build the best integration possible.
My Mind Map of the WWDC’24 Keynote
My Mind Map of the WWDC’24 Keynote
Check out my mind map of notes captured during the WWDC'24 keynote.