Skip to main content
Skip table of contents

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

ColumnPurpose

How it's populated

InitiatedBy

How the Conversation was created. Possible options are:

  • GENESYS: This means that Genesys created the Conversation first and then requested DCM to show a page. For example, an inbound phone call screen-pops an EP Detail Page.

  • DCM: This means that DCM created the Genesys Conversation via an API. For example, when DCM creates an Email Case and a Genesys Conversation for it.

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:

  • EXTERNALPARTY: Genesys should screen-pop an External Party Detail page when an agent answers this Conversation. For example, when an agent answers a phone call, the agent must see the EP Detail page.  
  • CASE: Genesys should screen-pop a Case Detail page when an agent answers this Conversation. For example, when DCM creates an Email Case. 
  • TASK: Future use-case

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:

  • Waiting in Queue
    When (conversationEnd = null) AND there exists a "participants" record with (purpose = acd AND state = connected)
  • Alerting Agent
    When (conversationEnd = null) AND there exists a "participants" record with (purpose = agent AND state = alerting)
  • In Progress by Agent(s)
    When (conversationEnd = null) AND there exists a "participants" record with (purpose = agent AND state =dialing, contacting, offering, connected, converting, uploading, transmitting)
  • Ended
    When (conversationEnd is not null)
  • Other
    For all other situations, the system will show the state of the Conversation: for example Terminated for calls.

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):  

/api/v2/analytics/conversations/emails/details

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.


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.