---
title: "CA Realtime"
slug: "dataflow-nodes-conversational-analytics-ca-realtime"
updated: 2026-02-10T04:37:29Z
published: 2026-02-10T04:37:29Z
canonical: "docs.knovvu.com/dataflow-nodes-conversational-analytics-ca-realtime"
---

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

# CA Realtime

Integration node for Conversational Analytics (CA) Realtime, also known as Real-Time Guidance (RTG). 

## Parameters
|  <div style="width:120px">name</div> | description | <div style="width:220px">default</div> |
|---|---|---|
| Address | Address of the Conversational Analytics | http://ca-external-api.sestek-ca |
| IgnoreSslErrors | Ignore any certificate errors if Conversational Analytics address contains https | false |
| CredentialId | Id of the credential that will be used for Conversational Analytics http calls. | None

## Inputs

### Audio
&emsp;none

### Events
| name | description | known nodes that generate this event |
|---|---|---|
| [SR Milestone](/v1/docs/events#sr-milestone) | Speech Recognition results, used for wildcard phrase checks in word scenarios, LetterPerSecond generation in speed scenarios, and transcript generation. | SR Http, SR WebSocket |
| [Emotion](/v1/docs/events#emotion) | Audio Emotion results. The node checks if monotonicity is outside normal ranges depending on the scenario. | Emotion |
| [Sentiment](/v1/docs/events#sentiment)| Text Sentiment results. Used in transcript generation on Customer's channel, and negative sentiment scenarios. | Sentiment |
|[CallStateUpdate](/v1/docs/events#callstateupdate) | Updates CA Conversation Status depending on Call State, can be ` Start `, ` End `, ` On Hold `, ` Continue ` etc.|Entry, External Relay|
|[Chat Message](/v1/docs/events#chat-message) | Used for text-only calls. Works similarly to SR Milestone. Doesn't trigger speed scenarios.|Entry, External Relay|

## Outputs

### Audio
&emsp;none

### Events
| default | description |
|---|---|
| [RTG Scenarios](/v1/docs/events#rtg-scenarios)| This event contains the active and filtered scenarios. The scenarios are contained within an array. This event is generated at startup.|
| [RTG State](/v1/docs/events#rtg-state)| This event contains the Conversation State updates. These events are generated when the conversation state changes. |
| [RTG Notification](/v1/docs/events#rtg-notification) | This event is generated whenever a notification is triggered, and contains the notification information. | 
| [RTG Transcript](/v1/docs/events#rtg-transcript) | This event occurs whenever a transcript is generated and has sentiment information if it is a customer sentiment. |
| [Change Insights](/v1/docs/events#change-insights) | Updates the Conversation Insights node depending on RTG Settings. |

## Remarks  

### Requirements  

#### License
:::(Warning) (RTG License)
The agent for the call must be licensed for RTG in CA Interface. 
:::
![image.png](https://cdn.document360.io/9bca2910-6a3b-4224-9470-43f91f9a6d57/Images/Documentation/image-N04Z5EP6.png){height="" width=""}

![image.png](https://cdn.document360.io/9bca2910-6a3b-4224-9470-43f91f9a6d57/Images/Documentation/image-UT68KB5W.png){height="" width=""}

To check the active licenses of agents, you can go to the `Administration->License Management -> User Licenses` tab in CA Web Interface. The RTG Licenses are under the RTG Tab. 


#### "StartMessage" requirements

"StartMessage" should contain 
- At least one definition under "CallProperties.UserProperties" except for AgentName. This let's CA determine the agent and corresponding scenarios in this session. Since AgentName cannot be used to determine the agent, we need one of the other unique identifiers.  
- Definitions for ChannelTags. This specifies which channel belongs to the customer and which to the agent.
- Other fields are optional.
```json
  {
    "CallProperties": 
    {
      "ExternalId":"", // string 
      "UserProperties":
      {
        "AgentName":"",     // string
        "DeviceId":"",      //string
        "ExternalId":"",    //string
        "PbxAgentId":""     //string
      },
      "CustomerPhoneNumber": "",    // string 
      "Direction": 1,               // integer 
      "CallerNumber":"",            // string 
      "CalledNumber":"",            // string
      "CallStartTime":""            // ISO 8601 DateTime formatted string
    },
    "CA":{
        "TextBased": false // True if the call is text only.
    }
    "Settings":
    {
      "ChannelTags": 
      [
        "a_tag_for_channel_0",                          //string seperated by "," or ";"
        "a_tag_for_channel_1;another_tag_for_channel_1" //string separated by "," or ";"
      ]
    }    
  }
```

****"StartMessage" example****

```json
  {
    "CallProperties": 
    {
     "ExternalId":"a_valid_call_id",
     "UserProperties":
      {
        "PbxAgentId":"a_valid_pbx_agent_id"
        "ExternalId":"a_valid_external_id"
      },
      "CallStartTime":"2022-10-31T09:00:00Z"
    },
    "Settings":
    {
      "ChannelTags": 
      [
        "agent",
        "customer"
      ]    
    }
  }
```


### Workflow

This node first determines the applicable CA scenarios. Then it processes incoming Data Flow events and sends relevant information to CA servers.

#### Moments
While information is flowing to CA, call related events can be observed in the RTG Moments board.
<center>

![image.png](https://cdn.document360.io/9bca2910-6a3b-4224-9470-43f91f9a6d57/Images/Documentation/image%28770%29.png){height="" width=""}

</center>

#### RTG Dashboard
At the start of session, the node notifies RTG that the determined agent is on a call. Which changes the Conversation Status of the agent in RTG Dashboard. 
Upon receiving CallStateUpdate events from the client, or when the call ends, the node informs CA to change the conversation Status accordingly.
<center>
    
![image.png](https://cdn.document360.io/9bca2910-6a3b-4224-9470-43f91f9a6d57/Images/Documentation/image%28769%29.png){height="" width=""}

</center>

#### Transcripts
CA Realtime node provides transcripts to CA in real time. It also includes customer side sentiment information in the transcripts if available.
<center>
    
![image.png](https://cdn.document360.io/9bca2910-6a3b-4224-9470-43f91f9a6d57/Images/Documentation/image%28803%29.png){height="" width=""}
</center>

### Project Structure

The CA Realtime node requires a [Channel Switch](/v1/docs/dataflow-nodes-channel-switch){target=`_blank`} node. Input from two [SR Http](/v1/docs/dataflow-nodes-speech-recognition-sr-http){target=`_blank`} nodes, [Emotion](/v1/docs/dataflow-nodes-emotion){target=`_blank`} from the `Agent` channel, and [Sentiment](/v1/docs/dataflow-nodes-sentiment){target=`_blank`} from the `Customer` channel.

<center>

![image.png](https://cdn.document360.io/9bca2910-6a3b-4224-9470-43f91f9a6d57/Images/Documentation/image%28917%29.png){height="" width=""}
</center>

The default project ca-online in Data Flow contains a ready to use CA Realtime node. 

### Supported flow types
Stream, Batch

## Release Notes

<div style="max-height: 200px; overflow-y: auto; overflow-x: hidden">
    <details>
        <summary> <strong> v4.6.0</strong> </summary>
        <ul>
            <li>Agent Checklists can now be triggered in order or randomly depending on the scenario definition.</li>
        </ul>
    </details>
    <details>
        <summary> <strong> v4.5.0</strong> </summary>
        <ul>
            <li>Added RTG License checks. If the user is not licensed, notifications and transcripts will not be sent.</li>
            <li>Now sends a Change Insights event depending on RTG Settings.</li>
        </ul>
    </details>
    <details>
        <summary> <strong> v3.7.0</strong> </summary>
        <ul>
            <li>Agent Id can now be acquired later in the call via a CallStateUpdate event if the first Determine User failed.</li>
        </ul>
    </details>
     <details>
        <summary> <strong> v3.6.0 </strong> </summary>
        <ul>
            <li>Added support for Agent Checklist Word Counts. </li>
        </ul>
    </details>
    <details>
        <summary> <strong> v3.5.0 </strong> </summary>
        <ul>
            <li>Added support for sending transcripts even if the agent has no assigned scenarios. </li>
        </ul>
    </details>
    <details>
        <summary> <strong> v3.4.0 </strong> </summary>
        <ul>
            <li>Added support for agent checklist scenarios. </li>
        </ul>
    </details>
    <details>
        <summary> <strong> v3.1.0 </strong> </summary>
        <ul>
            <li>Now supports and sends Call Hold, and IVR Hold events properly. </li>
            <li>Fixed a bug where conversation start time would show 1970.</li>
            <li>Added support for scenarios defined with attached data.</li>
            <li>Sends notification time when notifications are triggered.</li>
            <li>Added Language awareness, Language parameter is added to node config.</li>
            <li>Added support for text-only sessions as well.</li>
        </ul>
    </details>
    <details>
        <summary> <strong> v3.0.0 </strong> </summary>
        <ul>
            <li> Now sends state messages such as Start, Stop and Pause to RTG Dashboard.</li>
            <li> Fixed a bug where all monotonicity events were being sent.</li>
            <li> Speech rate is now being calculated by Letters Per Second instead of Words Per Minute.</li>
            <li> Added support for StartMessage.CallProperties</li>
            <li> Added support for Reporting Incidents whenever an error is encountered.</li>
        </ul>
    </details>
    <details>
        <summary> <strong> v2.0.0 </strong> </summary>
        <ul>
            <li> Fixed multiple bugs that stopped notifications from being sent.</li>
            <li> Changed default address to service address.</li>
            <li> Sends every transcript to the dashboard instead of just sending notifications.</li>
        </ul>
    </details>
    <details>
        <summary> <strong> v1.0.0 </strong> </summary>
        <ul>
            <li> Introduced Node.</li>
        </ul>
    </details>
</div>
