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.

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

How to jump between the audio and video of Supercomputer
When your podcast turns into a video podcast, what do listeners do if they want to watch along? For our show, I’ve build a custom Shortcut to turn Overcast links into YouTube deep links, so you can tune in regardless of the medium.
Ulysses adds Find Sheet, Find Group actions for Shortcuts; Substack support »
Ulysses has expanded their App Intents support in version 39 with Find, Import File, and Search actions – plus support for Spotlight on Mac.
Apple Intelligence Siri is over a year late, but that might be a good thing »
Michael Burkhadrt points out that more people will get to use the new Siri than if it launched on time. So... it's actually sort of in their favor?
App Intents: Grouping Parent Parameters Using a Unified Entity Approach
Streaks developer Quentin Zervaas shared this great technique for working with complex parent parameters in App Intents – grouping them into a single, separate entity.