## How to Use

1. Make sure you configured an Agent Copilot URL using the following pattern: `https://${AgentCopilotBaseUrl}/?userId=${userId}&sessionId=${sessionId}&URLToken=${URLToken}`. For the configuration details, refer to the [Agent Copilot URL](https://docs.cognigy.com/agent-copilot/configure/overview#agent-copilot-url) section.
2. Pass this URL along with the handover to the human agent:

- For native integrations, the embedded version is supported automatically.
   - For custom integrations, include the link in your handover configuration and embed it via **iFrame**:

```html
   <iframe src="https://copilot.example.com/?userId=12345&sessionId=abcde-67890&URLToken=f38791ae20d4961acf0e97d9f377c4fe3df92894e1eff1c7a774a8ed089a4590"
           width="100%"
           height="800px"
           frameborder="0">
   </iframe>
   ```
3. If you are using a **voice use case**, check the **Transfer Node** in your Flow and ensure the **UUIValue** is forwarded via SIP headers during the transfer to the human agent.

### Secure Access with JWT

You can secure embedded access to Agent Copilot by passing a JWT in the URL. This approach ensures that only authenticated users can open the Agent Copilot workspace.

```
https://${AgentCopilotBaseUrl}/?URLToken=${URLToken}&auth={JWT}
```

Where `auth` is the JWT used for authentication. For the authentication to work, the contact center and Cognigy.AI need to share a 256-bit long JWT secret that is used by the Agent Copilot backend. The contact center integration needs to proceed as follows:

1. Creates values for `userId` and `sessionId`.
2. Uses `URLToken` from the respective Cognigy.AI Endpoint.
3. Reads the JWT secret from an internal storage.
4. Signs a JWT with payload containing the `userId` and `sessionId`.

The Agent Copilot backend proceeds as follows:

1. Checks if the `auth` parameter is passed in the URL.
2. If `auth` is passed, the value is treated as a JWT and the Agent Copilot backend verifies the JWT signature.
3. During the verification of the JWT signature, Agent Copilot decodes the payload of the JWT to retrieve the `userId` and `sessionId` parameters, and reads `URLToken` from the URL query string.

For more information about JWTs, read the [JWT documentation](https://www.jwt.io/introduction).

## More Information

- [Agent Copilot](https://docs.cognigy.com/agent-copilot/overview)
- [Getting started with Agent Copilot](https://docs.cognigy.com/agent-copilot/getting-started/chat)
- [Agent Copilot Configuration](https://docs.cognigy.com/agent-copilot/configure/overview)
- [Agent Copilot Nodes](https://docs.cognigy.com/ai/agents/develop/node-reference/agent-copilot/overview)
- [Integration with Contact Centers](https://docs.cognigy.com/agent-copilot/configure/overview)
