diff --git a/Gemfile b/Gemfile index afec0b80cb..082b1a0786 100644 --- a/Gemfile +++ b/Gemfile @@ -11,7 +11,7 @@ group :jekyll_plugins do gem 'kramdown-parser-gfm' gem 'i18n', '>= 0.7' gem 'jekyll-assets' - gem 'sprockets', '~> 3.7' + gem 'sprockets', '~> 4.0' gem 'rack', '>= 2.0.6' gem 'nokogiri', '>= 1.10.4' gem 'html-proofer' diff --git a/Gemfile.lock b/Gemfile.lock index 37c728c97e..f6b26d6a17 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -132,7 +132,7 @@ GEM sass-listen (4.0.0) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) - sprockets (3.7.2) + sprockets (4.0.3) concurrent-ruby (~> 1.0) rack (> 1, < 3) thread_safe (0.3.6) @@ -164,7 +164,7 @@ DEPENDENCIES kramdown-parser-gfm nokogiri (>= 1.10.4) rack (>= 2.0.6) - sprockets (~> 3.7) + sprockets (~> 4.0) whenever BUNDLED WITH diff --git a/_data/documentsupdated.yaml b/_data/documentsupdated.yaml index b6624975c4..374d5e6916 100644 --- a/_data/documentsupdated.yaml +++ b/_data/documentsupdated.yaml @@ -2,6 +2,7 @@ image: getting-started documents: - documentname: Getting Started with your Free Trial Account + - documentname: Do More with the Conversational Cloud - documentname: Customizing the Conversational Cloud - documentname: Starting with your Concierge Bot - documentname: LivePerson APIs and SDKs @@ -934,42 +935,7 @@ - subpagename: Agent Activity - subpagename: Current Queue State - subpagename: SLA Histogram - - documentname: Outbound Reporting API - pages: - - pagename: Overview - - documentname: Key Messaging Metrics API - basedomain: https://{domain}/manager_workspace/api/account/{accountID} - pages: - - pagename: Overview - - pagename: Methods - subpages: - - subpagename: Metrics - - subpagename: Historical - - subpagename: Agent View - - documentname: Agent Activity API - basedomain: https://{domain}/api/account/{accountID} - pages: - - pagename: Overview - - pagename: Methods - subpages: - - subpagename: Get Status Changes - - pagename: Error Codes - - documentname: Actual Handle Time API - basedomain: https://{domain}/api/account/{accountID} - pages: - - pagename: Overview - - pagename: Methods - subpages: - - subpagename: Get Agent Segments - - pagename: Error Codes - - documentname: Net Handle Time API - basedomain: https://{domain}/operations/api/account/{accountID} - pages: - - pagename: Overview - - pagename: Methods - subpages: - - subpagename: Get Net Handle Time by Skill - - pagename: Error Codes + - categoryname: Messaging Channels image: agent-interaction documents: diff --git a/_exclude/CustomerFacingBots/LiveEngageBotConnectorGuide.md b/_exclude/CustomerFacingBots/LiveEngageBotConnectorGuide.md index fb938acddc..24fb96ace9 100644 --- a/_exclude/CustomerFacingBots/LiveEngageBotConnectorGuide.md +++ b/_exclude/CustomerFacingBots/LiveEngageBotConnectorGuide.md @@ -12,7 +12,7 @@ indicator: both
The intended audience of this document is LivePerson Professional Services and other account stakeholders. It is to be used for consulting 3rd party bot builders in integrating their bots to LivePerson on behalf of our customers.
-The LiveEngage platform helps orchestrate the flow of messages back and forth between consumers and Agents. Consumers can be on any end-user channel such as SMS, Web, Facebook Messenger and Apple Business chat, and communicate with both Human and Automated (Bot) agents. A bot is an automated conversational agent that performs a specific goal. LiveEngage has several avenues through which our customers can develop and deploy bots: +The LiveEngage platform helps orchestrate the flow of messages back and forth between consumers and Agents. Consumers can be on any end-user channel such as SMS, Web, Facebook Messenger and Apple Messages for Business, and communicate with both Human and Automated (Bot) agents. A bot is an automated conversational agent that performs a specific goal. LiveEngage has several avenues through which our customers can develop and deploy bots: * BotCentral Platform (owned by LivePerson, soon to be deprecated by the Conversation Builder) diff --git a/css/default.css b/css/default.css index bfd478b06e..b00d0de69d 100644 --- a/css/default.css +++ b/css/default.css @@ -596,11 +596,6 @@ td { } } -.table-wrapper { - display: block; - overflow-x: auto; -} - #featurestable { width: 100%; max-width: none; @@ -617,8 +612,6 @@ td { #featurestable tr td { vertical-align: middle; - hyphens: inherit; - overflow-wrap: inherit; } #featurestable .green { @@ -673,7 +666,7 @@ td { padding-left: 10px; } -.categoryrow td { +.categoryrow { background-color: #162036 !important; } @@ -1225,13 +1218,10 @@ div#defaultsidebar .mysidebar .sidebarbuttoncontainer { } #jumpto { + flex: 1 !important; /* TODO: Disable “important” */ padding-bottom: var(--space10); } -#jumpto #anchorlist p:not(:empty) { - min-width: 240px; -} - #anchorlist { margin-top: 70px; overflow-wrap: anywhere; @@ -1276,8 +1266,7 @@ div#defaultsidebar .mysidebar .sidebarbuttoncontainer { } .highlightlink { - background-color: var(--body-background) !important; - /* Make sure background is white */ + background-color: var(--body-background) !important; /* Make sure background is white */ color: var(--link-color) !important; font-weight: bold; } diff --git a/css/inner-page.css b/css/inner-page.css index 84a8562891..df24d14b91 100644 --- a/css/inner-page.css +++ b/css/inner-page.css @@ -190,27 +190,10 @@ table>thead>tr>th { border-bottom: none; } -table>tbody>tr:nth-of-type(odd):not(.categoryrow) td { +table>tbody>tr:nth-of-type(odd) { background-color: var(--table-cell); } -#featurestable tr td, -#featurestable tr th { - padding: 8px; - min-width: 130px; -} - -#featurestable tr td:first-child, -#featurestable tr th:first-child { - min-width: 200px; -} - -#featurestable tr { - width: 100%; - display: grid; - grid-auto-flow: column; -} - .designsheet table tr td { line-height: 2.4em !important; text-align: center; diff --git a/js/additionalscripts.js b/js/additionalscripts.js index 9b2761ddaf..ce2fbac44e 100644 --- a/js/additionalscripts.js +++ b/js/additionalscripts.js @@ -668,7 +668,7 @@ function searchFunction() { //very similar to the search function above, just for the capabilities comparison table function capabilitiesSearch() { var $title = $(".h1").text() - if ($title.indexOf("Messaging features Capabilities Comparison") > -1) { + if ($title.indexOf("Rich Messaging Channel Capabilities") > -1) { // Declare variables // console.log("run") var input, filter, table, tr, categorytr, td, i diff --git a/package-lock.json b/package-lock.json index 25f37fc756..c855d74090 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "lodash": "^4.17.21", "lodash.template": ">=4.5.0", "object-path": ">=0.11.5", - "socket.io": ">=4.5.2", + "socket.io": ">=4.5.1", "yargs-parser": ">=21.1.1" }, "devDependencies": { @@ -225,6 +225,11 @@ "node": ">=10.13.0" } }, + "node_modules/@types/component-emitter": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", + "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==" + }, "node_modules/@types/cookie": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", @@ -1138,6 +1143,76 @@ "stream-throttle": "^0.1.3" } }, + "node_modules/browser-sync/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/browser-sync/node_modules/engine.io": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.0.tgz", + "integrity": "sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg==", + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/browser-sync/node_modules/engine.io-parser": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", + "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/browser-sync/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/browser-sync/node_modules/socket.io": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.1.tgz", + "integrity": "sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ==", + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.2.0", + "socket.io-adapter": "~2.4.0", + "socket.io-parser": "~4.0.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/browser-sync/node_modules/socket.io-adapter": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", + "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==" + }, "node_modules/bs-recipes": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", @@ -8787,16 +8862,16 @@ } }, "node_modules/socket.io": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.2.tgz", - "integrity": "sha512-6fCnk4ARMPZN448+SQcnn1u8OHUC72puJcNtSgg2xS34Cu7br1gQ09YKkO1PFfDn/wyUE9ZgMAwosJed003+NQ==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.1.tgz", + "integrity": "sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ==", "dependencies": { "accepts": "~1.3.4", "base64id": "~2.0.0", "debug": "~4.3.2", "engine.io": "~6.2.0", "socket.io-adapter": "~2.4.0", - "socket.io-parser": "~4.2.0" + "socket.io-parser": "~4.0.4" }, "engines": { "node": ">=10.0.0" @@ -8842,7 +8917,7 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/socket.io-parser": { + "node_modules/socket.io-client/node_modules/socket.io-parser": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz", "integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==", @@ -8854,10 +8929,23 @@ "node": ">=10.0.0" } }, + "node_modules/socket.io-parser": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "dependencies": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/socket.io-parser/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dependencies": { "ms": "2.1.2" }, @@ -10482,6 +10570,11 @@ "dev": true, "optional": true }, + "@types/component-emitter": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", + "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==" + }, "@types/cookie": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", @@ -11162,6 +11255,61 @@ "socket.io": "^4.4.1", "ua-parser-js": "1.0.2", "yargs": "^17.3.1" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "engine.io": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.0.tgz", + "integrity": "sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg==", + "requires": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3" + } + }, + "engine.io-parser": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", + "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "socket.io": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.1.tgz", + "integrity": "sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ==", + "requires": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.2.0", + "socket.io-adapter": "~2.4.0", + "socket.io-parser": "~4.0.4" + } + }, + "socket.io-adapter": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", + "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==" + } } }, "browser-sync-client": { @@ -17066,16 +17214,16 @@ } }, "socket.io": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.2.tgz", - "integrity": "sha512-6fCnk4ARMPZN448+SQcnn1u8OHUC72puJcNtSgg2xS34Cu7br1gQ09YKkO1PFfDn/wyUE9ZgMAwosJed003+NQ==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.1.tgz", + "integrity": "sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ==", "requires": { "accepts": "~1.3.4", "base64id": "~2.0.0", "debug": "~4.3.2", "engine.io": "~6.2.0", "socket.io-adapter": "~2.4.0", - "socket.io-parser": "~4.2.0" + "socket.io-parser": "~4.0.4" }, "dependencies": { "debug": { @@ -17121,22 +17269,32 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "socket.io-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz", + "integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==", + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + } } } }, "socket.io-parser": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz", - "integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", "requires": { - "@socket.io/component-emitter": "~3.1.0", + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", "debug": "~4.3.1" }, "dependencies": { "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "requires": { "ms": "2.1.2" } diff --git a/package.json b/package.json index 4c5a808be0..128d33d2e1 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "lodash": "^4.17.21", "lodash.template": ">=4.5.0", "object-path": ">=0.11.5", - "socket.io": ">=4.5.2", + "socket.io": ">=4.5.1", "yargs-parser": ">=21.1.1" }, "devDependencies": { diff --git a/pages/Documents/APIGuidelines/messaging-features-capabilities-comparison.md b/pages/Documents/APIGuidelines/messaging-features-capabilities-comparison.md index afb0321d1b..53d86660f6 100644 --- a/pages/Documents/APIGuidelines/messaging-features-capabilities-comparison.md +++ b/pages/Documents/APIGuidelines/messaging-features-capabilities-comparison.md @@ -10,114 +10,112 @@ redirect_from: --- -
- - - - - - - - - - - - - - - - {% for category in site.data.capabilities %} - - - - - - - - - - - - - - {% for feature in category.features %} - - - {% for channel in feature.channels %} - {% if forloop.index == 1 %} - {% if channel.mobileAppMessaging == "Supported" %} - - {% else %} - - {% endif %} - {% endif %} - {% if forloop.index == 2 %} - {% if channel.webMessaging == "Supported" %} - - {% else %} - - {% endif %} - {% endif %} - {% if forloop.index == 3 %} - {% if channel.appleBusinessChat == "Supported" %} - - {% else %} - - {% endif %} - {% endif %} - {% if forloop.index == 4 %} - {% if channel.sms == "Supported" %} - - {% else %} - - {% endif %} - {% endif %} - {% if forloop.index == 5 %} - {% if channel.facebook == "Supported" %} - - {% else %} - - {% endif %} - {% endif %} - {% if forloop.index == 6 %} - {% if channel.whatsapp == "Supported" %} - - {% else %} - - {% endif %} - {% endif %} - {% if forloop.index == 7 %} - {% if channel.googleRCS == "Supported" %} - - {% else %} - - {% endif %} - {% endif %} - {% if forloop.index == 8 %} - {% if channel.line == "Supported" %} - - {% else %} - - {% endif %} - {% endif %} - {% if forloop.index == 9 %} - {% if channel.messagingWindowAPI == "Supported" %} - - {% else %} - - {% endif %} - {% endif %} - {% if forloop.index == 10 %} - {% if channel.connectorAPI == "Supported" %} - - {% else %} - - {% endif %} - {% endif %} - {% endfor %} - +
Mobile App MessagingWeb MessagingApple Business chatSMSFacebookWhatsAppGoogle RCSLineMessaging Window APIConnector API
{{ category.categoryName }}
{{ feature.featureName }}{{ channel.mobileAppMessaging }}{{ channel.mobileAppMessaging }}{{ channel.webMessaging }}{{ channel.webMessaging }}{{ channel.appleBusinessChat }}{{ channel.appleBusinessChat }}{{ channel.sms }}{{ channel.sms }}{{ channel.facebook }}{{ channel.facebook }}{{ channel.whatsapp }}{{ channel.whatsapp }}{{ channel.googleRCS }}{{ channel.googleRCS }}{{ channel.line }}{{ channel.line }}{{ channel.messagingWindowAPI }}{{ channel.messagingWindowAPI }}{{ channel.connectorAPI }}{{ channel.connectorAPI }}
+ + + + + + + + + + + + + + + {% for category in site.data.capabilities %} + + + + + + + + + + + + + + {% for feature in category.features %} + + + {% for channel in feature.channels %} + {% if forloop.index == 1 %} + {% if channel.mobileAppMessaging == "Supported" %} + + {% else %} + + {% endif %} + {% endif %} + {% if forloop.index == 2 %} + {% if channel.webMessaging == "Supported" %} + + {% else %} + + {% endif %} + {% endif %} + {% if forloop.index == 3 %} + {% if channel.appleBusinessChat == "Supported" %} + + {% else %} + + {% endif %} + {% endif %} + {% if forloop.index == 4 %} + {% if channel.sms == "Supported" %} + + {% else %} + + {% endif %} + {% endif %} + {% if forloop.index == 5 %} + {% if channel.facebook == "Supported" %} + + {% else %} + + {% endif %} + {% endif %} + {% if forloop.index == 6 %} + {% if channel.whatsapp == "Supported" %} + + {% else %} + + {% endif %} + {% endif %} + {% if forloop.index == 7 %} + {% if channel.googleRCS == "Supported" %} + + {% else %} + + {% endif %} + {% endif %} + {% if forloop.index == 8 %} + {% if channel.line == "Supported" %} + + {% else %} + + {% endif %} + {% endif %} + {% if forloop.index == 9 %} + {% if channel.messagingWindowAPI == "Supported" %} + + {% else %} + + {% endif %} + {% endif %} + {% if forloop.index == 10 %} + {% if channel.connectorAPI == "Supported" %} + + {% else %} + + {% endif %} + {% endif %} {% endfor %} + {% endfor %} - + {% endfor %} +
Mobile App MessagingWeb MessagingApple Messages for BusinessSMSFacebookWhatsAppGoogle RCSLineMessaging Window APIConnector API
{{ category.categoryName }}
{{ feature.featureName }}{{ channel.mobileAppMessaging }}{{ channel.mobileAppMessaging }}{{ channel.webMessaging }}{{ channel.webMessaging }}{{ channel.appleBusinessChat }}{{ channel.appleBusinessChat }}{{ channel.sms }}{{ channel.sms }}{{ channel.facebook }}{{ channel.facebook }}{{ channel.whatsapp }}{{ channel.whatsapp }}{{ channel.googleRCS }}{{ channel.googleRCS }}{{ channel.line }}{{ channel.line }}{{ channel.messagingWindowAPI }}{{ channel.messagingWindowAPI }}{{ channel.connectorAPI }}{{ channel.connectorAPI }}
-
diff --git a/pages/Documents/ConversationalAI/ConversationBuilder/BotTemplates/full-lead-gen.md b/pages/Documents/ConversationalAI/ConversationBuilder/BotTemplates/full-lead-gen.md index 55b6ffd007..0438fce2d9 100644 --- a/pages/Documents/ConversationalAI/ConversationBuilder/BotTemplates/full-lead-gen.md +++ b/pages/Documents/ConversationalAI/ConversationBuilder/BotTemplates/full-lead-gen.md @@ -26,7 +26,7 @@ The template can be configured to handle Web, SMS, Apple Messages for Business, * Lead Gen * This is the main dialog for collecting the user’s contact information. * By default this dialog collects (and attempts to validate) the user’s name, email address and phone number. There is also an interaction to collect a description of their interest. -* Options for ABC +* Options for AMB * If you are deploying to Apple Messages for Business, you can use this List Picker driven dialog to display your product or service offerings. * You can add rich images to the List Picker (though recommended to keep them small for faster loading). * Options for SMS @@ -95,11 +95,11 @@ Navigate to **Global Functions**. -The first thing our functions do is to get the particular channel the user is coming from. If you would like to force the channel to make the ABC or SMS option dialogs appear, you can set the channel variable to the following: +The first thing our functions do is to get the particular channel the user is coming from. If you would like to force the channel to make the Apple Messages for Business or SMS option dialogs appear, you can set the channel variable to the following: ```javascript // What channel is the user on? If you'd like to force the display of a particular channel's content, - // set the "channel" variable to: "CustomContext" for ABC, "sms" for SMS. Web will be displayed by default. + // set the "channel" variable to: "CustomContext" for AMB, "sms" for SMS. Web will be displayed by default. //var channel = "CustomContext"; var channel = botContext.getChannel(); // Comment this line out if forcing the channel botContext.printDebugMessage("=====> USER CHANNEL IS: " + channel); @@ -137,7 +137,7 @@ Options are set to be shown by default, but if you don’t want them to be shown If you want to display the Product or Service options to your customer, set this to "on". Otherwise, set to “off”. - The following are for web client users only. ABC and SMS will be shown automatically. + The following are for web client users only. Apple Messages for Business and SMS will be shown automatically. diff --git a/pages/Documents/ConversationalAI/ConversationBuilder/ConversationalPayments/apple-pay.md b/pages/Documents/ConversationalAI/ConversationBuilder/ConversationalPayments/apple-pay.md index fe3d75bfe7..3d21aeea6b 100644 --- a/pages/Documents/ConversationalAI/ConversationBuilder/ConversationalPayments/apple-pay.md +++ b/pages/Documents/ConversationalAI/ConversationBuilder/ConversationalPayments/apple-pay.md @@ -10,7 +10,7 @@ permalink: conversation-builder-conversational-payments-apple-pay.html indicator: both --- -If your business uses Apple’s Business Chat service to chat with consumers via the Messages app, you can use Conversation Builder’s Apple Pay interaction to let the consumer make a payment for goods and services using Apple Pay. +If your business uses Apple’s Messages for Business service to chat with consumers via the Messages app, you can use Conversation Builder’s Apple Pay interaction to let the consumer make a payment for goods and services using Apple Pay. For setup information, see [here](conversation-builder-interactions-integrations.html#apple-pay-interactions). diff --git a/pages/Documents/ConversationalAI/ConversationBuilder/Interactions/configuration-next-action.md b/pages/Documents/ConversationalAI/ConversationBuilder/Interactions/configuration-next-action.md index 6f12691599..0384596a3d 100644 --- a/pages/Documents/ConversationalAI/ConversationBuilder/Interactions/configuration-next-action.md +++ b/pages/Documents/ConversationalAI/ConversationBuilder/Interactions/configuration-next-action.md @@ -64,7 +64,7 @@ If you add a variable condition, *both* the first defined condition *and* the va To specify a `botContext` variable in a variable condition, enter only the variable name. -In our example below, the consumer must answer "yes" to our question, and the `channel` variable must be "AMB" for Apple Messages for Business. If both are true, then the consumer is offered a promotion. +In our example below, the consumer must answer "yes" to our question and the `channel` variable must be "ABC" for Apple Messages for Business. If both are true, then the consumer is offered a promotion. diff --git a/pages/Documents/ConversationalAI/Third-PartyBots/getting-started.md b/pages/Documents/ConversationalAI/Third-PartyBots/getting-started.md index 4acc8675a4..8e4e4a017e 100644 --- a/pages/Documents/ConversationalAI/Third-PartyBots/getting-started.md +++ b/pages/Documents/ConversationalAI/Third-PartyBots/getting-started.md @@ -87,7 +87,7 @@ Those identifies are as follows: #### Support for different messaging channels and corresponding rich content -The bot Connector system is designed to support [all relevant rich content](getting-started-with-rich-messaging-rich-messaging-channel-capabilities.html) since it only forwards the received structured content and metadata to LivePerson's messaging and chat services, where it is handled. We have verified and tested the support for **Web Messaging**, **Facebook** and **Apple Business Chat**. All other channels are not verified, but should work if you send the right structured content for the channel. If you experience any issues, please contact LivePerson support or your account team. +The bot Connector system is designed to support [all relevant rich content](getting-started-with-rich-messaging-rich-messaging-channel-capabilities.html) since it only forwards the received structured content and metadata to LivePerson's messaging and chat services, where it is handled. We have verified and tested the support for **Web Messaging**, **Facebook** and **Apple Messages for Business**. All other channels are not verified, but should work if you send the right structured content for the channel. If you experience any issues, please contact LivePerson support or your account team. #### Creating and starting bots diff --git a/pages/Documents/GettingStarted/APIGuidelines/messaging-features-capabilities-comparison.md b/pages/Documents/GettingStarted/APIGuidelines/messaging-features-capabilities-comparison.md new file mode 100644 index 0000000000..399e864b79 --- /dev/null +++ b/pages/Documents/GettingStarted/APIGuidelines/messaging-features-capabilities-comparison.md @@ -0,0 +1,121 @@ +--- +pagename: Messaging features Capabilities Comparison +sitesection: Documents +categoryname: "Getting Started" +documentname: API Guidelines +permalink: api-guidelines-messaging-features-capabilities-comparison.html +indicator: messaging +redirect_from: + - essential-resources-messaging-features-capabilities-comparison.html +--- + + + + + + + + + + + + + + + + + + {% for category in site.data.capabilities %} + + + + + + + + + + + + + + {% for feature in category.features %} + + + {% for channel in feature.channels %} + {% if forloop.index == 1 %} + {% if channel.mobileAppMessaging == "Supported" %} + + {% else %} + + {% endif %} + {% endif %} + {% if forloop.index == 2 %} + {% if channel.webMessaging == "Supported" %} + + {% else %} + + {% endif %} + {% endif %} + {% if forloop.index == 3 %} + {% if channel.appleBusinessChat == "Supported" %} + + {% else %} + + {% endif %} + {% endif %} + {% if forloop.index == 4 %} + {% if channel.sms == "Supported" %} + + {% else %} + + {% endif %} + {% endif %} + {% if forloop.index == 5 %} + {% if channel.facebook == "Supported" %} + + {% else %} + + {% endif %} + {% endif %} + {% if forloop.index == 6 %} + {% if channel.whatsapp == "Supported" %} + + {% else %} + + {% endif %} + {% endif %} + {% if forloop.index == 7 %} + {% if channel.googleRCS == "Supported" %} + + {% else %} + + {% endif %} + {% endif %} + {% if forloop.index == 8 %} + {% if channel.line == "Supported" %} + + {% else %} + + {% endif %} + {% endif %} + {% if forloop.index == 9 %} + {% if channel.messagingWindowAPI == "Supported" %} + + {% else %} + + {% endif %} + {% endif %} + {% if forloop.index == 10 %} + {% if channel.connectorAPI == "Supported" %} + + {% else %} + + {% endif %} + {% endif %} + {% endfor %} + + {% endfor %} + {% endfor %} + +
Mobile App MessagingWeb MessagingApple Messages for BusinessSMSFacebookWhatsAppGoogle RCSLineMessaging Window APIConnector API
{{ category.categoryName }}
{{ feature.featureName }}{{ channel.mobileAppMessaging }}{{ channel.mobileAppMessaging }}{{ channel.webMessaging }}{{ channel.webMessaging }}{{ channel.appleBusinessChat }}{{ channel.appleBusinessChat }}{{ channel.sms }}{{ channel.sms }}{{ channel.facebook }}{{ channel.facebook }}{{ channel.whatsapp }}{{ channel.whatsapp }}{{ channel.googleRCS }}{{ channel.googleRCS }}{{ channel.line }}{{ channel.line }}{{ channel.messagingWindowAPI }}{{ channel.messagingWindowAPI }}{{ channel.connectorAPI }}{{ channel.connectorAPI }}
diff --git a/pages/Documents/GettingStarted/customizing-the-conversational-cloud.md b/pages/Documents/GettingStarted/customizing-the-conversational-cloud.md index f8c7e03b65..7a10208e5a 100644 --- a/pages/Documents/GettingStarted/customizing-the-conversational-cloud.md +++ b/pages/Documents/GettingStarted/customizing-the-conversational-cloud.md @@ -3,108 +3,11 @@ pagename: Customizing the Conversational Cloud sitesection: Documents categoryname: "Getting Started" permalink: customizing-the-conversational-cloud.html -redirect_from: - - do-more-with-the-conversational-cloud.html indicator: both date_published: 2019/01/30 date_updated: 2022/07/25 --- -
-
- Now that you know the basics, you’re ready to take a deeper dive into the full capabilities of the Conversational Cloud. The solutions you create using the Conversational Cloud are fully customizable. You can integrate our mobile SDK, create custom solutions with LivePerson APIs, and more. Select a journey below to learn more about the tools and customization options available. -
-
-
-
- Prerequisites Before you move ahead be sure you’ve completed the guidance in Getting Started with your Free Trial Account which outlines the first steps to take in the Conversational Cloud. -
-
- -
- - -
CONVERSATIONAL AI
-
Understand consumer intents
-
- - -
MESSAGING CHANNELS
-

Engage with consumers proactively

-
- - -
MESSAGING CHANNELS
-

Customize your messaging operations

-
- - -
CONVERSATIONAL AI
-
Create new bots and dialogs
-
- - -
FUNCTION AS A SERVICE
-
Develop custom behaviors
-
- - -
LIVEPERSON APIS
-
Build your own solution
-
- - -
Messaging Channels
-

Integrate Mobile Messaging SDK for iOS

-
- - -
Messaging Channels
-
Integrate Mobile Messaging SDK for Android
-
- - -
Conversational AI
-
Integrate a messaging bot using Agent Messaging SDK
-
- - -
LIVEPERSON APIS
-
Enable consumer monitoring with Monitoring API
-
- - -
LIVEPERSON APIS
-
Manage users with Users API
-
- - -
LIVEPERSON APIS
-
Implement a retry policy
-
-
- - - + diff --git a/pages/Documents/GettingStarted/liveperson-apis-and-sdks.md b/pages/Documents/GettingStarted/liveperson-apis-and-sdks.md index 5e4ad265b7..3363b545cd 100644 --- a/pages/Documents/GettingStarted/liveperson-apis-and-sdks.md +++ b/pages/Documents/GettingStarted/liveperson-apis-and-sdks.md @@ -70,7 +70,7 @@ indicator: both | SDK | Purpose | |---|---| | [Agent Workspace Widget SDK](agent-workspace-widget-sdk-overview.html) | Add custom widgets to the Conversational Cloud | -| [Apple Business Chat SDK](apple-business-chat-sdk-overview.html) | Implement interactive experience for ABC consumers | +| [Apple Messages for Business SDK](apple-business-chat-sdk-overview.html) | Implement interactive experience for AMB consumers | | [Engagement Window Widget SDK](engagement-window-widget-sdk-overview.html) | Add custom widgets to the Engagement Window | | [JavaScript Chat SDK](javascript-chat-sdk-overview.html) | Create a chat window from scratch | | [Messaging Agent SDK](messaging-agent-sdk-overview.html) | Provide access to Agent Messaging API, enable bots to handle consumer conversations, and perform agent actions | diff --git a/pages/Documents/MessagingChannels/AppleBusinessChatSDK/implementation.md b/pages/Documents/MessagingChannels/AppleBusinessChatSDK/implementation.md index 09d9a721a0..dd567cf113 100644 --- a/pages/Documents/MessagingChannels/AppleBusinessChatSDK/implementation.md +++ b/pages/Documents/MessagingChannels/AppleBusinessChatSDK/implementation.md @@ -4,8 +4,8 @@ redirect_from: Keywords: sitesection: Documents categoryname: "Messaging Channels" -documentname: Apple Business Chat SDK -permalink: apple-business-chat-sdk-implementation.html +documentname: Apple Messages for Business SDK +permalink: apple-messages-for-business-sdk-implementation.html indicator: messaging --- @@ -33,7 +33,7 @@ LPABCSDK.initialize(eventSubscription: LPABCEvent.noEvents) ### Update the SDK with Incoming CIM -Upon an agent sending a [Custom Interactive Message (CIM)](apple-business-chat-templates-custom-interactive-message-template.html) to the consumer, this method will update the SDK with a payload that will enable SDE reporting to Conversational Cloud. +Upon an agent sending a [Custom Interactive Message (CIM)](apple-messages-for-business-templates-custom-interactive-message-template.html) to the consumer, this method will update the SDK with a payload that will enable SDE reporting to Conversational Cloud. ```swift func update(with conversation: MSConversation, message: MSMessage? = nil, abcsdkParams: ABCSDKParams? = nil) @@ -50,7 +50,7 @@ Should be implemented from these override functions in the iMessage app extensio - `didSelect(_ message: MSMessage, conversation: MSConversation)` - `didReceive(_ message: MSMessage, conversation: MSConversation)` -See [step 6 of Installation for more](apple-business-chat-sdk-installation.html#sdk-installation-in-xcode). +See [step 6 of Installation for more](apple-messages-for-business-sdk-installation.html#sdk-installation-in-xcode). ### Create SDEs diff --git a/pages/Documents/MessagingChannels/AppleBusinessChatSDK/installation.md b/pages/Documents/MessagingChannels/AppleBusinessChatSDK/installation.md index 111def25c4..2ab7c86516 100644 --- a/pages/Documents/MessagingChannels/AppleBusinessChatSDK/installation.md +++ b/pages/Documents/MessagingChannels/AppleBusinessChatSDK/installation.md @@ -19,7 +19,7 @@ indicator: messaging ### Apple and LivePerson Configuration -1. Make sure you have an Apple Business Chat business ID. +1. Make sure you have an Apple Messages for Business business ID. 2. Contact your LivePerson account representative to enable this SDK on the backend server. ### SDK Installation in XCode @@ -76,7 +76,7 @@ Add the LPABCSDK pod to integrate it into your Xcode project. Make sure you chan {: .important} Your app group id should be the same across all implementing targets. -3. Add `import LPABCSDK` to the relevant class files and [initialize the SDK](apple-business-chat-sdk-implementation.html#initializing-the-sdk). +3. Add `import LPABCSDK` to the relevant class files and [initialize the SDK](apple-messages-for-business-sdk-implementation.html#initializing-the-sdk). 4. In the iMessage app/extension's `MessagesViewController` class, please make sure to override the following two methods: diff --git a/pages/Documents/MessagingChannels/AppleBusinessChatSDK/overview.md b/pages/Documents/MessagingChannels/AppleBusinessChatSDK/overview.md index ca45d6cccb..93fff6ceea 100644 --- a/pages/Documents/MessagingChannels/AppleBusinessChatSDK/overview.md +++ b/pages/Documents/MessagingChannels/AppleBusinessChatSDK/overview.md @@ -9,18 +9,18 @@ permalink: apple-business-chat-sdk-overview.html indicator: messaging --- -### What is the ABC SDK +### What is the Apple Messages for Business SDK -The Apple Business Chat SDK is an iOS Swift framework that allows developers to easily implement a rich, interactive experience for consumers, by reacting to conversational context in real time. +The Apple Messages for Business SDK is an iOS Swift framework that allows developers to easily implement a rich, interactive experience for consumers, by reacting to conversational context in real time. The framework is very lightweight and designed to be an easy addition to any host app or iMessage app. ### What does the SDK do? -After sending a [Custom Interactive Message (CIM)](apple-business-chat-templates-custom-interactive-message-template.html) to the consumer, this SDK allows the developer to monitor the consumer behavior and report it back to LivePerson as engagement attributes to enhance the conversation. +After sending a [Custom Interactive Message (CIM)](apple-messages-for-business-templates-custom-interactive-message-template.html) to the consumer, this SDK allows the developer to monitor the consumer behavior and report it back to LivePerson as engagement attributes to enhance the conversation. - Report SDEs - - Allows you to measure incremental lift and ROI from ABC conversations and Conversational Cloud operational tools + - Allows you to measure incremental lift and ROI from Apple Messages for Business conversations and Conversational Cloud operational tools - More easily allows Agents to read Custom Interactive Messages from Consumers - Provides human and bot agents with context of the consumer’s iMessage app transactional and activity data, allowing them to have a more meaningful and effective conversation - Notify the developer of conversational events so that they can take action with custom SDEs @@ -29,7 +29,7 @@ After sending a [Custom Interactive Message (CIM)](apple-business-chat-templates ### Who is the SDK for? -Firstly, the Apple Business Chat SDK is for brands that are using or intend to use the Apple Business Chat channel to connect with their consumers. +Firstly, the Apple Messages for Business SDK is for brands that are using or intend to use the Apple Messages for Business channel to connect with their consumers. The SDK has 2 distinctive contextual integration environments: @@ -40,7 +40,7 @@ The SDK has 2 distinctive contextual integration environments: #### Consumer Transaction over iMessage App -1. Consumer is messaging an appliance brand via Business Chat +1. Consumer is messaging an appliance brand via Messages for Business 2. Consumer is asking the agent to provide details on the delivery and installation offering for their ovens. 3. Agent gives the consumer all the details on the delivery and installation, and the consumer decides to buy both the oven and the delivery package. 4. Agent sends the consumer an iMessage app interaction that includes all products selected in the cart area, with payment flow. @@ -59,7 +59,7 @@ Path B: 5. Consumer does not respond to the iMessage app transaction sent to him by the agent, and texts that agent that he still need some time to decide 6. Agent closes the conversation in Conversational Cloud -7. After a couple of hours the consumer comes back to the ABC conversation and continues with the purchase flow on the iMessage app interaction — consumer does not message the brand, but only opens the iMessage app in the conversation thread +7. After a couple of hours the consumer comes back to the Apple conversation and continues with the purchase flow on the iMessage app interaction — consumer does not message the brand, but only opens the iMessage app in the conversation thread 8. LE Conversation is updated with the transaction items and value via SDEs while the conversation is closed in Conversational Cloud 9. Agent manager generates a report that looks at the cross session conversation (transaction that reported after conversation closed in LE), to evaluate the correlation between consumer conversations and transactions, and to attribute incremental lift for LE conversation @@ -68,8 +68,8 @@ Path B: 1. Consumer looks for a smart door lock on brand's app 2. Consumer adds two types of door locks to the cart 3. Brands report the product in cart and the value to LE unauthenticated SDEs -4. After an hour, the consumer taps on a link in the app that opens the Apple Business Chat conversation thread -5. Consumer starts to message brand via ABC, the conversation is triggered in Conversational Cloud +4. After an hour, the consumer taps on a link in the app that opens the Apple Messages for Business conversation thread +5. Consumer starts to message brand via AMB, the conversation is triggered in Conversational Cloud 6. The human or bot agent joins the conversation and reviews the products and value added by the consumer to the cart, and can manage the conversation with full context to the consumer’s needs. 7. The consumer decides on the product they would like to purchase and completes the payment funnel while in conversation with the agent. 1. Another scenario is when the consumer does not decide on the product while in conversation and closed the conversation with the brand. After a couple of hours the consumer goes to the app and completes the purchase flow. diff --git a/pages/Documents/MessagingChannels/ConnectToMessaging/api.md b/pages/Documents/MessagingChannels/ConnectToMessaging/api.md index 0ba0f3d626..5c7227634c 100644 --- a/pages/Documents/MessagingChannels/ConnectToMessaging/api.md +++ b/pages/Documents/MessagingChannels/ConnectToMessaging/api.md @@ -482,7 +482,7 @@ We recommend a request be retried (3 attempts with exponential retry with delay 3. Which channels are supported as of now? -C2M supports SMS-Twilio, WhatsApp, Apple Business Chat, Google RCS and INAPP channels. +C2M supports SMS-Twilio, WhatsApp, Apple Messages for Business, Google RCS and INAPP channels. 4. Is there a throughput limitation for the data that gets passed from Twilio to LP? diff --git a/pages/Documents/Reporting/MessagingInteractionsAPI/Methods/conversations.md b/pages/Documents/Reporting/MessagingInteractionsAPI/Methods/conversations.md index f6246c6b69..3458b3d473 100644 --- a/pages/Documents/Reporting/MessagingInteractionsAPI/Methods/conversations.md +++ b/pages/Documents/Reporting/MessagingInteractionsAPI/Methods/conversations.md @@ -70,7 +70,7 @@ Filter is sent in the POST data (body) with the following JSON structure. |mcs {from,to} | Range of Meaningful Conversation Score in a particular conversation (including the boundaries). | numeric, numeric | Optional | Either "from" or "to" fields are mandatory. In case one of the fields is missing, its value will be set to the minimal or maximal possible values of MCS, respectively. |alertedMcsValues | Alerted MCS of the conversation up until the most recent message. | Array ``| Optional | Valid values: "-1", "0", "1" |csat {from,to}| Range of CSAT assigned to the conversation.| numeric, numeric | Optional | Either "from" or "to" fields are mandatory. In case one of the fields is missing, its value will be set to the minimal or maximal possible value of CSAT (1 or 5 respectively). For accounts that are using both the old CSAT method and the new PCS based CSAT, this field will return unified results. -|source | Source origin (Facebook, App etc.) from which the conversation was initially opened. | Array `` | Optional | Possible values: APP, SHARK (WEB), AGENT, SMS, FACEBOOK, Apple Business Chat, WhatsApp Business +|source | Source origin (Facebook, App etc.) from which the conversation was initially opened. | Array `` | Optional | Possible values: APP, SHARK (WEB), AGENT, SMS, FACEBOOK, Apple Messages for Business, WhatsApp Business |device | Type of device from which the conversation was initially opened.| Array `` | Optional | Possible values: DESKTOP, TABLET, MOBILE, NA |messageContentTypes | The type of the message | Array `` | Optional | Valid values: TEXT_PLAIN, TEXT_HTML, LINK, HOSTED_FILE, IMG, SECURE_FORM_INVITATION, SECURE_FORM_SUBMIT, RICH_CONTENT |latestConversationQueueState | The queue state of the conversation | String| Optional | Valid values: IN_QUEUE, ACTIVE| diff --git a/pages/Documents/RichMessaging/AppleBusinessChatTemplates/apple-auth-template.md b/pages/Documents/RichMessaging/AppleBusinessChatTemplates/apple-auth-template.md new file mode 100644 index 0000000000..a170376424 --- /dev/null +++ b/pages/Documents/RichMessaging/AppleBusinessChatTemplates/apple-auth-template.md @@ -0,0 +1,398 @@ +--- +pagename: Apple Auth Template +Keywords: +sitesection: Documents +categoryname: "Rich Messaging" +documentname: Apple Messages for Business Templates +permalink: apple-messages-for-business-templates-apple-auth-template.html +indicator: messaging +--- + +### Overview + +The Apple Messages for Business messaging channel now allows you to send an authentication request to consumers (only from iOS 12 onwards) using an OAuth 2.0 provider. The consumers then respond to the authentication request with their user/password credentials which can be validated against the OAuth 2.0 provider. + +See the message flow below: + +apple Messages for Business authentication flow + +1. Agent or bot is notified via an engagement attribute if consumer device supports the Apple Auth feature. + +2. Send the Apple Auth template via an agent or bot with a Structured Content template. + +3. Authentication is done by your OAuth 2.0 provider. + +4. Upon successful or failed authentication, Conversational Cloud passes the authentication details back so that you may perform validation. + +### Setup + +1. Supply your private OAuth2 service details in your Apple management area (register.apple.com). + +The required details include: + +* Authentication endpoint URL + +* Token URL + +* Client Identifier + +#### Instructions on how to create a free OAuth2 service using [auth0](https://auth0.com/) + +If you do not yet have an OAuth2 service or if you need a test service, follow the instructions below: + +1. Create a [auth0 account](https://auth0.com/) + +2. Create a new Application Machine to Machine + +3. Put `https://auth.businesschat.apple.com` in Allowed Callback Urls + +4. Put `https://auth.businesschat.apple.com` in Allowed Origins & Allowed Web Origins + +5. On the same screen, go to the bottom and select advanced settings -> Endpoints + +6. Copy Auth URL, Token Url, Client Id (it is at the top) and place them in your register.apple.com portal + +7. Go to Grant Types tab in advanced settings and check Authorization Code, Password and other features you want to use. + +### Checking for Apple Auth device compatibility + +Before the agent or bot sends an authentication request to a consumer, they will need to know if the consumer device is compatible (that is, using iOS 12 or newer) with Apple Auth. + +In an Apple Messages for Business Conversation, the messaging channel will automatically send an authenticated "role" engagement attribute to Conversational Cloud: + +* If consumer Apple device supports authentication, this attribute's value will be: "Apple Authentication supported". + +* If consumer Apple device does not support authentication, this attribute's value will be: "Apple Authentication not supported". + +The agent or bot should read the consumer engagement attributes to check for this engagement attribute before sending the Apple Authentication request to the consumer. + +**Note:** If the consumer updates the iOS version from 11 to 12 when still in an active conversation in Conversational Cloud, the conversation will not be updated with the consumer’s new capability - to solve this, the conversation should be closed and opened again in Conversational Cloud. + +![role engagement attributes](img/apple_auth_role_sde.png) + +### Sending an Apple Authentication Request to a Consumer + +You will send two template payloads (Metadata and Body) for the Apple Auth request to the consumer. + +See [how to send Structured Content](structured-content-introduction-to-structured-content.html#how-to-send-structured-content-to-the-conversation) for a background on how to send these. + +The **body** template will only define how the Apple Auth bubble is displayed in the Conversational Cloud agent workspace. The **metadata** template will define how the bubble is displayed in the consumer's Messages thread. + +**Agent sends auth request to consumer via Agent Workspace SDK widget** + +![](img/apple_auth_agent1.png) + +**Consumer sees auth request bubble. Style here defined by metadata `receivedMessage`.** + +![](img/apple_auth_consumer1.png) + +**Consumer fills out form from OAuth2 provider** + +![](img/apple_auth_consumer2.png) + +**Consumer sees request confirmation bubble. Style here defined by metadata `replyMessage`.** + +![](img/apple_auth_consumer3.png) + +#### Request Metadata + +**BusinessChatMessage - receivedMessage and replyMessage bubbles** + +The `BusinessChatMessage` object contains the `receivedMessage` and `replyMessage` objects, which define how the Authentication Interactive Message bubbles layout will be displayed when the message is received on the consumer’s device (`receivedMessage`) and once an authentication is submitted by the consumer (`replyMessage`). + +**ConnectorAuthenticationRequest** + +The `ConnectorAuthenticationRequest` object holds the `requestIdentifier` and `responseEncryptionKey` (public key), which allows you to identify the authentication request and map the OAuth token in the response to the request originator. + +{: .important} +The requestIdentifier and responseEncryptionKey is optional, but the responseEncryptionKey is required to view the auth response from an agent widget. + +Please use the metadata template with the relevant fields, as presented in the example below: + +##### Metadata Template Example: + +```json +[ + { + "type": "BusinessChatMessage", + "receivedMessage": { + "title": "Sign In to LivePerson", + "subtitle": "Thank you", + "imageURL": "https://www.liveperson.com/sites/default/files/pictures/nav/Logo-LP-White.png", + "style": "small" + }, + "replyMessage": { + "title": "You Signed in", + "subtitle": "Thank you", + "imageURL": "https://www.liveperson.com/sites/default/files/pictures/nav/Logo-LP-White.png", + "style": "small" + } + }, + { + "type": "ConnectorAuthenticationRequest", + "requestIdentifier": "Insert Your Unique Request Key Here", + "apple": { + "oauth2": { + "responseEncryptionKey": "Insert Your Public Key Here" + } + } + } +] +``` + +##### Metadata Object Properties + + + + + + + + + + + + + + + + + + + + + + +
Property NameDescriptionTypeRequired
BusinessChatMessageRepresents the Messages for Business bubbles view objects ObjectY
ConnectorAuthenticationRequestRepresents a Messages for Business authentication request ObjectN
+ + +###### `ConnectorAuthenticationRequest` Object Properties + + + + + + + + + + + + + + + + + + + + + + + +
Property NameDescriptionTypeRequired
requestIdentifierMust be unique in every message. Used to identify the authentication request and map the to the request originator.stringN
apple.oauth2.responseEncryptionKeyresponseEncryptionKey is a public key which will be used to encrypt the oauth2 token. In order to decrypt the token you should have the corresponding private key to decrypt the token. If this is not sent, LivePerson will supply a public key for you. In order to view the auth response in the agent widget you must supply your own key.stringN
+ +For more about Apple Authentication, see [this document](https://developer.apple.com/documentation/businesschatapi/messages_sent/interactive_messages/authentication). + + +###### `receivedMessage` Object Properties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Property NameDescriptionTypeRequired
StyleThe Style of the authentication interactive message reply bubble. Can be set to icon, small or large. Defaults to iconEnum - icon, small, large +N
titleThe title of the bubble StringY
subtitleSubtitle to be displayed under titleStringN
imageURLImage to be placed in the authentication interactive message received bubble layoutStringN
+ + +###### `replyMessage` Object Properties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Property NameDescriptionTypeRequired
styleThe Style of the authentication interactive message reply bubble. Can be set to icon, small or large. Defaults to iconEnum - icon, small, large +N
titleThe title of the bubble StringY
subtitleSubtitle to be displayed under titleStringN
imageURLImage to be placed in the authentication interactive message reply message bubble layoutStringN
+ +#### Request Body + +The request body defines how the Apple Auth bubble looks in the Conversational Cloud Agent Workspace and not how the bubble looks on the consumer device. This Apple Auth structured content template in the Agent Workspace is for conversational context, transcript and historic records, as well as ease of use for agents. + +See the [introduction to templates](structured-content-introduction-to-structured-content.html#templates) for information on a basic template that you can send. + +##### Body Template Example + +A very simple, basic structured content template for Apple Auth would be just an image and text in a horizontal arrangement. + +```json +{ + "tag": "authentication", // required + "type": "horizontal", + "elements": [ + { + "type": "image", + "url": "apple_auth_image_url" + }, + { + "type": "text", + "text": "authentication details" + } + ] +} +``` + +### Receiving an Apple Authentication Response from a Consumer + +After the consumer submits their Apple Auth details in the form, the Apple Auth response is delivered back to Conversational Cloud. + +If you are authenticating the consumer with a **bot**, you can listen for the auth response via [Conversational Metadata](messaging-agent-sdk-conversation-metadata-guide.html). Conversational Metadata provides a way for developers to pass metadata or context information to a bot built with the [Messaging Agent SDK](messaging-agent-sdk-overview.html). Please see [the Conversational Metadata guide](messaging-agent-sdk-conversation-metadata-guide.html#listen-for-payment-or-authorization-response) for how to listen for Conversational Metadata with the correct Apple Auth response structure. + +If you are authenticating the consumer with a **human agent**, you can listen for the auth response in an [Agent Widget](agent-workspace-widget-sdk-overview.html). See the [bind](agent-workspace-widget-sdk-methods.html#bind) method for how to listen for incoming data. Instead of `visitorInfo.visitorName` in the example, the `pathToData` that you will bind to is [metadata.connectorAuthResponse](agent-workspace-widget-sdk-public-model-structure.html#metadataconnectorauthresponse). + +{: .important} +If reading the auth response in an Agent Widget, you **must** initially send a public key. + +#### Response Metadata + +The authentication response metadata is contextual information about the consumer authentication response status. This information should be used to validate the authentication status of the consumer, as well as to report the auth response token back to the OAuth service in order to validate user identity. + +##### Example Conversational Metadata response: + +**Success example response**: + +```json +{ + "encrypted" : true, + "status" : true, + "token" : "token encrypted string", + "requestIdentifier" : "Request Identifier Unique Key", +} +``` + +**Failure example response**: + +```json +{ + "encrypted" : true, + "status" : false, + "requestIdentifier" : "Request Identifier Unique Key", + "errors" : [{ + "message" : "Optional Error Message" + }] +} +``` + +**`ConnectorAuthenticationResponse` Object Properties** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Property NameDescriptionType
encryptedTrue if you have provided the responseEncryptionKey, False if you have notBoolean
statusStatus of the consumer authentication - can be only true (successful) or false (failed) Boolean
tokenToken string - will be available only when authentication was successful String
requestIdentifierMatches the authentication request that you sent.String
errorsType of authentication error as received from Apple - will be available only when authentication failed Array
+ +### Guidelines + +#### General Guidelines + +* Image URLs must be whitelisted in Conversational Cloud. Images added in the ReceivedMessage and ReplyMessage must be whitelisted in the structured content image whitelisting area. Please contact your LP representative to whitelist images. + +#### Consumer received and reply bubble behavior + +**If using received bubble with style "icon", “small”, “large”**: + +* Received bubble experience: if an image was added, the image in the received bubble will not be presented in the push preview message. Once you tap to view a bubble in the conversation thread, the image will be presented. The size of the received bubble will be defaulted to "icon". + +* Reply bubble experience: image will always be defaulted to the "received" bubble image (if configured). If no image was added to the received bubble, no image will be presented in the reply bubble. The size of the reply bubble will be defaulted to “icon”. + +* If authentication fails, the Reply bubble text and subtitle configured will be overridden by apple to the following text "Authentication failed". + +### Limitations + +* Updating the Apple Messages for Business authentication status visually in the LiveEngage UI is planned. diff --git a/pages/Documents/RichMessaging/AppleBusinessChatTemplates/apple-pay-template.md b/pages/Documents/RichMessaging/AppleBusinessChatTemplates/apple-pay-template.md new file mode 100644 index 0000000000..45bcd241ff --- /dev/null +++ b/pages/Documents/RichMessaging/AppleBusinessChatTemplates/apple-pay-template.md @@ -0,0 +1,467 @@ +--- +pagename: Apple Pay Template +redirect_from: + - payment-apple-messages-for-business-template.html + - payment-apple-messages-for-business-apple-pay.html +Keywords: +sitesection: Documents +categoryname: "Rich Messaging" +documentname: Apple Messages for Business Templates +permalink: apple-messages-for-business-templates-apple-pay-template.html +indicator: messaging +--- + +### Overview + +The Apple Messages for Business messaging channel now supports a new Rich Message type that allows you to submit payment requests to consumers using **Apple Pay**. The consumers can then respond to the payment request using their preferred Apple Pay payment methods. + +See the general message flow below: + +apple pay overview + +1. Send the Apple Pay template via an agent or bot with the Structured Content framework and configuration (similar to list and time picker). + +2. Payment transactions will be performed by your payment gateway. + +3. Upon successful or failed payment, Conversational Cloud will support passing the payment details back to Conversational Cloud Conversational Metadata (via the [Agent SDK](messaging-agent-sdk-conversation-metadata-guide.html)) in order to allow you to perform validation on the payment information against the Apple Pay account + +### Setup + +1. The first step is to [configure your Apple developer account for Apple Pay](https://developer.apple.com/videos/play/tutorials/configuring-your-developer-account-for-apple-pay/). + +2. Register a Merchant Identifier (Merchant ID) in your Apple Developer Account to enable Apple Pay payments in Messages. For more information on creating your merchant ID, see [Configuring Your Environment.](https://developer.apple.com/library/content/ApplePay_Guide/Configuration.html#//apple_ref/doc/uid/TP40014764-CH2) + +3. Then, create a private Apple Pay account and supply your Apple Pay Merchant ID in your Apple management area [register.apple.com](register.apple.com). + +You will use your Merchant ID in the `merchantIdentifier` properties of the Apple Pay Request metadata template below so save it somewhere you can easily access. + +### Sending an Apple Pay Request to a Consumer + + +You will send a metadata template and a body template for the Apple Pay request to the consumer. + +See [how to send Structured Content](structured-content-introduction-to-structured-content.html#how-to-send-structured-content-to-the-conversation) for more information on how to send these. + +The **body** template will only define how the Apple Pay bubble is displayed in the Conversational Cloud agent workspace. The **metadata** template will define how the bubble is displayed in the consumer's Messages thread. + +*Agent/bot generates Apple Pay Interactive Message to consumer (using structured content on Conversational Cloud)* + + + +*In the interim, consumer completes payment process and receives the reply message bubble with the payment status. Agent views Apple Pay Request in Conversational Cloud Agent Workspace* + + + +#### Request Metadata + +**BusinessChatMessage - receivedMessage bubbles** + +The `BusinessChatMessage` object holds the received message, which defines how the bubble element will be displayed when a message is received on the consumer’s device. The Apple Pay reply message on the consumer device is not configurable. + +**ConnectorPaymentRequest** + +The payment request holds the full Apple Pay transaction details (details of purchased services, payment capabilities, shipping methods, and transaction amounts). You can also request billing and shipping methods in this request. + +To edit the `ConnectorPaymentRequest` and `BusinessChatMessage` metadata template, please use the relevant properties, as presented in the example JSON below. + +##### Request Metadata example + +```json +[ + { + "type": "BusinessChatMessage", + "receivedMessage": { + "style": "icon", + "subtitle": "Buy now for $1", + "title": "iPhone XS Max", + "imageURL":"https://i.pinimg.com/280x280_RS/96/7f/ab/967fab3e38860638878f86b26bd756e3.jpg" + } + }, + { + "type": "ConnectorPaymentRequest", + "signature": "", + "apple": { + "data": { + "version": "1.0", + "payment": { + "paymentRequest": { + "applePay": { + "merchantIdentifier": "", + "merchantCapabilities": [ + "supports3DS", + "supportsCredit", + "supportsDebit" + ], + "supportedNetworks": [ + "amex", + "visa", + "mastercard" + ] + }, + "lineItems": [ + { + "label": "iPhone", + "amount": "1", + "type": "pending" + } + ], + "total": { + "label": "iPhone", + "amount": "1", + "type": "pending" + }, + "countryCode": "US", + "currencyCode": "USD", + "supportedCountries": [ + "US" + ], + "shippingMethods": [ + { + "label": "Free Shipping", + "detail": "Arrives in 5 to 7 days", + "amount": "0.00", + "identifier": "FreeShip" + }, + { + "label": "Paid Shipping", + "detail": "Arrives in 2 to 3 days", + "amount": "9.00", + "identifier": "Paid" + } + ] + }, + "endpoints": { + "paymentGatewayUrl": "https:///paymentGateway", + "fallbackUrl": "https:///paymentGateway" + }, + "merchantSession": { + "epochTimestamp": 1538086871973, + "expiresAt": 1538094071973, + "merchantSessionIdentifier": "MERCHANTSESSIONIDENTIFIER ENCODED", + "nonce": "ee020db9", + "merchantIdentifier": "MERCHANTIDENTIFIER ENCODED", + "displayName": "Vikram Bhatt /Jayshree Bhatt", + "signature": "SESSIONSTRING", + "initiative": "messaging", + "initiativeContext": "https:///paymentGateway", + "signedProperties": [ + "merchantIdentifier", + "merchantSessionIdentifier", + "initiative", + "initiativeContext", + "displayName", + "nonce" + ] + } + }, + "requestIdentifier": "" + } + } + } +] +``` + +##### Request Metadata Properties + + + + + + + + + + + + + + + + + + + + + + +
Property NameDescriptionTypeRequired
BusinessChatMessageRepresents the Messages for Business bubbles view objects ObjectY
ConnectorPaymentRequestRepresents a Messages for Business apple pay request ObjectY
+ +##### `BusinessChatMessage` Object Properties + +**`receivedMessage` Object Properties** + +This object defines how the Apple Pay template is displayed on the consumer device and not how it is displayed in the Agent Workspace. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Property NameDescriptionTypeRequired
StyleThe Style of the apple pay Rich Message reply bubble. Can be set to icon, small or large. Defaults to iconEnum - icon, small, largeN
titleThe title of the bubble StringY
subtitleSubtitle to be displayed under titleStringN
imageURLImage to be placed in the apple pay Rich Message received bubble templateStringN
+ +##### `ConnectorPaymentRequest` Object Properties + + + + + + + + + + + + + + + + + + + + + + +
Property NameDescriptionTypeRequired
appleThis is where you specify the "data" objectobjectY
signatureThis is where you specify the "signature" value. For more information, see Apple Pay Signature Flow GuidestringN
+ +**`apple` Object Properties** + + + + + + + + + + + + + + + + +
Property NameDescriptionTypeRequired
DataThis is where you specify the "requestIdentifier", "payment" and the "version". objectY
+ +**`data` Object Properties** + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Property NameDescriptionTypeRequired
requestIdentifier A UUID for the request. Messages for Business includes the identifier in its response to Conversational Cloud - this is an important property which allows you to correlate the payment response with your backend payment service stringY
paymentA dictionary with information about the payment request. For the full details list of the payment dictionary keys, see Apple’s Payment Request Dictionary.objectY
versionThe version number of the message extension schema; the version should be 1.0.stringY
+ +**`payment` Object Properties** + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Property NameDescriptionTypeRequired
paymentRequestThis is where you specify the - apple pay identifiers, line items, total amount, country code, currency code, supported countries, shipping methodsobjectY
merchantSessionContaining the payment session provided by Apple Pay after requesting a new payment session. For more information, see Requesting an Apple Pay Payment Session.objectY
endpointsThe endpoints dictionary contains a list of URLs that Apple Pay calls during the payment process. Apple Pay requires the paymentGatewayUrl endpoint for use in asking the payment provider to process the payment; all other endpoints are optional.objectY
+ +#### Request Body + +The request body is standard structured content. The template is sent to Conversational Cloud and defines how the Apple Pay bubble looks in the Conversational Cloud Agent Workspace and not how the bubble looks on the consumer device (which is determined by the objects described above). This request body template is useful for conversational context, transcript and historical records, as well as ease of use for agents. + +See the [introduction to templates](structured-content-introduction-to-structured-content.html#templates) for information on a basic template that you can send. + +##### Example + +A very simple, basic structured content template for Apple Pay would be an image and text in a horizontal arrangement. + +```json +{ + "type": "horizontal", + "elements": [ + { + "type": "image", + "url": "apple_pay_image_url" + }, + { + "type": "text", + "text": "Your Order" + } + ] +} +``` + +#### Apple Pay Signature Flow + +{: .important} + +The Apple Pay Signature Flow is an extra layer of validation for Apple Pay transactions. In the Request Metadata payload, there is a "signature" property that you can include. This signature is set on the account level. The Apple Messages for Business connector takes the signature value that you sent and validates that with the signature attached to your account. If the validation fails, agents will see a red warning icon in the conversation window next to the message. + +The signature flow is optional, and provides an extra layer of security before sending the payment request to Apple. + +If you would like to opt in for this additional verification, internal account configurations are required. Please contact your LivePerson representative for help and further information on setting up this additional flow. + +**How to generate the signed payload to include in the Apple Pay payload for verification:** + +1. Generate signature value + 1. Generate the Apple Pay payload + 2. Generate SHA1 Hash of the payload from step 1 + 3. Generate the signature, sign the generated hash from step 2 using the secret key & preferred algorithm required during onboarding to opt in to the verification flow + +2. Add signature to payload + 1. Add “signature” property and the value generated from step 1C to [the original payload](#connectorpaymentrequest-object-properties) + +### Receiving an Apple Pay Response from a Consumer + +After the consumer submits their Apple Pay details in the form, the Apple Pay response is delivered back to Conversational Cloud. + +If you are looking to receive the payment response using a **bot**, you can listen for the payment response via [Conversational Metadata](messaging-agent-sdk-conversation-metadata-guide.html). Conversational Metadata provides a way for developers to pass metadata or context information to a bot built with the [Messaging Agent SDK](messaging-agent-sdk-overview.html). Please see [the Conversational Metadata guide](messaging-agent-sdk-conversation-metadata-guide.html#listen-for-payment-or-authorization-response) for how to listen for Conversational Metadata with the correct Apple Pay response structure. + +If you are looking to receive and share the payment response with a **human agent**, you can listen for the auth response in an [Agent Widget](agent-workspace-widget-sdk-overview.html). See the [bind](agent-workspace-widget-sdk-methods.html#bind) method for how to listen for incoming data. Instead of `visitorInfo.visitorName` in the example, the `pathToData` that you will bind to is [metadata.connectorPaymentResponse](agent-workspace-widget-sdk-public-model-structure.html#metadataconnectorpaymentresponse). + +#### Response Metadata + +Apple Pay response metadata is contextual information about the consumer payment status and details. You will receive the payment response inside the `requestIdentifier` parameter that was sent with the initial request. This `requestIdentifier` parameter should then be used to allow the bot to validate the payment against your payment backend. + +##### Successful payment response example: + +```json +{ + "type":"ConnectorPaymentResponse", + "status":true, + "requestIdentifier":"b0bbb054-6f71-4de1-831a-9f93ddc93968" +} +``` + +##### Failed payment response example: + +```json +{ + "type":"ConnectorPaymentResponse", + "status":false, + "requestIdentifier":"16238516-02a2-4b19-bd0b-d98c144f3b3f" +} +``` + +**`ConnectorPaymentResponse` Object Properties** + + + + + + + + + + + + + + + + + + + +
Property NameDescriptionType
StatusStatus of the payment responseBoolean
requestIdentifierUUID of the payment response. This information should be used to allow the bot to validate the payment against your payment backend.String
+ +### Guidelines + +#### General guidelines + +* Upon payment response from consumer - it is very important that you perform validation on the payment response against your payment backend using the request identifier. + +* Each Apple Pay merchant session will be available for only 5 minutes (based on Apple standards) - if the consumer will not reply to the payment request within that time frame the session will end, and you will need to perform another payment request to allow the consumer to pay. + +#### Consumer received and reply bubble behavior + +**If using received bubble with style "icon"**: + * Received bubble experience - the image in the received bubble will only be presented in the push preview message. Once you tap to view the bubble in the conversation thread, the image will not be presented (only the default Apple Pay logo) and the size will be set to "icon" as the default view. + + * Reply bubble experience - image in the reply bubble will not be presented, but only the payment details in text. The size of the reply bubble will be defaulted to "icon". + +**If using received bubble with style "small"**: + + * Received bubble experience - the image in the bubble will only be presented in the push preview message. Once the you tap to view the bubble in the conversation thread, the image will not be presented (only the default Apple Pay logo) and the size will be set to "icon" as the default view. + + * Reply bubble experience - image in the reply bubble will not be presented, but only the payment details in text. The size of the reply bubble will be defaulted to "icon". + +**If using received bubble with style "large"**: + + * Received bubble experience - the image in the bubble will be presented in the push message preview as well as in the conversation thread bubble. The size of the bubble will stay "large" as set in the SC request. + + * Reply bubble experience - the image in the reply bubble will be displayed, with the same image that was set in the received bubble. The size of the bubble will stay "large" as set in the received bubble in the SC request. + +
The URL passed in `ImageURL` of the received bubble must be whitelisted in Conversational Cloud. The image added in the RecievedMessage must be whitelisted in the structured content image whitelisting area. Contact your LP representative to whitelist images.
+ +### Limitations + +* In the current version of the Apple Pay template, only a bot in Conversational Cloud (using the Messaging Agent SDK) will be able to receive the payment response (using the Conversation Metadata). A Human Agent is currently not exposed to these events. There will be an option to receive payment response data without the Messaging Agent SDK in the near future. diff --git a/pages/Documents/RichMessaging/AppleBusinessChatTemplates/custom-interactive-message-template.md b/pages/Documents/RichMessaging/AppleBusinessChatTemplates/custom-interactive-message-template.md new file mode 100644 index 0000000000..e259b41a7e --- /dev/null +++ b/pages/Documents/RichMessaging/AppleBusinessChatTemplates/custom-interactive-message-template.md @@ -0,0 +1,248 @@ +--- +pagename: Custom Interactive Message Template +Keywords: +sitesection: Documents +categoryname: "Rich Messaging" +documentname: Apple Messages for Business Templates +permalink: apple-messages-for-business-templates-custom-interactive-message-template.html +indicator: messaging +--- + +### Overview + +The Custom Interactive Message (CIM) Template for App Messages for Business allows you to invoke an iOS iMessage app / extension on the consumer device. This app can allow for a wide range of interactivity without requiring the consumer to leave the conversation. + +Sending the structured content templates (body and metadata) explained in this document will allow you to send the iMessage app / extension to the consumer device. + +For how to create an iMessage app / extension, see the Apple documentation [here](https://developer.apple.com/imessage/). + +### Body Template + +The structured content body will allow you to define the layout of the bubble representation in the agent workspace transcript as structured content basic elements. + +Please note that the structured content body layout will **not** be represented on the consumer device. The body will help you to create a visual representation in Conversational Cloud for conversational context, transcript and historic records, as well as ease of use for agents. + +In order to allow you to report on the number of times an iMessage app was sent from an agent widget during a conversation, make sure to add a unique identifier in the structured content body for each type of iMessage app you use. This will allow you to search transcripts and track how many times a specific app was sent. + +For the structured content body fields descriptions and different layout options please refer to [Getting Started with Structured Content.](getting-started-with-rich-messaging-introduction.html) + +### Metadata Template + +The structured content metadata will allow you to define which iMessage app / extension should be sent to the consumer and which custom data to pass into the iMessage app / extension when it loads. + +Using Metadata, you can also control the visual appearance of the bubble that displays to the consumer. This is done with the `receivedMessage` object within the metadata. + +#### Metadata Properties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Property NameDescriptionTypeRequired
typeType of metadata. Must be BusinessChatCustomMessage EnumY
appIdThe App Store identifier of the custom Messages framework extension IntegerN
appNameThe name of the custom Messages framework extension.StringN
bidIdentifies the Messages framework extension that the customer interacts with while using Messages. It is composed along with the extension bundleID, and teamID StringY
sessionIdentifierValid UUID string, you must generate. This could represent a message or a group or messages that identifies the session or transactionStringN
useLiveLayoutA flag that determines if Live Layout is enabled. The default is false.BooleanN
receivedMessageBubble displayed when interactive message is received and LiveLayout is set to falseObjectY
URLThe URL to the data that is sent to the Messages framework extension. Should be sent encodedStringY
+ + +#### Received Message Properties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Property NameDescriptionTypeRequired
titleThe title of the bubbleStringY
subtitleSubtitle to be displayed under title in bubble StringN
secondarySubtitleTitle that is aligned rightStringN
tertiarySubtitleSubtitle that is aligned rightStringN
imageTitleThe title of the image attachment.StringN
image SubtitleThe subtitle of the image attachment.StringN
imageURLImage to be placed in the iMessage app bubble layout. Will be presented when LiveLayout is disabled or when consumer does not have your app installed on iPhone / latest version is not updated with iMessage app / extensionStringN
+ + +#### Example Metadata Template + +```json +[{ + "type": "BusinessChatCustomMessage", + "appId": 1234, + "appName": "productselection", + "bid": "com.apple.messages.MSMessageExtensionBalloonPlugin:yourTEAMID:yourextensionbundleID", + "sessionIdentifier": "", + "useLiveLayout": true, + "receivedMessage": { + "imageURL":"https://s3.amazonaws.com/lp-mobile-apps/WelcomeMessagePOC/Welcome-02-web-version.jpg", + "title": "Welcome!", + "style": "icon", + "subtitle": "Lots to accomplish together.", + "secondarySubtitle": "", + "tertiarySubtitle": "", + "imageTitle": "", + "imageSubtitle": "" + }, + "URL": "” +}] +``` + +#### Sending Custom Data to App Extension + +The value of the `URL` metadata property will be passed to Apple's [MSMessage](https://developer.apple.com/documentation/messages/msmessage) object in the [`url`](https://developer.apple.com/documentation/messages/msmessage/1649739-url) property. When recieved in your iMessage app / extension, you can parse the URL and do anything with it. + +#### Metadata Guidelines + +* General recommendation for the URL field is to use an URI encoded data object which will represent the URL + +* Please note! The URL should be lean as possible as described in the example above, and should not replace or attempt to act as the app model. + +* The AppID, Extension Bundle ID and Team ID (which are part of the Bid field) must be part of the SC metadata JSON! Without them your iMessage app will not be delivered to the consumer. + +* RecivedBubble image URL - If consumer does not have the extension installed on device, or if consumer has the extension installed but does not use LiveLayout (set to false) then the recivedBubble will default to the imageURL set in the recievedBubble object. If imageURL was not added to the SC schema defined, the layout view will be an empty frame! Always include an imageURL! + +* ImageURL MUST be whitelisted - to whitelist images for Structured Content contact your Conversational Cloud account representative + +* SessionIdentifier - Any interactive message that is sent to Apple Messages for Business has a UUID - either you can set it through this field, or if not set Apple will generate a UUID for the interactive message. We recommend you set the UUID for each interactive message sent from the agent, in order to maintain referencing and correlating between interactions, for grouping messages, funnel tags and more. + +* Images placed in the image used in imageURL field should be whitelisted in account Houston - Site Setting messaging.rich.content.valid.urls + +* When no app exists on the receiving device that can consume the message, if this URL is a HTTP(S) url, it will be loaded in a web browser. + +* The root object of the JSON in the URL field should be a dictionary (key:value) and not an array ( {} and not [] ). + +#### Metadata Limitations + +* URL characters limit is 64bit - you should create URLs to accommodate this limitation (An option to overcome this limitation is to create a static JSON in an S3 type environment which you can call in the message URL) + +* Character limit - The limitation is currently 5000 characters, you should recognize this limitation and build URLs to accommodate this limitation + + +### Reply CIM from Consumer to Agent + +{: .important} +For an easier way to recieve a reply message from the consumer, implement the [Apple Messages for Business SDK](apple-messages-for-business-sdk-overview.html) and follow the steps seen [here](apple-messages-for-business-sdk-implementation.html#reply-cim-from-consumer-to-agent) + +An agent can recieve back from the consumer a Custom Interactive Message with a textual context. This text can be displayed to the agent in the Agent Workspace. + +For example, if the consumer selects a product inside of your iMessage app, the Agent can see which product they selected via this contextual text. + +In order to do this, all code is handled from within your Apple iMessage app / extension code. + +1. Create the message you want to display by replacing `YOUR_CUSTOM_TEXT` in the below JSON: + ```json + { + "lpData": { + "interactive" : { + "response" : { + "text": "YOUR_CUSTOM_TEXT" + } + } + } + } + ``` + +2. Encode the JSON + +3. Create a URL by adding the encoded JSON on a query parameter `data` like the following: `?data=` + +4. Set the [url](https://developer.apple.com/documentation/messages/msmessage/1649739-url) property of the [MSMessage](https://developer.apple.com/documentation/messages/msmessage) object to the URL that you constructed. + +5. [Send](https://developer.apple.com/documentation/messages/msconversation/2909036-send) the MSMessage object from your iMessage app / extension. + +Conversational Cloud will recieve this message and display the text in the Conversational Cloud conversation. + +### Some Notes About Custom iMessage App Support + +1. General recommendation for the URL field is to use an encoded data object which will represent the URL + +3. Custom iMessage app response bubble - the connector currently does not capture reply bubble response from the consumer to the iMessage app. However, the transaction that occurred in the iMessage app by the consumer can be captured by yourself and updated in the Agent Widget SDK. (The response will be captured in the LE transcript line in future version). + +4. Reporting - in order to allow you to report on the number of times an iMessage app was sent from an agent widget during a conversation, make sure to add a unified indication in the structured content message body for each type of iMessage app you use. This will allow you to then track how many times a specific iMessage app was sent via a transcript search. diff --git a/pages/Documents/RichMessaging/AppleBusinessChatTemplates/guidelines-and-limitations.md b/pages/Documents/RichMessaging/AppleBusinessChatTemplates/guidelines-and-limitations.md new file mode 100644 index 0000000000..b2e5188255 --- /dev/null +++ b/pages/Documents/RichMessaging/AppleBusinessChatTemplates/guidelines-and-limitations.md @@ -0,0 +1,25 @@ +--- +pagename: Guidelines and Limitations +redirect_from: + - rich-messaging-apple-messages-for-business-templates-guidelines-and-limitations.html + - structured-content-apple-messages-for-business-templates-guidelines-and-limitations.html +Keywords: +sitesection: Documents +categoryname: "Rich Messaging" +documentname: Apple Messages for Business Templates +permalink: apple-messages-for-business-templates-guidelines-and-limitations.html +indicator: messaging +--- + +### General limitations + +* Time Picker and List Picker selections will be sent to the agent as text lines with the items that were chosen by the consumer (future capabilities will enable the brand to map the consumer selection/s to External ID via [conversational metadata](guides-conversation-metadata-guide.html)). + +* ImageURL must be whitelisted - Images added in the List Picker template, ReceivedMessage or ReplyMessage must be whitelisted. All domains must be HTTPS secure. To add images to the whitelist please contact your LivePerson representative. + +### Error conditions + +The following conditions will receive an error when sending a template via the Conversational Cloud Agent Workspace: + +* Time Picker and List Picker with no **title** will be **rejected** by Apple - make sure to add a title to Time Picker and List Picker templates. +* Time Picker sent with past dates will be rejected by Apple. diff --git a/pages/Documents/RichMessaging/AppleBusinessChatTemplates/introduction.md b/pages/Documents/RichMessaging/AppleBusinessChatTemplates/introduction.md new file mode 100644 index 0000000000..485d3fd8b8 --- /dev/null +++ b/pages/Documents/RichMessaging/AppleBusinessChatTemplates/introduction.md @@ -0,0 +1,19 @@ +--- +pagename: Introduction +redirect_from: + - rich-messaging-apple-messages-for-business-templates.html + - structured-content-apple-messages-for-business-templates-introduction.html +Keywords: +sitesection: Documents +categoryname: "Rich Messaging" +documentname: Apple Messages for Business Templates +permalink: apple-messages-for-business-templates-introduction.html +root-link: true +indicator: messaging +--- + + +LivePerson has created Structured Content Templates for Apple Messages for Business. A familiarity with LivePerson's [basic elements](structured-content-introduction-to-structured-content.html#basic-elements) will be helpful to understanding the following templates. + +Please note that all third party specifications are subject to change on Apple's end. Therefore, this documentation might by out of date from time to time, although we will always attempt to use the most updated third party documentation. If you come across any errors or out of date content, please contact LivePerson support and we will attempt to update it as soon as possible. + diff --git a/pages/Documents/RichMessaging/AppleBusinessChatTemplates/list-picker-template.md b/pages/Documents/RichMessaging/AppleBusinessChatTemplates/list-picker-template.md new file mode 100644 index 0000000000..8b14de9498 --- /dev/null +++ b/pages/Documents/RichMessaging/AppleBusinessChatTemplates/list-picker-template.md @@ -0,0 +1,537 @@ +--- +pagename: List Picker Template +redirect_from: + - rich-messaging-connectors-abc-listpicker.html + - structured-content-apple-messages-for-business-templates-list-picker-template.html +Keywords: +sitesection: Documents +categoryname: "Rich Messaging" +documentname: Apple Messages for Business Templates +permalink: apple-messages-for-business-templates-list-picker-template.html +indicator: messaging +--- + +### Overview + +[Messages for Business List Picker](https://developer.apple.com/documentation/businesschatapi/messages_sent/interactive_messages/list_picker) enables human or automated agents to share a list of items and information about them while allowing the consumer to select multiple items and reply back with the selection. The following capabilities are supported: + +* Define items information - item name, description, image. +* Item sections - divide your list of items into sections based on the product categories. +* Multi-selection - Allow the consumer to select multiple items under multiple sections (brands can decide to turn multi-selction on some or all of the sections). +* receivedMessage and replyMessage bubbles style structures - define the templates for the bubbles that are received by the consumer on the Messages for Business thread, and replied to. + +Using metadata properties, brands can define the received and reply bubble structures and enable multi-selection capabilities. + +Below is an image example of a Messages for Business List Picker with multi-selection turned on: + +![Apple Messages for Business List Picker Main](images/abc-listpicker-1.jpg) ![Apple Messages for Business List Picker list](images/abc-listpicker-2.PNG) + +### Basic Template Overview + +In order to comply with the Apple Messages for Business JSON structure, the below Conversational Cloud structured content template must be applied. + +Each List Picker template has the following mandatory sections: + +1. [Messages for Business Message](#metadata---business-chat-message): multi selection, Received bubble, Reply bubbles (part of the metadata JSON + +2. [List Picker header](#body---list-picker-header): title and subtitle (part of the JSON body) + +3. [List Picker list items](#body---list-picker-items): title, subtitle and an optional image (part of the JSON body) + + + +The following JSON metadata and body structures are templates for any List Picker object: + +#### Metadata JSON template + +```json +[ + { + "type": "BusinessChatMessage", + "multipleSelection": TRUE/FALSE, + "receivedMessage": { + "style": "icon", + "subtitle": "THIS IS THE SUBTITLE", + "title": "THIS IS THE TITLE", + "secondarySubtitle": "SECONDARY SUBTITLE", + "tertiarySubtitle": "TERTIARY SUBTITLE" + }, + "replyMessage": { + "style": "icon", + "subtitle": "THIS IS THE SUBTITLE", + "title": "THIS IS THE TITLE", + "secondarySubtitle": "SECONDARY SUBTITLE", + "tertiarySubtitle": "TERTIARY SUBTITLE" + } + } +] +``` + + +#### Body JSON Template + +```json +{ + "type": "vertical", + "tag": "list", + "elements": [ + { + "type": "vertical", + "elements": [ + { + ///START TITLE OF SECTION HEADER + "type": "text", + "text": "HEADER TITLE TEXT", + "tag": "title", + "tooltip": "TITLE TOOLTIP", + "style": { + "bold": true, + "size": "large" + } + }, + { + ///START SUBTITLE OF SECTION HEADER + "type": "text", + "text": "HEADER SUBTITLE TEXT", + "tag": "subtitle", + "tooltip": "SUBTITLE TOOLTIP" + }, + { + ///FIRST ITEM IN THE LIST + "type": "horizontal", + "elements": [ + { + ///LIST ITEM IMAGE ELEMENT (OPTIONAL) + "type": "image", + "url": "IMAGE URL", + "tooltip": "IMAGE TOOLTIP" + }, + { + ///LIST ITEM TITLE, SUBTITLE AND BUTTON ACTION. + ///WILL ALWAYS BE IN A VERTICAL LAYOUT + "type": "vertical", + "elements": [ + { + "type": "text", + "tag": "title", + "text": "LIST ITEM TITLE", + "tooltip": "TITLE TOOLTIP", + "style": { + "bold": true, + "size": "large" + } + }, + { + "type": "text", + "tag": "subtitle", + "text": "LIST ITEM SUBTITLE", + "tooltip": "SUBTITLE TOOLTIP" + }, + { + "type": "button", + "tooltip": "BUTTON TOOLTIP", + "title": "LIST ITEM BUTTON", + "click": { + "actions": [ + { + "type": "publishText", + "text": "ON-CLICK PUBLISHED TEXT" + } + ], + "metadata": [ + { + "type": "ExternalId", + "id": "ON-CLICK EXTERNAL ID" + } + ] + } + } + ] + } + ] + }//END OF LIST PICKER ITEM ###1, + { + ///SECOND ITEM IN THE LIST + }, + { + ///THIRD ITEM IN THE LIST + }, + ///ETC + ] + } + ] +} +``` + +### Metadata - Messages for Business Message + +The List Picker Metadata JSON is based on [this JSON template](#metadata-json-template). + +#### List Picker Metadata JSON Properties + +The muliple selection property allows the brand to configure which sections will allow for multiple selection and which sections will not. The property is an array of bolleans which will be set to true or false in the order that the sections are configured in the body. If the multi selections property is not set in the property, the default is "false". + +| Property Name | Description | Type | Required | Size Limit | +| :---------------- | :------------------------------------------------------------------------------------------ | :------ | :------- | :--------- | +| type | Type of metadata.
Must be BusinessChatMessage | Enum | Y | | +| multipleSelection | Value that indicates if the customer can make multiple selections on specific sections. Defaults to false. | Boolean Array | N | | +| receivedMessage | Defines how the bubble template will be displayed when a message is received. | Object | Y | | +| replyMessage | Defines how the bubble will be displayed when a message is sent back by the consumer. | Object | Y | | + + +#### Received and Reply Message + +The Received Message is the first card presented to the consumer, from which they access the list of items to choose from. It consists of an image and actions. + +The Reply Message is the reply card presented to the consumer after selecting items from the list. + +The configuration of the Received and Reply Messages is done via a metadata JSON file. + + +##### Received and Reply Message Properties + +| Property Name | Description | Type | Required | Size Limit | +| :---------------- | :------------------------------------------------------------------------------------------- | :----- | :------- | :--------------------------------------------------------------------------------- | +| Style | Defines the size of the message. Can be set to icon, small or large.
Defaults to icon. | String | N | | +| title | The title of the message | String | Y | 85 characters (30 is recommended by Apple) | +| Subtitle | Subtitle to be displayed under title of the message | String | N | 400 characters (85 is recommended by Apple) | +| imageURL | Image to be placed in the List Picker received and reply message template | String | N | JPG and PNG Only
The total image size in the list picker is limited to 0.5MB | +| secondarySubtitle | Title that is aligned right of the message | String | Y | | +| tertiarySubtitle | Subtitle that is aligned right of the message | String | Y | | + + +#### Metadata JSON Example + +```json +[ + { + "type": "BusinessChatMessage", + "multipleSelection":[true,false] + "receivedMessage": { + "style": "icon", + "subtitle": "Select your favorite", + "title": "Beautiful flowers", + "secondarySubtitle": "secondary subtitle", + "tertiarySubtitle": "tertiarySubtitle", + "imageURL": "https://i.pinimg.com/736x/a0/67/5e/a0675e5161d7ae5be2550987f397a641--flower-shops-paper-flowers.jpg" + }, + "replyMessage": { + "style": "large", + "subtitle": "", + "title": "Your selection", + "secondarySubtitle": "secondarySubtitle", + "tertiarySubtitle": "tertiarySubtitle", + "imageURL": "https://i.pinimg.com/736x/a0/67/5e/a0675e5161d7ae5be2550987f397a641--flower-shops-paper-flowers.jpg" + } + } +] +``` + +### Body - Overview + +The List Picker Body JSON is based on [this JSON template](#body-json-template). + +#### List Picker Body JSON Properties + +| Property Name | Description | Type | Required | Size Limit | +| :------------ | :---------------------------------------------- | :------- | :------- | :--------- | +| type | Type of the element.
Must be “vertical” | string | Y | | +| tag | Must be “list” | String | Y | | +| elements | List of Time Picker elements | Elements | Y | | + +View the [List Picker Header](#body---list-picker-header) and [List Picker Item](#body---list-picker-items) sections for details on how to construct the List Picker Body JSON. + +#### List Picker Body JSON Example + +```json +{ + "type": "vertical", + "tag": "list", + "elements": [ + { + "type": "vertical", + "elements": [ + { + "type": "text", + "text": "Flowers", + "tooltip": "text tooltip", + "style": { + "bold": true, + "size": "large" + } + }, + { + "type": "horizontal", + "elements": [ + { + "type": "image", + "url": "https://i.pinimg.com/736x/60/38/93/603893c655392b2c623a516f0a8c014c--wildflower-bouquet-dahlia-bouquet.jpg", + "tooltip": "Spring flowers" + }, + { + "type": "vertical", + "elements": [ + { + "type": "text", + "tag": "title", + "text": "Spring bouquet", + "tooltip": "Spring bouquet", + "style": { + "bold": true, + "size": "large" + } + }, + { + "type": "text", + "tag": "subtitle", + "text": "Wild flowers", + "tooltip": "Wild flowers" + }, + { + "type": "button", + "tooltip": "Add to cart", + "title": "Add to cart", + "click": { + "actions": [ + { + "type": "publishText", + "text": "Spring bouquet" + } + ], + "metadata": [ + { + "type": "ExternalId", + "id": "Spring bouquet" + } + ] + } + } + ] + } + ] + }, + { + "type": "horizontal", + "elements": [ + { + "type": "image", + "url": "http://www.gamttep.com/wp-content/uploads/2017/03/wedding-bouquets-flowers-pleasant-design-ideas-13-1000-ideas-about-on-pinterest.jpg", + "tooltip": "Spring flowers" + }, + { + "type": "vertical", + "elements": [ + { + "type": "text", + "tag": "title", + "text": "Bday flowers", + "tooltip": "Bday flowers", + "style": { + "bold": true, + "size": "large" + } + }, + { + "type": "text", + "tag": "subtitle", + "text": "Mix flowers", + "tooltip": "Mix flowers" + }, + { + "type": "button", + "tooltip": "Add to cart", + "title": "Add to cart", + "click": { + "actions": [ + { + "type": "publishText", + "text": "published text button tap" + } + ] + } + } + ] + } + ] + } + ] + } + ] +} +``` + +### Body - List Picker Header + +The List Picker Header consists of a Title and a Subtitle. + +The configuration of the header is done as part of the [List Picker Body JSON](#body-overview). + +#### List Picker Header Title + +##### Properties + +Based on the [Structured Content Basic Element Text](structured-content-introduction-to-structured-content.html#text) with the following restrictions: + +| Property Name | Description | Type | Required | Size Limit | +| :------------ | :------------------------------------------------------------------------------------------------------------ | :-------- | :------- | :--------- | +| type | Type of element.
Must be ‘text’ | Enum | Y | | +| style | Styling elements of the title.
Must have the following properties:
{ "bold":true,
"size":"large"} | Container | N | | +| tag | Must be “title” | String | Y | | + +##### Example + +```json +{ + "type": "text", + "text": "Flowers", + "tag": "title", + "tooltip": "text tooltip", + "style": { + "bold": true, + "size": "large" + } +} +``` + +#### List Picker Header Subtitle + +##### Properties + +Based on the [Structured Content Basic Element Text](structured-content-introduction-to-structured-content.html#text) with the following restrictions: + +| Property Name | Description | Type | Required | Size Limit | +| :------------ | :-------------------------------------- | :----- | :------- | :--------- | +| type | Type of element.
Must be ‘text’ | Enum | Y | | +| tag | Must be “subtitle” | String | Y | | + +**Note: the subtitle section should not use style element** + +##### Example + +```json +{ + "type": "text", + "text": "Wild flowers", + "tag": "subtitle", + "tooltip": "text tooltip" +} +``` + +### Body - List Picker Items + +Each List Picker Item consists of an image (optional), a title, a subtitle and a button, ordered in a horizontal template. + +The configuration of the List Picker Item is done as part of the [List Picker Body JSON](#body-overview). + +#### List Picker Item Properties + +| Property Name | Description | Type | Required | Size Limit | +| :------------ | :--------------------------------------------------------------------------------------------- | :------- | :------- | :--------- | +| type | Type of template.
Must be ‘horizontal’ | Enum | Y | | +| elements | Array of elements: image (optional), title, subtitle and a button.
Must be in that order | Elements | Y | | + + +#### List Picker Item Elements Configurations + +The List Picker Item elements are based on the basic [Structured Content basic elements](structured-content-introduction-to-structured-content.html#basic-elements) with some limitations. + +The following section describes those elements and their specific configuration properties. + +##### Image Element Properties + +Based on the [Structured Content Basic Element Image](structured-content-introduction-to-structured-content.html#image) element with the following restrictions: + +| Property Name | Description | Type | Required | Size Limit | +| :------------ | :------------------------------------------------------------------ | :----- | :------- | :--------- | +| type | Type of element.
Must be 'image' | Enum | Y | | +| uri | Image URL.
Must be whitelisted by a LivePerson representative | String | Y | | + +**Note: The image section should not use style element** + +##### Title Element Properties + +Based on the [Structured Content Basic Element Text](structured-content-introduction-to-structured-content.html#text) element with the following restrictions: + +| Property Name | Description | Type | Required | Size Limit | +| :------------ | :------------------------------------------------------------------------------------------------------------ | :-------- | :------- | :--------- | +| type | Type of element.
Must be 'text' | Enum | Y | | +| style | Styling elements of the title.
Must have the following properties:
{ "bold":true,
"size":"large"} | Container | Y | | +| tag | Must be “title” | String | Y | | + +##### Subtitle Element Properties + +Based on the [Structured Content Basic Element Text](structured-content-introduction-to-structured-content.html#text) element with the following restrictions: + +| Property Name | Description | Type | Required | Size Limit | +| :------------ | :------------------------------------ | :----- | :------- | :--------- | +| type | Type of element.
Must be 'text' | Enum | Y | | +| tag | Must be “subtitle” | String | Y | | + +**Note: The subtitle section should not use style element** + +##### Button Element Properties + +Based on the [Structured Content Basic Element Button](structured-content-introduction-to-structured-content.html#button) element with the following restrictions: + +| Property Name | Description | Type | Required | Size Limit | +| :------------ | :------------------------------------------------- | :--- | :------- | :--------- | +| type | Type of element.
Must be 'button' | Enum | Y | | +| click | Click operation must use “publishText” type only | Enum | Y | | + +**Note: The button section should not use style element** + + +#### List Picker Item JSON Example + +```json +{ + "Type": "horizontal", + "elements": [ + { + "type": "image", + "url": "https://cdn.macrumors.com/article-new/2017/09/Flowersexfrontback-800x573.jpg", + "tooltip": "Flowerse X" + }, + { + "type": "vertical", + "elements": [ + { + "type": "text", + "tag": "title", + "text": "Flowerse X", + "tooltip": "Title", + "style": { + "bold": true, + "size": "large" + } + }, + { + "type": "text", + "tag": "subtitle", + "text": "Black", + "tooltip": "Black" + }, + { + "type": "button", + "tooltip": "Add to cart", + "title": "Add to cart", + "click": { + "actions": [ + { + "type": "publishText", + "text": "Flowerse X Added" + } + ], + "metadata": [ + { + "type": "ExternalId", + "id": "Flowerse X" + } + ] + } + } + ] + } + ] +} +``` diff --git a/pages/Documents/RichMessaging/AppleBusinessChatTemplates/rich-links-template.md b/pages/Documents/RichMessaging/AppleBusinessChatTemplates/rich-links-template.md new file mode 100644 index 0000000000..47d41a2f9f --- /dev/null +++ b/pages/Documents/RichMessaging/AppleBusinessChatTemplates/rich-links-template.md @@ -0,0 +1,60 @@ +--- +pagename: Rich Links Template +Keywords: +sitesection: Documents +categoryname: "Rich Messaging" +documentname: Apple Messages for Business Templates +permalink: apple-messages-for-business-templates-rich-links-template.html +indicator: messaging +--- + +### Overview + +Apple has provided a new type of message that allows you to send rich links to the consumer device. + +When sending a plain URL link (eg. `https://www.apple.com`) through Apple Messages for Business, it will show "Tap to Load" by default on the consumer device. This requires the consumer to tap before seeing the preview in the message transcript. + +You can now override this default "Tap to Load" behavior by sending a rich link stuctured content template instead of a plain URL. + +Rich link configurable content includes: + +* Bubble title text +* Link preview image +* Link button URL + +*Consumer view of rich links template* + +consumer view + +*Agent view of rich links template* + +agent view + +### Example Template + +Only the Structured Content body is needed for Rich Links. + +```json +{ + "type": "vertical", + "tag": "richLink", + "elements": [ + { + "type": "image", + "url": "https://cdn.macrumors.com/article-new/2017/09/iphonexfrontback-800x573.jpg" + }, + { + "type": "button", + "title": "Apple’s iPhone X", + "click": { + "actions": [ + { + "type": "link", + "uri": "https://www.apple.com" + } + ] + } + } + ] +} +``` diff --git a/pages/Documents/RichMessaging/AppleBusinessChatTemplates/time-picker-template.md b/pages/Documents/RichMessaging/AppleBusinessChatTemplates/time-picker-template.md new file mode 100644 index 0000000000..3953423707 --- /dev/null +++ b/pages/Documents/RichMessaging/AppleBusinessChatTemplates/time-picker-template.md @@ -0,0 +1,469 @@ +--- +pagename: Time Picker Template +redirect_from: + - rich-messaging-connectors-abc-timepicker.html + - structured-content-apple-messages-for-business-templates-time-picker-template.html +Keywords: +sitesection: Documents +categoryname: "Rich Messaging" +documentname: Apple Messages for Business Templates +permalink: apple-messages-for-business-templates-time-picker-template.html +indicator: messaging +--- + +### Overview + +[Messages for Business Time Picker](https://developer.apple.com/documentation/businesschatapi/messages_sent/interactive_messages/time_picker) enables human or automated agents to send available time slots when consumers are looking to schedule an appointment with the brand’s various services. Time picker allows the consumer to select the relevant time slot, and reply back with the time selected. + +The following capabilities are supported: + +1. **receivedMessage and replyMessage** bubbles style structures (which are the templates for the bubbles that are received by the consumer and then sent back by the consumer). This allows the brand to create a Time Picker with bubbles containing title, subtitle, style size and image. + +2. **Timeslots** - Enables the agent to generate an array of time slots for the consumer’s options. + +3. **Time zone offset** - Represents the number of minutes from GMT, while specifying the timezone of the event’s location. If not set, times are shown according to the customer’s current time zone. If set, the times are shown according to the event’s time zone, regardless of the customer’s location. + +4. **Location** - Enables the brand to add a describer to the appointment location, allowing the consumer to immediately see the location once an appointment is saved in the calendar. + +By Using the using metadata properties, the brand can also define the received and reply bubble structures. + +Below is an example image of a Messages for Business time picker: + +![Apple Messages for Business Time Picker Main](images/abc-timepicker-1.jpg) ![Apple Messages for Business Time Picker list](images/abc-timepicker-2.PNG) + +### Basic Template Overview + +In order to comply with the Apple Messages for Business JSON structure, the below Conversational Cloud structured content JSON structure must be applied to any Time Picker template. + +Each Time Picker template has the following mandatory sections: + +1. [Business Event](#metadata---business-event) (part of the metadata JSON): defines the object as a time picker object for Apple Messages for Business. This section includes timing and location properties. + +2. [Messages for Business Message](#metadata---business-chat-message) (part of the metadata JSON): defines the received and reply messages. + +3. [Time Picker Items](#body---time-picker-items) (part of the JSON body): defines the dates available and the time slots for selection as part of the Time Picker. + +The following JSON metadata and body structures are templates for any Time Picker object: + +#### Metadata JSON template + +```json +[ + { + "type": "BusinessEvent", + "timing": { + "presentedTimezoneOffset": GMT TIME OFFSET IN MINUTES + }, + "location": { + "title": "title", + "la": LATITUDE, + "lo": LONGITUDE, + "radius": RADIUS + }, + "title": "TITLE OF THE CALENDAR MEETING" + }, + { + "type": "BusinessChatMessage", + "receivedMessage": { + "title": "THIS IS THE TITLE", + "imageURL": "HTTPS URL OF THE IMAGE", + "style": "small", + "subtitle": "THIS IS THE SUBTITLE" + }, + "replyMessage": { + "title": "THIS IS THE TITLE", + "style": "large", + "imageURL": "HTTPS URL OF THE IMAGE", + "subtitle": "THIS IS THE SUBTITLE" + } + } +] +``` + +#### Body JSON Template + +```json +{ + "type": "vertical", + "tag": "datePicker", + "elements": [ + { + ///TITLE OF THE TIME PICKER + "type": "text", + "text": "THIS IS THE TITLE", + "tag": "Title", + "style": { + "bold": true, + "size": "large" + } + }, + { + ///SUBTITLE OF THE TIME PICKER + "type": "text", + "text": "THIS IS THE SUBTITLE", + "tag": "subtitle" + }, + ///START TIME PICKER ITEM ###1 + { + "type": "text", + "text": "ITEM TITLE AS A DATE" + }, + { + "type": "horizontal", + "elements": [ + ///LIST OF AVAILABLE TIME SLOTS FOR ITEM ###1 + { + ///TIME SLOT ###1 + "type": "button", + "title": "THIS IS THE TIME SLOT HOUR", + "click": { + "metadata": [ + { + "type": "ExternalId", + "id": "ON-CLICK EXTERNAL ID" + }, + { + "type": "BusinessEvent", + "timing": { + "startTime": "DATE OBJECT", + "duration": DURATION OF THE TIME SLOT IN SECONDS + } + } + ], + "actions": [ + { + "type": "publishText", + "text": "ON-CLICK CONFIRMATION TEXT" + } + ] + } + }///END OF TIME SLOT ###1, + { + ///TIME SLOT ###2 + }, + { + ///TIME SLOT ###3 + }, + ///ETC + ] + }///END OF TIME PICKER ITEM ###1, + { + ///TIME PICKER ITEM ###2 + }, + { + ///TIME PICKER ITEM ###3 + }, + ///ETC + ] +} +``` + +### Metadata - Messages for Business Message + +Part of the Time Picker Conversational Cloud Structured Content metadata JSON. + +#### Properties + +| Property Name | Description | Type | Required | Size Limit | +| :-------------- | :------------------------------------------------------------------------------------ | :----- | :------- | :--------- | +| type | Type of metadata.
Must be 'BusinessChatMessage' | Enum | Y | | +| receivedMessage | Defines how the bubble template will be displayed when a message is received. | Object | Y | | +| replyMessage | Defines how the bubble will be displayed when a message is sent back by the consumer. | Object | N | | + + +#### Received and Reply messages + +The Received Message is the first card presented to the consumer, from which they access the available timeslots to choose from. It consists of an image, title, subtitle and style. + +The Reply Message is the reply card presented to the consumer after selecting the time from the picker. It consists of an image, title, subtitle and style. + +| Property Name | Description | Type | Required | Size Limit | +| :---------------- | :----------------------------------------------------------------------------------------------- | :----- | :------- | :-------------------------------------------------------------------------- | +| Style | Defines the size of the message.
Can be set to icon, small or large.
Defaults to icon. | String | N | | +| title | The title of the message | String | Y | 85 characters (30 is recommended by Apple) | +| Subtitle | Subtitle to be displayed under title of the message | String | N | 400 characters (85 is recommended by Apple) | +| imageURL | Image to be placed in the Time Picker received and reply message template | String | N | JPG and PNG Only
The image size in the Time Picker is limited to 0.5MB | +| secondarySubtitle | Title that is aligned to the right of the message | String | N | | +| tertiarySubtitle | Subtitle that is aligned to the right of the message | String | N | | + +#### Example + +```json +{ + "type": "BusinessChatMessage", + "receivedMessage": { + "title": "Available appointments", + "imageURL": "https://cdn.dribbble.com/users/85668/screenshots/1352116/dribblble_mock_1x.jpg", + "style": "small", + "subtitle": "Please select your preferred time" + }, + "replyMessage": { + "title": "Selected time", + "style": "large", + "imageURL": "https://cdn.dribbble.com/users/85668/screenshots/1352116/dribblble_mock_1x.jpg", + "subtitle": "Time selected!" + } +} +``` + +### Metadata - Business Event + +Part of the Time Picker Conversational Cloud Structured Content metadata JSON. Defines the object as a time picker object for Apple Messages for Business. This section includes timing and location properties. + +#### Properties + +| Property Name | Description | Type | Required | Size Limit | +| :------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----- | :------- | :--------- | +| type | Type of metadata.
Must be 'BusinessEvent' | Enum | Y | | +| Timing | Defines the GMT time offset configuration | Object | N | | +| location | Enables the brand to add a descriptor to the appointment location, allowing the consumer to immediately see the location once appointment is saved in the calendar | Object | N | | +| title | Title of the calendar meeting | String | Y | | + + +#### Timing Object Properties + +| Property Name | Description | Type | Required | Size Limit | +| :---------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--- | :------- | :--------- | +| presentedTimezoneOffset | Time zone offset configuration. Represents the number of minutes from GMT, while specifying the timezone of the event’s location.
If not set, times are shown according to the customer’s current time zone. If set, the times are shown according to the event’s time zone, regardless of the customer’s location | Enum | N | | + + +#### Location Object Properties + +| Property Name | Description | Type | Required | Size Limit | +| :------------ | :-------------------------------------------------------------------------------------------------------------------------------------------- | :----- | :------- | :--------- | +| title | Location name | String | N | | +| la | A double representing the latitude of the location | double | N | | +| lo | A double representing the longitude of the location | double | N | | +| radios | A double representing the location radius, in meters.
Messages for Business ignores this property when latitude and longitude are missing or empty. | double | N | | + +#### Example + +```json +{ + "type": "BusinessEvent", + "timing": { + "presentedTimezoneOffset": 120 + }, + "location": { + "title": "LivePerson ATC Mannheim", + "la": 49.4872955, + "lo": 8.4682869, + "radius": 10 + }, + "title": "Technician Visit" +} +``` + +### Body - Time Picker Items + +Part of the Time Picker Conversational Cloud Structured Content body JSON, enabling an agent to generate an array of time slots for the consumer’s options. + +The Time Picker item elements consists of a title element and a row of available time slots per specific date to choose from. + +They are based on the Structured Content [basic elements](structured-content-introduction-to-structured-content.html#basic-elements) with some limitations. + +The following section describes those elements and their specific configuration properties. + +#### Template Properties + +| Property Name | Description | Type | Required | Size Limit | +| :------------ | :----------------------------------------------- | :------- | :------- | :--------- | +| type | template of the element.
Must be “vertical” | string | Y | | +| tag | Must be “datePicker” | String | Y | | +| elements | List of time picker elements | Elements | Y | | + +#### Text Element Properties + +Based on [Structured Content Basic Element Text](structured-content-introduction-to-structured-content.html#text) with the following restrictions: + +| Property Name | Description | Type | Required | Size Limit | +| :------------ | :----------------------------------------- | :----- | :------- | :--------- | +| type | Type of the element.
Must be “text” | string | Y | | +| text | Must be “datePicker” | String | Y | | + +**Note: The text section should not use style element** + + +#### Time slot Element Properties + +Based on [Structured Content Basic Element Button](structured-content-introduction-to-structured-content.html#button) with the following restrictions: + +| Property Name | Description | Type | Required | Size Limit | +| :------------ | :-------------------------------------------------------------------------------------- | :----- | :------- | :--------- | +| type | Type of the element.
Must be “button” | string | Y | | +| title | The hour of the time slot.
Only affects non-Apple Messages for Business rendering clients. | String | Y | | + +**Note: The button section should not use style element** + +
+Time Picker button has additional [Click Metadata](structured-content-introduction-to-structured-content.html#element-click-operations) parameters that are specific to Apple Messages for Business: + +| Property Name | Description | Type | Required | Size Limit | +| :------------ | :-------------------------------------------------------------------- | :----- | :------- | :--------- | +| type | Type of the element.
Must be “BusinessEvent” | string | Y | | +| timing | An object describing the start time and the duration of the time slot | Object | Y | | + + +**Timing Object Properties** + +| Property Name | Description | Type | Required | Size Limit | +| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ | :------- | :--------- | +| startTime | A UTC date string, represented by a valid date in ISO-8601 format and specified as absolute GMT +0000 date; for example, 2018-05-26T08:27:55+00:00, 2018-05-26T08:27:55+0000, or 2018-05-26T08:27:55Z | string | Y | | +| Duration | An integer representing the duration of the time slot, in seconds | integer | Y | | + + +#### Example + +```json +{ + "type": "text", + "text": "Tuesday, July 6" +}, +{ + "type": "horizontal", + "elements": [ + { + "type": "button", + "title": "11:30", + "click": { + "metadata": [ + { + "type": "ExternalId", + "id": "SlotIdentidier" + }, + { + "type": "BusinessEvent", + "timing": { + "startTime": "2019-07-06T11:30:00Z", + "duration": 3600 + } + } + ], + "actions": [ + { + "type": "publishText", + "text": "Technician visit: 7/6/2018 11:30 IST" + } + ] + } + } + ] +} +``` + +### Example + +#### Time Picker Metadata + +```json +[ + { + "type": "BusinessEvent", + "timing": { + "presentedTimezoneOffset": 120 + }, + "location": { + "title": "LivePerson ATC Mannheim", + "la": 49.4872955, + "lo": 8.4682869, + "radius": 10 + }, + "title": "Technician Visit" + }, + { + "type": "BusinessChatMessage", + "receivedMessage": { + "title": "Available appointments", + "imageURL": "https://cdn.dribbble.com/users/85668/screenshots/1352116/dribblble_mock_1x.jpg", + "style": "small", + "subtitle": "Please select your preferred time" + }, + "replyMessage": { + "title": "Selected time", + "style": "large", + "imageURL": "https://cdn.dribbble.com/users/85668/screenshots/1352116/dribblble_mock_1x.jpg", + "subtitle": "Time selected!" + } + } +] +``` + + +#### Time Picker Body + +```json +{ + "type": "vertical", + "tag": "datePicker", + "elements": [ + { + "type": "text", + "text": "Select Date", + "tag": "Title", + "style": { + "bold": true, + "size": "large" + } + }, + { + "type": "text", + "text": "Tuesday, July 6" + }, + { + "type": "horizontal", + "elements": [ + { + "type": "button", + "title": "11:30", + "click": { + "metadata": [ + { + "type": "ExternalId", + "id": "SlotIdentidier" + }, + { + "type": "BusinessEvent", + "timing": { + "startTime": "2019-07-06T11:30:00Z", + "duration": 3600 + } + } + ], + "actions": [ + { + "type": "publishText", + "text": "Technician visit: 7/6/2019 11:30 IST" + } + ] + } + }, + { + "type": "button", + "title": "12:00", + "click": { + "metadata": [ + { + "type": "ExternalId", + "id": "SlotIdentidier" + }, + { + "type": "BusinessEvent", + "timing": { + "startTime": "2019-07-06T12:00:00Z", + "duration": 3600 + } + } + ], + "actions": [ + { + "type": "publishText", + "text": "Technician visit: 7/6/2019 12:00 IST" + } + ] + } + } + ] + } + ] +} +``` diff --git a/pages/Documents/RichMessaging/AppleMessagesForBusinessTemplates/apple-auth-template.md b/pages/Documents/RichMessaging/AppleMessagesForBusinessTemplates/apple-auth-template.md index 0decf35f24..f47efbe729 100644 --- a/pages/Documents/RichMessaging/AppleMessagesForBusinessTemplates/apple-auth-template.md +++ b/pages/Documents/RichMessaging/AppleMessagesForBusinessTemplates/apple-auth-template.md @@ -133,11 +133,8 @@ Please use the metadata template with the relevant fields, as presented in the e "requestIdentifier": "Insert Your Unique Request Key Here", "apple": { "oauth2": { - "clientSecret": "A string indicating the secret provisioned by the authorization server.", - "scope": "Insert your scope here. Ex.['email','profile']", - "responseType": "A string indicating the type of authentication request" - "responseEncryptionKey": "Insert your public key here", - "state": "A string indicating the state of the authentication request." + "scope": "Insert Your scope here. Ex.['email','profile']", + "responseEncryptionKey": "Insert Your Public Key Here" } } } @@ -156,13 +153,13 @@ Please use the metadata template with the relevant fields, as presented in the e BusinessChatMessage - Represents the Business Chat bubbles view objects + Represents the Messages for Business bubbles view objects Object Y ConnectorAuthenticationRequest - Represents a Business Chat authentication request + Represents a Messages for Business authentication request Object Y @@ -196,24 +193,6 @@ Please use the metadata template with the relevant fields, as presented in the e An array of scope items that specifies the scope of the request, gives the exact fields of data that the authentication service provides to client requesting the authentication. Array<string> Y - - - apple.oauth2.clientSecret - A string indicating the secret provisioned by the authorization server. - string - Y - - - apple.oauth2.responseType - A string indicating the type of authentication request. - string - Y - - - apple.oauth2.state - A string indicating the type of authentication request. - string - Y diff --git a/pages/Documents/RichMessaging/AppleMessagesForBusinessTemplates/apple-pay-template.md b/pages/Documents/RichMessaging/AppleMessagesForBusinessTemplates/apple-pay-template.md index e65c0c7b5b..dacd84ebbf 100644 --- a/pages/Documents/RichMessaging/AppleMessagesForBusinessTemplates/apple-pay-template.md +++ b/pages/Documents/RichMessaging/AppleMessagesForBusinessTemplates/apple-pay-template.md @@ -172,13 +172,13 @@ To edit the `ConnectorPaymentRequest` and `BusinessChatMessage` metadata templat BusinessChatMessage - Represents the Business Chat bubbles view objects + Represents the Messages for Business bubbles view objects Object Y ConnectorPaymentRequest - Represents a Business Chat apple pay request + Represents a Messages for Business apple pay request Object Y @@ -282,7 +282,7 @@ This object defines how the Apple Pay template is displayed on the consumer devi requestIdentifier - A UUID for the request. Business Chat includes the identifier in its response to Conversational Cloud — this is an important property which allows you to correlate the payment response with your backend payment service + A UUID for the request. Messages for Business includes the identifier in its response to Conversational Cloud — this is an important property which allows you to correlate the payment response with your backend payment service string Y diff --git a/pages/Documents/RichMessaging/AppleMessagesForBusinessTemplates/custom-interactive-message-template.md b/pages/Documents/RichMessaging/AppleMessagesForBusinessTemplates/custom-interactive-message-template.md index 1838255044..e258adfdce 100644 --- a/pages/Documents/RichMessaging/AppleMessagesForBusinessTemplates/custom-interactive-message-template.md +++ b/pages/Documents/RichMessaging/AppleMessagesForBusinessTemplates/custom-interactive-message-template.md @@ -10,7 +10,7 @@ indicator: messaging ### Overview -The Custom Interactive Message (CIM) Template for App Business Chat allows you to invoke an iOS iMessage app / extension on the consumer device. This app can allow for a wide range of interactivity without requiring the consumer to leave the conversation. +The Custom Interactive Message (CIM) Template for Apple Messages for Business allows you to invoke an iOS iMessage app / extension on the consumer device. This app can allow for a wide range of interactivity without requiring the consumer to leave the conversation. Sending the structured content templates (body and metadata) explained in this document will allow you to send the iMessage app / extension to the consumer device. @@ -188,7 +188,7 @@ The value of the `URL` metadata property will be passed to Apple's [MSMessage](h * ImageURL MUST be whitelisted — to whitelist images for Structured Content contact your Conversational Cloud account representative -* SessionIdentifier — Any interactive message that is sent to ABC has a UUID; either you can set it through this field, or if not set Apple will generate a UUID for the interactive message. We recommend you set the UUID for each interactive message sent from the agent, in order to maintain referencing and correlating between interactions, for grouping messages, funnel tags and more. +* SessionIdentifier — Any interactive message that is sent to AMB has a UUID; either you can set it through this field, or if not set Apple will generate a UUID for the interactive message. We recommend you set the UUID for each interactive message sent from the agent, in order to maintain referencing and correlating between interactions, for grouping messages, funnel tags and more. * Images placed in the image used in imageURL field should be whitelisted in account Houston — Site Setting messaging.rich.content.valid.urls diff --git a/pages/Documents/RichMessaging/AppleMessagesForBusinessTemplates/list-picker-template.md b/pages/Documents/RichMessaging/AppleMessagesForBusinessTemplates/list-picker-template.md index 256fdc13bf..254aa2c294 100644 --- a/pages/Documents/RichMessaging/AppleMessagesForBusinessTemplates/list-picker-template.md +++ b/pages/Documents/RichMessaging/AppleMessagesForBusinessTemplates/list-picker-template.md @@ -13,16 +13,16 @@ indicator: messaging ### Overview -[Business Chat List Picker](https://developer.apple.com/documentation/businesschatapi/messages_sent/interactive_messages/list_picker) enables human or automated agents to share a list of items and information about them while allowing the consumer to select multiple items and reply back with the selection. The following capabilities are supported: +[Messages for Business List Picker](https://developer.apple.com/documentation/businesschatapi/messages_sent/interactive_messages/list_picker) enables human or automated agents to share a list of items and information about them while allowing the consumer to select multiple items and reply back with the selection. The following capabilities are supported: * Define items information — item name, description, image. * Item sections — divide your list of items into sections based on the product categories. * Multi-selection — Allow the consumer to select multiple items under multiple sections (brands can decide to turn multi-selction on some or all of the sections). -* receivedMessage and replyMessage bubbles style structures — define the templates for the bubbles that are received by the consumer on the Business Chat thread, and replied to. +* receivedMessage and replyMessage bubbles style structures — define the templates for the bubbles that are received by the consumer on the Messages for Business thread, and replied to. Using metadata properties, brands can define the received and reply bubble structures and enable multi-selection capabilities. -Below is an image example of a Business Chat List Picker with multi-selection turned on: +Below is an image example of a Messages for Business List Picker with multi-selection turned on: ![Apple Messages for Business List Picker Main](img/archive/abc-listpicker-1.jpg) ![Apple Messages for Business List Picker list](img/archive/abc-listpicker-2.PNG) @@ -160,7 +160,7 @@ The following JSON metadata and body structures are templates for any List Picke } ``` -### Metadata — Business Chat Message +### Metadata — Messages for Business Message The List Picker Metadata JSON is based on [this JSON template](#metadata-json-template). diff --git a/pages/Documents/RichMessaging/AppleMessagesForBusinessTemplates/time-picker-template.md b/pages/Documents/RichMessaging/AppleMessagesForBusinessTemplates/time-picker-template.md index 4243e609d0..a1e4d24ca7 100644 --- a/pages/Documents/RichMessaging/AppleMessagesForBusinessTemplates/time-picker-template.md +++ b/pages/Documents/RichMessaging/AppleMessagesForBusinessTemplates/time-picker-template.md @@ -13,7 +13,7 @@ indicator: messaging ### Overview -[Business Chat Time Picker](https://developer.apple.com/documentation/businesschatapi/messages_sent/interactive_messages/time_picker) enables human or automated agents to send available time slots when consumers are looking to schedule an appointment with the brand’s various services. Time picker allows the consumer to select the relevant time slot, and reply back with the time selected. +[Messages for Business Time Picker](https://developer.apple.com/documentation/businesschatapi/messages_sent/interactive_messages/time_picker) enables human or automated agents to send available time slots when consumers are looking to schedule an appointment with the brand’s various services. Time picker allows the consumer to select the relevant time slot, and reply back with the time selected. The following capabilities are supported: @@ -27,7 +27,7 @@ The following capabilities are supported: By Using the using metadata properties, the brand can also define the received and reply bubble structures. -Below is an example image of a Business Chat time picker: +Below is an example image of a Messages for Business time picker: ![Apple Messages for Business Time Picker Main](img/archive/abc-timepicker-1.jpg) ![AApple Messages for Business Time Picker list](img/archive/abc-timepicker-2.PNG) @@ -39,7 +39,7 @@ Each Time Picker template has the following mandatory sections: 1. [Business Event](#metadata---business-event) (part of the metadata JSON): defines the object as a time picker object for Apple Messages for Business. This section includes timing and location properties. -2. [Business Chat Message](#metadata---business-chat-message) (part of the metadata JSON): defines the received and reply messages. +2. [Messages for Business Message](#metadata---business-chat-message) (part of the metadata JSON): defines the received and reply messages. 3. [Time Picker Items](#body---time-picker-items) (part of the JSON body): defines the dates available and the time slots for selection as part of the Time Picker. @@ -158,7 +158,7 @@ The following JSON metadata and body structures are templates for any Time Picke } ``` -### Metadata — Business Chat Message +### Metadata — Messages for Business Message Part of the Time Picker Conversational Cloud Structured Content metadata JSON. @@ -231,7 +231,7 @@ Part of the Time Picker Conversational Cloud Structured Content metadata JSON. D | title | Location name | String | N | | | la | A double representing the latitude of the location | double | N | | | lo | A double representing the longitude of the location | double | N | | -| radios | A double representing the location radius, in meters.
Business Chat ignores this property when latitude and longitude are missing or empty. | double | N | | +| radios | A double representing the location radius, in meters.
Messages for Business ignores this property when latitude and longitude are missing or empty. | double | N | | #### Example diff --git a/pages/Documents/RichMessaging/GettingStartedwithRichMessaging/introduction.md b/pages/Documents/RichMessaging/GettingStartedwithRichMessaging/introduction.md index 14609ad2d0..73ef7b9d4c 100644 --- a/pages/Documents/RichMessaging/GettingStartedwithRichMessaging/introduction.md +++ b/pages/Documents/RichMessaging/GettingStartedwithRichMessaging/introduction.md @@ -214,7 +214,7 @@ Each structured content template will contain one or more **elements** in the `e | tag | Further specifies the template type | String | N | | elements | List of element objects | Array | Y | -All templates will consist of an object that holds the elements array. The object will always have a type and optionally have a tag. The tag is only relevant when using third party connectors like Facebook Messenger, Apple Business Chat, etc. +All templates will consist of an object that holds the elements array. The object will always have a type and optionally have a tag. The tag is only relevant when using third party connectors like Facebook Messenger, Apple Messages for Business, etc. There is an additional property for Horizontal type only: @@ -238,7 +238,7 @@ There is an additional property for Horizontal type only: Below you will find basic elements, their styling, and their click operations, that are common within all templates. -When you are comfortable with the basic elements, you can see them in action in the various templates for Mobile SDK and Web, Facebook Messenger, Apple Business Chat, etc. +When you are comfortable with the basic elements, you can see them in action in the various templates for Mobile SDK and Web, Facebook Messenger, Apple Messages for Business, etc. ### Basic Elements diff --git a/pages/Documents/RichMessaging/MobileSDKandWebTemplates/multiple-checklist-template.md b/pages/Documents/RichMessaging/MobileSDKandWebTemplates/multiple-checklist-template.md index 79d2bea940..02946a4366 100644 --- a/pages/Documents/RichMessaging/MobileSDKandWebTemplates/multiple-checklist-template.md +++ b/pages/Documents/RichMessaging/MobileSDKandWebTemplates/multiple-checklist-template.md @@ -115,7 +115,7 @@ The consumer selections will be displayed as a consumer message in the agent wor }, { "type": "checkbox", - "text": "Apple Business Chat", + "text": "Apple Messages for Business", "borderLine": true, "borderColor": "#d4d4d5", "click": { @@ -128,7 +128,7 @@ The consumer selections will be displayed as a consumer message in the agent wor "actions": [ { "type": "checked", - "publishText": "Apple Business Chat" + "publishText": "Apple Messages for Business" } ] } diff --git a/pages/Documents/Security&Authentication/AppleBusinessChatAuthentication/overview.md b/pages/Documents/Security&Authentication/AppleBusinessChatAuthentication/overview.md index 6885b3162c..4a18d34b14 100644 --- a/pages/Documents/Security&Authentication/AppleBusinessChatAuthentication/overview.md +++ b/pages/Documents/Security&Authentication/AppleBusinessChatAuthentication/overview.md @@ -8,6 +8,6 @@ permalink: apple-business-chat-authentication-overview.html indicator: messaging --- -In order to implement authentication for Apple Business Chat, you will need to use the [Apple Auth rich messaging template explained here](apple-business-chat-templates-apple-auth-template.html). +In order to implement authentication for Apple Messages for Business, you will need to use the [Apple Auth rich messaging template explained here](apple-messages-for-business-templates-apple-auth-template.html). When clicked, this rich messaging template will interact with your own OAuth 2.0 service. \ No newline at end of file