Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Click the ChatBot Settings under the Develop menu on the left navigation.

  • Choose an existing chatbot setting or create Make a copy of the Default Bot settings or choose an existing chatbot setup to configure it.

  • Add the below code snippet under the Settings tabUnder the Settings tab, paste the code snippet below.

Code snippet:

Code Block
"liveAgent": {
   
    "sfchoursOfOperation": {
   
        "serverURLtimezone": {server URL},  //String
            "organizationId": {Organization ID},  //String
            "deploymentId": {Deployment ID}, //String
    "America/New_York",
        "buttonIddays": {Buttong ID},  //String
            "messagesmonday": {
                "ChatRequestSuccessstart": "Waiting for the agent to accept your request14",
                "ChatRequestUnavailableend": "I'm so sorry, all agents are offline. The hours of our agents are 8:00AM to Midnight EST. Would you like to give me your contact information and I can have an agent call back you? Is there something I could help you with?",
   20:20"
            },
            "ChatEstablishedtuesday": "Agent accepted your request",{
                "QueueUpdatestart": "Looks like there is a little bit of a wait. Feel free to wait or if you want, you can fill out a Contact Me form and we'll reach out to you once an agent is free.12",
                "ChatRequestFailend": "I'm so sorry, all agents are busy at this time. Would you like to give me your contact information and I can have an agent call you back?",
                "ChatEnded": "Hi. Me again. Just wanted to see how things went with 23:40"
            }
        }
    }

...

Property

...

Description

...

ChatRequestSuccess

...

Defines the content to show when the user triggers the Live Agent connection.

...

ChatRequestUnavailable

...

When there is no active Live Agent available to connect with or if the request is rejected, this property specifies the content that will be displayed.

...

ChatEstablished

...

When the Live Agent connection request is approved, this property specifies the content that will be shown.

...

QueueUpdate

...

Defines what the user sees when waiting to be connected to a Live Agent.

...

ChatRequestFail

...

When the Live Agent does not respond to the connection request, this property specifies the content that should be displayed.

...

ChatEnded

...

When the Live Agent reconnects after an unforeseen connection disconnect, this property specifies the content that will be shown.

Adaptive Card

  • Please import the below code as a new Adaptive Card.

  • Go to Adaptive Cards under the Design menu on the left navigation panel.

  • Click on Create an Adaptive Card button.

  • Save and go back to the listing screen.

  • Click on the 3-dot menu and click Import action.

Code snippet:

Code Block
{,
      "type": "adaptivecard",     "templatewednesday": {
 
      "type": "AdaptiveCard",         "$schemastart": "http://adaptivecards.io/schemas/adaptive-card.json",
    14",
   "body": [             {
                "bleed": true,
                "items": ["end": "20:20"
                     {
                        "type": "ColumnSet",
           },
            "columns": [
                            {
      thursday": {
                         "items": [
                                    {
                                        "type": "Input.Text",
                       "start": "12",
                "isRequired": true,
                                        "errorMessage": "Enter First Name",end": "23:40"
            }
        }
            },
       "idsfc": "firstName",
                               {
        "placeholderserverURL": "First Name"
                                    }
                                ],
                       {server URL}, //String
        "typeorganizationId": "Column",
                        {Organization ID}, //String
        "widthdeploymentId": "stretch"
                            },
                {Deployment ID}, //String
           {
                                "items": [
                                    {
            "buttonId": {Buttong ID}, //String
                           "type": "Input.Text",
                           "messages": {
            "idChatRequestSuccess": "lastName",Waiting for the agent to accept                                    "isRequired": true,
          your request",
                             "errorMessage"ChatRequestUnavailable": "EnterI'm Lastso Name"sorry, all agents are offline. The hours of our agents are 8:00AM to Midnight EST. Would you like to give me your contact information and I can have an agent call back you? Is there something I could help   "placeholder": "Last Name"
                                    }
                                ],
          you with?",
                     "type"ChatEstablished": "Column",Agent accepted                                "width": "stretch"
                            }
                        ]
                    }
                ],
   your request",
            "typeQueueUpdate": "Container",Looks like there is a little bit of a wait. Feel free to wait or if  "style": "emphasis"
            },
            {
                "placeholder": "Email",
   you want, you can fill out a Contact Me form and we'll reach out to you once an agent is free.",
            "errorMessageChatRequestFail": "InvalidI'm emailso address"sorry, all agents are busy at            "type": "Input.Text",
                "id": "email",
   this time. Would you like to give me your contact information and I can have an agent call you back?",
            "regexChatEnded": "^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$",
                "isRequired": true
            },
            {
 Hi. Me again. Just wanted to see how things went with ",
              "placeholderTimeoutMessage": "Phone",Your session timed out. You have left the live         "errorMessage": "Invalid phone number",
                "type": "Input.Text",agent chat."
        }
       "id": "phone",
                "regex": "^(\\+\\d{1,2}\\s?)?1?\\-?\\.?\\s?\\(?\\d{3}\\)?[\\s.-]?\\d{3}[\\s.-]?\\d{4}$",
                "isRequired": true
            },
            {
                "actions": [
                    {
                        "data": {
                            "message": "Start Chatting Message",
                            "eventName": "A-Live-Agent"
                        },
                        "title": "Talk to a person",
                        "style": "positive",
                        "type": "Action.Submit"
                    }
                ],
                "id": "submit",
                "type": "ActionSet"
            }
        ],
        "version": "1.3"
    },
    "templateData": {},
    "hostAppName": {
        "name": "default"
    }
}}
}

Property

Description

ChatRequestSuccess

Defines the content to show when the user triggers the Live Agent connection.

ChatRequestUnavailable

When there is no active Live Agent available to connect with or if the request is rejected, this property specifies the content that will be displayed.

ChatEstablished

When the Live Agent connection request is approved, this property specifies the content that will be shown.

QueueUpdate

Defines what the user sees when waiting to be connected to a Live Agent.

ChatRequestFail

When the Live Agent does not respond to the connection request, this property specifies the content that should be displayed.

ChatEnded

When the Live Agent reconnects after an unforeseen connection disconnect, this property specifies the content that will be shown.

TimeoutMessage

When the connection gets timed out, the message will be displayed using the Text Break Directive.

In order to have the experience in the Chatbot, the corresponding Flow Studio flows, associated Intents and Experience Designer flows have to be built according to the requirement.

Sample Project setup

The following is a simple project for setting up the SalesForce Live Agent. This JSON should be imported at the project level.

View file
nameSalesForce Live Agent project sample.zip

  • Importing the aforementioned project JSON will provide us with the following information.

    • Intents

    • Flow studio

    • Adaptive Cards.

  • Please import the below code into the Experience Designer.

View file
nameExperienceDesignerSFC.json

  • Deploy the Google Agent when all are imported.

Filter by label (Content by label)
showLabelsfalse
max5
showSpacefalse
cqllabel = "live-agent"