

# Amazon Connect Agent Workspace User API
<a name="api-reference-3P-apps-user"></a>

The Amazon Connect SDK provides an `SettingsClient` which serves as an interface that your app in Amazon Connect Agent Workspace can use to make data requests on user settings.

The `SettingsClient` accepts an optional constructor argument, ` ConnectClientConfig` which itself is defined as:

```
        export type ConnectClientConfig = {  
            context?: ModuleContext;  
            provider?: AmazonConnectProvider;
         };
```

If you do not provide a value for this config, then the client will default to using the ** AmazonConnectProvider** set in the global provider scope. You can also manually configure this using **setGlobalProvider**.

You can instantiate the agent client as follows:

```
        import { SettingsClient } from "@amazon-connect/user";
        const settingsClient = new SettingsClient({ provider });
```

**Note**  
You must first instantiate the [ AmazonConnectApp](getting-started-initialize-sdk.md) which initializes the default AmazonConnectProvider and returns ` { provider } `. This is the recommended option.

Alternatively, providing a constructor argument:

```
        import { SettingsClient } from "@amazon-connect/user";
        
        const settingsClient = new SettingsClient({
            context: sampleContext,  
            provider: sampleProvider
    });
```

The following sections describe API calls for working with the User API.

**Topics**
+ [getLanguage()](3P-apps-user-requests-getlanguage.md)
+ [onLanguageChanged()](3P-apps-user-events-languagechanged-sub.md)
+ [offLanguageChanged()](3P-apps-user-events-languagechanged-unsub.md)

# Get the language of a user in Amazon Connect Agent Workspace
<a name="3P-apps-user-requests-getlanguage"></a>

Returns the language setting for the current user in the Amazon Connect Agent Workspace.

```
async getLanguage(): Promise<Locale | null>        
```

 **Permissions required:** 

```
User.Configuration.View              
```

# Subscribe a callback function when an Amazon Connect Agent Workspace user changes languages
<a name="3P-apps-user-events-languagechanged-sub"></a>

Subscribes a callback function to-be-invoked whenever a user LanguageChanged event occurs in the Amazon Connect Agent Workspace.

 **Signature** 

```
onLanguageChanged(handler: UserLanguageChangedHandler)
```

 **Usage** 

```
const handler: UserLanguageChangedHandler = async (data: UserLanguageChanged) => {
    console.log("User LanguageChange occurred! " + data);
};

settingsClient.onLanguageChanged(handler);

// UserLanguageChanged Structure
{
  language: string;
  previous: {
    language: string;
  };
}
```

 **Permissions required:** 

```
User.Configuration.View             
```

# Unsubscribe a callback function when an Amazon Connect Agent Workspace user changes languages
<a name="3P-apps-user-events-languagechanged-unsub"></a>

Unsubscribes the callback function from LanguageChanged event in the Amazon Connect Agent Workspace.

 **Signature** 

```
offLanguageChanged(handler: UserLanguageChangedHandler)
```

 **Usage** 

```
settingsClient.offLanguageChanged(handler);             
```