

# Amazon Connect Agent Workspace Activity API
Activity

The Amazon Connect SDK provides a `SessionExpirationWarningClient` which serves as an interface that your app in the Amazon Connect agent workspace can use to subscribe to events related to session expiration due to inactivity and to signal the Amazon Connect that the agent is active.

The `SessionExpirationWarningClient` 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 client as follows:

```
import { SessionExpirationWarningClient } from "@amazon-connect/activity"; 

const sessionExpirationWarningClient = new SessionExpirationWarningClient();
```

**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, you can provide a constructor argument:

```
import { SessionExpirationWarningClient } from "@amazon-connect/activity";
        
const sessionExpirationWarningClient = new SessionExpirationWarningClient({
    context: sampleContext,  
    provider: sampleProvider
});
```

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

**Topics**
+ [onExpirationWarning()](3P-apps-activity-offexpirationwarning.md)
+ [offExpirationWarningCleared()](3P-apps-activity-offexpirationwarningcleared.md)
+ [offSessionExtensionError()](3P-apps-activity-offsessionextensionerror.md)
+ [onExpirationWarning()](3P-apps-activity-onexpirationwarning.md)
+ [onExpirationWarningCleared()](3P-apps-activity-onexpirationwarningcleared.md)
+ [onSessionExtensionError()](3P-apps-activity-onsessionextensionerror.md)
+ [sendActivity()](3P-apps-activity-sendactivity.md)

# Unsubscribe a callback function from the expiration warning event
onExpirationWarning()

Unsubscribes a callback function from the expiration warning event that is triggered when the agent is nearing expiration due to inactivity.

 **Signature** 

```
offExpirationWarning(handler: ExpirationWarningHandler);
```

 **Usage** 

```
sessionExpirationWarningClient.offExpirationWarning(handler);
```

# Unsubscribe a callback function from the expiration warning cleared event
offExpirationWarningCleared()

Unsubscribes a callback function from the expiration warning cleared event that is triggered when the expiration warning is dismissed due to the agent choosing to stay logged in.

 **Signature** 

```
offExpirationWarningCleared(handler: ExpirationWarningClearedHandler);
```

 **Usage** 

```
sessionExpirationWarningClient.offExpirationWarningCleared(handler);
```

# Unsubscribe a callback function from the session extension error event
offSessionExtensionError()

Unsubscribes a callback function from the session extension error event that is triggered when the agent's session fails to update.

 **Signature** 

```
offSessionExtensionError(handler: SessionExtensionErrorHandler);
```

 **Usage** 

```
sessionExpirationWarningClient.offSessionExtensionError(handler);
```

# Subscribe to session expiration warning event in Amazon Connect Agent Workspace
onExpirationWarning()

Subscribes a callback function to be invoked whenever the agent's session is about to expire due to inactivity.

 **Signature** 

```
onExpirationWarning(handler: ExpirationWarningHandler);
```

 **Usage** 

```
const handler: ExpirationWarningHandler = (data: SessionExpirationInformation) => {
    console.log("Agent's session expiring at:", data);
}

sessionExpirationWarningClient.onExpirationWarning(handler);

// SessionExpirationInformation Structure
{
   expiration: number;
}
```

# Subscribe to expiration warning cleared event in Amazon Connect Agent Workspace
onExpirationWarningCleared()

Subscribes a callback function to be invoked when the agent has acknowledged the expiration warning and chooses to update their session.

 **Signature** 

```
onExpirationWarningCleared(handler: ExpirationWarningClearedHandler);
```

 **Usage** 

```
const handler: ExpirationWarningClearedHandler = () => {
    console.log("My session was extended after I was warned!");
}

sessionExpirationWarningClient.onExpirationWarningCleared(handler);
```

# Subscribe to session extension errors in Amazon Connect Agent Workspace
onSessionExtensionError()

Subscribes a callback function to be invoked when an attempt to extend the agent's session fails.

 **Signature** 

```
onSessionExtensionError(handler: SessionExtensionErrorHandler);
```

 **Usage** 

```
const handler: SessionExtensionErrorHandler = (details: SessionExtensionErrorData) => {
    console.log("Failed to extend my session!", details);
}

sessionExpirationWarningClient.onSessionExtensionError(handler);

// SessionExtensionErrorData Structure
{
    isWarningActive: boolean;
    errorDetails: Record<string, unknown>;
}
```

# Inform Amazon Connect that the agent is active
sendActivity()

Sends a signal to the Amazon Connect indicating that the agent is active and should not be logged out. It takes a provider as a parameter.

 **Signature** 

```
sendActivity(provider): void
```

 **Usage** 

```
import { sendActivity } from '@amazon-connect/activity'; 

const handleActivity = () => {
   sendActivity(sampleProvider);
};

window.addEventListener("click", handleActivity);
```