React
Instala y pon en marcha el widget de soporte de Fluxo en React.
Inicio rápido con el registro de shadcn
bunx --bun shadcn@latest add fluxolat/fluxo/support-reactEl registro instala un punto de partida de <Support /> listo para React, el FluxoProvider, las dependencias necesarias, la importación del CSS del widget y un marcador VITE_FLUXO_API_KEY.
1. Añade tu clave de API pública
Crea o copia una clave pública segura para el navegador en Ajustes → Desarrolladores. Consulta Claves de API para ver los dominios permitidos y cómo se comportan las claves de prueba y de producción.
VITE_FLUXO_API_KEY=pk_test_xxxx2. Monta FluxoProvider
import React from "react";
import ReactDOM from "react-dom/client";
import { FluxoProvider } from "@/components/fluxo/provider";
import App from "./App";
import "./index.css";
ReactDOM.createRoot(document.getElementById("root")!).render(
<React.StrictMode>
<FluxoProvider>
<App />
</FluxoProvider>
</React.StrictMode>,
);3. Renderiza <Support />
import { Support } from "@/components/fluxo/support";
export default function App() {
return (
<main>
<h1>You are ready to chat</h1>
<Support />
</main>
);
}Inicio rápido con un prompt de IA
Pega tu clave pública para rellenar el prompt, cópialo y ejecútalo en ChatGPT, Claude o Cursor.
Instalación manual del paquete
1. Instala el paquete
pnpm add @fluxolat/react
2. Añade tu clave de API pública
VITE_FLUXO_API_KEY=pk_test_xxxxEl SDK solo puede leer VITE_FLUXO_API_KEY, NEXT_PUBLIC_FLUXO_API_KEY o
FLUXO_API_KEY cuando tu empaquetador expone ese valor al código del
navegador. Vite y Next.js exponen las dos primeras por convención. Con
cualquier otro empaquetador, es mejor pasar publicKey explícitamente. Las
claves públicas están pensadas para el navegador; no expongas nunca una
clave privada.
3. Añade SupportProvider
import React from "react";
import ReactDOM from "react-dom/client";
import { SupportProvider } from "@fluxolat/react";
import App from "./App";
import "./index.css";
ReactDOM.createRoot(document.getElementById("root")!).render(
<React.StrictMode>
<SupportProvider>
<App />
</SupportProvider>
</React.StrictMode>,
);Si tu framework no detecta las variables de entorno automáticamente, pasa
publicKey directamente:
<SupportProvider publicKey={import.meta.env.VITE_FLUXO_API_KEY}>.
4. Importa los estilos
El widget no inyecta estilos por su cuenta. Importa un único punto de entrada de CSS en la raíz de la aplicación.
Usa support.css si tu aplicación ya usa Tailwind CSS v4; usa styles.css en cualquier otro caso.
Ambos puntos de entrada se comportan igual respecto al tema. Si tu aplicación ya expone tokens al estilo de shadcn, el widget suele tomar automáticamente los colores, el radio, las fuentes y el modo oscuro. No hace falta ninguna correspondencia de tema adicional para empezar.
import React from "react";
import ReactDOM from "react-dom/client";
import { SupportProvider } from "@fluxolat/react";
import "@fluxolat/react/styles.css";
import App from "./App";
import "./index.css";
ReactDOM.createRoot(document.getElementById("root")!).render(
<React.StrictMode>
<SupportProvider>
<App />
</SupportProvider>
</React.StrictMode>,
);5. Renderiza el widget
import { LazySupport } from "@fluxolat/react/lazy-support";
import { Suspense } from "react";
export default function App() {
return (
<main>
<h1>You are ready to chat</h1>
<Suspense fallback={null}>
<LazySupport />
</Suspense>
</main>
);
}LazySupport deja toda la interfaz del widget fuera del fragmento inicial de la
aplicación. Si controlas cuándo aparece el soporte, llama a preloadSupport
desde el mismo punto de entrada al pasar el ratón o al enfocar, antes de
renderizarlo.
6. Identifica a los visitantes con sesión (opcional)
import { IdentifySupportVisitor } from "@fluxolat/react/identify-visitor";
import { LazySupport } from "@fluxolat/react/lazy-support";
import { Suspense } from "react";
export default function App() {
const user = {
id: "user_123",
email: "jane@acme.com",
name: "Jane Doe",
};
return (
<>
<IdentifySupportVisitor
externalId={user.id}
email={user.email}
name={user.name}
/>
<Suspense fallback={null}>
<LazySupport />
</Suspense>
</>
);
}Comprueba la instalación
Recarga la aplicación y comprueba que:
- el disparador de soporte aparece sin un destello sin estilos
- al abrirlo se ve la pantalla de inicio o una conversación nueva
- el panel de red del navegador no muestra respuestas
401ni403de la API de Fluxo
Si no aparece el disparador, comprueba que has importado exactamente un punto de
entrada de CSS. Si las peticiones devuelven 401, revisa la clave pública. Si
devuelven 403, añade el dominio actual —incluido localhost en desarrollo— a
los dominios permitidos de la clave. Consulta
Claves de API para la lista completa.
7. Muestra mensajes propios con SupportConfig defaultMessages
import { Support, SupportConfig } from "@fluxolat/react";
import { type DefaultMessage, SenderType } from "@fluxolat/types";
const user: { name: string | null } = {
name: "Jane Doe",
};
const defaultMessages: DefaultMessage[] = [
{
content: `Hi ${user.name ?? "there"}, anything I can help with?`,
senderType: SenderType.TEAM_MEMBER,
},
];
const quickOptions: string[] = ["How to identify a visitor?"];
export default function App() {
return (
<>
<SupportConfig
defaultMessages={defaultMessages}
quickOptions={quickOptions}
/>
<Support />
</>
);
}Lo siguiente en la documentación de Support
- Visión general: el camino más corto desde el primer renderizado hasta un widget listo para producción.
- Cambia una sola cosa: sustituye la burbuja o la primera pantalla sin rehacer el widget.
- Ajústalo a tu marca: define colores, radio y modo oscuro.
¿Te resultó útil esta página?
Abre una incidencia de documentación ya rellenada para que el equipo pueda actuar.
En esta página
Inicio rápido con el registro de shadcn1. Añade tu clave de API pública2. MontaFluxoProvider3. Renderiza <Support />Inicio rápido con un prompt de IAInstalación manual del paquete1. Instala el paquete2. Añade tu clave de API pública3. Añade SupportProvider4. Importa los estilos5. Renderiza el widget6. Identifica a los visitantes con sesión (opcional)Comprueba la instalación7. Muestra mensajes propios con SupportConfig defaultMessagesLo siguiente en la documentación de Support
