Commit Graph

257 Commits

Author SHA1 Message Date
Abhinav Raut 88a58c0f3b Custom static directory support, self hosted installations can pass static dir path to override csat and other web-templates, js and css files. Allowing instances to be fully customizable.
- New meta JSONB field in CSAT responses to capture random adhoc data as that might be needed for custom CSAT pages.
- Add support prefilled rating for csat pages picked from query param
2026-04-09 00:04:00 +05:30
Abhinav Raut e7eac6eb94 Strip csat uui for agents (session) but keep for api consumers 2026-04-08 12:57:05 +05:30
Abhinav Raut aaff1b1427 assign oldest convos first in auto assigner 2026-04-07 16:32:03 +05:30
Abhinav Raut 6abb6ad017 Move continuity config and intervals to live chat inbox form from toml.
- Refactor widget.js.
- Fix possible race conditions in inbox reload logic.
- Reload only the updated inbox when an inbox is updated / created not all.
- Retain last inbox while navigatin back from admin -> inbox
2026-04-04 21:35:04 +05:30
Abhinav Raut 000fd83b30 Add uuid column to inboxes table to use as widget public identifiers
Auto focus on form inputs in widget
Use defer widget in widget installation script
2026-04-03 02:34:07 +05:30
Abhinav Raut b739783eec Render reply and private not template variables before saving them in DB. 2026-04-02 14:31:53 +05:30
Abhinav Raut 9ce5f60023 Fix widget business hours showing wrong time due to missing UTC offset 2026-04-02 01:45:47 +05:30
Abhinav Raut 9c43654021 Add conversation ref number to list conversations api response 2026-04-01 16:16:26 +05:30
Abhinav Raut 13db8d2843 Fix command palette macros not working due to previous variable rename causing issues.
Improve sidebar navigation to retain open conversation

Fix notification when disabled app still tries sending emails.
2026-03-30 18:51:23 +05:30
Abhinav Raut d02e0418e1 Expose IsContinuityEmail flag to email templates for conditional rendering 2026-03-30 01:03:17 +05:30
Abhinav Raut 5590ae6ae3 Create contact from JWT in widget middleware for visitor merge, fix message input focus and pending cleanup 2026-03-30 00:28:33 +05:30
Abhinav Raut faa23967bf Focus back on text area once widget message is sent
Sign pending avatar urls
2026-03-29 23:35:26 +05:30
Abhinav Raut fb3ab68ef6 Sign avatar URLs in widget WS broadcasts, add CORS for launcher settings 2026-03-29 19:08:09 +05:30
Abhinav Raut 789a58ed0c Add echo_id for pending message matching, show ext_id in contact search, minor UI polish 2026-03-29 13:32:38 +05:30
Abhinav Raut a84d6aa001 Update continuity config defaults 2026-03-29 00:08:12 +05:30
Abhinav Raut 653266c6bc Remove unused readme file
Remove participant tooltip for message bubbler as activity log takes care of it
Fix create sender before creating conversation
2026-03-28 22:51:35 +05:30
Abhinav Raut eb94f2b06b Refactor widget WS: fix concurrent writes
Update merge visitor to contact query to include other tables
Update default for continuity email config
2026-03-28 21:19:11 +05:30
Abhinav Raut c8b717739c Add isNewConversation param to CreateContactMessage, cap page size to 500 2026-03-28 19:36:26 +05:30
Abhinav Raut 2b645fa4e8 Security fixes: rate-limit widget endpoints, remove JWT from logs, harden middleware checks
Increase max page size to 500
Allow large out of bound page sizes by overriding to maximum set.
Reset websocket reconnect attempts when widget is back online
2026-03-28 19:27:41 +05:30
Abhinav Raut 6a7ecf6b8a Resolve sender using conversation context, show ext_id on contact detail 2026-03-28 18:44:57 +05:30
Abhinav Raut 2f81d60a6f Widget: larger prechat textarea, check email for participant activity, fix notification sound 2026-03-28 18:32:08 +05:30
Abhinav Raut b04d9d6f8d Sign all avatar URLs in widget endpoints and WS broadcasts 2026-03-28 18:03:33 +05:30
Abhinav Raut c3f0b18392 Add participant activity note and visual indicator for non-contact senders 2026-03-28 14:50:58 +05:30
Abhinav Raut 1344700973 Remove insecure ref number matching, relax email constraint for ext_id contacts 2026-03-28 13:07:21 +05:30
Abhinav Raut 23e6a70844 Allow contacts with different external_user_ids to share email, add enrichment and remove email check from conversation matching 2026-03-28 12:29:44 +05:30
Abhinav Raut 8fd05667ac Improve sidebar semantics, form label hierarchy, and translate remaining hardcoded strings 2026-03-25 00:47:18 +05:30
Abhinav Raut 9652c6d4bc Clean up i18n keys, sort language files, and refactor admin UI components. 2026-03-24 01:42:35 +05:30
Abhinav Raut 395a4e80df Refactor ws updates to use direct json payloads instead of prop value pattern.
Add real-time agent availability status updates to widget.

