LEDIAN

JS API & externe Buttons

Mit der öffentlichen Widget-API kannst du eigene Buttons auf deiner Website nutzen, um Chat oder Lead-Formular gezielt zu öffnen.

Verfügbare Methoden

  • window.LedianWidget.open() opens chat.
  • window.LedianWidget.openLeadForm(options?) opens the contact form (if lead capture is enabled).

Wichtige Hinweise

  • Der Widget-Script-Tag muss geladen sein, bevor die API verfügbar ist.
  • openLeadForm gibt false zurück, wenn Lead-Erfassung deaktiviert ist.
  • Wenn das Widget noch nicht gebootstrapped ist, wird beim Aufruf zuerst eine Session initialisiert.
  • prefill akzeptiert nur ein Objekt mit String-Werten; ungültige Werte werden verworfen.

Beispiel: Plain HTML / Vanilla JS

<script src="https://api.ledian.io/widget.js" data-wid="WID_..." data-sid="SID_..." defer></script>
<button id="open-chat">Chat öffnen</button>
<button id="open-lead">Kontaktformular öffnen</button>
<script>
  document.getElementById("open-chat")?.addEventListener("click", () => {
    window.LedianWidget?.open?.();
  });

  document.getElementById("open-lead")?.addEventListener("click", async () => {
    const opened = await window.LedianWidget?.openLeadForm?.({
      prefill: { message: "Ich hätte gerne eine Beratung." }
    });

    if (opened === false) {
      console.warn("Lead-Erfassung ist im Widget aktuell deaktiviert.");
    }
  });
</script>

Beispiel: React / Next.js

In Next.js kannst du den Helper aus frontend/lib/widgetApi.ts verwenden.

"use client";

import { openWidget, openWidgetLeadForm } from "@/lib/widgetApi";

export function HeroActions() {
  return (
    <div className="flex gap-3">
      <button type="button" onClick={() => openWidget()}>
        Chat öffnen
      </button>
      <button
        type="button"
        onClick={async () => {
          const opened = await openWidgetLeadForm({
            prefill: { message: "Bitte ruft mich zurück." },
          });
          if (opened === false) {
            // Lead-Erfassung ist deaktiviert oder API noch nicht bereit
          }
        }}
      >
        Kontaktformular öffnen
      </button>
    </div>
  );
}