Main Conversation Table
The TBL_GEN_CONVERSATION is a top-level table in DCM that tracks all the Genesys Conversations that DCM is involved in.
Table Structure
Column | Purpose | How it's populated |
---|---|---|
InitiatedBy | How the Conversation was created. Possible options are:
| For the "GENESYS" option, Genesys should notify DCM when it creates a Conversation where it intends to load a DCM page. The "DCM" option should be set by the Inbound Email Rules feature or Milestone/Task Events (in a future). |
InitialScreenPopTarget | Determines what the intended UI should screen-pop to the agent when they "Answer" the Conversation. Possible options should be:
| |
ConversationId | Unique identifier for the Genesys Conversation. | It is returned by the Genesys API that created the Conversation. |
ConversationStart | The timestamp of when the Conversation was created/started in Genesys. This value does not indicate when an Agent started working on the Conversation. | It's probably returned by the Genesys API that created the Conversation. or Alternatively, this information can be obtained by calling: /api/v2/analytics/conversations/{conversationId}/details → conversationStart |
ConversationEnd | The timestamp of when the Conversation was ended/closed in Genesys. A Conversation is usually ended when an Agent sets a Wrap-Up Code and Disconnects from the Conversation. I think an "ended" Conversation can not be reopened. | Most often, the Genesys Agent manually sets the Wrap Up Code and clicks the "Close/Disconnect" button from inside a panel in the Case Detail Page. Since it's also possible to end a Conversation from inside the Genesys Workspace, I think the only way to get accurate information is to "subscribe" to Genesys events. or Alternatively, this information can be obtained by calling: /api/v2/analytics/conversations/{conversationId}/details → conversationEnd |
Direction | A Conversation can either be "Inbound" or "Outbound". Essentially, it's whether the conversation was initiated by a Customer (inbound) or by a Genesys Agent (outbound). | This is known at the creation of the Conversation. or Alternatively, this information can be obtained by calling: /api/v2/analytics/conversations/{conversationId}/details → originatingDirection |
OriginalMediaType | A Conversation can either be "voice", "callback", "chat", "email" or "message". | This is known at the creation of the Conversation. |
CalculatedStatus | A Conversation Status is similar to a Milestone. Unfortunately, there isn't a clear single field that tells you whether the Conversation is "Waiting in Queue" or "Ended" We need to use different pieces of information to calculate it. Within Genesys, every "participant" in a Conversation has their own "state". For example, Agent #1 may have transferred the Conversation to Agent #2. The Agent #1's state is "disconnected" while Agent #2's state is "connected". It can get complicated when there are multiple agents on a conversation. On a technical level, every participant can be in these states: alerting, dialing, contacting, offering, connected, disconnected, terminated, converting, uploading, transmitting, none. To simplify, we should just calculate universal states using this logic:
| DCM often doesn't control the Conversation, so DCM may needs to "subscribe" to Genesys events to understand it. or Alternatively, this information can be obtained by calling (email): |
LastQueueId | The Genesys Queue the Conversation belongs to. This value is first set when a Conversation is created. Then this value can update when a Genesys Agent manually transfers the Conversation to another Queue. There may also be use-cases where Genesys does this automatically due to a Genesys Flow or if the Conversation has not been answered for a long time. Internally, every Genesys Queue should also be a DCM Team. If the Conversation is still in Queue (not being handled by an Agent), the Case Owner should equal the Queue's corresponding DCM Team. | DCM doesn't always know which Genesys Queue the Conversation belongs to, so DCM may needs to "subscribe" to Genesys events. or Alternatively, this information can be obtained by calling (email): /api/v2/analytics/conversations/emails/details → participants → where (purpose = acd AND endTime = latest, null) → queue.id & name |
LastQueueName | ||
ErrorMessage | General error message field for debugging. | Any errors occurred when DCM has been trying to communicate with Genesys Cloud. |