Commit Graph
5230 Commits
Author SHA1 Message Date
Muhsin Keloth f25050e4cd chore: add guide 2025-07-29 16:21:02 +04:00
Muhsin Keloth 9e5ee2da51 Update templates.json 2025-07-29 16:17:27 +04:00
Muhsin Keloth e2702fd205 Update templates.json 2025-07-29 16:04:30 +04:00
Muhsin Keloth a7ea895508 Update templates.json 2025-07-29 15:49:33 +04:00
Muhsin Keloth a883904986 chore: add templates example 2025-07-29 14:30:46 +04:00
Muhsin KelothandGitHub 5fad897d8e Merge branch 'develop' into feature/enhanced-template-support 2025-07-29 12:50:09 +04:00
441cc065ae feat: add config for OpenAI endpoint (#12051)
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
2025-07-29 09:44:50 +05:30
Chatwoot BotandGitHub 0b74be82a3 chore: Update translations (#12037) 2025-07-28 17:33:49 +04:00
cbc2807296 fix: Creates contact when Instagram returns No matching Instagram user (#11496)
# Creates contact when Instagram returns `No matching Instagram user`

## Description

The error occurs when Facebook tries to validate the Facebook App
created to authorize Instagram integration.
The Facebook's agent uses a Bot to make tests on the App where is not a
valid user via API, returning `{"error"=>{"message"=>"No matching
Instagram user", "type"=>"IGApiException", "code"=>9010}}`.
Then Facebook rejects the request saying this app is still not ready
once the integration with Instagram didn't work.
We can safely create an unknown contact, making this integration work.

## Type of change

Please delete options that are not relevant.

- [X] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality not to work as expected)
- [ ] This change requires a documentation update

## How Has This Been Tested?

There's automated test to cover.

## 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
- [ ] 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

---------

Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
2025-07-28 13:49:13 +04:00
Shivam MishraandGitHub c09e875c83 feat: skip inbox filter if the user has access to all inboxes (#12043) 2025-07-25 15:29:10 +05:30
87313ecc35 fix: Add delay to instagram/messenger echo events to prevent duplicate messages (#12032)
- Add 2-second delay to Facebook Messenger echo event processing to
prevent race condition
- Add 2-second delay to Instagram echo event processing for consistency
- Prevent duplicate messages when echo events arrive before send message
API completes processing

---------

Co-authored-by: Sojan Jose <sojan@pepalo.com>
2025-07-24 21:11:02 +04:00
8262123481 feat: Remove subscription on WhatsApp inbox delete (#11977)
- remove webhook subscription while deleting a whatsapp inbox created
via embedded signup

Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
2025-07-24 14:04:19 +04:00
420be64c45 chore: Automate SSL with Cloudflare (#12021)
This PR adds support for automatic SSL issuance using Cloudflare when a
custom domain is updated.

- Introduced a cloudflare configuration. If present, the system will
attempt to issue an SSL certificate via Cloudflare whenever a custom
domain is added or changed.
- SSL verification is handled using an HTTP challenge.
- The job will store the HTTP challenge response provided by Cloudflare
and serve it under the /.well-known/cf path automatically.

How to test:

- Create a Cloudflare zone for your domain and copy the Zone ID.
- Generate a Cloudflare API token with the required SSL certificate
permissions.
- Set the Fallback Origin under SSL -> Custom HostName to the Chatwoot
installation.
- Add or update a custom domain and verify that the SSL certificate is
automatically issued.

---------

Co-authored-by: Sojan Jose <sojan@pepalo.com>
2025-07-24 13:09:06 +04:00
PranavandGitHub 9acb0d86b5 fix: Disable enqueueing Avatar jobs if the URL is invalid (#12035)
- Add a new queue purgable
- Disable enqueuing the job if URL is invalid
2025-07-24 12:56:39 +04:00
Vishnu NarayananandGitHub 2a5ecf84a1 chore: add sidekiq_alive gem for health check endpoint (#12008)
```
➜  chatwoot git:(feat/sidekiq-health) curl -I localhost:7433
HTTP/1.1 200 OK
Server: SidekiqAlive/2.5.0 (Ruby/3.4.4)
Connection: Keep-Alive
Date: Tue, 22 Jul 2025 10:34:28 GMT
Content-Length: 6

➜  chatwoot git:(feat/sidekiq-health) curl localhost:7433
Alive!%
```

fixes: https://github.com/chatwoot/chatwoot/issues/10948
2025-07-24 08:08:37 +04:00
286e3a449d feat: Introduce the crm_v2 feature flag for CRM changes (#12014)
Introduce crm_v2 feature flag for our upcoming optimisations for CRM

---------

Co-authored-by: Sojan Jose <sojan@pepalo.com>
2025-07-23 17:07:02 +04:00
Muhsin Keloth d67b0114d0 chore: test all the cases 2025-07-23 16:55:04 +04:00
Shivam MishraandGitHub e5ee6027b4 feat: don't add inbox condition for admins in search (#12028) 2025-07-23 16:30:07 +04:00
Muhsin Keloth 06c5633a28 chore: fix translations 2025-07-23 16:24:59 +04:00
Muhsin Keloth ec5d30745b Update inboxes.js 2025-07-23 15:37:03 +04:00
Muhsin KelothandGitHub a8e581d057 Merge branch 'develop' into feature/enhanced-template-support 2025-07-23 14:31:06 +04:00
Sivin VargheseandGitHub eb412b67bd fix: Code component style issue (#12022)
# Pull Request Template

## Description

This PR fixes a styling issue in the code component that was introduced
after merging this
[PR](https://github.com/chatwoot/chatwoot/pull/12007/commits/07855d4369a4fcbe99bdc7dc7c1198cd279dafae)

**Screenshots**

**Before**
<img width="456" height="506" alt="image"
src="https://github.com/user-attachments/assets/6cd78708-93ad-4457-9e0f-8a25e3c7545c"
/>


**After**
<img width="456" height="506" alt="image"
src="https://github.com/user-attachments/assets/3bb059fa-5ed8-4d92-bf6e-56831fb2f55d"
/>
2025-07-23 13:20:46 +04:00
Sivin VargheseandGitHub 6fb762f96c chore: Migrate to next Switch component (#12005) 2025-07-23 13:56:17 +05:30
ab1ba1c4c7 feat: Add manual WhatsApp templates sync with UI (#12007)
Fixes https://github.com/chatwoot/chatwoot/issues/9600

**Summary**
- Added manual WhatsApp templates sync functionality accessible via UI
- Added refresh button in both inbox settings and template picker modal
- Enhanced template picker to always show for WhatsApp Cloud channels
(even when empty)


**Preview**

<img width="1456" height="798" alt="CleanShot 2025-07-22 at 14 15 28@2x"
src="https://github.com/user-attachments/assets/8a04ff26-61fa-42ee-a1b8-5e06433ae6e0"
/>


<img width="2376" height="1574" alt="CleanShot 2025-07-22 at 14 19
24@2x"
src="https://github.com/user-attachments/assets/1c772034-04ff-484d-88dd-ca8123e93065"
/>

---------

Co-authored-by: iamsivin <iamsivin@gmail.com>
2025-07-23 12:22:51 +04:00
Tanmay Deep SharmaandGitHub d276025419 fix: circle ci bundle audit (#12019) 2025-07-23 11:36:39 +04:00
Muhsin Keloth 684cb005c3 chore: add support for doc 2025-07-22 19:37:29 +04:00
Muhsin Keloth cbde1d9d83 Update WhatsappTemplateParser.vue 2025-07-22 19:01:05 +04:00
Muhsin Keloth cfda6696b6 chore: fix copy otp 2025-07-22 18:53:35 +04:00
Muhsin Keloth 0b816f2a01 chore: minor fixes 2025-07-22 18:15:54 +04:00
Muhsin Keloth a0e2936ab3 chore: remove location templates 2025-07-22 17:34:12 +04:00
Muhsin Keloth 2357f6ae47 chore: cleanup codes 2025-07-22 17:16:47 +04:00
Muhsin Keloth 3c99197e1e chore: cleanup code 2025-07-22 16:57:13 +04:00
Muhsin KelothandGitHub f93ed667c0 Merge branch 'develop' into feature/enhanced-template-support 2025-07-22 15:28:06 +04:00
94b7154926 chore: add audit-logs swagger (#12001)
Co-authored-by: Tanmay Sharma <tanmaydeepsharma21@gmail.com>
2025-07-22 13:42:31 +04:00
Vishnu NarayananandGitHub 60951b45fd fix: cwctl web/worker conversion (#12006) 2025-07-22 13:38:51 +04:00
Shivam MishraandGitHub 69ad953ae6 fix: bubble color for outgoing email (#12003) 2025-07-22 14:26:55 +05:30
Vishnu NarayananandGitHub c4b076dbb2 feat: allow setting up only web/worker deployments for linux (#12004)
## cwctl
-  allow setting up only web/worker deployments for linux
- allow upgrades to a custom branch - experimental

```
Usage Examples:
  # Convert existing full deployment to web-only (for web ASG)
  cwctl --convert web

  # Convert existing full deployment to worker-only (for worker ASG)
   cwctl --convert worker

  # Convert specialized deployment back to full
  cwctl --convert full

  # Fresh installs still work as before
    cwctl -i --web-only    # New web-only install
    cwctl -i --worker-only # New worker-only instal
```

- Upgrading to custom branches is risky, as other dependencies like node
or db might have changed

```
  cwctl --upgrade        # Upgrade to master branch - default
  cwctl -U v4.3.0         # Upgrade to specific release branch 
  cwctl --upgrade feat/new-feature  # Upgrade to feature branch
```
2025-07-22 12:54:25 +04:00
Shivam MishraandGitHub dc49ae2515 feat: Exclude account settings page from upgrade paywall (#11998)
This pull request includes a small change to the `Dashboard.vue` file.
The change adds `'general_settings_index'` to the list of route names
checked for inclusion.
2025-07-22 08:54:53 +04:00
Muhsin KelothandGitHub 01f85a7882 Merge branch 'develop' into feature/enhanced-template-support 2025-07-21 21:28:00 +04:00
Muhsin Keloth 4610cff67e chore: add more templates 2025-07-21 21:25:44 +04:00
Sojan JoseandClaude 44d29fa708 feat: Add media URL input support for WhatsApp templates
Add support for media URL input fields in WhatsApp templates with IMAGE, VIDEO,
or DOCUMENT headers, enabling users to provide media links for template messages.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-21 17:49:08 +04:00
Sojan JoseandClaude 9329813ff5 fix: Remove media template filtering from Vuex store getter
The root cause of media header templates not appearing was in the Vuex store
getter `getWhatsAppTemplates` which was explicitly filtering out templates
with IMAGE and VIDEO components.

This fix removes the media filtering logic to allow all approved WhatsApp
templates to be available in the template selector, including those with:
- IMAGE headers
- VIDEO headers
- DOCUMENT headers

Now the `order_confirmation` template and other media templates will appear
in the template picker as expected.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-21 17:40:59 +04:00
Sojan JoseandClaude 16011b06a3 fix: Ensure media header templates appear in template selector
- Remove format-based filtering that was preventing media templates from showing
- Add robust error handling for template loading without console statements
- Include comprehensive validation for template properties
- Add debug helper method to troubleshoot template visibility issues

Previously, templates with media headers (IMAGE, VIDEO, DOCUMENT) were being
filtered out even though we removed format restrictions. This fix ensures
all approved templates are visible in the template selector regardless of
their media format.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-21 17:36:28 +04:00
Sojan JoseandClaude ee176480da feat: Enhanced WhatsApp template support with security optimizations
- Add comprehensive WhatsApp template parameter support for header/footer/buttons
- Implement coupon code template support with 15-character validation
- Support all WhatsApp template types (text, media, interactive)
- Add advanced parameter types (currency, date/time, location)
- Remove restrictions on DOCUMENT, IMAGE, VIDEO template formats

Security improvements:
- Fix XSS vulnerability by replacing v-html with v-dompurify-html
- Add input sanitization and parameter validation
- Implement URL validation with scheme and length checks
- Add protection against DoS attacks with length limits

Performance optimizations:
- Replace recursive template fetching with iterative pagination
- Add safety limits to prevent infinite loops and stack overflow
- Optimize template processing for better memory usage

Frontend enhancements:
- Enhanced template picker with header/footer/button display
- Component-based parameter input organized by type
- Real-time validation for coupon codes and parameters
- Improved template preview with sanitized HTML rendering
- Fix Vue linting issues with proper computed properties

Maintains full backward compatibility with existing template configurations.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-21 17:03:11 +04:00
b71a0da10d feat: scenario tools [CW-4597] (#11908)
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Sojan Jose <sojan@pepalo.com>
2025-07-21 16:42:12 +05:30
bb9e3a5495 chore: Update translations (#11962)
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
2025-07-17 21:50:55 -07:00
647a65d481 fix: Fetch all facebook pages during inbox creation (#11956)
## Summary
- fetch all Facebook pages during setup instead of only the first 25

fixes:  #3082

Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
2025-07-17 18:32:12 +05:30
Muhsin KelothandGitHub 99ec18c95b feat: Add support for multiple attachments in Slack (#11958) 2025-07-17 09:38:46 +05:30
Sivin VargheseandGitHub 64ba23688b feat: New GuardRails and Response Guidelines edit page (#11932) 2025-07-16 21:52:25 +05:30
Sojan Jose 2fec2e5993 Merge branch 'release/4.4.0' into develop 2025-07-16 00:10:53 -07:00