Start Conversation

Calls ECE’s ‘Start conversation’ API to create the conversation for a customer. Uses ‘searchContactOnAttribute’ option.

📘

Important!

In addition to processing the responses from Start Conversation API, this node also waits for and handles messages from ECE application for an ongoing conversation that are posted to the registered imiconnect webhook callback URL.

🚧

Limitation - Custom attributes for the activity

Currently, the Start Conversation node limits the ability to send custom attributes for the activity being created as part of this conversation to the fields that are visible on the node UI. It is not possible to send custom attributes that may be unique to your ECE implementation.

The events are processed in the following order:

  • API responses from Start Conversation API (onStartConversationSuccess, Bad Request, Forbidden, Unauthorized, Internal Server Error.
  • Messages from ECE application for an ongoing conversation (Assigned, PagePush, Message, Transfer, AcceptAttachment, UploadAttachment, RejectAttachment, Complete).
    • Not all of these asynchronous events are similar. E.g., while you can receive events such as Message or Transfer multiple times, you receive the Complete event only once and it indicates that the conversation has been completed.
    • As a result, when configuring flow branches corresponding to each of these events, you need to make a distinction between the kind of nodes you can use on branches for intermediate events (such as Message and Transfer), vs closing event i.e., Complete. While you can add wait for or delay nodes (such as receive node, wait for delivery receipt on a Send SMS node, or a delay node, or an HTTP node which times out after configured time period, etc.) on the flow branch for the closing event, you are not supposed to add such nodes for intermediate events. If you do so, those will not be processed and will lead to issues.

Authorization

Refer to the Node Authorization section for more information.

Methods and Outcomes

Start Conversation on SMS

617
Input VariablesOutput VariablesNode Outcomes
Key
Name of the contact point. For initiating a conversation on SMS, it is mobile.phone

Entry Point ID
The ID of the entry point where you want to create the conversation.

Last Modified Date
Last modified date of the entrypoint.

Is Rich Text Supported?
Indicates whether client supports rich text. Value can be true which means it is supported, or false which means it is not supported.

Transaction ID
Transaction id from the start node on the channel specific flow. For SMS, it is nodeid.sms.transid, & for Facebook Messenger, it is nodeid.messenger.transid


First Name
Customer first name.

Phone Number
Customer phone number without country code.

Country Code
Country code associated with the customer’s phone number.

Cluster ID
ECE Cluster ID where the conversation is being created.
Conversation ID
* Custom attribute to store the conversation ID for SMS. The value needs to be set to null when initiating a new conversation.

caseId
Case ID associated with the conversation.

activityId
ID of the activity being created as part of this conversation.

conversationId
ID of the conversation

code
Contains the error sub-code when the node execution does not succeed.

developerMessage
Contains the error sub-code description when the node execution does not succeed.

response
Contains the complete response payload received from the API.
onInvalidData

Request processing failed due to missing data.

onError

Request processing failed due to an error.

onInvalidChoice

Request processing failed but there is no outcome configured for the concerned scenario.

onTimeout

Request processing timed out.

Bad Request
None of the mutually exclusive mandatory query parameters are provided.
Any unsupported query parameters are provided.
Invalid value provided for any of the query parameters.
Customer search found multiple contacts.
Customer was not found, and customer creation using the provided details failed.
Any rules stated in Overview or Request Body sections are violated.

Unauthorized
Authorization header is not provided.
Authorization header format is incorrect.
Session does not exist corresponding to the provided authorization header.
The session identified through authorization header is not a client application session.

Forbidden
The client application is not configured to use the provided entry point.

Internal server error
Request processing failed because of internal server error.

Complete
Agent ended the conversation while customer was still in session.

Assigned
Agent assigned to the conversation.

Message
Agent sent a message to the customer.

PagePush
Agent sent a link to end user.

Transfer
Agent transferred the chat to another agent/queue.

RejectAttachment
Agent rejected the attachment.

AcceptAttachment
Agent accepted the attachment.

UploadAttachment
Agent uploaded an attachment.

onauthorizationfail

* The authorization has failed due to authentication

Start Conversation on Messenger

617
Input VariablesOutput VariablesNode Outcomes
Key
Name of the contact point. For initiating a conversation on Facebook Messenger, it is custom.facebookpsid

Entry Point ID
The ID of the entry point where you want to create the conversation.

Last Modified Date
Last modified date of the entrypoint.

Is Rich Text Supported?
Indicates whether client supports rich text. Value can be true which means it is supported, or false which means it is not supported.

Transaction ID
Transaction id from the start node on the channel specific flow. For SMS, it is nodeid.sms.transid, & for Facebook Messenger, it is nodeid.messenger.transid


First Name
Customer first name.

Cluster ID
ECE Cluster ID where the conversation is being created.
Conversation ID
Custom attribute to store the conversation ID for SMS. The value needs to be set to null when initiating a new conversation.

Facebook PSID
Facebook Page Scoped ID for the customer who initiated the conversation using messenger.
caseId
Case ID associated with the conversation.

activityId
ID of the activity being created as part of this conversation.
conversationId
ID of the conversation

code
Contains the error sub-code when the node execution does not succeed.

developerMessage
Contains the error sub-code description when the node execution does not succeed.

response
* Contains the complete response payload received from the API.
onInvalidData

Request processing failed due to missing data.

onError

Request processing failed due to an error.

onInvalidChoice

Request processing failed but there is no outcome configured for the concerned scenario.

onTimeout

Request processing timed out.

Bad Request
None of the mutually exclusive mandatory query parameters are provided.
Any unsupported query parameters are provided.
Invalid value provided for any of the query parameters.
Customer search found multiple contacts.
Customer was not found, and customer creation using the provided details failed.
Any rules stated in Overview or Request Body sections are violated.

Unauthorized
Authorization header is not provided.
Authorization header format is incorrect.
Session does not exist corresponding to the provided authorization header.
The session identified through authorization header is not a client application session.

Forbidden
The client application is not configured to use the provided entry point.

Internal server error
Request processing failed because of internal server error.

onStartConversationSuccess
Chat conversation started successfully.

Complete
Agent ended the conversation while customer was still in session.

Assigned
Agent assigned to the conversation.

Message
Agent sent a message to the customer.

PagePush
Agent sent a link to end user.

Transfer
Agent transferred the chat to another agent/queue.

RejectAttachment
Agent rejected the attachment.

AcceptAttachment
Agent accepted the attachment.

UploadAttachment
Agent uploaded an attachment.

onauthorizationfail

The authorization has failed due to authentication