gabrieljablonski
8d4a6b856a
Merge branch main into chore/merge-upstream-4.7.0
2025-10-16 12:08:20 -03:00
Gabriel Jablonski
4fc80ba4ee
feat(zapi): Z-API integration ( #115 )
...
* feat(zapi): connect flow and UI updates
* fix(zapi): re-add manage connection section
* feat(zapi): reply
* feat: send message
* fix: qrcode job logic
* test: qr code job specs
* chore: concurrent index
* chore: whatsapp model minor
* test: message window service specs
* chore: service refactor
* test: zapi service
* chore: zapi beta
* chore: minor fixes
* test: incoming message specs
* chore: minor fixes
* feat: handle status transitions
* test: refactor spec
* test: refactor spec
* chore(z-api): use feature flag
* chore: fix migration name
2025-10-15 16:23:04 -03:00
Shivam Mishra
b75ea7a762
feat: Use resolved contacts as base relation for filtering ( #12520 )
...
This PR has two changes to speed up contact filtering
### Updated Base Relation
Update the `base_relation` to use resolved contacts scope to improve
perf when filtering conversations. This narrows the search space
drastically, and what is usually a sequential scan becomes a index scan
for that `account_id`
ref: https://github.com/chatwoot/chatwoot/pull/9347
ref: https://github.com/chatwoot/chatwoot/pull/7175/
Result: https://explain.dalibo.com/plan/c8a8gb17f0275fgf#plan
## Selective filtering in Compose New Conversation
We also cost of filtering in compose new conversation dialog by reducing
the search space based on the search candidate. For instance, a search
term that obviously can’t be a phone, we exclude that from the filter.
Similarly we skip name lookups for email-shaped queries.
Removing the phone number took the query times from 50 seconds to under
1 seconds
### Comparison
1. Only Email: https://explain.dalibo.com/plan/h91a6844a4438a6a
2. Email + Name: https://explain.dalibo.com/plan/beg3aah05ch9ade0
3. Email + Name + Phone:
https://explain.dalibo.com/plan/c8a8gb17f0275fgf
2025-09-25 15:26:44 +05:30
gabrieljablonski
18c672c204
Merge branch 'main' into chore/merge-upstream-4.6.0
2025-09-19 19:37:28 -03:00
Muhsin Keloth
99997a701a
feat: Add twilio content templates ( #12277 )
...
Implements comprehensive Twilio WhatsApp content template support (Phase
1) enabling text, media, and quick reply templates with proper parameter
conversion, sync capabilities, and feature flag protection.
### Features Implemented
**Template Types Supported**
- Basic Text Templates: Simple text with variables ({{1}}, {{2}})
- Media Templates: Image/Video/Document templates with text variables
- Quick Reply Templates: Interactive button templates
- Phase 2 (Future): List Picker, Call-to-Action, Catalog, Carousel,
Authentication templates
**Template Synchronization**
- API Endpoint: POST
/api/v1/accounts/{account_id}/inboxes/{inbox_id}/sync_templates
- Background Job: Channels::Twilio::TemplatesSyncJob
- Storage: JSONB format in channel_twilio_sms.content_templates
- Auto-categorization: UTILITY, MARKETING, AUTHENTICATION categories
### Template Examples Tested
#### Text template
```
{ "name": "greet", "language": "en" }
```
#### Template with variables
```
{ "name": "order_status", "parameters": [{"type": "body", "parameters": [{"text": "John"}]}] }
```
#### Media template with image
```
{ "name": "product_showcase", "parameters": [
{"type": "header", "parameters": [{"image": {"link": "image.jpg"}}]},
{"type": "body", "parameters": [{"text": "iPhone"}, {"text": "$999"}]}
]}
```
#### Preview
<img width="1362" height="1058" alt="CleanShot 2025-08-26 at 10 01
51@2x"
src="https://github.com/user-attachments/assets/cb280cea-08c3-44ca-8025-58a96cb3a451 "
/>
<img width="1308" height="1246" alt="CleanShot 2025-08-26 at 10 02
02@2x"
src="https://github.com/user-attachments/assets/9ea8537a-61e9-40f5-844f-eaad337e1ddd "
/>
#### User guide
https://www.chatwoot.com/hc/user-guide/articles/1756195741-twilio-content-templates
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
2025-08-29 16:13:25 +05:30
gabrieljablonski
801033bd5f
Merge branch 'main' into chore/merge-upstream-4.5.0
2025-08-20 11:20:31 -03:00
Sivin Varghese
42af4b1d01
fix: Reset inbox on conversation switch in compose conversation modal ( #12174 )
2025-08-13 12:42:57 +05:30
Muhsin Keloth
5c560c7628
feat: WhatsApp enhanced templates front end changes ( #12117 )
...
Part of the https://github.com/chatwoot/chatwoot/pull/11997
Co-authored-by: Sojan Jose <sojan@pepalo.com>
Co-authored-by: iamsivin <iamsivin@gmail.com>
2025-08-12 18:53:19 +05:30
Gabriel Jablonski
17e2029017
fix: allow composing message when using baileys inbox ( #23 )
...
* fix: allow composing message for baileys inbox
* fix: match compose format for phone number as contact name
2025-04-09 19:15:22 -03:00
Sivin Varghese
8291c84cc3
feat: Use new compose conversation in conversation sidebar ( #11085 )
...
# Pull Request Template
## Description
This PR includes the implementation of the new Compose Conversation form
in the conversation sidebar, replacing the old one.
## Type of change
- [x] New feature (non-breaking change which adds functionality)
## How Has This Been Tested?
### Loom video
https://www.loom.com/share/4312e20a63714eb892d7b5cd0dcda893?sid=9bd5254e-2b1f-462c-b2c1-a3048a111683
## Checklist:
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my code
- [x] I have commented on my code, particularly in hard-to-understand
areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream
modules
2025-03-18 15:09:10 +05:30
Sivin Varghese
2556de1f38
feat: Support bigger font size in dashboard ( #10974 )
...
# Pull Request Template
## Description
Fixes
https://linear.app/chatwoot/issue/CW-4091/accessibility-improvement-support-bigger-font-size-for-the-dashboard
## Type of change
- [x] New feature (non-breaking change which adds functionality)
## How Has This Been Tested?
### **Loom video**
https://www.loom.com/share/1ab781859fa748a5ad54aacbacd127b4?sid=a7dd9164-a6de-462f-bff7-1b25e9c55b4f
## Checklist:
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my code
- [x] I have commented on my code, particularly in hard-to-understand
areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream
modules
2025-02-27 12:10:33 +05:30
Sivin Varghese
a899c2b5a4
chore: Improve new conversation form ( #10687 )
2025-01-15 13:10:09 +05:30
Sivin Varghese
b116ab5ad3
feat(v4): Compose new conversation without multiple clicks ( #10545 )
...
---------
Co-authored-by: Pranav <pranav@chatwoot.com>
Co-authored-by: Pranav <pranavrajs@gmail.com>
2024-12-05 20:16:29 -08:00
Sivin Varghese
67c90231b6
feat: Add compose conversation components ( #10457 )
...
Co-authored-by: Pranav <pranav@chatwoot.com>
Co-authored-by: Pranav <pranavrajs@gmail.com>
2024-12-05 16:31:47 -08:00