Async Transcript API

The AsyncTranscriptAPI method allows the application to pull the conversation history of past asynchronous engagements.

Public Methods
Public Properties
  • NSString *messageType

    The following are the possible message types:

    "chatLine"

    "stateChange"

    "chat.authorized"

    "chat.automation_request"

    "chatroom.member_connected"

    "command"

    "chatroom.member_lost"

  • NSString *getProperty:(NSString *)name

    The table below lists the properties that can be present in a GetMessageResponse. Pass the property name to retrieve its value.

    Name Value Type Description
     agentName Name of the agent assigned to this engagement. string Agent name
     agentIsTyping-state true/false boolean Indicates the agent is currently typing a response.
     agentID Numeric ID of the assigned agent. string The unique identifier of the agent (same as agent login ID).
     command pushURL string A pushURL command is sent.
     from Message sender string This field contains the recommended customer facing agent name (typically presented something like “Jim: How can I help you?”, where Jim is the agent name presented to the customer).
     message Tag to wrap the content of each message.   Indicates a new agent message is included.
     messageText Chat line text. string The actual agent text and/or message.
    messageType chatLine | command | stateChange | chatroom.member_connected | chatroom.member_lost string Type of message that is being returned. When the “stateChange” message type is received, you will also receive the “state” field indicating what state was changed. When the “command” message type is received, you will also receive the “command” field indicating what command was sent.
     queueDepth Number of customers ahead of you in queue number Queue depth is provided when state is queued.
     sequenceNumber Sequence number of this message number The client application can use the sequence number to ensure that messages are displayed in the correct order
    state queued | assigned | closed | agentIsTyping| transfer | conference string The current status of the engagement. This field presents only if messageType = stateChange
     url URL of page sent string When messageType is command, this field will be included and contain the URL to be pushed in the customer’s browser.
    waitTime Estimated wait time, in seconds. number Estimated wait time is provided when state is queued.
           
           
    Other parameters what returns from CR
    Name Example Message types where this parameter appears
    agent.alias <agent.alias>Agent</agent.alias> <messageType>stateChange</messageType><state>assigned</state>, <messageType>chatLine</messageType>, <messageType>chatroom.member_connected</messageType>
     business_unit.id <business_unit.id>22</business_unit.id> <messageType>stateChange</messageType><state>assigned</state>, <messageType>chatroom.member_connected</messageType>
    chatroom.chat_id <chatroom.chat_id>7657620082880181644</chatroom.chat_id> <messageType>chatroom.member_connected</messageType>, <messageType>chatroom.member_lost</messageType>
    chatroom.member.name <chatroom.member.name>1</chatroom.member.name> <messageType>chatroom.member_connected</messageType> 
    chatroom.member.id <chatroom.member.id>1</chatroom.member.id> <messageType>chatroom.member_connected</messageType>, <messageType>chatroom.member lost</messageType>
     chatroom.member.type <chatroom.member.type>agent</chatroom.member.type> <messageType>chatroom.member_connected</messageType>, <messageType>chatroom.member_lost</messageType>
    chatrouter.address  <chatrouter.address>192.168.0.20</chatrouter.address> <messageType>stateChange</messageType><state>assigned</state>
    client.display.text <client.display.text>Agent has left the chat&amp;nl;You are being transferred, please hold...</client.display.text> <messageType>stateChange</messageType><state>transfer</state>, <messageType>chatroom.member_connected</messageType>
    cobrowse.enabled <cobrowse.enabled>true</cobrowse.enabled> <messageType>stateChange</messageType><state>assigned</state>
    display.text <display.text>Agent is typing...</display.text> <messageType>stateChange</messageType><state>agentIsTyping</state>, <messageType>chatroom.member_connected</messageType>, <messageType>chatroom.member_lost</messageType>, <messageType>stateChange</messageType><state>closed</state>
    escalate <escalate>false</escalate> <messageType>stateChange</messageType><state>closed</state>
    event.agent_first_name <event.agent_first_name>User First Name</event.agent_first_name> <messageType>stateChange</messageType><state>assigned</state>, <messageType>chatroom.member_connected</messageType>
    event.agent_last_name <event.agent_last_name>User Last Name</event.agent_last_name> <messageType>stateChange</messageType><state>assigned</state>, <messageType>chatroom.member_connected</messageType>
    exit <exit>true</exit> <messageType>chatroom.member_lost</messageType>
    host.node.id <host.node.id>192.168.0.20</host.node.id> <messageType>stateChange</messageType><state>assigned</state>, <messageType>stateChange</messageType><state>transfer</state>
    msg.originalrequest.id <msg.originalrequest.id>5722840798275623</msg.originalrequest.id> <messageType>stateChange</messageType><state>assigned</state>, <messageType>stateChange</messageType><state>transfer</state>
    owner <owner>true</owner> <messageType>chatroom.member_connected</messageType>
    reason <reason>Transfer accepted and sent to 1</reason>
    <messageType>stateChange</messageType><state>transfer</state>
    screening <screening>true</screening> <messageType>chatroom.member_connected</messageType>
     script.id <script.id>200023</script.id> <messageType>chatLine</messageType>
    tc.mode <tc.mode>transfer</tc.mode> <messageType>chatroom.member_connected</messageType>, <messageType>chatroom.member_lost</messageType>, <messageType>stateChange</messageType><state>closed</state>
    type <type>2</type> <messageType>stateChange</messageType><state>agentIsTyping</state>
    user.id <user.id>2</user.id> <messageType>stateChange</messageType><state>agentIsTyping</state>

    AsyncTranscriptAPI *asyncTranscriptAPI = [[AsyncTranscriptAPI alloc] init];
[asyncTranscriptAPI getAsyncMessages:^(NSMutableArray *messages, Response *error) {

} andMode:@"all" andDays:@"1"];

    AsyncTranscriptAPI *asyncTranscriptAPI = [[AsyncTranscriptAPI alloc] init];
[asyncTranscriptAPI getAsyncMessages:^(NSMutableArray *messages, Response *error) {

} andMode:@"all" andDays:@"1" andBUID:@"1111111"];

let asyncAPI = AsyncTranscriptAPI.init()

asyncAPI.getAsyncMessages ({ (conversations ,errorResp) in
    if errorResp == nil {
        if conversations != nil {
            if (conversations?.count)! > 0 {
                let resp = conversations?[conversations!.count-1] as! ConversationResponse
            }
        }
    }

}, andMode: "none", andDays:nil, andBUID: "11111111")