---
title: IntentRecommendation
framework: widgetkit
role: symbol
role_heading: Structure
path: widgetkit/intentrecommendation
---

# IntentRecommendation

An object that describes a recommended intent configuration for a user-customizable widget.

## Declaration

```swift
struct IntentRecommendation<T> where T : INIntent
```

## Overview

Overview By adding a custom SiriKit intent definition to your project and using an IntentTimelineProvider, you allow users to configure widgets to show data that’s most relevant to them. Some platforms don’t have a dedicated user interface to configure all of your intent parameters. For example, watchOS doesn’t offer a dedicated user interface to configure data that appears on a complication. Use intent recommendations in watchOS to offer preconfigured complications that show data that’s most relevant to the user. note: On platforms that offer a dedicated user interface for configuring widgets — for example, iOS or macOS — IntentRecommendation is inactive. For example, say you develop a game app that allows users to view their in-game character. With intent recommendations, you can recommend an intent configuration for a watch complication that displays character information. The following example shows a function to create a list of recommended configurations for a game widget that shows current energy levels for a game character. public func recommendations() -> [IntentRecommendation<DynamicCharacterSelectionIntent>] {     return CharacterDetail.availableCharacters.         map { character in             let hero = Hero(identifier: character.name, display: character.name)             let intent = DynamicCharacterSelectionIntent()             intent.hero = hero

return IntentRecommendation(intent: intent, description: Text(character.name))         }     }

## Topics

### Creating a Recommended Widget Configuration

- [init(intent:description:)](widgetkit/intentrecommendation/init(intent:description:)-1zh33.md)
- [init(intent:description:)](widgetkit/intentrecommendation/init(intent:description:)-4epo2.md)
- [init(intent:description:)](widgetkit/intentrecommendation/init(intent:description:)-6v7dj.md)

### Initializers

- [init(intent:description:)](widgetkit/intentrecommendation/init(intent:description:)-6o8yy.md)

## See Also

### Smart Stacks

- [Increasing the visibility of widgets in Smart Stacks](widgetkit/widget-suggestions-in-smart-stacks.md)
- [TimelineEntryRelevance](widgetkit/timelineentryrelevance.md)
- [RelevanceConfiguration](widgetkit/relevanceconfiguration.md)
- [RelevanceEntriesProvider](widgetkit/relevanceentriesprovider.md)
- [RelevanceEntry](widgetkit/relevanceentry.md)
- [WidgetRelevance](widgetkit/widgetrelevance.md)
- [WidgetRelevanceAttribute](widgetkit/widgetrelevanceattribute.md)
- [WidgetRelevanceGroup](widgetkit/widgetrelevancegroup.md)
- [AppIntentRecommendation](widgetkit/appintentrecommendation.md)
- [IntentConfiguration](widgetkit/intentconfiguration.md)
