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

# Genesys Cloud conversations and status sync

> How OpenCX hands sessions to Genesys Cloud queues, how agent work updates sessions, and which OpenCX changes reach the Genesys conversation.

After a handoff, the OpenCX session and its Genesys Cloud conversation stay linked. Agent work in Genesys updates the session, and changes in OpenCX reach the conversation.

## How handoff works

OpenCX opens one Genesys message conversation per session, starting with the customer's latest message. Your inbound message flow routes it to a queue. New customer messages and agent replies then pass through OpenCX, with files where the channel carries them.

Your flow can read this participant data, always as text:

| Attribute | Value |
| - | - |
| `opencx_session_id` | OpenCX session ID |
| `opencx_inbox_url` | Link to the session |
| `opencx_queue_id` | The queue linked to the session's team, otherwise your default queue |
| `opencx_language` | The session's language |
| `opencx_summary` | The AI summary, possibly shortened at routing time |
| `opencx_skills`, `opencx_skill_ids` | The session's skills, with **Smart routing** |
| `opencx_preferred_agent_id` | With **Prefer an agent** |

The full summary and `opencx_transcript` follow on the customer participant once the conversation opens.

### Use your own flow

OpenCX imports and publishes an **OpenCX Inbound Messages** flow for you. To route with your own flow, choose **Use my own flow** beside **Routing** on the **Setup** tab, any time. A minimal flow:

| Block | What it does |
| - | - |
| **Get Participant Data** | Reads `opencx_queue_id` into a variable. |
| **Decision** | Checks that a queue ID came through. |
| **Transfer to ACD** | Sends the conversation to that queue, or to a fallback queue. |

**Connection check** expects the OpenCX flow. With your own flow, use **Test session** on the **Diagnostics** tab for the round trip.

### When no agents are available

**When no agents are on the queue** decides what happens if nobody is on the target queue at handoff. If OpenCX can't tell, or there's no target queue, it hands off.

