# IntentRequest

**Kind**: interface | **Module**: [Intents](https://docs.interop.io/desktop/reference/javascript/intents/index.md)

**Source**: https://docs.interop.io/desktop/reference/javascript/intents/intentrequest/index.html

Describes a request for raising an Intent.

## Properties

- **`clearSavedHandler`** (`boolean`, optional) default: `false` *(since @interopio/desktop 6.7.0)*
  If `true`, the previously saved Intent handler for this Intent (if any) will be cleared.
- **`context`** (`IntentContext`, optional)
  Context data that will be provided to the Intent handler.
- **`handlers`** (`IntentHandler[]`, optional)
  Collection of Intent handlers that can be presented to the user via an Intents Resolver UI. If there isn't an Intents Resolver app available
  (or if the list consists of only one handler), the first member of the collection will be used as an Intent handler.
- **`intent`** (`string`, required)
  Name of the intent to raise.
- **`options`** (`AppManager.ApplicationStartOptions`, optional)
  Settings that will be passed to the newly started app instance, if such is to be used as an Intent handler.
- **`target`** (`"startNew" | "reuse" | { app?: string; instance?: string }`, optional)
  Target for the raised Intent. Use `"startNew"` to start a new instance of the first available Intent handler.
  Use `"reuse"` to reuse the first available running instance of an Intent handler.
  Will fall back to `"startNew"` if there are no running instances available.
  Use an object with optional `app` and `instance` properties to target specific apps or app instances.
  The `app` property accepts an app name, the `instance` property - an ID of a running app instance.
  Provide a value for the `app` property to start a new instance of a specific Intent handler app.
  Provide a value for the `instance` property to reuse a specific running instance of an Intent handler.
  If both `app` and `instance` are set, `instance` will take precedence.
- **`timeout`** (`number`, optional) default: `90000`
  Interval in milliseconds to wait for the `raise()` method to resolve when raising an Intent.
- **`waitUserResponseIndefinitely`** (`boolean`, optional) default: `false`
  If `true`, the framework will wait for the user to choose a handler for the raised Intent from the Intents Resolver UI
  before starting the timeout specified in the `timeout` property of the Intent request.
  Otherwise, the timeout will start when the `raise()` method is invoked.

## Related types

- [AppManager](https://docs.interop.io/desktop/reference/javascript/app%20management/appmanager/index.md)
- [ApplicationStartOptions](https://docs.interop.io/desktop/reference/javascript/app%20management/applicationstartoptions/index.md)
- [IntentContext](https://docs.interop.io/desktop/reference/javascript/intents/intentcontext/index.md)
- [IntentHandler](https://docs.interop.io/desktop/reference/javascript/intents/intenthandler/index.md)
