Commit Graph

30 Commits

Author SHA1 Message Date
Abhinav Raut a9fd8616a8 put the alias reply tag on the main address and keep the alias as sender
Alias replies now put the +conv tag on the main address, because many alias forwarders bounce + addresses. From now follows the last address we sent from, and a failed re-verify no longer blocks an alias that was verified before.
2026-10-08 00:37:33 +05:30
Abhinav Raut e6791bebf6 fix lost and stuck alias verifications and keep alias replies in the conversation
A verification that finished while an inbox was being saved could get lost. One stuck pending for 10 minutes is now marked failed. Replies to alias emails now come back into the same conversation.
2026-10-07 22:43:49 +05:30
Abhinav Raut f6a0a1e5c7 Merge remote-tracking branch 'origin/main' into feat/inbox-aliases
# Conflicts:
#	cmd/conversation.go
#	cmd/inboxes.go
#	cmd/init.go
#	cmd/messages.go
#	cmd/upgrade.go
#	frontend/apps/main/src/api/index.js
#	frontend/apps/main/src/features/admin/inbox/EmailInboxForm.vue
#	frontend/apps/main/src/features/conversation/CreateConversation.vue
#	frontend/apps/main/src/features/conversation/ReplyBox.vue
#	frontend/apps/main/src/views/admin/inbox/EditInbox.vue
#	i18n/en-US.json
#	internal/conversation/message.go
#	internal/inbox/channel/email/email.go
#	internal/inbox/inbox.go
#	internal/inbox/queries.sql
2026-09-29 01:47:13 +05:30
Abhinav Raut 0c1dec7456 simplify inbox aliases and tidy the email inbox form
Drop the check that blocked one address on two inboxes and simplify sender
lookup, alias verification and IMAP handling. The inbox form now shows the
connected account first, lines up its fields and shows one hint for unsaved aliases.
2026-09-27 22:54:40 +05:30
Sanielia c60ddbe04d feat(inbox): Implement inbox aliases for sending and receiving 2026-09-03 21:26:56 +02:00
Abhinav Raut 7fadf9ed85 makes the WhatsApp CSAT template editable and moves the reopen window to an inbox column
- CSAT message, button and language are set on the inbox and reconciled to Meta: edits in place, makes a new version on language change.
- fixes CSAT template submission that failed without the button URL example.
- moves reopen_window_hours from the WhatsApp config JSON to an inboxes column.
- WhatsApp template UI fixes: button-type selector width, reserved-template info tooltip, field reorder, and keeping CSAT fields when toggling.
2026-06-21 06:06:35 +05:30
Abhinav Raut 1fccfceb4c feat: add customisable From display name template for outgoing emails
Adds a from_name_template field to email inboxes. When set and the sender is an agent, the template renders with agent and inbox variables and becomes the From display name; the inbox email address is unchanged. Any render failure, or a system-user sender, falls back to the plain inbox From so a misconfigured template never blocks delivery.

Variables: .Agent.FirstName, .Agent.LastName, .Agent.FullName, .Inbox.Name (the inbox name). Based on #249.

Co-authored-by: josephsellers <6892567+josephsellers@users.noreply.github.com>
2026-06-07 14:20:56 +05:30
Abhinav Raut feb23fae8a fix new inbox create dropping enabled/csat_enabled/secret/linked_email_inbox_id 2026-04-25 13:24:43 +05:30
Abhinav Raut 06b36b74fd Add prompt-to-tag-on-reply inbox setting 2026-04-21 20:24:19 +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 f0e9266d28 more fixes to LC 2026-01-21 00:13:02 +05:30
Abhinav Raut 7958d7e212 Merge branch 'main' into feat/live-chat-channel 2026-01-14 00:33:51 +05:30
Abhinav Raut f3ddc26512 wip inbox oauth and encryption 2025-12-24 16:08:25 +05:30
Abhinav Raut aae8d1f793 Consider visitors and contacts same, as the only difference is that visitors are not authenticated.
Show a warning in sidebar when a conversation with a visitor is opened.

Move string.js utils to shared-ui utils

Modify user fetch queries to allow optional filter by multiple user types not just one.

Fix capitalizaiton for live chat en translations
2025-10-05 12:28:47 +05:30
Abhinav Raut bf1cf025e0 Merge branch 'main' into feat/live-chat-channel 2025-10-04 13:38:42 +05:30
Abhinav Raut 16ca6b6df7 Send batched unread messages in conversation continuity email after contact has not seen a conversation for configured amount of time, instead of sending a single message immediately when contact is disconnected on websocket.
Make the batching interval and time threshold for unread messages configurable
2025-10-03 01:54:17 +05:30
Abhinav Raut d7067bce7d feat: add email fallback / continutiy inbox feature for live chat inbox 2025-09-21 00:51:19 +05:30
Abhinav Raut 634fc66e9f Translate welcome to libredesk email subject
- Update all SQL queries to add missing columns

- Update the create conversation API to allow setting the initiator of a conversation. For example, we might want to use this API to create a conversation on behalf of a customer, with the first message coming from the customer instead of the agent. This param allows this.

- Minor refactors and clean up

- Tidy go.mod

- Rename structs to reflect purpose

- Create focus structs for scanning JSON payloads for clarity.
2025-08-28 00:34:56 +05:30
Abhinav Raut 4beab72a11 feat: add external user ID support and secret field for inboxes.
Update user and inbox models, queries, and migrations
2025-07-20 16:42:03 +05:30
Abhinav Raut d2e5d85e3a fix: return created/updated objects in POST/PUT responses with masked secrets
All POST/PUT handlers now return actual database objects instead of `true`
2025-06-20 19:35:09 +05:30
Abhinav Raut 50188352a5 fix: Use SyncedEnforcer in casbin, fixes panics.
feat: store user roles in user roles table, drops the roles table on users table.
feat: standardize column names in schema, renames disabled bool to enables.
- vue router fixes to allow components / pages to rerender after creating an object in db.
- minor fixes and refactors.
2025-01-22 03:40:32 +05:30
Abhinav Raut 16b6ad96ea refactor[backend]: pick worker counts and intervals from config. 2025-01-20 02:13:44 +05:30
Abhinav Raut 8596807e56 feat: emoji picker
- fix: Fatal issued during inbox reload instead return errors.
- rename functions in inbox pkg to reflect purpose.
- rename page titles on router.
- remove iconify.
2025-01-10 03:48:03 +05:30
Abhinav Raut 48e89dc4b9 feat: hot reload package configs on change, no binary restart needed
- feat: soft deletion for users, inboxes, teams, and tags
- Rename tables and queries.
2024-11-13 01:47:16 +05:30
Abhinav Raut ee7be54c0d fix: hide passwords in API response
- Minor refactors.
- Fixes bugs in SelectTag component.
- Update vite.
2024-10-23 05:25:10 +05:30
Abhinav Raut 06db29f7f3 refactor. 2024-08-11 03:52:05 +05:30
Abhinav Raut 5e00558e9b feat: updates to admin page.
- role page.
2024-07-22 03:05:30 +05:30
Abhinav Raut 167399569d more commits 2024-07-11 02:38:21 +05:30
Abhinav Raut 78a4caba3b more commits. 2024-07-10 05:17:07 +05:30
Abhinav Raut 6a27b2fa4b refactor 2024-06-10 03:45:48 +05:30