App Intents

RSS for tag

Explore the App Intents framework, including how to expose your app's actions and content to Siri, Shortcuts, Spotlight, and other system experiences.

Documentation

Posts under App Intents subtopic

Post

Replies

Boosts

Views

Activity

AppIntents Compatibility
Here are a variety questions around compatibility, some related to iOS 27 changes, some related to iOS / watchOS: Sometimes my AppShortcutProvider do not update properly. Do you a suggested series of actions to clean them up on the device after making changes? I have a lot of trouble getting watch apps to recognize shortcuts that I supply to them, and trigger phrases that work on the phone fail on the watch even when it hears all the words correctly. Do you have any suggestions for supporting watchOS? There are a number of .result() variants for AppIntents, and some are only compatible with iOS 26 / 27. Do you have any recommendations for how to offer support for iOS 18 devices too without completely sacrificing the new features especially in iOS 27? AppEntity(schema:) for iOS 27 greatly expanded its usefulness, but they are not backward-compatible. Is there a way to gate the usage of AppEntity(schema:) for just iOS 27 or gracefully degrade? How does the new Siri interact with AppShortcutProvider? Are they unnecessary as long as I have Intent Entities and Intents? Do they interfere?
1
0
154
Jun ’26
Implementing EntityQuery Against a Custom External SQLite Database
In our application, we have dynamic records (sessions, workspaces, and logs) stored in a local SQLite database that is modified in real-time by a background command-line tool. We want Siri to resolve these as AppEntity types (e.g., 'Siri, show status of [Session Name]' or 'Siri, export log for [Project]'). Since EntityQuery requires returning list/suggested entities, how do we efficiently synchronize or query the external SQLite file from the App Intent extension? Are there file-locking or concurrency issues we should be aware of when the CLI tool is writing to the database while Siri is querying it? Is there a performance penalty or memory limit when returning thousands of dynamically generated AppEntity instances in suggestedEntities()? Should we implement custom indexing or virtual tables to support Siri's fuzzy name matching?
1
0
90
Jun ’26
Can I import images into my app with App Intent Schemas?
I'm trying to create an App Intent that takes in an image and copies it to a destination within my app. Sure, this can be done with shortcuts, but that's lame, I want siri to grab an image off the screen and invoke the action! Without an app schema, it doesn't seem like siri can tell what's possible in the app, so I'm trying to find a schema that fits? I've started trying to do this with the photos.addAssetsToAlbum App Intent schema, but it doesn't seem like Siri is onboard with the concept. It's replied many times that it is unable to add things to my App and that I should try via other means like opening my app and importing directly. Should be I be trying this with a different intent schema?
2
0
213
Jun ’26
AppSchema in App Extension best practices
It’s often desirable to implement AppIntents in an app extension, but under AppSchema this is more challenging because “on screen awareness” binds views to app entities. This creates a need to synchronize AppEntity data across the boundary between the main app and the app extension. What are the best practices for managing the required bidirectional data exchange? Are there good sample applications that illustrate how to do this cleanly?
1
0
109
Jun ’26
Async AppEntity creation
For an AppIntent that creates an AppEntity via a long-running async task, does it make sense for the intent’s “perform” method to return a placeholder AppEntity and update it later via a donation, or is it best to make “perform” async and return only once the entity is completely resolved?
1
0
106
Jun ’26
IndexedEntity vs CoreSpotlight
In my app, I use CoreSpotlight to create CSSearchableItems (for Spotlight integration), and I also have a list of AppEntities for Shortcuts support. Are there any big benefits in migrating this setup to using IndexedEntity, with regards to Siri and Apple Intelligence? I also would need to support iOS17 for now. Note that the AppEntities don't map onto any existing AppSchema domains.
2
1
197
Jun ’26
Siri Questions
We have existing Siri functionalities in our app, for customer retrieve their bank or credit cards information. How can we leverage new Siri AI features to our existing function? what is correct approach we can go?
1
0
87
Jun ’26
2nd deprecation of shortcuts action
My app has had shortcuts support since the Siri Intent days, so I have app intents with CustomIntentMigratedAppIntent to make sure old shortcuts continue working. Now I need to make further changes to one such shortcuts actions so I need to make a 2nd app intent to take the place of my older app intent that itself took the place of a siri intent. I need the old app intent to still exist for the sake of old shortcuts but I find that having isDiscoverable = false doesn't hide the 1st app intent so long as it has CustomIntentMigratedAppIntent. Is there any solution or do I have to either break old shortcuts or accept duplicate shortcuts actions to move my app intents forward?
1
0
125
Jun ’26
How to best parse [street] numbers with Siri Shortcut phrases
Hi all, This is a contrived example for an App Intent where I need my phrases to recognize three "regions" and a specific set of numbers associated with those regions. I am having trouble defining the AppEntity and associated AppShortcut phrases that works well with Siri, which is having trouble extracting numbers for some reason... Now the example: Imagine my app provides information surrounding Starbucks establishments on three major thoroughfares in NYC, such as: Broadway & 26, 40, 43, 54, 63, 75, 86, 95 Madison & 44, 50, 84, 96 Lexington & 43, 48, 55, 63, 67, 77, 85, 96 I need AppEntities, AppShortcuts, and friends that best work with Siri when launched with phrases such as: "Show 'example' for Madison and 50th in \(.applicationName)", "Show 'example' on 43rd and Broadway in \(.applicationName)", Long story short, Siri is picking up my phrases well, but then asking me to answer whether the value is 44, 50, 84, or 96, instead of just hearing that I said: "Madison and 50th" I've defined streets like this: public let nycStreetDisplayRepresentations: [DisplayRepresentation] = [ DisplayRepresentation(title: "26", synonyms: ["twenty six", "twenty sixth"]), DisplayRepresentation(title: "40", synonyms: ["forty", "fortieth"]), DisplayRepresentation(title: "43", synonyms: ["forty three", "forty third"]), DisplayRepresentation(title: "48", synonyms: ["forty eight", "forty eighth"]), DisplayRepresentation(title: "50", synonyms: ["fifty", "fiftieth"]), DisplayRepresentation(title: "54", synonyms: ["fifty four", "fifty fourth"]), DisplayRepresentation(title: "55", synonyms: ["fifty five", "fifty fifth", "five five"]), DisplayRepresentation(title: "63", synonyms: ["sixty three", "sixty third"]), DisplayRepresentation(title: "67", synonyms: ["sixty seven", "sixty seventh"]), DisplayRepresentation(title: "75", synonyms: ["seventy five", "seventy fifth"]), DisplayRepresentation(title: "77", synonyms: ["seventy seven", "seventy seventh", "seven seven"]), DisplayRepresentation(title: "84", synonyms: ["eighty four", "eighty fourth"]), DisplayRepresentation(title: "85", synonyms: ["eighty five", "eighty fifth"]), DisplayRepresentation(title: "86", synonyms: ["eighty six", "eighty sixth"]), DisplayRepresentation(title: "95", synonyms: ["ninety five", "ninety fifth"]), DisplayRepresentation(title: "96", synonyms: ["ninety six", "ninety sixth"]) ] And an entity like this: public struct MadisonThings: AppEntity, Identifiable { public let id: Int public var displayRepresentation: DisplayRepresentation { nycStreetDisplayRepresentations[id-1] } public static var typeDisplayRepresentation = TypeDisplayRepresentation( name: "Madison" , synonyms: ["Madison Ave"] ) public static var defaultQuery = MadisonTHingsQuery() } An EntityQuery: public struct MadisonThingsQuery: EntityQuery, EntityStringQuery { ...attempts to find synonyms in the phrase } Intent: public struct ShowMadisonThingsIntent: AppIntent { { @Parameter( title: "Street Number", description: "The street number (e.g., 5, 12, 44)" ) var streetNumber: MadisonThings // I have also tried just plain 'int' to no avail } And finally the shortcuts: static var appShortcuts: [AppShortcut] { return [ AppShortcut( intent: ShowMadisonThingsIntent(), phrases: [ "Show example for Madison and \(\.$streetNumber) in \(.applicationName)", "Show example on \(\.$streetNumber) in \(.applicationName)", ... This should be very simple, I think, and I've tried multiple ways of extracting numbers from my speech, but for some reason this is not working well at all. Thanks for your help!
0
0
65
Jun ’26
AppIntents Compatibility
Here are a variety questions around compatibility, some related to iOS 27 changes, some related to iOS / watchOS: Sometimes my AppShortcutProvider do not update properly. Do you a suggested series of actions to clean them up on the device after making changes? I have a lot of trouble getting watch apps to recognize shortcuts that I supply to them, and trigger phrases that work on the phone fail on the watch even when it hears all the words correctly. Do you have any suggestions for supporting watchOS? There are a number of .result() variants for AppIntents, and some are only compatible with iOS 26 / 27. Do you have any recommendations for how to offer support for iOS 18 devices too without completely sacrificing the new features especially in iOS 27? AppEntity(schema:) for iOS 27 greatly expanded its usefulness, but they are not backward-compatible. Is there a way to gate the usage of AppEntity(schema:) for just iOS 27 or gracefully degrade? How does the new Siri interact with AppShortcutProvider? Are they unnecessary as long as I have Intent Entities and Intents? Do they interfere?
Replies
1
Boosts
0
Views
154
Activity
Jun ’26
Implementing EntityQuery Against a Custom External SQLite Database
In our application, we have dynamic records (sessions, workspaces, and logs) stored in a local SQLite database that is modified in real-time by a background command-line tool. We want Siri to resolve these as AppEntity types (e.g., 'Siri, show status of [Session Name]' or 'Siri, export log for [Project]'). Since EntityQuery requires returning list/suggested entities, how do we efficiently synchronize or query the external SQLite file from the App Intent extension? Are there file-locking or concurrency issues we should be aware of when the CLI tool is writing to the database while Siri is querying it? Is there a performance penalty or memory limit when returning thousands of dynamically generated AppEntity instances in suggestedEntities()? Should we implement custom indexing or virtual tables to support Siri's fuzzy name matching?
Replies
1
Boosts
0
Views
90
Activity
Jun ’26
Can I import images into my app with App Intent Schemas?
I'm trying to create an App Intent that takes in an image and copies it to a destination within my app. Sure, this can be done with shortcuts, but that's lame, I want siri to grab an image off the screen and invoke the action! Without an app schema, it doesn't seem like siri can tell what's possible in the app, so I'm trying to find a schema that fits? I've started trying to do this with the photos.addAssetsToAlbum App Intent schema, but it doesn't seem like Siri is onboard with the concept. It's replied many times that it is unable to add things to my App and that I should try via other means like opening my app and importing directly. Should be I be trying this with a different intent schema?
Replies
2
Boosts
0
Views
213
Activity
Jun ’26
SiriKit + App Name Synonyms
Is SiriKit now deprecated? And if so, how will that impact INAlternativeAppNames as it relates to app name synonyms in App Shortcuts?
Replies
1
Boosts
0
Views
128
Activity
Jun ’26
Will Siri _only_ invoke Schema-based Intents?
Will Siri only invoke Schema-based Intents? Is there no chance of Siri invoking another short cut, or share sheet extension with an input that its found on screen?
Replies
2
Boosts
2
Views
211
Activity
Jun ’26
Anything advertised that's not present in Beta1?
It's hard to know what should be working, and what's a symptom of the beta not including the functionality. Is there any functionality that we should expect to be present in beta 1?
Replies
0
Boosts
0
Views
86
Activity
Jun ’26
AppSchema in App Extension best practices
It’s often desirable to implement AppIntents in an app extension, but under AppSchema this is more challenging because “on screen awareness” binds views to app entities. This creates a need to synchronize AppEntity data across the boundary between the main app and the app extension. What are the best practices for managing the required bidirectional data exchange? Are there good sample applications that illustrate how to do this cleanly?
Replies
1
Boosts
0
Views
109
Activity
Jun ’26
Any debugging tools beyond AppIntentsTesting?
Are there any tools this year to debug why siri can't see a schema-based intent or chooses not to invoke it? Is it possible to see what inputs siri has within the context of the conversation that could cascade into intents of other applications? I've had difficulties with knowing if something should work, or of it's just not possible.
Replies
0
Boosts
0
Views
154
Activity
Jun ’26
Async AppEntity creation
For an AppIntent that creates an AppEntity via a long-running async task, does it make sense for the intent’s “perform” method to return a placeholder AppEntity and update it later via a donation, or is it best to make “perform” async and return only once the entity is completely resolved?
Replies
1
Boosts
0
Views
106
Activity
Jun ’26
SiriKit (Car Commands) to AppIntent
Currently, I have a mix of SiriKit (Car Commands) and App Intents. Should I migrate everything to App Intents and discontinue SiriKit? Is there a compatible/similar AppSchema to Car Commands?
Replies
1
Boosts
0
Views
90
Activity
Jun ’26
IndexedEntity vs CoreSpotlight
In my app, I use CoreSpotlight to create CSSearchableItems (for Spotlight integration), and I also have a list of AppEntities for Shortcuts support. Are there any big benefits in migrating this setup to using IndexedEntity, with regards to Siri and Apple Intelligence? I also would need to support iOS17 for now. Note that the AppEntities don't map onto any existing AppSchema domains.
Replies
2
Boosts
1
Views
197
Activity
Jun ’26
Opening an App as the Result of an App Intent
Is it possible to hand over from Siri to the App providing the App Intent (i.e. open the app from a Siri as result of an action)? For example, this could be handy when I actually want to show some UI in Response to a customer's prompt, like opening a Photo Album.
Replies
1
Boosts
1
Views
188
Activity
Jun ’26
App Name tied to Siri action
Is the user required to remember the name of my app in order to interact with it via Siri AI?
Replies
1
Boosts
2
Views
127
Activity
Jun ’26
Siri Questions
We have existing Siri functionalities in our app, for customer retrieve their bank or credit cards information. How can we leverage new Siri AI features to our existing function? what is correct approach we can go?
Replies
1
Boosts
0
Views
87
Activity
Jun ’26
Determining trigger source (Siri vs. Spotlight vs. Shortcuts) in AppIntent
Is there a supported way to differentiate the trigger source (i.e. Siri, Spotlight, or Shortcut) within the perform() method of an AppIntent?
Replies
1
Boosts
0
Views
114
Activity
Jun ’26
2nd deprecation of shortcuts action
My app has had shortcuts support since the Siri Intent days, so I have app intents with CustomIntentMigratedAppIntent to make sure old shortcuts continue working. Now I need to make further changes to one such shortcuts actions so I need to make a 2nd app intent to take the place of my older app intent that itself took the place of a siri intent. I need the old app intent to still exist for the sake of old shortcuts but I find that having isDiscoverable = false doesn't hide the 1st app intent so long as it has CustomIntentMigratedAppIntent. Is there any solution or do I have to either break old shortcuts or accept duplicate shortcuts actions to move my app intents forward?
Replies
1
Boosts
0
Views
125
Activity
Jun ’26
Lifecycle Change, Compute & Network assignment when executing an App Intent?
Will the processing of an Intent result in an App Lifecycle change? How is compute time & network access managed when processing the intent? E.g., would I be able to make backend requests if needed?
Replies
1
Boosts
0
Views
96
Activity
Jun ’26
Integration of App Intents not covered by an existing Schema
Can I make functionality of my app available to Siri AI if they are NOT from one of the predefined App Schema domains? (This was already asked here: https://developer.apple.com/forums/thread/829586 ) Can I define my own App Schemas & App Schema Domains?
Replies
1
Boosts
1
Views
110
Activity
Jun ’26
How to best parse [street] numbers with Siri Shortcut phrases
Hi all, This is a contrived example for an App Intent where I need my phrases to recognize three "regions" and a specific set of numbers associated with those regions. I am having trouble defining the AppEntity and associated AppShortcut phrases that works well with Siri, which is having trouble extracting numbers for some reason... Now the example: Imagine my app provides information surrounding Starbucks establishments on three major thoroughfares in NYC, such as: Broadway & 26, 40, 43, 54, 63, 75, 86, 95 Madison & 44, 50, 84, 96 Lexington & 43, 48, 55, 63, 67, 77, 85, 96 I need AppEntities, AppShortcuts, and friends that best work with Siri when launched with phrases such as: "Show 'example' for Madison and 50th in \(.applicationName)", "Show 'example' on 43rd and Broadway in \(.applicationName)", Long story short, Siri is picking up my phrases well, but then asking me to answer whether the value is 44, 50, 84, or 96, instead of just hearing that I said: "Madison and 50th" I've defined streets like this: public let nycStreetDisplayRepresentations: [DisplayRepresentation] = [ DisplayRepresentation(title: "26", synonyms: ["twenty six", "twenty sixth"]), DisplayRepresentation(title: "40", synonyms: ["forty", "fortieth"]), DisplayRepresentation(title: "43", synonyms: ["forty three", "forty third"]), DisplayRepresentation(title: "48", synonyms: ["forty eight", "forty eighth"]), DisplayRepresentation(title: "50", synonyms: ["fifty", "fiftieth"]), DisplayRepresentation(title: "54", synonyms: ["fifty four", "fifty fourth"]), DisplayRepresentation(title: "55", synonyms: ["fifty five", "fifty fifth", "five five"]), DisplayRepresentation(title: "63", synonyms: ["sixty three", "sixty third"]), DisplayRepresentation(title: "67", synonyms: ["sixty seven", "sixty seventh"]), DisplayRepresentation(title: "75", synonyms: ["seventy five", "seventy fifth"]), DisplayRepresentation(title: "77", synonyms: ["seventy seven", "seventy seventh", "seven seven"]), DisplayRepresentation(title: "84", synonyms: ["eighty four", "eighty fourth"]), DisplayRepresentation(title: "85", synonyms: ["eighty five", "eighty fifth"]), DisplayRepresentation(title: "86", synonyms: ["eighty six", "eighty sixth"]), DisplayRepresentation(title: "95", synonyms: ["ninety five", "ninety fifth"]), DisplayRepresentation(title: "96", synonyms: ["ninety six", "ninety sixth"]) ] And an entity like this: public struct MadisonThings: AppEntity, Identifiable { public let id: Int public var displayRepresentation: DisplayRepresentation { nycStreetDisplayRepresentations[id-1] } public static var typeDisplayRepresentation = TypeDisplayRepresentation( name: "Madison" , synonyms: ["Madison Ave"] ) public static var defaultQuery = MadisonTHingsQuery() } An EntityQuery: public struct MadisonThingsQuery: EntityQuery, EntityStringQuery { ...attempts to find synonyms in the phrase } Intent: public struct ShowMadisonThingsIntent: AppIntent { { @Parameter( title: "Street Number", description: "The street number (e.g., 5, 12, 44)" ) var streetNumber: MadisonThings // I have also tried just plain 'int' to no avail } And finally the shortcuts: static var appShortcuts: [AppShortcut] { return [ AppShortcut( intent: ShowMadisonThingsIntent(), phrases: [ "Show example for Madison and \(\.$streetNumber) in \(.applicationName)", "Show example on \(\.$streetNumber) in \(.applicationName)", ... This should be very simple, I think, and I've tried multiple ways of extracting numbers from my speech, but for some reason this is not working well at all. Thanks for your help!
Replies
0
Boosts
0
Views
65
Activity
Jun ’26