Abhinav Raut
6231a9e131
update logger to log time value instead of null time
2025-09-16 23:15:09 +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
50baa3f38e
remove redundant comments for Manager struct across multiple files
2025-06-06 01:04:07 +05:30
Abhinav Raut
ea0b7d6d52
docs: update email templating docs with complete variable reference
...
- adds new `Author` template var and injects it into all templates
- make author fields empty for all automated system generated emails
2025-06-05 01:55:38 +05:30
Abhinav Raut
3998798e54
refactor: rename SQL query names and struct fields for clarity and consistency
2025-05-27 02:45:43 +05:30
Abhinav Raut
70b5da29e1
fix: change SLA deadline fields to use nullable types
2025-05-26 03:48:41 +05:30
Abhinav Raut
88ef5d26db
fix: update sla timestamps to nullable types
2025-05-26 03:48:41 +05:30
Abhinav Raut
506bb91e20
fix: make sla metric timestamps nullable
2025-05-26 03:48:41 +05:30
Abhinav Raut
d1478e1971
fix: clarify comment on SendNotification method regarding SLA linkage
2025-05-26 03:48:41 +05:30
Abhinav Raut
5583b472f7
fix: change debug logs to info level for scheduled SLA notifications
2025-05-26 03:48:41 +05:30
Abhinav Raut
b715483260
refactor(conversation): reduce DB I/O by using existing appliedSLAID from conversation
...
- Passes appliedSLAID directly to SLA logic instead of refetching
- Adds appliedSLAID field to conversation struct (already fetched in get-conversation query)
2025-05-26 03:48:41 +05:30
Abhinav Raut
8ce0464603
fix: simplify time_delay validation in SLA notification schema
2025-05-26 03:48:41 +05:30
Abhinav Raut
7426a09478
feat: allow setting metric per SLA notification, so admins can set SLA alert per metric or just set to all if they want a notification to be sent for all metrics
...
- Make sla time fields (first response, next response, resolution) optional, only 1 field is required.
2025-05-26 03:48:41 +05:30
Abhinav Raut
8ad2f078ac
fix sql query
2025-05-26 03:48:41 +05:30
Abhinav Raut
9226063db3
fix: remove queries using conversation.applied_sla_id
...
as this column is removed
- fix sql query
2025-05-26 03:48:41 +05:30
Abhinav Raut
a9fd4fe2b6
fix: uise existing set next sla deadline sql query and remove duplicate query.
...
- remove previously added `applied_sla_id` column to conversations table as it was causing cyclic dep
2025-05-26 03:48:41 +05:30
Abhinav Raut
7e8c9962c3
Fixes for next response time sla metric
2025-05-26 03:48:41 +05:30
Abhinav Raut
4c766d8ccb
wip: next response metric for sla
2025-05-26 03:48:41 +05:30
Abhinav Raut
9bfe014d1e
WIP: manage contacts page
2025-04-09 16:52:25 +05:30
Abhinav Raut
2a382d6036
feat: Toggle button for user to reassign replies to conversations if they are away, user status now actually affects the conversation workflow.
...
Online: Conversations are auto-assigned.
Auto-away (inactivity in browser): Marks agent as away without stopping assignment (nothing changes for agent).
Manual away: Prevents new conversations from being assigned. (option available in the sidebar)
Reassign replies: Customer replies unassigns the conversation, returning it to the team inbox / unassigned inbox.
2025-04-04 03:29:16 +05:30
Abhinav Raut
6b6549cb03
standardize i18n keys for consistency rename keys
...
fix: avatar url `null` console warnings.
2025-04-03 01:21:12 +05:30
Abhinav Raut
4361250c73
feat: backend api response translations
2025-04-03 01:21:12 +05:30
Abhinav Raut
1875a62e00
feat: test cases for SLA calculator, string utilities and attachments
2025-03-26 23:57:56 +05:30
Abhinav Raut
495ff02067
fix[sla]: incorrect calculated deadline when SLA minutes ends exact at a working day's closing time.
...
Example test case for it.
```go
{
name: "Monday to Friday 10:00 to 18:00",
startTime: time.Date(2025, 03, 22, 18, 1, 43, 0, locIST), // Sat
// 24 hours.
slaMinutes: 1440,
businessHours: models.BusinessHours{
Hours: mustMarshalJSON(map[string]models.WorkingHours{
"Monday": {Open: "10:00", Close: "18:00"},
"Tuesday": {Open: "10:00", Close: "18:00"},
"Wednesday": {Open: "10:00", Close: "18:00"},
"Thursday": {Open: "10:00", Close: "18:00"},
"Friday": {Open: "10:00", Close: "18:00"},
"Saturday": {Open: "10:00", Close: "14:00"},
}),
},
timeZone: "Asia/Kolkata",
expectedResult: time.Date(2025, 03, 26, 18, 0, 0, 0, locIST),
},
```
fix: more validations for working hours.
chore: remove unused struct fields in working hours
2025-03-26 23:56:13 +05:30
Abhinav Raut
b6ce6975c9
fix: mark schedule notification as processed when agent fetch fails for email notification
2025-03-22 18:55:01 +05:30
Abhinav Raut
aeef7d4ad7
feat: configurable SLA alerts per SLA.
2025-03-21 23:23:03 +05:30
Abhinav Raut
45541c221a
fix: various bugs in SLA calculation
...
prevents multiple update queries unnecessarily on applied sla table.
clear next sla deadline in conversations properly when there's no deadline to be met.
uses the new status column in the applied sla table to determine if the sla is still active and has to be calculated again.
2025-03-12 02:45:17 +05:30
Abhinav Raut
37070770bf
fix: SLA status updates
2025-02-08 17:56:12 +05:30
Abhinav Raut
6993d972ab
fix[SLA]: Use conversation created_at time as start time for SLA calculation. This makes sure when SLA is changed for a conversation the elapsed time carries over.
...
refactor: improve error handling and update comments for clarity
2025-02-02 23:51:50 +05:30
Abhinav Raut
d291c3f4b9
feat: conversation reference sequence numbers with optional prefix, adds a postgres function that takes optional prefix and combines the sequence number with it. e.g. TIK100 where TIK is the reference is the prefix and 100 is the sequence number.
...
- feat: start conversation sequence number from 100.
- fix: enforce consistent ON DELETE behavior across schema relationships.
- fix: prevent application of same SLA to a conversation when assigned team changes.
- fix: Automation apply SLA action use assigned team's working hrs and timezone first and then fallback to workspace timezone and working hours.
- frontend fixes
2025-01-29 00:49:36 +05:30
Abhinav Raut
3c71ab35ff
Feat: Add SLAs per team
...
- Feat: Provide the ability to change SLAs for conversations; this will start a new deadline calculation from the time the SLA is set.
2025-01-24 04:34:51 +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
0c01b53b09
feat(conversations): add trigram index for searching ref numbers
...
feat(messages): add trigram index for text content search
- feat: UI animations for conversation and messages list.
- Simplify websocket updates.
2025-01-19 23:10:53 +05:30
Abhinav Raut
87c14aa15d
feat: Macros, macros not completely replace canned responses as they do the same job as canned repsonse.
...
- tiptap editor fixes for hardlines.
- set app font to jakarta, fix shadcn components having a different font.
- UI improvements on /admin
- UI improvements on inbox tab.
2025-01-17 04:57:01 +05:30
Abhinav Raut
0c54abbbad
refactor: rename modules and imports to reflect project name
2025-01-11 21:46:29 +05:30
Abhinav Raut
caf8e7d34d
WIP: MVP with shadcn sidebar
...
- csat
- SLA
- email notification templates
2025-01-06 02:39:44 +05:30