> ## Documentation Index
> Fetch the complete documentation index at: https://docs.corti.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# setInteractionOptions()

> Reference for the Embedded API setInteractionOptions() method.

Use `setInteractionOptions()` for interaction-level defaults such as mode, spoken language, template defaults, personal templates, standard templates, project templates, and document actions.

When you set `templates.defaultTemplate`, it provides a fallback standard
template for new sessions. It is used only when the user does not already have
their own default template set.

<Info>
  Applies to Web Component, Window API, and PostMessage. Examples on this page
  use the Web Component API shape.
</Info>

<Check>
  `setInteractionOptions()` is a one-shot configuration for the embedded
  instance. Set it before the user starts or opens an interaction.
</Check>

<Tip>
  Use [Configuration Scenarios](/assistant/configuration-scenarios) for
  practical examples and [Supported Values](/assistant/configuration-values) for
  supported languages and other lookup values.
</Tip>

<Warning>
  `templates.sources.standard` and `templates.sources.project` apply only when [Guided Document Generation](/release-notes/corti-assistant#v12-19-0) is enabled for your account. If you send either source before rollout reaches your environment, the options are inert and do not change behavior. Assistant only dispatches `embedded.embeddedInteractionOptionsWarning` with `unsupportedSources`.
</Warning>

## Usage

```typescript theme={null}
await api.setInteractionOptions({
  mode: {
    fallback: "in-person",
    options: ["in-person", "virtual"],
  },
  spokenLanguage: {
    fallback: "da",
  },
  templates: {
    sources: {
      personal: {
        enabled: true,
      },
      standard: {
        enabled: true,
        include: {
          regions: ["BEL"],
          families: ["soap"],
        },
        exclude: {
          regions: ["USA"],
          families: ["letter"],
        },
      },
      project: {
        enabled: true,
        include: {
          ids: ["7a0ab5b8-1f62-4f75-86a7-4fcd8fd07b5d"],
        },
        exclude: {
          ids: ["d7a7fd8c-8892-4475-81d3-3414b7d8e27d"],
        },
      },
    },
    defaultTemplate: {
      behaviour: "fallback",
      template: {
        source: "standard",
        id: "corti-soap-en",
      },
    },
  },
  documents: {
    actions: {
      sync: false,
    },
    allowedLanguages: ["en", "da"],
  },
});
```

## Prerequisites

* User must be authenticated.

## Input validation

* `mode.fallback`: Must be either `"in-person"` or `"virtual"`.
* `mode.options`: Must contain one or both of `"in-person"` and `"virtual"`.
* `spokenLanguage.fallback`: Must be a valid language code when provided.
* `templates.sources.personal.enabled`: Must be a boolean when provided.
* `templates.sources.standard.enabled`: Must be a boolean when provided.
* `templates.sources.standard.include.regions`: Must be an array of ISO 3166-1 alpha-3 template region codes when provided.
* `templates.sources.standard.include.families`: Must be an array of standard template family identifiers when provided.
* `templates.sources.standard.exclude.regions`: Must be an array of ISO 3166-1 alpha-3 template region codes when provided.
* `templates.sources.standard.exclude.families`: Must be an array of standard template family identifiers when provided.
* `templates.sources.project.enabled`: Must be a boolean when provided.
* `templates.sources.project.include.ids`: Must be an array of project template UUID strings when provided.
* `templates.sources.project.exclude.ids`: Must be an array of project template UUID strings when provided.
* `templates.defaultTemplate.behaviour`: Must be `"fallback"` when provided.
* `templates.defaultTemplate.template.source`: Must be `"standard"` for the legacy-compatible template mapping covered by this release.
* `templates.defaultTemplate.template.id`: Must be a valid fully resolved template identifier when provided, for example `"corti-soap-en"`.
* `documents.actions.sync`: Must be a boolean when provided.
* `documents.allowedLanguages`: Must be an array of valid BCP 47 locale codes when provided. Region-less codes (e.g., `"en"`, `"da"`) are recommended; region variants (e.g., `"en-US"`) are supported if the region-less code does not provide your desired results.

## Possible errors

* `UNAUTHORIZED`: User not authenticated.
* `INVALID_PAYLOAD`: Invalid mode, language, template, or boolean value.
* `INTERNAL_ERROR`: Failed to apply interaction options.

## Returns

This method is documented as a configuration action and does not expose a response payload in the current public reference.

## Related reference

* [API Reference Overview](/assistant/api-reference)
* [Supported Values](/assistant/configuration-values)
* [Configuration Scenarios](/assistant/configuration-scenarios)
* [configureSession() (Deprecated)](/assistant/api/configure-session)
