Empezar
Instalar el SDK
El widget vive en un solo archivo iterar.js (~15-20kb gzipped) sin dependencias externas. Servido desde Cloudflare con cache agresivo.
Opción A — Script tag (recomendado)
La forma más rápida: pegás un <script> antes de cerrar el </body>. Funciona en cualquier sitio (Webflow, Framer, Next.js, WordPress, Astro).
index.html
html<script
src="https://cdn.iterar.io/v1/iterar.js"
data-project-key="lpbk_pub_xxxxxxxx"
data-mode="floating"
data-position="bottom-right"
data-language="auto"
defer
></script>Project key pública
La
data-project-key empieza con lpbk_pub_ y es segura para publicar en el frontend. Validamos el dominio de origen contra la lista de allowed_origins de tu proyecto.Opción B — npm + bundler
bash
bashnpm install @loopback/sdk
# o pnpm add @loopback/sdk
# o bun add @loopback/sdkapp.tsx
tsimport { Iterar } from "@loopback/sdk";
Iterar.init({
projectKey: "lpbk_pub_xxxxxxxx",
mode: "floating", // 'floating' | 'card'
position: "bottom-right", // solo floating
target: "#feedback", // solo card
language: "auto", // 'auto' | 'es' | 'en' | 'pt'
theme: { primaryColor: "#22d3ee", background: "#0a0a0a" },
onOpen: () => console.log("widget abierto"),
onSubmit: (fb) => console.log("enviado:", fb),
});Asociar feedback a un usuario logueado
Si tu app tiene login, llamá Iterar.identify() después del login. El feedback va a aparecer en tu bandeja con el email y la metadata adjunta.
después del login
tsIterar.identify({
email: "user@example.com",
metadata: { plan: "pro", userId: "u_123" },
});API completa
Iterar.init(opts)— monta el widget. Si ya está montado, hace merge de opciones.Iterar.open()— abre el widget de forma programática (útil para un botón en tu UI).Iterar.close()— colapsa el widget.Iterar.identify(payload)— asocia al usuario actual.Iterar.reset()— limpia la identificación (útil en logout).Iterar.destroy()— desmonta y libera memoria.
Local dev
En
localhost el SDK no exige Cloudflare Turnstile para facilitar desarrollo. En producción es obligatorio.