What is Framer

Framer is a tool for creating interactive prototypes of user interfaces.

Connect the script

  1. Open Site Settings in the drop-down menu
  2. Click on the Open Settings tab
  3. Go to the General section
  4. Add the below to the Start of <head> tag section
<script id="inkeep-script" src="https://unpkg.com/@inkeep/widgets-embed@0.2.278/dist/embed.js" type="module" defer></script>

Creating the container

Add a widget container to the page using the built-in Framer functionality.

  1. Select an area to add a container
  2. Select the Embed item in the Utility section
  1. Add an html element to the page
  1. Specify the ID of the container to be inkeepSearchBar

Initialize the widget

Next, paste the script below into the End of <head> tag section:

<script defer>
  const inkeepScript = document.getElementById("inkeep-script");

  // configure and initialize the widget
  const addInkeepWidget = () => {
    const inkeepWidget = Inkeep().embed({
      componentType: "SearchBar",
      targetElement: document.getElementById("inkeepSearchBar"),
      properties: {
        stylesheetUrls: ["/path/to/stylesheets"], // optional
        baseSettings: {
          apiKey: "YOUR_API_KEY", // required
          integrationId: "YOUR_INTEGRATION_ID", // required
          organizationId: "YOUR_ORGANIZATION_ID", // required
          primaryBrandColor: "#26D6FF", // your brand color, widget color scheme is derived from this
          organizationDisplayName: "Inkeep",
          // ...optional settings,
        },
        modalSettings: {
          // optional settings
        },
        searchSettings: {
          // optional settings
        },
        aiChatSettings: {
          // optional settings
          botAvatarSrcUrl: "https://mydomain.com/mylogo", // use your own bot avatar
          quickQuestions: [
            "Example question 1?",
            "Example question 2?",
            "Example question 3?",
          ],
        },
      },
    });
  };

  const observer = new MutationObserver((mutationsList, observer) => {
    const inkeepPortals = document.getElementsByTagName("inkeep-portal");

    Array.from(inkeepPortals)?.forEach((inkeepPortal) => {
      inkeepPortal.remove();
    });

    addInkeepWidget(); // initialize the widget
  });

  observer.observe(document.head, { attributes: true, subtree: true });
</script>

Save custom code

Click on the Save button. Navigate to your web application and reload the page, to make sure the widget is installed correctly.

For a full list of customizations, check out the Search Bar documentation.

FAQ