<!--
{
  "availability" : [
    "iOS: 16.0.0 -",
    "iPadOS: 16.0.0 -",
    "macCatalyst: -",
    "macOS: 13.0.0 -",
    "tvOS: 16.0.0 -",
    "visionOS: -",
    "watchOS: 9.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AppIntents",
  "identifier" : "/documentation/AppIntents/AppIntent/donate(result:)-9b25i",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "App Intents",
      "AppIntents"
    ],
    "preciseIdentifier" : "s:10AppIntents0A6IntentPAAE6donate6resultAA0C18DonationIdentifierVqd___tAA0C6ResultRd__lF"
  },
  "title" : "donate(result:)"
}
-->

# donate(result:)

Donates the app intent and a result to the system asynchronously.

```
@discardableResult func donate(result: some IntentResult) -> IntentDonationIdentifier
```

## Parameters

`result`

The effective result of the intent. Use this parameter to specify the
result your intent would have returned. For example, if the action opened another
item, include a result with a related [`OpenIntent`](/documentation/AppIntents/OpenIntent) type.

## Discussion

When someone interacts with your app’s interface, create an app intent for the interaction
and call this method. Use this method when the result of the intent is also relevant,
such as when the result of the action triggers another app intent. Donating intents helps the system
predict future actions and improve the overall system experience. Don’t donate intents
that the system creates during interactions with your app.

Call this method to donate the intent and result synchronously, which you might do if
you’re not using Swift concurrency. The system ignores any exceptions it encounters
during the donation process.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)