Skip to main content

Practical Examples

1) Auto-open after 10 seconds

setTimeout(() => window.homieBot.open(), 10_000);

2) Trigger an intent on a PDP

window.homieBot.sendMessage({
  text: "Show me similar drills.",
  setId: "pdp-questions-set-123",
});

3) Open after scroll depth

function openAfterScroll(px = 600) {
  const onScroll = () => {
    if (window.scrollY > px) {
      window.homieBot.open();
      window.removeEventListener("scroll", onScroll);
    }
  };
  window.addEventListener("scroll", onScroll, { passive: true });
}
openAfterScroll();

Robust loading: waitForHomie()

If your code runs before the embed has finished loading, wait until window.homieBot exists:
function waitForHomie() {
  return new Promise((resolve) => {
    if (window.homieBot) return resolve(window.homieBot);
    const iv = setInterval(() => {
      if (window.homieBot) {
        clearInterval(iv);
        resolve(window.homieBot);
      }
    }, 200);
  });
}

// Example usage
await waitForHomie();
window.homieBot.open();