Β§ 01Create your workspace.
Head to the demo dashboard at the sign-in page. Use the seeded owner account, or in production create a new workspace β pick a slug, that becomes your subdomain (acme.livechattools.com).
On first sign-in you land in the inbox. There are no real conversations yet β that is what step two fixes.
Β§ 02Embed the widget.
Paste the loader script before the closing </body> tag. That is all β no React component to mount, no Vue plugin to register.
<script>
window.LivechattoolsConfig = { tenant: 'acme' };
</script>
<script src="https://cdn.livechattools.com/widget-loader.js" async defer></script>Replace acme with your own workspace slug. The script fetches its theme live from your tenant β colours, copy, RTL flag, and avatar β so design changes never require a re-deploy of your site.
Identifying a visitor
If the visitor is logged into your product, hand the widget their identity so you can correlate EasyLiveChat conversations with your own user table:
window.LivechattoolsConfig = {
tenant: 'acme',
identify: {
id: 'usr_28x91', // your stable user id
name: 'Mariam El-Sayed',
email: 'mariam@example.com',
locale: 'ar',
attributes: {
plan: 'pro',
mrr_cents: 4900,
signed_up: '2024-11-04',
},
},
};Β§ 03Send your first reply.
Open your site in a second browser tab, click the bubble, and type "Hello world". The message arrives in the dashboard inbox in real time over a Socket.IO channel β sub-second, with no polling fallback.
Press ββ© on any agent reply to send it. The visitor sees your message appear with a soft chime and a presence dot that switches to "Typingβ¦" while you compose.
Β§ 04Invite your team.
From Settings β Agents, click Invite, and enter an email and role. EasyLiveChat emails a single-use link; clicking it sets a password and drops the new agent straight into the inbox. Roles enforce what they can see β owners administer billing, admins manage agents, agents respond.
curl -X POST https://acme.livechattools.com/api/tenant/agents \
-H "Authorization: Bearer $EASYLIVECHAT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"email": "noor@acme.test",
"name": "Noor Al-Saadi",
"role": "ADMIN"
}'Β§ 05Set working hours.
Off-hours the widget swaps the composer for an offline form. Conversations still land in your inbox β they are tagged offline for a clean follow-up the next morning. Configure weekday windows under Settings β Working hours, each in your tenant's local timezone.
{
"timezone": "Asia/Erbil",
"schedule": {
"sunday": [{ "from": "09:00", "to": "18:00" }],
"monday": [{ "from": "09:00", "to": "18:00" }],
"tuesday": [{ "from": "09:00", "to": "18:00" }],
"wednesday": [{ "from": "09:00", "to": "18:00" }],
"thursday": [{ "from": "09:00", "to": "18:00" }],
"friday": [],
"saturday": []
},
"offlineMessage": "We're back Sunday at 9. Leave a note β we will reply."
}Β§ 06Where to go next.
- Wire up WhatsApp CloudVerify your number, paste the webhook, send template messages.
- Subscribe to outbound webhooksPush every conversation event into your own data warehouse.
- Open the API referenceBuild a EasyLiveChat-driven flow into your own software.
- Translate the widget into your localeJSON dictionary, code-split per locale, RTL automatic.
Was this article useful?