Recipe
React and Next.js integration
For AI-generated React sites, inject the standalone scripts from a component or layout.
React component
import { useEffect } from 'react';
export function VolaChatWidget({ tenantId }) {
useEffect(() => {
const script = document.createElement('script');
script.src = 'https://volacrm-prod-chatbot-widget-602578934747-eu-west-1.s3.eu-west-1.amazonaws.com/ai-crm-chatbot.js';
script.dataset.tenantId = tenantId;
script.dataset.channelId = 'CHATBOT';
script.dataset.apiUrl = 'https://api.volacrm.com';
script.dataset.primaryColor = '#6D5DFB';
script.dataset.secondaryColor = '#11172A';
script.dataset.controlSize = 'medium';
script.dataset.brandName = 'Vola CRM';
document.body.appendChild(script);
return () => script.remove();
}, [tenantId]);
return null;
}
Next.js app router
import Script from 'next/script';
export default function RootLayout({ children }) {
return (
<html lang="en">
<body>
{children}
<Script
src="https://volacrm-prod-chatbot-widget-602578934747-eu-west-1.s3.eu-west-1.amazonaws.com/ai-crm-chatbot.js"
data-tenant-id="{tenant-id}"
data-channel-id="CHATBOT"
data-api-url="https://api.volacrm.com"
data-primary-color="#6D5DFB"
data-secondary-color="#11172A"
data-control-size="medium"
strategy="afterInteractive"
/>
</body>
</html>
);
}