What is Webflow

Webflow is a visual web development platform that enables users to design, build, and launch websites without the need for coding.

Get an API key

  1. Go to the Inkeep Dashboard
  2. Select your project under Projects
  3. Go to the Integrations tab
  4. Click on Create integration
  5. Select Web
  6. Provide a Name and URL (optional) for the integration
  7. Click on Create
  8. Click the Example < /> button to get your API key and view suggested settings

Connect the script

  1. Navigate to Site settings (not the designer)
  2. Open the Custom code tab
  3. Add the below to the Head code section
<script id="inkeep-script" src="https://unpkg.com/@inkeep/uikit-js@0.3.18/dist/embed.js" type="module" defer></script>

Create a trigger

You need to create a trigger in your application with ID - inkeepButton. This can be done using Webflow’s built-in designer.

Example:

Initialize the widget

Click on the Footer code section and add the below script.

<script type="text/javascript" defer>
  const inkeepButton = document.getElementById("inkeepButton");
  const inkeepDiv = document.createElement("div");
  
  inkeepDiv.id = "inkeepModal";
  inkeepDiv.style.position = "absolute";
  document.body.appendChild(inkeepDiv);

  const handleClose = () => {
    inkeepWidget.render({
      ...config,
      isOpen: false,
    });
  };

  const handleOpen = () => {
    inkeepWidget.render({
      ...config,
      isOpen: true,
    });
  }

  // configure and initialize the widget
  const config = {
    componentType: "CustomTrigger", // required
    targetElement: inkeepDiv, // required
    properties: {
      isOpen: false, // required
      onClose: handleClose, // required
      onOpen: undefined,
      baseSettings: {
        apiKey: "INKEEP_API_KEY", // required
        integrationId: "INKEEP_INTEGRATION_ID", // required
        organizationId: "INKEEP_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: "/img/inkeep-logo.svg",
        quickQuestions: [
          "Example question 1?",
          "Example question 2?",
          "Example question 3?",
        ],
      },
    },
  };

  // Embed the widget using the `Inkeep.embed()` function.
  const inkeepWidget = Inkeep().embed(config);

  inkeepButton.addEventListener("click", handleOpen);
</script>

For a full list of customizations, check out the Custom Trigger documentation.