<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Chat integration in Next.js 13 in CMS Development</title>
    <link>https://community.hubspot.com/t5/CMS-Development/Chat-integration-in-Next-js-13/m-p/857584#M36094</link>
    <description>&lt;P&gt;&lt;SPAN&gt;Check out the&amp;nbsp;Next.js documentation for project with:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1. app router:&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://nextjs.org/docs/app/building-your-application/optimizing/scripts" target="_blank" rel="nofollow noopener noreferrer"&gt;https://nextjs.org/docs/app/building-your-application/optimizing/scripts&lt;/A&gt;&lt;BR /&gt;&lt;SPAN&gt;2. page router:&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://nextjs.org/docs/pages/building-your-application/optimizing/scripts" target="_blank" rel="noopener nofollow noreferrer"&gt;https://nextjs.org/docs/pages/building-your-application/optimizing/scripts&lt;/A&gt;&lt;/P&gt;</description>
    <pubDate>Sat, 30 Sep 2023 12:08:07 GMT</pubDate>
    <dc:creator>MMalaya</dc:creator>
    <dc:date>2023-09-30T12:08:07Z</dc:date>
    <item>
      <title>Chat integration in Next.js 13</title>
      <link>https://community.hubspot.com/t5/CMS-Development/Chat-integration-in-Next-js-13/m-p/815618#M34892</link>
      <description>&lt;P&gt;I'm using this code to add a chat box in my next.js app page. When I navigate through my app and come back to the chat page the chat box dosn't appear until I refresh.&lt;BR /&gt;I doest appear the first time after that it requirs refresh to appear.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;const&lt;/SPAN&gt; &lt;SPAN&gt;HubSpotChat&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;React&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;FC&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; () &lt;/SPAN&gt;&lt;SPAN&gt;=&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;useEffect&lt;/SPAN&gt;&lt;SPAN&gt;(() &lt;/SPAN&gt;&lt;SPAN&gt;=&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;// HubSpot configuration object&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;window&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;hsConversationsSettings&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;loadImmediately&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;true&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;inlineEmbedSelector&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;"#my-chat-container"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;enableWidgetCookieBanner&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;true&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;disableAttachment&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt; &lt;SPAN&gt;true&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; };&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;// Load the HubSpot script on the client-side&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;const&lt;/SPAN&gt; &lt;SPAN&gt;script&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;document&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;createElement&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"script"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;script&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;src&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;"//js-na1.hs-scripts.com/xxxxxx.js"&lt;/SPAN&gt;&lt;SPAN&gt;; &lt;/SPAN&gt;&lt;SPAN&gt;// Replace XXXXXX with your HubSpot script ID&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;script&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;"hs-script-loader"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;script&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;async&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;true&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;// Check if the HubSpot script is already loaded&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;const&lt;/SPAN&gt; &lt;SPAN&gt;existingScript&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;document&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;getElementById&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"hs-script-loader"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (&lt;/SPAN&gt;&lt;SPAN&gt;!&lt;/SPAN&gt;&lt;SPAN&gt;existingScript&lt;/SPAN&gt;&lt;SPAN&gt;) {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;// Append the script to the body if it's not already there&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;document&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;body&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;appendChild&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;script&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; }&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;// Clean up the script when the component unmounts&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;return&lt;/SPAN&gt;&lt;SPAN&gt; () &lt;/SPAN&gt;&lt;SPAN&gt;=&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;const&lt;/SPAN&gt; &lt;SPAN&gt;scriptElement&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;document&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;getElementById&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"hs-script-loader"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (&lt;/SPAN&gt;&lt;SPAN&gt;scriptElement&lt;/SPAN&gt;&lt;SPAN&gt;) {&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;scriptElement&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;remove&lt;/SPAN&gt;&lt;SPAN&gt;();&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; };&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; }, []);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;return&lt;/SPAN&gt;&lt;SPAN&gt; (&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;div&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;div&lt;/SPAN&gt; &lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"my-chat-container"&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;div&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN&gt;div&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; );&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;};&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 05 Jul 2023 06:51:56 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/CMS-Development/Chat-integration-in-Next-js-13/m-p/815618#M34892</guid>
      <dc:creator>MQasim2</dc:creator>
      <dc:date>2023-07-05T06:51:56Z</dc:date>
    </item>
    <item>
      <title>Re: Chat integration in Next.js 13</title>
      <link>https://community.hubspot.com/t5/CMS-Development/Chat-integration-in-Next-js-13/m-p/815756#M34901</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.hubspot.com/t5/user/viewprofilepage/user-id/594058"&gt;@MQasim2&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;The reason why the chat box doesn't appear until you refresh the page is because the HubSpot script is not being loaded on the initial page load. This is because the useEffect hook is only triggered when the component mounts, and not when the page is loaded.&lt;BR /&gt;&lt;BR /&gt;you need to move the code that loads the HubSpot script outside of the useEffect hook. You can do this by adding the following code to the top of the component.&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;const script = document.createElement("script");
script.src="//js-na1.hs-scripts.com/xxxxxx.js"; // Replace XXXXXX with your HubSpot script ID
script.id = "hs-script-loader";
script.async = true;

document.body.appendChild(script);&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This will load the HubSpot script on the initial page load, and the chat box should appear without having to refresh the page.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;Here is the updated code for the HubSpotChat component:&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;const HubSpotChat: React.FC = () =&amp;gt; {
  const script = document.createElement("script");
  script.src="//js-na1.hs-scripts.com/xxxxxx.js"; // Replace XXXXXX with your HubSpot script ID
  script.id = "hs-script-loader";
  script.async = true;

  document.body.appendChild(script);

  return (
    &amp;lt;div&amp;gt;
      &amp;lt;div id="my-chat-container"&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  );
};&lt;/LI-CODE&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 05 Jul 2023 10:53:54 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/CMS-Development/Chat-integration-in-Next-js-13/m-p/815756#M34901</guid>
      <dc:creator>himanshurauthan</dc:creator>
      <dc:date>2023-07-05T10:53:54Z</dc:date>
    </item>
    <item>
      <title>Re: Chat integration in Next.js 13</title>
      <link>https://community.hubspot.com/t5/CMS-Development/Chat-integration-in-Next-js-13/m-p/828471#M35243</link>
      <description>&lt;P&gt;Hi, I used the method shared by&amp;nbsp;&lt;a href="https://community.hubspot.com/t5/user/viewprofilepage/user-id/20405"&gt;@himanshurauthan&lt;/a&gt;. My concern is that I want to load different chatbots on route change with Next 13. I have tried every possible means to no avail. Below is a sample script:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;import { usePathname } from "next/navigation";&lt;BR /&gt;&lt;BR /&gt;const pathname = usePathname();&lt;BR /&gt;&lt;BR /&gt;useEffect(() =&amp;gt; {&lt;BR /&gt;   const scriptUrl = "&lt;A href="http://js-eu1.hs-scripts.com/xxx.js" target="_blank" rel="noopener"&gt;http://js-eu1.hs-scripts.com/xxx.js&lt;/A&gt;";&lt;BR /&gt;   const existingScript = document.querySelector(`script[src="${scriptUrl}"]`);&lt;BR /&gt;   &lt;BR /&gt;   if (existingScript) {&lt;BR /&gt;      existingScript.remove();&lt;BR /&gt;   }&lt;BR /&gt;&lt;BR /&gt;   const script = document.createElement("script");&lt;BR /&gt;   script.src=scriptUrl;&lt;BR /&gt;   script.id = "hs-script-loader";&lt;BR /&gt;   document.body.appendChild(script);&lt;BR /&gt;}, [pathname]);&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 02 Aug 2023 04:27:25 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/CMS-Development/Chat-integration-in-Next-js-13/m-p/828471#M35243</guid>
      <dc:creator>JMaestro</dc:creator>
      <dc:date>2023-08-02T04:27:25Z</dc:date>
    </item>
    <item>
      <title>Re: Chat integration in Next.js 13</title>
      <link>https://community.hubspot.com/t5/CMS-Development/Chat-integration-in-Next-js-13/m-p/857584#M36094</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Check out the&amp;nbsp;Next.js documentation for project with:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1. app router:&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://nextjs.org/docs/app/building-your-application/optimizing/scripts" target="_blank" rel="nofollow noopener noreferrer"&gt;https://nextjs.org/docs/app/building-your-application/optimizing/scripts&lt;/A&gt;&lt;BR /&gt;&lt;SPAN&gt;2. page router:&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://nextjs.org/docs/pages/building-your-application/optimizing/scripts" target="_blank" rel="noopener nofollow noreferrer"&gt;https://nextjs.org/docs/pages/building-your-application/optimizing/scripts&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 30 Sep 2023 12:08:07 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/CMS-Development/Chat-integration-in-Next-js-13/m-p/857584#M36094</guid>
      <dc:creator>MMalaya</dc:creator>
      <dc:date>2023-09-30T12:08:07Z</dc:date>
    </item>
  </channel>
</rss>

