<!--
{
  "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/IntentDonationManager/donate(intent:)-hly2",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "App Intents"
    ],
    "preciseIdentifier" : "s:10AppIntents21IntentDonationManagerV6donate6intentAA0cD10IdentifierVx_tYaKAA0aC0RzlF"
  },
  "title" : "donate(intent:)"
}
-->

# donate(intent:)

Donates the specified app intent to the system asynchronously.

```
@discardableResult func donate(intent: some AppIntent) async throws -> IntentDonationIdentifier
```

## Parameters

`intent`

An app intent for an action your app performed. Put enough information
into the app intent that your app can replicate the action later.

## Return Value

A unique identifier you can use to refer to the donation later.

## Discussion

When someone completes an action in your app, call this method to donate a matching app
intent. The system doesn’t run the app intent you provide, but uses the information
to predict future actions. If an error occurs during the donation process, this method
throws that error so you can handle it.

---

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)