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

# Screen Pop for AI Handoffs to Your Contact Center

> Show your agents what the AI already learned, beside the call, the moment Simple AI hands a caller to a person.

When Simple AI hands a call to one of your agents, your contact center can open a page beside the call that shows the AI's summary of the call, the data it collected, and the live transcript.

## How It Works

The page lives at one address. The only part that changes per call is a token:

```text theme={null}
https://ts-api.usesimple.ai/screen-pop#<token>
```

The token goes after the `#`. A browser never sends that part of an address to a server, so the token stays out of server logs on the way. The token names one call and stops working four hours after the call started. Anyone holding it can read that call's page until then, so treat it like a link to the call and do not store it longer than you need to.

Your call flow gets the token, keeps it in a call variable, and your platform's screen pop feature opens the address built from that variable. Nothing is stored in Simple AI. In the dashboard, **Configuration > CCaaS Handoffs** builds the address for your platform, lets you choose what the page shows, and previews it with one of your own calls.

## Choosing What It Shows

By default the page shows the summary, every piece of data the AI collected, and the transcript. Add options to the address to change that:

| Option   | Meaning                                                          | Example                                    |
| -------- | ---------------------------------------------------------------- | ------------------------------------------ |
| `show`   | The sections to show: `summary`, `data`, `transcript`            | `?show=summary,data`                       |
| `fields` | The collected fields to show, in order. Add `:Label` to name one | `?fields=order_number:Order,customer.name` |

```text theme={null}
https://ts-api.usesimple.ai/screen-pop?show=summary,data&fields=order_number:Order,customer.name#<token>
```

Options go before the `#`. Anything after it is read as the token.

The options are fixed text in the address you configure, so different queues can show different things. They tidy the page; they do not restrict access. Anyone holding the token can open the call without them.

## Getting the Token

Every call returned by the [calls API](/api-reference/calls/get-call) carries a `screen_pop_token`. From a call flow, the usual request is [find by attribute](/api-reference/calls/find-by-attribute) with the identifier your platform sent Simple AI when it forwarded the caller. Simple AI keeps every `X-` header from that first SIP message as a call parameter named `sip.headers.<header name in lowercase, dashes as underscores>`.

```bash theme={null}
curl "https://api.usesimple.ai/api/v1/calls/find_by_attribute?param_key=sip.headers.x_callsessionid&param_value=<session id>&fields=screen_pop_token" \
  -H "Authorization: Bearer <api key>"
```

## Platform Steps

### Five9

1. Add a Query module to the IVR script that calls find by attribute with `Call.session_id` and stores `screen_pop_token` in a call variable.
2. Create a connector and type the whole URL, `https://ts-api.usesimple.ai/screen-pop#@<Group>.<variable>@`, with trigger **On Call Accepted** and execution mode **Use embedded tab for Web**. Leave the connector's Parameters table empty: Five9 adds parameters to the end of the URL, where they would run into the token.
3. Add the connector to the campaigns your agents take handoffs on.

### NiCE CXone

1. Before the script places the call to Simple AI, add your contact ID as a header with SIPPUTHEADER, for example `X-ContactID` = `{contactid}`.
2. After the call returns to the script, add a REST API action that calls find by attribute with `param_key=sip.headers.x_contactid` and keeps `screen_pop_token` in a variable.
3. After ONANSWER, add a POPURL action with the URL `https://ts-api.usesimple.ai/screen-pop#{token}` and PopDestination **ContactPanel**.

Agents who use CXone inside Salesforce get the page in a new browser tab; CXone does not embed outside pages there.

### Genesys Cloud

1. In Architect, get the token into a flow variable with a web services Data Action that calls find by attribute using the identifier you sent Simple AI.
2. Create a script with one Web Page component that fills the page, and set its source to a string variable marked as an input. Publish the script.
3. In the flow, before **Transfer to ACD**, add **Set Screen Pop**, choose the script, and set its input to `https://ts-api.usesimple.ai/screen-pop#` followed by the token.

Genesys stores script inputs on the conversation, where supervisors can see them. The token expires, which is why it is safe to pass this way.

### Other Platforms

Any platform whose screen pop can build an address from a call variable works the same way: get the token from the API in the call flow, then open `https://ts-api.usesimple.ai/screen-pop#<token>`. The page can be embedded in any agent desktop or opened in a new tab.

## Related

* [CCaaS Integrations](/integrations/ccaas/overview)
* [Find a call by attribute](/api-reference/calls/find-by-attribute)