Consolidate multiple WS broadcasts into single calls
2026-03-22 19:34:21 +05:30
Abhinav Raut 48175300ab Add rate limiting to public endpoints (auth, CSAT), fix rate limiter race condition and missing Content-Type header. Refactor rateLimitWidget into generic rateLimit middleware with config defaults. 2026-03-22 16:59:55 +05:30
Abhinav Raut 34aecd268f Fix widget business hours: use assigned team hours instead of always defaulting, fix timezone offset calculation. Show continuity email indicator in agent UI, broadcast email replies to widget as a user could have widget open and reply from email at the same time. 2026-03-18 10:50:55 +05:30
Abhinav Raut a788553137 Use first unread message as subject for continuity emails, add ref number to continuity email subject.
- Continuity email layout fixes and improvments.
- Replace haikunator with email local part for visitor names, fallback to "Visitor"
- Add optional website_url config field for "go to chat" link in continuity email footer
- Remove unused / unncessary i18n keys.
2026-03-16 00:49:20 +05:30
Abhinav Raut b0f0215952 Fix attachment previews in pending messages
- Fix ci
2026-03-15 21:36:02 +05:30
Abhinav Raut b8e236713d Merge branch 'main' into feat/live-chat-channel 2026-03-15 21:09:21 +05:30
Abhinav Raut e7ab571c48 add reply guards, gravatar fallbacks for avatars, draft preview in conversation list, clickable agent avatars. Show sent messages immediately instead of waiting for WebSocket response. 2026-03-11 14:52:21 +05:30
Abhinav Raut 678239027e Refactor incoming message flow, add visitor upgrade on email reply, rate-limit livechat conversations 2026-03-11 12:19:58 +05:30
Abhinav Raut eb0a7b437d Add page visit tracking to widget
- fix duplicate initialization guard
- notification bell for agents
- Refactor and clean up dead code
- Fixes to pre chat form
- Add new column country to users table
- Update ratelimit pkg to be generic
2026-03-11 03:52:07 +05:30
Abhinav Raut 18764cb562 Redact websocket message content and let clients fetch the full message once they receive this event, this will make sure a client actually has permission to fetch that message.
- Reduce exessive GETs on WS events, debounce such requests.
2026-02-26 16:19:09 +05:30
Abhinav Raut 45a80118cc Fix CSAT responses not visible agent message bubble
- Fix csat form submission in widget
- Update vite config to allow cross origin requests
2026-02-26 00:35:49 +05:30
Abhinav Raut aeb153b15d fix: message meta not being saved 2026-02-25 23:32:02 +05:30
Abhinav Raut 81847c7f4e i18n: fix localization issues (#231)
Not backported to main due to extensive i18n refactoring changes in this branch.
2026-02-22 15:12:00 +05:30
Abhinav Raut c155fce93b feat: show contact offline / online status on sidebar
- mark contacts offline if not active for > 5 mins.
2026-01-26 03:28:34 +05:30
Abhinav Raut a94c3846ec more fixes 2026-01-25 01:31:04 +05:30
Abhinav Raut f0e9266d28 more fixes to LC 2026-01-21 00:13:02 +05:30
Abhinav Raut 107f1adb0d fix issues with threading with widget messages
- fix: live chat email inbox not being initialized.
- make launcher logo take entire launcher space.
- New columns last_interaction_sender_id and last_message_sender_id to track who sent last message in conversation
2026-01-18 13:47:07 +05:30
Abhinav Raut 511f46440a fix merge conflict issues 2026-01-15 18:31:00 +05:30
Abhinav Raut 4d25ae737a reduce the number of fetched conversation messages from 1000 to 400 for livechat 2026-01-14 17:41:49 +05:30
Abhinav Raut 2421b964b7 fix merge conflcits 2026-01-14 15:53:15 +05:30
Abhinav Raut 7958d7e212 Merge branch 'main' into feat/live-chat-channel 2026-01-14 00:33:51 +05:30
Abhinav Raut 718a9e6b2e feat: Add entire conversation on webhook events, so clients don't have to fetch conversation again.
Closes #208
2026-01-11 20:33:36 +05:30
Abhinav Raut 5b393c2f19 add mention message content to mentioned msg notification 2026-01-11 18:27:55 +05:30