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 Inbound Email Rules feature or Milestone/Task Events should set the "DCM" option (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 began 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 terminated when an Agent sets a Wrap-Up Code and Disconnects from the Conversation. I think an "ended" Conversation can not be reopened. | The Genesys Agent often manually sets the Wrap-Up Code and clicks the "Close/Disconnect" button inside the Case Detail Page panel. 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 as 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. Every "participant" in a Conversation has their own "state" within Genesys. For example, Agent #1 may have transferred the Conversation to Agent #2. Agent #1's state is "disconnected" while Agent #2's state is "connected". It can get complicated when there are multiple agents in 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 need 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 need 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. |