diff --git a/src/digital-components/salesforce-webchat/salesforce-helper-dev.js b/src/digital-components/salesforce-webchat/salesforce-helper-dev.js index d11ccf0d4..bc1b75dd3 100644 --- a/src/digital-components/salesforce-webchat/salesforce-helper-dev.js +++ b/src/digital-components/salesforce-webchat/salesforce-helper-dev.js @@ -7,9 +7,9 @@ function setupCustomSettings( onWebchatCloseCallback ) { modifyEmbeddedSvcCallback(); - embedded_svc.addEventHandler("onSettingsCallCompleted", finishedLoadingCallback); - embedded_svc.addEventHandler("afterMaximize", onWebchatOpenCallback); - embedded_svc.addEventHandler("afterDestroy", onWebchatCloseCallback); + window.addEventListener("onEmbeddedMessagingButtonCreated", finishedLoadingCallback); + window.addEventListener("onEmbeddedMessagingWindowMaximized", onWebchatOpenCallback); + window.addEventListener("onEmbeddedMessagingWindowClosed", onWebchatCloseCallback); } /* @@ -35,62 +35,25 @@ export function initializeSalesforceWebchatForDev( onWebchatOpenCallback, onWebchatCloseCallback ) { - var initESW = function (gslbBaseURL) { - embedded_svc.settings.displayHelpButton = true; //Or false - embedded_svc.settings.language = ""; //For example, enter 'en' or 'en-US' - //embedded_svc.settings.defaultMinimizedText = '...'; //(Defaults to Chat with an Expert) - //embedded_svc.settings.disabledMinimizedText = '...'; //(Defaults to Agent Offline) - //embedded_svc.settings.loadingText = ''; //(Defaults to Loading) - //embedded_svc.settings.storageDomain = 'yourdomain.com'; //(Sets the domain for your deployment so that visitors can navigate subdomains during a chat session) - // Settings for Chat - //embedded_svc.settings.directToButtonRouting = function(prechatFormData) { - // Dynamically changes the button ID based on what the visitor enters in the pre-chat form. - // Returns a valid button ID. - //}; - //embedded_svc.settings.prepopulatedPrechatFields = {}; //Sets the auto-population of pre-chat form fields - //embedded_svc.settings.fallbackRouting = []; //An array of button IDs, user IDs, or userId_buttonId - //embedded_svc.settings.offlineSupportMinimizedText = '...'; //(Defaults to Contact Us) + setupCustomSettings( + modifyEmbeddedSvcCallback, + finishedLoadingCallback, + onWebchatOpenCallback, + onWebchatCloseCallback + ); - embedded_svc.settings.enabledFeatures = ["LiveAgent"]; - embedded_svc.settings.entryFeature = "LiveAgent"; + try { + embeddedservice_bootstrap.settings.language = "en_US"; // For example, enter 'en' or 'en-US' - setupCustomSettings( - modifyEmbeddedSvcCallback, - finishedLoadingCallback, - onWebchatOpenCallback, - onWebchatCloseCallback - ); - - embedded_svc.init( - "https://safelite2--dev.sandbox.my.salesforce.com", - "https://safelite2--dev.sandbox.my.salesforce-sites.com/chat", - gslbBaseURL, + embeddedservice_bootstrap.init( "00D6s0000008r6A", - "Sales_Central_Snap_in", + "Sales_Central_TFN", + "https://safelite2--dev.sandbox.my.site.com/ESWSalesCentralTFN1755660094477", { - baseLiveAgentContentURL: - "https://c.la12s-core1.sfdc-8tgtt5.salesforceliveagent.com/content", - deploymentId: "572Wr0000017xKX", - buttonId: "573Wr000000CpgH", - baseLiveAgentURL: "https://d.la12s-core1.sfdc-8tgtt5.salesforceliveagent.com/chat", - eswLiveAgentDevName: - "EmbeddedServiceLiveAgent_Parent04IWr000003yKq9MAE_1961681659a", - isOfflineSupportEnabled: false, + scrt2URL: "https://safelite2--dev.sandbox.my.salesforce-scrt.com", } ); - }; - - if (!window.embedded_svc) { - var s = document.createElement("script"); - s.setAttribute( - "src", - "https://safelite2--dev.sandbox.my.salesforce.com/embeddedservice/5.0/esw.min.js" - ); - s.onload = function () { - initESW(null); - }; - document.body.appendChild(s); - } else { - initESW("https://service.force.com"); + } catch (err) { + console.error("Error loading Embedded Messaging: ", err); } } diff --git a/src/digital-components/salesforce-webchat/salesforce-helper-sys.js b/src/digital-components/salesforce-webchat/salesforce-helper-sys.js new file mode 100644 index 000000000..d946674d0 --- /dev/null +++ b/src/digital-components/salesforce-webchat/salesforce-helper-sys.js @@ -0,0 +1,59 @@ +/* eslint-disable */ + +function setupCustomSettings( + modifyEmbeddedSvcCallback, + finishedLoadingCallback, + onWebchatOpenCallback, + onWebchatCloseCallback +) { + modifyEmbeddedSvcCallback(); + window.addEventListener("onEmbeddedMessagingButtonCreated", finishedLoadingCallback); + window.addEventListener("onEmbeddedMessagingWindowMaximized", onWebchatOpenCallback); + window.addEventListener("onEmbeddedMessagingWindowClosed", onWebchatCloseCallback); +} + +/* +The code below is generated from salesforce but modified in the following ways: + * Only the javascript inside the second diff --git a/src/digital-components/sierra-webchat/sierra-webchat.spec.js b/src/digital-components/sierra-webchat/sierra-webchat.spec.js index e4d819ffb..964a4f52e 100644 --- a/src/digital-components/sierra-webchat/sierra-webchat.spec.js +++ b/src/digital-components/sierra-webchat/sierra-webchat.spec.js @@ -77,25 +77,4 @@ describe("sierraWebchat.vue", () => { expect.objectContaining({ type: "sierra-chat-transfer" }) ); }); - - it("handles sierra-chat-transfer event and starts Salesforce chat with prepopulated fields", () => { - const transfer = { - data: { - first_name: "A", - last_name: "B", - email: "a@b.com", - chat_summary: "summary", - }, - }; - const event = new CustomEvent("sierra-chat-transfer", { detail: transfer }); - window.dispatchEvent(event); - expect(window.sierraChat.closeChatModal).toHaveBeenCalled(); - expect(window.embedded_svc.settings.prepopulatedPrechatFields).toEqual({ - FirstName: "A", - LastName: "B", - Email: "a@b.com", - Subject: "summary", - }); - expect(window.embedded_svc.liveAgentAPI.startChat).toHaveBeenCalled(); - }); }); diff --git a/src/digital-components/sierra-webchat/sierra-webchat.vue b/src/digital-components/sierra-webchat/sierra-webchat.vue index cc88b5433..162367a62 100644 --- a/src/digital-components/sierra-webchat/sierra-webchat.vue +++ b/src/digital-components/sierra-webchat/sierra-webchat.vue @@ -139,8 +139,8 @@ export default { // Pass data to Salesforce chat if available const transfer = event.detail; if ( - window.embedded_svc && - typeof window.embedded_svc.bootstrapEmbeddedService === "function" + window.embeddedservice_bootstrap && + typeof window.embeddedservice_bootstrap.bootstrapEmbeddedService === "function" ) { if ( transfer && @@ -149,29 +149,21 @@ export default { transfer.data.last_name && transfer.data.email ) { - window.embedded_svc.settings.prepopulatedPrechatFields = { + window.embeddedservice_bootstrap.prechatAPI.setHiddenPrechatFields({ + ScarlettAISummary: transfer.data.chat_summary, FirstName: transfer.data.first_name, LastName: transfer.data.last_name, Email: transfer.data.email, - Subject: transfer.data.chat_summary, - }; - window.embedded_svc.settings.extraPrechatFormDetails = [ - { - label: "Scarlett AI Summary", - value: transfer.data.chat_summary, - transcriptFields: ["Scarlett_AI_Summary__c"], - displayToAgent: true, - }, - ]; + }); if ( - window.embedded_svc.liveAgentAPI && - typeof window.embedded_svc.liveAgentAPI.startChat === "function" + window.embeddedservice_bootstrap.utilAPI && + typeof window.embeddedservice_bootstrap.utilAPI.launchChat === "function" ) { - window.embedded_svc.liveAgentAPI.startChat(); + window.embeddedservice_bootstrap.utilAPI.launchChat(); return; } } - window.embedded_svc.bootstrapEmbeddedService(); + window.embeddedservice_bootstrap.utilAPI.launchChat(); } }; window.addEventListener("sierra-chat-transfer", this._handleSierraTransfer); diff --git a/src/fmg-components/funnel-header/funnel-header.vue b/src/fmg-components/funnel-header/funnel-header.vue index b2183fa95..e651c405a 100644 --- a/src/fmg-components/funnel-header/funnel-header.vue +++ b/src/fmg-components/funnel-header/funnel-header.vue @@ -59,7 +59,6 @@ export default { return { globalAlertMessages: [], sierraChatOpen: false, - salesforceChatOpen: false, isSalesforceTransferInProgress: false, isScrolled: false, }; @@ -84,10 +83,6 @@ export default { if (this.sierraChatOpen) { return false; } - // Hide the chat icon if Salesforce chat is open or transfer is in progress - if (this.salesforceChatOpen || this.isSalesforceTransferInProgress) { - return false; - } // Show if either Sierra is enabled or Salesforce button is available and not hidden by page return ( (this.webchatGlobalNonpersistedState.shouldLaunchSierra || @@ -173,29 +168,12 @@ export default { }; window.addEventListener("sierra-chat-visibility", this._handleSierraChatVisibility); - // Listen for Salesforce chat open/close events from salesforce-webchat - this._handleSalesforceChatVisibility = (event) => { - this.salesforceChatOpen = !!(event.detail && event.detail.open === true); - }; - window.addEventListener("salesforce-chat-visibility", this._handleSalesforceChatVisibility); - // Listen for transfer event to set transfer-in-progress flag this._handleSierraToSalesforceTransfer = () => { this.isSalesforceTransferInProgress = true; }; window.addEventListener("sierra-chat-transfer", this._handleSierraToSalesforceTransfer); - // Reset transfer flag when Salesforce chat opens - this._handleSalesforceChatOpened = (event) => { - if (event.detail && event.detail.open === true) { - this.isSalesforceTransferInProgress = false; - this.salesforceChatOpen = true; - } else { - this.salesforceChatOpen = false; - } - }; - window.addEventListener("salesforce-chat-visibility", this._handleSalesforceChatOpened); - // Add scroll listener for header shadow effect this._handleScroll = () => { this.isScrolled = window.scrollY > 0; @@ -205,12 +183,7 @@ export default { beforeUnmount() { window.removeEventListener("sierra-chat-closed", this._handleSierraChatClosed); window.removeEventListener("sierra-chat-visibility", this._handleSierraChatVisibility); - window.removeEventListener( - "salesforce-chat-visibility", - this._handleSalesforceChatVisibility - ); window.removeEventListener("sierra-chat-transfer", this._handleSierraToSalesforceTransfer); - window.removeEventListener("salesforce-chat-visibility", this._handleSalesforceChatOpened); window.removeEventListener("scroll", this._handleScroll); }, }; diff --git a/src/helpers/webchat-helper.js b/src/helpers/webchat-helper.js index 917d6de0f..e5254d08d 100644 --- a/src/helpers/webchat-helper.js +++ b/src/helpers/webchat-helper.js @@ -11,7 +11,7 @@ export const webchatHelper = () => { if (webchatGlobalNonpersistedState.shouldLaunchSierra) { window.dispatchEvent(new CustomEvent("launch-sierra-webchat")); // launches the sierra chat } else { - window.embedded_svc.bootstrapEmbeddedService(); // launches the salesForce prechat form + window.embeddedservice_bootstrap.utilAPI.launchChat(); // launches the salesForce prechat form } }