Customer Experience Management - Technology Architecture & API Nagendra C L, CTO/Chief Architect
←
→
Page content transcription
If your browser does not render page correctly, please read the page content below
Jun 28th 2019 Customer Experience Management Technology Architecture & API Nagendra C L, CTO/Chief Architect
Content Overview Technology Infrastructure Performance Introduc on 3 Opera onal Regions 6 Security 10 OpenAPI Pla orm 4 Global PaaS 8 Benchmarks 11 Architecture 5 Data Residency 9 Open API Advanced API Survey Channels/Dispatch Access Control 13 Context Pre-Fills 27 Channel Comparison 33 Ques onnaire 14 Real- me Push 28 Data I/O 34 Data Slice & Dice 20 SSO 29 In-Store/On Loca on 36 Survey Tokens 23 Delivery Workflow 30 Post Purchase 37 Granular Authoriza on 31 Online 38 Tailored 39 Sliced Marke ng 40 Contact Center 41
Introduction to CEM Analytics Platform Cloud Cherry’s Customer Experience Management Analy cs Pla orm(CEMP) enables brands & businesses to perform real- me acquisi on of Customer Experience(CX) data from their customers using mul ple channels to acquire, engage & analyze their customers. Why Collect & Analyze Data Real-Time ? Ÿ Real- me data allows you to engage customers in an almost one-on-one, real- me conversa on to provide mul ple chances to amend before any service issues move to be discussed online causing dispropor onate damage to the brand. Ÿ Real- me data analysis help businesses understand how customers perceive their products so that they can adapt them, or their marke ng, if need be highly curve fi ng their marke ng or servicing spends. Ÿ Data drill down analysis enables businesses to perform pre-impact risk analysis before tweaking any offering to iden fy what areas cause the most commo on or happiness to customers, which an non-real- me overall sa sfac on score can’t iden fy and only shows up in a ermath. Ÿ Tracking enterprise-wide insights on single dashboard saves lot of me to manage quality across wide array of loca ons servicing customers. Œ Ž Aquire Analyze Insight Paper Survey Real me Analy cs Email Survey Drill Downs CloudCherry Analy cs Engine Web Survey Management RT No fica ons Services API Tablet Survey Excel Reports Data Acquisi on Services API API API è Technology Stack & Architecture
Aquire Analyze Insight Na ve Customer Experience Management Analy cs Pla orm Management Dashboard - Android Capture Bootstrap, AngularJS - iOS Acknowledge - Windows Digi ze Transform Splice Analyze OPEN API CloudCherry Analy cs Engine REST API Management Services API REST API JSON OPEN DATA Data Acquisi on Services API OPEN STANDARDS NOSQL Import Exis ng Data Export Analyzed Results 3rd Party Developer Integra on or Raw Data 3rd Party Developer Integra on Big Data Store Terabyte Ready Pla orm Built On
Aquire Analyze Insight Customer Experience Management Analy cs Pla orm getcloudcherry.com/api REST/JSON OPEN API api.getcloudcherry.com Analy cs Worker Cloud Azure Web App PaaS Azure Cloud Service PaaS CEM Open API .NET SDK REST API CEM Pla orm API Analy cs Workers AutoScale - + PHP Package AutoScale - + Java Lib Voice/Text Gateway WebApp PaaS AutoScale - + Insights & Analy cs CEM Dashboard Email Gateway MongoDB Data Store Account Analy cs Store Azure Availablity Set AutoScale - + Azure Private VNet VM Set Azure DocumentDB Swap Live Edge Deployment Availability Set Replica Set Social Listening Cloud Service PaaS AutoScale - + Tab Tablet App Journey Touchpoints CEM Data Channels Web Encrypted Data Recovery Site Off Voice/Text Performance @ Email Automa on Monitoring Messaging Analy cs Social Listen + 15+ Channels IBM Watson Azure Service Bus Redis Cache Azure Scheduler Applica on Insights Pla orm Built On
Aquire Analyze Insight Customer Experience Management Global API api.getcloudcherry.com re try e Fa ure ilu un lur East US - Virginia Fa OS Fail Re lure DC ure Co Fai Resiliency Matrix Resiliency Matrix il n i er Fa gio rv Se Redis Cache Service Bus NoSQL Store Single Server û û û û û IaaS ü û û û û West US - California PaaS ü ü ü û û Global PaaS+ ü ü ü ü ü Redis Cache Service Bus NoSQL Store Azure DocumentDB +Each Global Region is Independent of Other North EU - Ireland Collec on & Analy cs Data Store Zones are Spread Within Country CEM Global Users Œ DNS Lookup Redis Cache Service Bus NoSQL Store (which IP do we talk to ?) Azure DocumentDB East US - This Way! West EU - Netherlands Redis Cache Service Bus NoSQL Store User Ž Talk to East US Azure Traffic Manager Azure DocumentDB it’s Online and Super Fast api.getcloudcherry.com SouthEastAsia - Singapore (New York) to your loca on(20ms) Lookup Best Route Right Now Redis Cache Service Bus NoSQL Store Azure DocumentDB CEM API Monitoring South India - Chennai AccountMonitored Global Analy cs Store Routes Real-Time Rou ng East US Online 20ms West US Online 100ms Redis Cache Service Bus NoSQL Store North EU Online 120ms Azure DocumentDB West EU Online 140ms Central India - Pune Singapore Online 150ms South India Degraded 600ms Central India Online 160ms Redis Cache Service Bus NoSQL Store Globally Available On California + Virginia Netherlands + Ireland Chennai + Pune Singapore London + Cardiff Toronto + Quebec
Technology Platform and Architecture Cloud Cherry’s Customer Experience Management Pla orm was architected and designed leveraging the best prac ces of efficient cloud compu ng, the pla orm is architected to be open(OpenStandards/OpenData/OpenAPI), to perform (see benchmarks), to be secure (PCI-DSS Level 1) and long las ng (based upon rock solid enterprise grade Microso ’s Azure Pla orm). The pla orm is offered as a So ware as a Service(SaaS) solu on to businesses, while being deployed on the cloud as a Pla orm as a Service(PaaS) on-top of Microso Azure. SaaS frees businesses from chores of running a complex IT system just to support data collec on, and lets’ their technical teams to be er u lize me to develop systems and install interac ve and dynamic visualiza on tools that allow decision makers to analyze, view and benefit from the data, than to be occupied collec ng it. The pla orms open philosophy of implemen ng Open Standards and Open API allows businesses full control to own their data in-contrast to online applica ons owning the data that customer’s generate; unlike proprietary solu ons that only facilitates easy collec on of data, but no way for data to exit, your data is best trusted with open pla orms that don’t mine it themselves or use it for adver sing. CloudCherry SaaS = CEM Analy cs + Open Standards + Enterprise Reliability from Microso On Premises IaaS PaaS SaaS (Infrastructure as a Service) (Platform as a Service) (Software as a Service) Cloud Cherry Managed by your organization Feature Use Feature Use Feature Use Feature Use Application Application Application Application Managed by your organization Managed by your organization Managed by your organization DataStore DataStore DataStore DataStore Runtime Runtime Runtime Runtime Middleware Middleware Middleware Middleware OS OS OS OS Microsoft Microsoft Virtualization Virtualization Virtualization Virtualization Servers Servers Servers Servers Amazon Storage Storage Storage Storage Networking Networking Networking Networking $$$$$+ $$$$ $$$ $ è Global PaaS Delivered
Global PaaS Delivered CloudCherry’s CX Pla orm Deployment is a Global PaaS Deployment. PaaS itself w/o even being global is possibly the highest form of deployment compared to all other alterna ves that exist today; PaaS when combined with global deployment, delivers the most rock solid infrastructure performance, reliability and dependability that any analy cs data pla orm could hope for in being highly available & infinitely scalable. Design feature of CX Global PaaS : Ÿ Disposable/Stateless Instances : Instances are fully managed where servers are built up & torn down all the me. Ÿ De-centralized/Decoupled Design : All regions are independent of each other with compute de- coupled & data store de-coupled. Ÿ Performance Caching - Near network performance from edges serving CX (ex: 15ms is a response me for a survey token on 2nd use onwards) Ÿ Global & Regional Backplanes - Co-ordina ng the cha er within region and within global network. Ÿ Distributed NoSQL Store - Globally distributed NoSQL data store. Global PaaS api.getcloudcherry.com PaaS Region US PaaS Region EU api-west-us.getcloudcherry.com Web API PaaS PaaS Region EU Web API PaaS SG - - PaaS Web API Servers Added On Demand Servers Added On Demand PaaS - PaaS Region Region EU IN Servers Added On Demand Web API PaaS - Servers Added On Demand Mongo Global BackPlane + + + Analy cs PaaS Analy cs PaaS Redis BackPlane Analy cs PaaS + - - Analy cs- PaaS Servers Added On Demand Servers Added On Demand Servers Added On Demand - Servers Added On Demand Service Bus + + + + è Global Data Sovereignty
Choice of 5 Continents for Data Residency & Sovereignty CloudCherry CEM Pla orm provides more than 5+ global loca ons as op on for CEM programs to operate out of, these enable security conscious businesses to maintain control over the loca on where regulated data and documents physically reside. Privacy and data residency requirements vary by country and customers of CEM services need to consider the rules that cover each of the jurisdic ons they operate in as well as the rules that govern the treatment of data at the loca ons where the CEM service provider provisions their services (e.g., their data centers), with CloudCherry customers can select their choice of loca on to meet the regulatory requirements. Depending on the specific countries in which businesses operate, companies may need to keep certain types of informa on within a defined geographic jurisdic on. Addi onally global API loca ons also provides shortest latency to improve speed of access to your customers. Sovereign Zones Loca ons Regulatory Compliance API California + Virginia United States California + Virginia Backup Oregon (Encrypted) API Netherlands + Ireland European Union Netherlands + Ireland Backup Frankfurt (Encrypted) API Chennai + Pune Indian Subcon nent Chennai + Pune Backup Mumbai (Encrypted) API Singapore Singapore(+SE-Asia) Singapore MTCS Level 3 Backup Singapore (Encrypted) London + Cardiff United Kingdom G-Cloud v6 Backup Ireland (Encrypted) Toronto + Quebec Canada Backup Oregon(Encrypted) è Data Storage, Security, Privacy & Compliance
Data Storage, Security, Privacy & Compliance CloudCherry’s Customer Experience Management Analy cs Pla orm provides a solid cloud hosted solu on to store terabytes of data based upon NoSQL datastore for real- me retrieval on demand. NoSQL databases were developed from the ground up to be distributed, scale out databases. They use a cluster of standard, physical or virtual servers to store data and support database opera ons. To scale, addi onal servers are joined to the cluster and the data and database opera ons are spread across the larger cluster. NoSQL databases are built to tolerate and recover from failure making them highly resilient. Data Ownership & Privacy : Customer data belongs to you, CloudCherry’s staff does not have access to customer accounts, unless customers share their login/password for assistance in setup or support. Storage Security : CEM Pla orm is deployed upon Microso Azure, with NoSQL cluster on a private VNET (virtual network not accessible to general internet) and Azure has been validated for PCI-DSS Level 1 compliance. Transmission Security : All API endpoints use HTTPS Secure Protocol with Extended Valida on(EV), the EV SSL Cer fica on is 2048 bit key, with public key signed by GeoTrust using SHA-256. Sensi ve API Calls are SSL enforced(where it refuses to connect unencrypted), while rest of the call connect in both encrypted and normal mode providing control and choice to the business users. Infrastructure, Network, PaaS Security Safeguards: All Security safeguards and reliability assurances of Microso Azure Apply to CEM PaaS, Refer to Azure Security, Privacy, and Compliance Whitepaper to learn more. ( h p://go.microso .com/fwlink/?linkid=392408&clcid=0x409 ) è Performance Benchmarks
Built for Scale, Lean and Efficient Architecture CloudCherry is freshly built, without any of bulky legacy pa erns nor having gone overboard with micro-services - as elegant as it can get - lean, decoupled, distributed and to be global. Just about right mix of efficiency and agility to scale. For instance, CloudCherry’s Global PaaS API endpoints handle over half million experiences every month with 7 global regions across the world opera ng as just one. Lean engineering has kept CEM Pla orm responsive, each and every line has been carefully chosen to be efficient and secure, en re code base has been performance op mized and benchmarked before deployment. Real- me Numbers Global API Live Snapshot 25M + Experiences 140M + Ops/Year < 100ms Worldwide < 500ms Analytics Sample snapshot of total response mes from the pla orm API end point to a sample test loca on. Global API Endpoint : api.getcloudcherry.com Compute Metric : NPS ( Real- me / High Precision / Not Sampled / Not Cached ) OpenAPI Call: /api/FlashNPS Benchmarked in the Same Region as Data Residency, As Measured on Live Ac ve/Hot Account Ac on Real- me Compute Response Time* Lower is Be er NPS Net Promoter Score Over 100K Responses 1.00 Seconds NPS Net Promoter Score Over 200K Responses 2.20 Seconds NPS Net Promoter Score Over 500K Responses 5.20 Seconds NPS Net Promoter Score Over 1 Million Resp. 10.40 Seconds è CX Analy cs Data API
Customer Experience Measurement & Analytics API API provides full access for integra on into external applica ons and workflow or to access your data when you want, how you want. What can I do with API ? è API Live Explorer The API consists of REST Calls that enables you to make use/integrate/improve every func on that is possible on the official app & official web insight center. Ÿ Setup/manage ques onnaires for data collec on Ÿ Gather & collect feedback data using API Ÿ Issue unique tokens with bills(PoS Integra on) Ÿ Sta s cally analyze collected data & generate reports Ÿ Add & manage real- me no fica ons & se ngs Ÿ Export reports or analysis or raw data Ÿ Setup/Manage Sub-Users & Roles API Language Compa bility : C/C++, Objec ve-C, Swi , C#/.NET, JavaScript, Java, PHP, Ruby, Python OS Compa bility : Windows, Linux, OSX, iOS, Android, WindowsPhone Cherry API Request - Response Flow API Consumer Cherry API Provider AUTHENTICATION Œ Auth Request Bearer Token Account Token Issue Authorization Service Management API Client PUT/GET/DELETE Ž Token + Request Settings Questions API Response Answers Services { CDM/Insight "userName": "demo", "hasRegistered": true, "loginProvider": "bearer" } è API Access & Authoriza on
API Access & Authorization Accessing API requires : Ÿ Valid/Ac vated Cloud Cherry Account Ÿ Ac ve Pay Per Response Plan Ÿ Login To Dashboard or/& update se ngs before accessing API There are 2 authen ca on methods for the API: HTTP Basic authen ca on and OAuth2. The easiest way to authen cate is using HTTP Basic authen ca on. Enter your username and supply your password or API Key as the password. Star ng much more secure oAuth2 is similar to obtaining a one- me pass to a conference hall with many talks going on, you need to produce your id only once at the entrance to be en tled for entering any room, this pass(here token) iden fies your account without needing to verify id(here login/password) at every rooms entrance(here your REST Service call) Example Basic Auth : curl -u h ps://api.getcloudcherry.com/api/ques ons Sample oAuth2 Authentication Call : Request POST https://api.getcloudcherry.com/api/LoginToken Content-Type: application/x-www-form-urlencoded Body : grant_type=password&username=&password= { "access_token": "61Abkh..", "token_type": "bearer", "expires_in": 86399, Response "userName": "", "email": "", "primaryRole": "User", "managedBy": "", ".issued": "Sun, 29 Jun 2014 12:56:04 GMT", ".expires": "Mon, 30 Jun 2014 12:56:04 GMT" } Retain the "access_token" for rest of session(or until .expiry) to use for making every other API call, add header “Authorization: Bearer {access_token}” to every further API request to be identified as authorized. è Ques onnaire Management Using API
Questionnaire Management Using API Survey ques onnaire can be setup and managed using the API, including func on such as : Ÿ Create 25+ Different Type of Ques ons Ÿ Setup condi onal ques ons based on me, place, date or on answer to another ques on Ÿ Re re/update/delete exis ng ques ons Sample Call to Retrieve Questions List : Request GET https://api.getcloudcherry.com/api/questions Content-Type: application/json Response is a array with questions(if they exist in the account), below is a sample response with a single question [{ "id": "53621..", "user": "", "setName": null, "sequence": 2, "text": "How would you rate our staff", "displayType": "Select", "multiSelect": ["Evil", "Average", "Attentive", "Superheroes"], Response "staffFill": false, "displayLocation": null, "userWeight": 2.0, "cdmWeight": 0.0, "conditionalToQuestion": null, "conditionalAnswerCheck": null, "conditionalNumber": 0, "analyticsTag": null, "isRequired": false, "questionTags": ["Staff"], "goodAfter": null, “goodBefore": null, "timeOfDayAfter": null, "timeOfDayBefore": null, "isRetired": false, "note": null } .. ] è Ques on Structure
Question Structure Ques ons are represented as JSON when request type is for “applica on/json” or XML when reques ng call specifies “applica on/xml”, both the formats represent the same informa on fields. Each ques on is iden fied with a unique iden fier assigned by the API on crea on, this unique id is used to reference the ques on for modifica on. setName : Optional group name for group questions sequence : Order this questions will be displayed to user text : The main text of the question for query to user displayType : Question is displayed and accepted for input as one of the choices Select - Choose one item from list of items(less than 5 choices) Dropdown - choose one item from list of items displayed as drop down(for more than 5 choices) MultiSelect - choose more than one item from list OrderBy - Order a list of item according to priority or importance Star-5 - Rating using 1 to 5 Stars Smile-5 - Rating using 1 to 5 Smiles Like-5 - Rating using 1 to 5 Likes Text - Accept a single line of text Question Data Structure MultilineText - Accept a multiple lines of text multiSelect : Choices valid for a selection or dropdown as a array of string staffFill : Questions reserved for surveyor/staff to prefill before handing the data collection over to surved user. displayLocation : Array of locations where the question is only valid for display userWeight : Analytics weight for importance of answer to this question, 1 = 1x conditionalToQuestion : Optional id of the question this depends upon conditionalAnswerCheck : Array of conditional check answers(when text) or an single operator(when number), operators for comparison on numeric answers are [ 'eq' ] for equal to / [ 'lt'] for less than / [ 'gt'] for greater than conditionalNumber : Numeric answer that the conditional answer check operator(eq/lt/gt) is applied on. isRequired : Optionally force user to answer, and do not skip questionTags : Tags set for user to filter using(ex: “Staff” for questions on performance of staff) goodAfter : Optional Date after which the questions is good to be displayed after goodBefore : Optional Date after which the questions should not displayed after timeOfDayAfter : Optional time of day after which the questions is good to be displayed after timeOfDayBefore : Optional time of day after which the questions should not displayed after isRetired : Optionally do not display this question anymore but keep the data collected so far note : user note to add context è Create Your First Ques on Using API
Create Your First Question Using API Fresh ques ons can be created using API by pos ng informa on that the ques on will use in the format of the ques on data structure, all fields that are needed are only essen al, any un-used or later for use fields can be skipped during crea on, these will take the default values. Sample Call to Create New Question: POST https://api.getcloudcherry.com/api/questions/add Content-Type: application/json Body : { "setName": null, "sequence": 11, "text": "Sample Question", "displayType": "Text", Request "multiSelect": [], "StaffFill": false, "displayLocation": [], "userWeight": 1, "cdmWeight": 1, "analyticsTag": null, "isRequired": false, "isRetired": false, "goodAfter": null, "goodBefore": null, "timeOfDayAfter": null, "timeOfDayBefore": null } Response : Successful addition will return the complete question with a API assigned id, using which the question can be referenced going forward. Response { "id":"53bd1fd..", "user":"demo", “displayType":"Text" .." } è Update a Ques on
Update a Question Using API Exis ng ques ons can be updated using API by pos ng changed informa on that the ques on will use in the format of the ques on data structure, use a copy of exis ng ques on containing the unique ques on ID as obtained from the API to apply the changes required before pos ng it back to the API. Update Func ons: Modify Content Displayed, Change Answer Type, Add Condi ons, Set Tags, Set Analy cs Weights, Re re Sample Call to Update Existing Question: POST https://api.getcloudcherry.com/api/questions/update/{question_id} Content-Type: application/json Body : { "id": "53bd1fd...", "user": "demo", "setName": null, "sequence": 11, Request "text": "Sample Question 1", "displayType": "Text", "multiSelect": [], "staffFill": false, "locationSpecific": null, "displayLocation": [], "userWeight": 1, "cdmWeight": 1, "conditionalToQuestion": null, "conditionalAnswerCheck": null, "conditionalNumber": 0, "analyticsTag": null, } Response : Successful modification will return complete modified question for verification. { Response "id":"53bd1fd..", "user":"demo", "text": "Sample Question 1", } è Delete a Ques on
Delete a Question Using API Exis ng ques ons can be deleted permanently during tes ng or when not required. Once a ques on is deleted all references connec ng it to responses already collected specifically to this is lost, to retain specific answers while archiving a ques on, set it to re re the ques on via a update instead of dele ng, re ring ensures data con nuity & flow over decades as answers from ques ons that existed in past(now re red) will show up only when retrieved for that specific me period. Sample Call to Permanently Delete Existing Question: Request GET https://api.getcloudcherry.com/api/questions/delete/{question_id} Content-Type: application/json Response : True or False Response è Response Management Using API
Response Management Using API Survey responses collected can be managed using the API, including func on such as : Ÿ Retrieve all collected responses Ÿ Filter collected responses by me frame, loca on or answered as Ÿ Archive responses to be excluded from analy cs summary Ÿ Delete responses that are not required permanently A single response is a collec on of answers from a single respondent/person, each response structure contains all the answers that were collected for the ques ons displayed. questionId : Unique ID of the question the answer is for Answer questionText : Text of question displayed while collecting the answer textInput : Text Answer when provided by user numberInput : Number Answer when provided by user id : Unique ID of the response assigned by API, use this to access this response for modification locationId : Optional Location where this response was collected, if locations have been setup Response responseDateTime : Time Stamp of response collection in ISO-8601 format(YYYY-MM- DDTHH:mm:ss.sssZ) archived : Status of response, set when it is archived to exclude from analysis notes : Any internal notes associated with this response responses : Array of Answer Structure(as above) [ Answer , Answer ] è Filtering Data Using API
Filtering Data Using API Finding the needle in the haystack, especially a big hay stack requires fine grained filter control, and this is provided by the API so business users can narrow data sets to exactly what they require than retrieve the en re haystack to find it themselves. Ÿ Match for responses collected at loca on(like downtown only) Ÿ Match for responses collected at a er or before dates, or a er a certain me of day or before(like evening in downtown) Ÿ Match responses collected during a specific day of week(like sunday evenings in downtown) Ÿ Match for responses collected that contains a specific answer(like sunday evenings in downtown responses from first me visitors who answered yes to their first visit ques on) location : Array of String Of Locations afterdate : DateTime after which the response was collected, ISO-8601 format (YYYY-MM- DDTHH:mm:ss.sssZ) beforedate : DateTime before which the response was collected, ISO-8601 format (YYYY-MM- DDTHH:mm:ss.sssZ) filterquestions : Match responses that contain a specific answer, array of responses matches, similar to conditional question matching [{ "questionId": Unique question ID to match answer with Filter Structure "questionText": text of question, so API knows its real "answerCheck": Array of conditional check answers(when text) or an single operator(when number) operators for comparison on numeric answers are [ 'eq' ] for equal to / [ 'lt'] for less than / [ 'gt'] for greater than "number": Numeric answer that the conditional answer check operator(eq/lt/gt) is applied on. },..] archived : Match archived(true) or normal(false), days: Match responses collected during specific days of week, Array of Number(Monday = 1, Sunday = 6) aftertime : Time of Day after which the response was collected, ISO-8601 format(YYYY-MM- DDTHH:mm:ss.sssZ), beforetime : Time of Day before which the response was collected, ISO-8601 format(YYYY-MM- DDTHH:mm:ss.sssZ) è Retrieve Filtered Responses Using API
Retrieve Filtered Responses Using API Responses can be retrieved from API by pos ng a filter specifica on for matches to be performed. Sample Data Retrieval Using a Filter Specification: POST https://api.getcloudcherry.com/api/answers Content-Type: application/json Body : { Request "location": [ “Downtown” ], "afterdate": "2014-06-10T07:00:00.000Z", "beforedate": "2014-07-10T06:59:59.999Z", "filterquestions": [], "archived": false, "days": [1, 2, 3, 4, 5], "aftertime": "2014-07-09T22:12:03.140Z", "beforetime": null } Response : Array of Response Containing Answers [{ "id": "52c7d3437c1e0c12ac50e538", "user": "demo", "locationId": "Downtown", "responseDateTime": "2013-12-30T09:24:19.839Z", Response "responses": [ { "questionId": "53621e417c1e0c0ad41ce051", "questionText": "How would you rate our staffs", "textInput": "Superheros", "numberInput": 0, }, ] },..] è Retrieve Analy cs Using API
Retrieve Analytics Using API Detailed Analy cs Per Loca on can be retrieved from API by pos ng a filter specifica on for matches to be performed. Sample Analytics Retrieval Using a Filter Specification: Request POST https://api.getcloudcherry.com/api/AnalyticsByLocation Content-Type: application/json Body : Filter Spec { "all Locations": { "locationName": "All Locations", "perDayResponseCount": [27,32], "mdm": 83, "totalResponses": 59, "locationSummary": [{ "askedQuestion": { "text": "Rate Your Coffee Strength", "displayType": "Star-5", }, "response": { "5": 19, "4": 4, "3": 3 } Response }..., "wordCloud": ["good", ""delicious"], "liked": "Colors", "disliked": "Music", "netPromoter": { "questionText": "Would you recommend our Cafe to family and friends", "promoters": 76, "passive": 14, "detractors": 10, "netPromoters": 66 }, "npsAnalytics": { “detractors": "Speed" }] } } è Mul ple Channels Surveys Using API
Multi-Channel Surveys Using API Tokens Businesses are mul faceted and customer interac on happen at many levels, making it essen al to aggregate data from very different channels to arrive into one screen for analysis. Survey tokens enable presen ng single survey on any channel while enabling customizing per user using built-in pre-fill data. A typical token is composed of just few characters but enables embedding survey ques onnaires with preset data(known as staff-fill on tablet mode) and have set life me (one use, mul use, valid a er, valid before). Using Survey Tokens Enables Ÿ Tablet to use Token in-place of login/password for survey staff. Ÿ Collect customer feedback over a web survey (ex. on your own website) Ÿ Collect customer feedback over a email (ex. a er a hotel checkout or service interac on) Ÿ Trackable surveys by individual responders using single-use tokens per customer over API to get unique URL per customer. User : API access username, questionnaire set for this user will be presented Note : Note on use of token(ex. “For email to customers”) PreFill : Optional Pre-Fill to include(For speed or to later track response to a unique customer). PreFillViaAPICallBack : Optional automated API End point to obtain pre-fill from. ValidTill : DateTime after which responses are not accepted, ISO-8601 format(YYYY-MM- DDTHH:mm:ss.sssZ) ValidUses : # of responses that are accepted(can be one time use or any number set) Survey Token Structure Location : Select questionnaire from this location if set RewardCode: Text/HTML to email for response back to surveyed user EmailQuestion : QuestionID which collects a email address to email the RewardCode or thank you (Web Only) CityQuestion : Prefill City Name to this question from which the survey was submitted StateQuestion : Prefill State Name to this question from which the survey was submitted RegionQuestion : Prefill Region Name to this question from which the survey was submitted SamplingMode : When Set, will pick random question(s) to present on every survey. PerSamplePresent : This many questions per sample are presented. MicroCampaign : Online Micro Survey Control(see CloudCherry 360 for more information) è Create Your First API Survey Token
Create Your First API Survey Token Fresh and unique tokens per specific survey or even specific to surveyed customer can be created using API by pos ng informa on that the survey token will use in the format of the survey token data structure, all fields that are needed are only essen al, any un-used or later for use fields can be skipped during crea on, these will take the default values. Sample Call to Create New Survey Token : POST https://api.getcloudcherry.com/api/surveytoken Content-Type: application/json Body : { "preFill": [{ "questionId": "53d10eea3ec2411e8c1baa36", "questionText": "Enter your customer number", "textInput": null, Request "numberInput": 2345, }], "validTill": "2014-10-31T18:30:00.000Z", "validUses": 1, "location": “Downtown”, "rewardCode": "Thank you for letting us improve our service", "emailQuestion": "53d10eea3ec2411e8c1baa3c", "note": "Email After Service Interaction #23456" } Response : Successful addition will return the fresh token being assigned by API ready for use in web/email (ex. http://CloudCherry.net/DM-21988). { Response "id": "DM-21988", "user": "demo", "note": "Email After Service Interaction #23456", } è Get Survey For Presenta on Using Token
Get Survey For Presentation Using Token Survey with complete ques onnaire including ac ve ques ons, theme, colors, logo & texts can be retrieved for presenta on on a custom applica on or device for response collec on. Pre-fill provides method to personalize tokens, if set while crea ng a token, will be available to enable custom response collec on client to skip presen ng pre-fileld ques ons to the responder. Sample Call to get Survey By Token: Request GET https://api.getcloudcherry.com/api/surveybytoken/DM-21988 Content-Type: application/json { "logoURL": "https://az592622.vo.msecnd.net/users/demo/logo.png", "backgroundURL": null, "businessName": "Café Beta", "businessTagline": "Brewing the Best - Always", "colorCode1": "#F70D11", "colorCode2": "#CECECE", "colorCode3": "#FFFFFF", "welcomeText": "Welcome to customer satisfaction questionnaire", "thankyouText": "Thank you for sharing your views", "questions": [{ Response "id": "547ef14d44ed4d230088b989", "sequence": 1, "text": "Rate Our Coffee Variety", "displayType": "Smile-5", ... }, { "id": "547ef85e44ed4d230088b9b1", "sequence": 2, "text": "Rate Effectiveness Of: Barista", "displayType": "Star-5", ... }], "preFill": null } è Submit Response Using Mul -Channel Token
Submit Response Using Multi-Channel Token Responses once collected using a token survey a er presenta on on custom channel/device can be posted back to API pla orm for Analy cs and Dashboard Access. Sample Call to Post a Response after Collection: POST https://api.getcloudcherry.com/api/surveybytoken/DM-21988 Content-Type: application/json Body : { "locationId": "Downtown", "responseDateTime": "2015-01-10T10:44:17.455Z", "responses": [{ "questionId": "547ef11244ed4d230088b981", Request "questionText": "Enter your customer number", "textInput": null, "numberInput": 2345, }, { "questionId": "547f3e0244ed4d1900dc68e3", "questionText": "How can we improve, let us know", "textInput": "Valet parking would be nice for this location", "numberInput": 0, }...], } Response : Successful addition will return the complete response with a response id assigned by API for further reference. Response { "id": "54b1028f8c62c31cf036eaf7", "locationId": "Downtown", "responseDateTime": "2015-01-10T10:44:17.455Z",} è Prefill Contextual Informa on Using API For Survey Token
Prefill Contextual Information Using API For Survey Token Adding the context to data provides great benefits by integra ng experien al data with transac onal data to derive ac onable analy cs that can significantly impact the bo om line for the business collec ng customer data. Contextual informa on can be automa cally pre-filled using a API end- point(as oppose to a staff filling it manually); API end point setup by you will receive the complete response on submission and respond back with pre-fill data to make the response more complete Sample Call Posted after a Response is Collected: POST http://yourserver.com/api/receiverespondjsonprefill Content-Type: application/json Body : { "locationId": "Downtown", JSON API Response POST "responseDateTime": "2015-01-10T10:44:17.455Z", "responses": [{ "questionId": "547ef11244ed4d230088b981", "questionText": "Customers’s purchase value(Staff-Prefill)", "textInput": null, "numberInput": 0 }, { "questionId": "547f3e0244ed4d1900dc68e3", "questionText": "Enter your bill number", "textInput": null, "numberInput": 1234, }...], } Sample Prefill Returned By Your API Endpoint: Response : You can lookup information to pre-fill on your side to match that of any filed provided Your API Response by customer(ex. mobile #, bill #) and provide pre-fill data to add context to this survey response. ( shown is a prefill of adding transaction value using the bill number which could have been pre-filled by the sales clerk; other example pre-fills could be demographics using a membership number) [{ "questionId": "547ef11244ed4d230088b981", "questionText": "Customers’s purchase value(Staff-Prefill)", "numberInput": 100,000 }] è Real- me Push No fica on on API
Real-time Push Notification on API Real- me no fica ons set with any criteria filter or even for every response(when criteria set is generic match-all such as ‘Any Ra ng : Less Than 6’) collected can be forwarded to your own API for further processing, for example you can react to a real- me ra ng event from a customer in store that needs to be further pushed using your central CRM for ac on from the right call center staff. Set the URL of the controller/script that can receive the complete answer as JSON POST by crea ng a new no fica on in the dashboard, with the URL as the target(in-place of email des na on), this will trigger no fica on to your server. Sample JSON POST to your Server/API/Code: POST http://yourserver.com/api/receivejson Content-Type: application/json Body : { "notification": "Answered With Less Than 12", "answer": { "LocationId": "Downtown", JSON API Response POST "ResponseDateTime": "2014-12-20T14:34:08.426Z", "Responses": [{ "QuestionId": "547ef11244ed4d230088b981", "QuestionText": "Rate The Service You Received", "TextInput": null, "NumberInput": 3, }, { "QuestionId": "547ef11244ed4d230088b982", "QuestionText": "Would you like us to contact you", "TextInput": “Yes”, "NumberInput": 0, }...], } } Reply after receive expected by API is a HTTP OK(200), if the API does not receive a successful Reponse response from your API or receives a error(404) it may stop sending any more notifications to that URL. è Single Sign-On(SSO) Automa c Login
Single Sign-On(SSO) Automatic Login Large businesses can enable Role based SSO(Single Sign On) for their users who are already authen cated by their intranet/website or email system or so ware such as CMS/ERP/CRM/PoS; SSO prevents duplica on of effort to create and maintain o en hundreds of username/password profiles for large businesses with many employees. SSO works by building a informa on packet(JSON) with the authen cated user’s informa on and then encryp ng the packet to obtain a SSO token that can be passed on to CloudCherry API for automa c login. Œ Ž {JSON} Redirect to CC Logs-in h ps://api../?ssokey SSO Token Your User Your Corporate Site Generate Automa cally /Email/CMS/ERP/CRM Encrypted SSO Token Logged-in /PoS { User Information "Userid": "manager", // Unique sub-user/role name(created at sign-on when not existing). "Role": "Manager", // Manager(for All Access) or ManagerReadOnly(For select locations). "Email": “user@yourcorp.com"// Verified Email address of user by your system. "Locations": [], // Optional list of locations to lock ‘ManagerReadOnly’ into. "TimeStamp": "2015-04-26T19:10Z" // Current Time UTC ISO-8601 format. } [ Download Sample Token Generation Snippet ] .NET : Encrypted Token // json is as above, account is primary username, ssokey as set in primary account settings String token = GetSSOToken(json, account, ssokey); Java : String token = GetSSOToken(json, account, ssokey); Redirect browser to : https://api.getcloudcherry.com/#/login?sso={account}&ssotoken={token} Reponse API will automatically create the account when non existed, or modify existing sub-user roles as per the User Info JSON and drop into Dashboard with specific permission set; here on, user can set- up/customize the views, reports or execute analytics drill-downs as a normal subuser would do. è Across-Channel Survey Delivery Workflow
Across-Channel Survey Delivery Workflow Fully Managed Global Survey Delivery Pipeline Global delivery plans enable delivery of personalized experiences across channels using powerful workflows that can be configured once and then securely re-used across me within your own transmission channels, for instance, mobile app push no fica ons or even to operate highly secure zero knowledge survey invites CEM program. Across Channels(15+) Delivery + Reminders + Thro ling Analy cs + w/o PII (Any pseudo iden fier) In Next 30s 1 Day Later 3 Days Later Shown for 30 Days (invited for survey) (a er email open) (on no response) Your Mobile App 9:15 AM * Don’t Keep us wai ng, ... Survey Token One question for you Never stop imorving How likely would you recommend us to h p://nps.bz/DM-XYZ Help us deliver a great experience your friends and family ? 0 1 2 3 4 5 6 7 8 9 10 every me!. è Help us deliver a great .. Not at all Maybe Yes,Sure! Created (w/ Delivery Plan Id) @ Email Text/SMS Push Note Website (Bounce Checked) (DND Checked) (Unsub Checked) (Unsub Checked) Any Channel/Per Customer Any Channel/Per Customer "Description" : "You are receiving this as you are a customer of acme corp", "UniqueCustomerIDByPreFilledQuestionTag" : "RealtionshipNo", “RemindOnlyAfterOpenDays”: 1, "Schedule" : [ { "OnChannel" : “email://" "Subject" : "Hello!", "TextBody" : "Hello,\nPlease share your experience,\nFill out our survey at *|Survey URL|*" }, Delivery Plan { "OnChannel" : “sms://twilio" "TextBody" : "Don’t keep us waiting,\n*|Survey URL|*\nHelp us deliver a great experience every time!.\nOptout: *|Unsubscribe URL|* " }, { "OnChannel" : “json://mobile-push" "TextBody" : "Never stop improving\nHelp us deliver a great experience every time!. ", “DelayByDays” : 3 } { "OnChannel" : “mircocherry://” } ] è Permissions w/ Granular Authoriza on Filters
Roles & Permissions w/ Granular Authorization Filters CEM/EEM deals with measuring experiences; and these experiences can be of a service, interac on or of a journey(of customer or an employee). Minimizing data collec on is not just the goal of GDPR, but an effec ve strategy to achieve organiza onal clarity and to retain happy customers; as to make things complex is far easier than to make things simple and elegant. This is made possible by using granular authoriza on filters. Unique Approach of One Survey - Many Views/Uses Let's consider a airline needing to add experience measurement as a feedback to improve service across departments, this first needs overall measurement of experiences of its customers, but also on behalf of many departments detailing various aspects of delivering experiences, everything from ground-services that is responsible for check-ins to marke ng that is responsible for se ng percep ons, in a tradi onal market research scenario, every department may run their own detailed surveys to determine how the experience was so they can use that feedback to improve their delivery. Now from the customer’s perspec ve, customers are lot more happier if they were surveyed just only once on light easy to click through survey taking less than 90 seconds of their me, this would yield more broader par cipa on compared to answering two surveys with 5 pages taking 30 minutes; one from ground team and another from lounge division to understand each of their areas of opera ons - instead a be er strategy would be, if the overall survey can itself can probe lounge experience to only those who visited the lounge by stealing extra 30 seconds. In this situa on, how will the lounge team have permission and access to experience data ? without running their own survey ?, a simple elegant approach that works where the smallest granular of a survey is a single ques on and a answer, and is to set as authoriza on of access to this survey based on grain(Q=A), enabling lounge team to look at lounge data for customer who actually visited the lounge while not necessarily having access or being swamped with en re universe of data. Lounge Team Ground Team Marke ng Auth Filter Auth Filter Auth Filter Granular Filtering Visited Lounge = Yes Checked Bag = Yes Lounge -or- Bag = Yes Cascading Authoriza ons Applied Auth Department Role User = Non-promoter Filter: Filter: Filter: Watched Brand Ad = true Business Class = Yes NPS < 9 marketed customer flying business è Examples of Granular Authoriza on Filters
Examples of Granular Authorization Filters CEM Airline Lounge Team Auth Filter Visited Lounge = Yes Team Based Access Mkt. Lounge Ground Manager #1 Marke ng Lounge -or- Ground Visited Lounge Checked Bag Auth Filter NOT FILLED NOT FILLED NOT FILLED xyz xyz xyz 40-45 Visited Lounge 40-45 Visited Lounge 40-45 Checked Bag Lounge -or- Bag = Yes Checked Bag Favorite : Blue Favorite : Blue Favorite : Blue Member # 23456 Member # 23456 Member # 23456 Rate the area you see we need to improve upon ? Rate the area you see we need to improve upon ? Rate the area you see we need to improve upon ? Ground Team FILLED FILLED FILLED Comfort Comfort Comfort Price Price Price Auth Filter Speed Speed Speed è Checked Bag = Yes EEM Company Department Level Access BU #1 BU #2 BU #3 On BU #1 Manager #1 Auth Filter Stores #1-5 Stores #6.10 Stores #11.15 Store = 1-5 Staff #1.1.1 Staff #1.1.2 Staff #6.1 Staff #6.2 Staff #11.1 Staff #11.2 Company EEM # BU #1 BU #2 BU #3 Ad-hoc Access Manager #1 On Manager Stores #1-5 Stores #6.10 Stores #11.15 Auth Filter Store = 1-5 -or- 11-15 Staff #1.1.1 Staff #1.1.2 Staff #6.1 Staff #6.2 Staff #11.1 Staff #11.2 # Use Not Equal To(!=) Operator for BU #3, But not Stores #11.15 è Channel Comparison Matrix
Channel Comparison Channel Using Go Live Effort Works Great For Œ In-Person Tablet Device None - Signup w/ TestDrive Data In-Store, In-Branch, On-site, At-Desk, At-Resturant Online Website Minimal - Add URL To Site Business Website Ž Email Click Link None - Copy URL To Email After Service Interaction, After Visit/Checkout Mobile QR Code SmartPhone None - Print Poster High Footfall Areas Such as Counters, Events, Conference, Airports, Railway Stations, Malls Internet Free Paper Survey Pen & Paper None - Print Survey Offline with Zero Technology ‘ Voice Telephone(PSTN) None - Copy Phone PIN & Call Fully Automated Contests, Product Feedback / SIP Transfer Or Anonymous Staff/Employee Tip Off Lines ’ SMS/Text Mobile Phone Minimal - Connect To Raspberry Radio Ad Measurement ( SMS XYZ to YZX ) “ Email Incoming Email Incoming None-Setup Forwarding Email Text Analytics For feedback@ Email Id’s } eSignature Email Outgoing None-Copy Signature Token Image Passive Experience Measure, Ticketing Or Staff ” 10 MicroSurvey Online/Browser Minimal - Add JS URL to Header Online Contextual, eCom, Lead Gen & Conversion ” 11 API Survey Token API Call Little - Single API Call 1 Privacy Protected Yet Trackable Using Pre-fill Data CEM API 2 ” 12 API Data Pull/Push API Call Little - Single API Call Enterprise Analytics/One Screen/Real-time ” 13 API Data Import Excel Sheet Minimal - Paste Into Excel Import Existing Data Collection ” 14 API Complete API Calls Large - Multiple API Calls Complete Product Integration ” 15 Social Listening Twitter None - Enter Twitter @username Social Media Sentiment Map/#Event Sentiment 1 See “Create Your First API Survey Token” 2 See “Retrieve Filtered Responses Using API”
Data I/O Scope : Cloud Integrations - Ticketing/CRM/Marketing Key Facts: Ÿ CRM -vs- CEM: All CEM data is on-demand, i.e only upon survey token(i.e invite) crea on or upon a customer responding to a survey will addi onal detailing start, not before, CloudCherry as a CEM system does not act a system of records for en re universe of customers - which is CRM. Ÿ Unlike CRM's, CEM Systems do not hold data of customer who do not opt to voluntarily interact with it; if there is a record in CEM system, it means a customer voluntarily took me to understand / read and answer the survey ques onnaire - i.e conscious human ac on. Ÿ CEM systems never bulk query/copy data from even fully integrated CRM’s preemp vely. Ÿ CEM analy cs works on basis of sampling, than interviewing every customer there is; a 5% randomized sample response rate is considered good sta s cally to base decisions upon, thus at no point in me will a CEM system hold data on all customers - 100% of popula on. Outbound HelpDesk/Ticketing Ÿ Open support tickets in Helpdesk on (Example) Open tickets for customers triggers from CloudCherry on a real- who may rate as detractors, letting your time basis Outbound staff pro-actively attempt to make things right. Survey Outbound Ÿ Set up workflows with in CRM and send (Examples) CloudCherry surveys real-time to your Two-way Inbound CRM / System of Records customers Survey 1. Send surveys from within CRM Ÿ Push data received in CloudCherry into with rich details from CRM(ex: Add CRM real-time Outbound a age-group). Ÿ Set up notifications in CloudCherry and create tickets in Salesforce Service Cloud. 2. Open tickets for customers who Updates made in the Salesforce ticket will may rate as detractors, letting your flow back into the corresponding staff pro-actively attempt to make CloudCherry response. Two-way things right. Ÿ Identify customer cohorts in CloudCherry and push these into Salesforce marketing 3. Slice/Dice CX Data to build cloud to create targeted marketing targeted marketing campaigns. campaigns Outbound Outbound Ÿ Identify customer cohorts in CloudCherry (Example) Slice/Dice CX Data to Marketing and push them into Marketo marketing build targeted marketing cloud to create targeted marketing campaigns. campaigns Outbound All logos, trademarks and registered trademarks are the property of their respective owners
Data I/O WildCard / On-Premise Integrations Integration with any on-prem/cloud software (ERP/CRM) is possible if it offers a scheduled/sliced CSV export(almost all enterprise solutions do) Account Analy cs Store System of Records On-Premises/On-Cloud Store On Œ On Premises Place CSV/XLS on SFTP/S3/Azure Setup One-time/Recurring Schedule CSV Export on Select Sliced/Logic Business Manager CX Analytics Customer Func onalID vs Department Status Time Dashboard Access 122XXXX Sales Resolved 90s 123XXXX Reten on Lost 5 mins Complete Interaction Experience Pickup and Map w NOT FILLED 122XXX Department : Sales Outcome: Resolved Upon Finding New CSV File Time: 90 Seconds Topics: Branch, Teller How likely would you recommend us to Answered Tell us how we can make your experience even better! https://nps.bz/DM-XYZ CLI Dispatcher FILLED your friends and family ? Have a great day ahead! .. 0 1 2 3 4 5 6 7 8 9 10 Not at all Maybe Yes,Sure! 1...to..Million -OR- Gaining Happy Customer Personalized Survey On Premises Cloud Survey Invites Dispatched Delivery Work ow Dispatcher Complete Interaction Experience NOT FILLED 123XXX Department : Reten on Outcome: Lost Time: 5 Minutes Answered We’re sorry to see you go, share Topics: Branch, Teller what we could have done How likely would you recommend us to better ? FILLED your friends and family ? 0 1 2 3 4 5 6 7 8 9 10 https://nps.bz/DM-XYZ Not at all Maybe Yes,Sure! All logos, trademarks and registered trademarks are the property of their respective owners Loss of Sale Survey (Department Retention)
Survey Pattern #1 In-Store/Location - Service Experience Survey Œ Customer For Billing Customer POS Staff Complete Pre-Fill (ex: value, bill #, membership #) Store Token: CC-23456 Op onal Would you like to fill a survey ? Sure, Show me now Would you like to take our short No, Email/ No SMS Me experience survey while we complete your billing ? 14th Jan 2014 root@nagendra.com Emailed : Please Take our survey here h p://CloudCherry.net/CC-23456 At Home/Office or On Mobile Survey Comple on Op onal Op onal Pre-fill Contextual Info Using API Pre-fill Contextual Info Using API (Whitepaper Page #22) (Whitepaper Page #22) POS/CRM/Database
Survey Pattern #2 Post Purchase Product/Sevice Experience Survey & Loyalty Incentive Œ Customer For Billing Customer POS Staff Including value, bill #, POS Pre-Filled Unique Token purchase. Op onal Bill w/ QR Survey Café Beta Bill 23456 Apr 4th 2016 Emailed : Your Discount Code : NXT5OFF 1. Cappuccino x2 $10 SubTotal $10 (enhance repeat sales) Service Charge $2 Amount Due $12 ****** 5% Off on Your Next Order Scan QR code on your phone to complete a short ques onnaire Or visit h p://CloudCherry.NET/RK-61952 At Home/Office or On Mobile Survey Comple on
Survey Pattern #3 Online Website/Purchase Experience Survey ( MicroCherry ) Œ Engaged Customer One question for you ... How likely would you recommend us to your friends and family ? 0 1 2 3 4 5 6 7 8 9 10 Post ac vity trigger : Not at all Maybe Yes,Sure! Customer - Page Visit - Page Scroll - On Checkout - About to leave - Delayed - Sampled Traffic Unobtrusive Disappears in few seconds on no-interaction One question for you ... Find out how you can convert How likely would you recommend us to your detractors your friends and family ? 0 1 2 3 4 5 6 7 8 9 10 Not at all Maybe Yes,Sure! Query Only Detractors (
You can also read