<!--
{
  "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:)-36cia",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "App Intents",
      "AppIntents"
    ],
    "preciseIdentifier" : "s:10AppIntents0A6IntentPAAE6donate6resultAA0C18DonationIdentifierVqd___tYaKAA0C6ResultRd__lF"
  },
  "title" : "donate(result:)"
}
-->

# donate(result:)

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

```
@discardableResult func donate(result: some IntentResult) async throws -> 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.

## Return Value

An opaque identifier you can use to manage the donation later using
an [`IntentDonationManager`](/documentation/AppIntents/IntentDonationManager) 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
app intents that the system creates and asks you to handle.

---

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)