| Setting | What happens |
| - | - |
| **Hand off anyway** | The session waits in the queue. |
| **Keep with the AI** | The AI keeps answering, and an internal note explains why. |
| **Create a workitem** | The session gets a [workitem](#workitems) instead of a conversation. Native email and messaging sessions are already conversations, so they get the workitem and still move to the queue. |

## What Genesys sends to OpenCX

These updates usually arrive within about a minute.

| In Genesys Cloud | In OpenCX |
| - | - |
| An agent connects | With **Agent sync** on, the session is assigned to the linked teammate. Otherwise an internal note names the agent. |
| The conversation moves to another queue | The session moves to the linked team. |
| The agent wraps up | A `genesys_wrapup:<code name>` tag is added and wrap-up notes become an internal note. |
| An agent or flow sets participant data | The session attribute `genesys_attr_<key>`, within about five minutes and at the end of the conversation. |
| The conversation ends | **Close the session** closes it with the linked sub-status. **Return to the AI** unassigns it, and a later handoff opens a new conversation. |

## What OpenCX sends to Genesys

Everything below goes to participant data unless noted. None of it reaches the customer as a message. If Genesys refuses a change, it still applies in OpenCX.

| In OpenCX | In Genesys Cloud |
| - | - |
| The session is closed | The conversation ends, with the sub-status's linked wrap-up code or your **Default wrap-up code**. |
| The session is assigned to a linked teammate | With **Agent sync** on, OpenCX asks Genesys to transfer the conversation to that agent. |
| The session is assigned to the AI, from anywhere in OpenCX | The conversation ends, and a later handoff opens a new one. |
| The team changes | OpenCX asks Genesys to transfer the conversation to the team's linked queue. |
| Tags change | `opencx_tags` |
| The sub-status changes | `opencx_sub_status` |
| An internal note is added | `opencx_notes` |
| The channel refuses an agent's reply | The reason is added to `opencx_notes` and to an internal note on the session. |
| A workflow, the AI or a teammate replies | `opencx_last_workflow_reply` |
| Attributes under `genesys_attr_` change | The same key without the prefix |
| The contact's name, email or phone changes | The linked external contact |

Genesys refuses transfers asked for by a connection that isn't in the conversation. When it does, an internal note on the session says so, naming the queue or agent when OpenCX knows it, so move the conversation there in Genesys.

When the AI or the customer closes a session with an agent connected, the conversation stays open. **Agent sync** is on the **Handoff** tab, and it stays off until you turn it on.

### Priority

With [session priority](https://docs.open.cx/inbox/intro.md#set-session-priority) on, a priority change updates `opencx_priority` (none 0, low 10, medium 20, high 30, urgent 40). While the conversation waits in a queue, its routing priority changes too. Custom priority levels stay in OpenCX.

### Wrap-up code suggestions

With **Suggest**, the AI writes up to three codes from the conversation's queue to `opencx_wrapup_suggestions`. **Pre-fill when sure** also pre-selects the top code when the AI is at least 80% sure and the queue makes wrap-up mandatory. A code the agent chose is never replaced, and the agent always has the final say.

### Contacts and companies

At handoff, OpenCX links the contact to a Genesys external contact by phone number, then email, or creates one. A contact with neither isn't linked. Its company links to an external organization the same way. When an agent wraps up, a name edited in Genesys comes back, and an edited email or phone fills only an empty field.

### AI attributes

Under **AI attributes** on the **Handoff** tab, list what the AI should look for in a session, and where it goes: participant data, a custom field on the external contact, or a suggested wrap-up code (`opencx_suggested_wrapup`). The AI fills them at handoff and when OpenCX ends the conversation, and never replaces an agent's entry.

## Workitems

To also give sessions a Genesys workitem, set **Worktype** and **Create a workitem for** on the **Handoff** tab.

| Create a workitem for | Which sessions |
| - | - |
| **Never** | None |
| **On handoff** | Sessions handed off to Genesys |
| **Email sessions** | Email sessions handed off to Genesys |
| **All sessions** | Sessions handed off to Genesys, plus every email session |

A session gets at most one workitem, with its title, summary, queue, skills, language and priority. To fill custom attributes, set session attributes named `genesys_workitem_<attribute>` before handoff. Values the worktype rejects are left out. The ID is stored on the session as `genesys_workitem_id`.

## Workflow actions

| Action | On Genesys sessions |
| - | - |
| **Reply to ticket** | Replies on the customer's channel. With **Send to Third Party Ticketing Integration** on, also sets `opencx_last_workflow_reply`. |
| **Close Ticket** | With **Close in Third Party Ticketing Integration** on, also ends the conversation. |
| **Append note** | With **Send to Third Party Ticketing Integration** on, adds to `opencx_notes`. |
| **Update Session Attributes** | Sets `genesys_attr_` and `genesys_workitem_` attributes. |
| **Make authenticated ticketing request** | Calls any Genesys Cloud API in your region. |
| **Get Ticket External IDs** | Returns the conversation and workitem IDs. |
| **Create Genesys Workitem** | Creates or returns the session's workitem. A worktype must be set. |
| **Update Genesys Workitem** | Changes the fields you fill in. Fails with no workitem. |
| **Transfer To Genesys Queue** | Transfers the conversation to a synced queue by **Queue ID**. |
| **Merge Genesys Session** | Merges a session into another. The merged session's conversation ends. |
| **Assign Ticket to AI** | Ends the conversation. A later handoff opens a new one. |
| **Unassign AI** | Opens a conversation, as a handoff does. |
| **Update Contact** | Updates the linked external contact too. |
| **Handoff** | Opens one conversation. |
| **Reopen Ticket** | Stays in OpenCX. The customer's next message opens a new conversation. |

## Assist panel

In [assist mode](https://docs.open.cx/handoff/introduction.md), agents see the AI's draft in an **OpenCX Assist** panel beside the interaction, with **Insert**, **Copy** and **Dismiss**. Drafts reach the customer only when an agent sends them, and only agents on the conversation can see them. Agents sign in with Genesys when they open it in a new browser session.

To install the panel, click **Install** beside **Assist panel** on the **Setup** tab. Nobody sees it until you choose who gets it: in Genesys Cloud, open **Admin → Integrations → OpenCX Assist → Configuration** and pick the agents' groups under **Group Filtering**. To show it only on some queues, pick them under **Queue Filtering**.

## Channels

Choose where customers chat on the **Channels** tab. These can run together, and each session stays on the one it started on.

| Option | Setup | How it syncs |
| - | - | - |
| **Our widget** | None | The AI answers in OpenCX. A handoff opens a Genesys conversation, and agent replies appear in the widget. |
| **Your own widget, on our API** | None | Same as our widget. Agent replies reach you by [webhook](https://docs.open.cx/api-reference/webhooks/types.md). |
| **Genesys Messenger, or your widget on its SDK** | [Native messaging](https://docs.open.cx/integrations/genesys/native-messaging.md) | Genesys delivers every message. A handoff goes through your flow, and OpenCX records the conversation. |

Agent replies on sessions that start in OpenCX:

| Channel | Agent replies | Good to know |
| - | - | - |
| **AI Chat Widget** | Appear in the widget | Quick-reply options show as a list. |
| **WhatsApp** | Sent from your number | Replies outside the 24-hour window are refused. Send [templates](https://docs.open.cx/whatsapp/messaging-rules.md) from OpenCX. |
| **SMS** | Sent as text | Files stay on the session. The customer gets a line naming the file. |
| **Email** | Sent as email in the same thread | On sessions that start in OpenCX, agents reply in the message view. For email routed natively to Genesys, see [Native email](https://docs.open.cx/integrations/genesys/native-email.md). |

## Import past conversations

To bring past messaging and email into the inbox, open the **Knowledge** section of the **Connection** tab and press **Import** beside **Past conversations**. It covers the last 90 days and creates closed sessions on their real channels. Nothing is sent to customers, no AI or workflow runs, and nothing is billed. Importing again skips what's already there. A large history pauses part way: press **Resume** to go on.

To import one conversation in a workflow, set **Genesys Conversation ID** on the **Create Ticket** action. A live messaging conversation stays open and keeps syncing. An email still open is refused until it ends.

## Sessions your team starts

On a Genesys workspace, the New Session dialog and sub-sessions work on email. OpenCX sends the message and no Genesys conversation exists until the session is handed off.

## Merged sessions

Genesys has no conversation merge. After a [merge](https://docs.open.cx/inbox/merge-sessions.md#merging-with-genesys-cloud), each source conversation gets `opencx_merged_into` and is ended, unless the primary shares it. The primary's conversation gets `opencx_merged_from`. Turn off threading so a returning customer can't rejoin an ended source conversation.

***

## Related Documentation

> [card] [Connect Genesys Cloud](https://docs.open.cx/integrations/genesys/connect.md)
>
> Setup, settings and directory links.

> [card] [Phone calls & live assist](https://docs.open.cx/integrations/genesys/voice.md)
>
> Transcripts and suggestions on Genesys calls.

> [card] [Human handoff](https://docs.open.cx/handoff/introduction.md)
>
> Assist mode and when the AI hands off.

> [card] [Troubleshooting](https://docs.open.cx/integrations/genesys/troubleshooting.md)
>
> Empty queues, missing replies, conversations that don't move.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.