Commit Graph
5418 Commits
Author SHA1 Message Date
Shivam MishraandGitHub a5cb283f42 Merge branch 'feat/saml-controllers' into feat/saml-ui 2025-09-01 14:13:04 +05:30
Shivam MishraandGitHub cd75ac262a Merge branch 'feat/sso-models' into feat/saml-controllers 2025-09-01 14:13:02 +05:30
Shivam MishraandGitHub 9081da755d Merge branch 'develop' into feat/sso-models 2025-09-01 14:12:51 +05:30
Shivam Mishra 2156598dde fix: no guard against missing account 2025-09-01 14:00:21 +05:30
Shivam Mishra ac51a2b3d9 fix: info order 2025-09-01 13:34:45 +05:30
Shivam Mishra 3d9cb97bbb fix: save fingerprint from the response 2025-09-01 13:33:38 +05:30
Shivam Mishra 5ba79036ea chore: docs 2025-09-01 13:30:42 +05:30
Shivam Mishra edd78ff4bc fix: remove fingerprint on disable 2025-09-01 13:29:54 +05:30
Shivam Mishra f6b3cb6295 feat: add additional SAML information 2025-09-01 13:28:55 +05:30
Shivam Mishra 5227b4169f feat: include fingerprint and certificate 2025-09-01 13:27:39 +05:30
Sivin VargheseandGitHub c53e750be0 feat: Display banner and handoff for bot-managed chats (#12292) 2025-09-01 13:22:55 +05:30
Sivin VargheseandGitHub f9c258f1a0 fix: Prevent [object Object] when copying custom attributes (#12323)
# Pull Request Template

## Description

This PR fixes custom conversation attributes copying as `[object
Object]` by enhancing the clipboard helper to properly serialize objects
and handle different data types.


Fixes
[CW-5428](https://linear.app/chatwoot/issue/CW-5428/copying-custom-conversation-attribute-returns-object-object-instead-of),
https://github.com/chatwoot/chatwoot/issues/12202

## Type of change

- [x] Bug fix (non-breaking change which fixes an issue)

## How Has This Been Tested?

### Loom video

https://www.loom.com/share/f52db17d4d524b3cbb5badb2b6f381eb?sid=2b34f38f-e95d-4981-be5f-6cb42a0212b9


## 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-09-01 13:02:35 +05:30
Shivam Mishra 61eb729a11 feat: add help route 2025-09-01 12:30:37 +05:30
Shivam Mishra 1f41e53ef5 feat: add paywall 2025-09-01 12:27:18 +05:30
Shivam Mishra 73992bef97 feat: include in feature flags 2025-09-01 12:19:58 +05:30
Shivam Mishra 2dbd43217c feat: add SAML settings UI 2025-09-01 12:10:58 +05:30
Shivam Mishra b81683a4de feat: add saml settings API 2025-09-01 12:10:37 +05:30
e863a52262 chore: Update account deletion email copy (#12317)
Update the email copies for account deletion emails 

## Manual Deletion 

<img width="1378" height="678" alt="Screenshot 2025-08-29 at 2 41 40 PM"
src="https://github.com/user-attachments/assets/63d7ad97-ad51-4a8b-9ef3-d427fa467f8a"
/>

## Inactive Deletion

<img width="2946" height="1808" alt="image"
src="https://github.com/user-attachments/assets/bb50d08c-8701-4f93-af29-0b1d948a4009"
/>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Sojan Jose <sojan@pepalo.com>
2025-08-31 16:01:41 +02:00
Sojan JoseandGitHub 0a9edd4c3b ci(circleci): switch coverage reporting to Qlty orb (#12337) 2025-08-31 00:39:34 +05:30
PranavandGitHub f4643116df feat: Run assignment every 15 minutes (#12334)
Currently, auto-assignment runs only during conversation creation or
update events. If no agents are online when new conversations arrive,
those conversations remain unassigned.

With this change, unassigned conversations will be automatically
assigned once agents become available. The job runs every 15 minutes and
uses a fair distribution threshold of 100 to prevent a large number of
conversations from being assigned to a single available agent. This will
be customizable later.
2025-08-29 15:10:56 -07:00
9145658597 chore: Refactor UTM params to stay compliant with standards (#12312)
We were using UTM params on various branding urls which weren't
compliant to standard utm params and hence were ignored by analytics
tooling. this PR ensures that the params stays compliant with defined
standard

ref: https://en.wikipedia.org/wiki/UTM_parameters

## Changes 

- updated utm tags on widget and survey urls
- added utm on helpcenter branding

---------

Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
2025-08-29 11:46:52 -07:00
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
Shivam MishraandGitHub 71321c2548 Merge branch 'develop' into feat/sso-models 2025-08-28 19:43:05 +05:30
88cb5ba56f fix: Widget now shows articles based on correct locale (#12316)
# Pull Request Template

## Description

This PR fixes an issue (CW-5529) where articles displayed on the widget
were not respecting the current locale set in the URL (e.g., `/ar` was
showing English articles).

The root cause was that the article queries in the
`_featured_articles.html.erb` and `_uncategorized-block.html.erb` view
templates were missing locale filtering.

The fix involves adding `locale: @locale` to the `articles.where`
clauses in these templates to ensure that only articles matching the
current portal locale are displayed.

Fixes #CW-5529

## Type of change

- [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?

The changes were verified against existing test cases that confirm the
expected behavior for locale-specific article filtering. Specifically,
tests for the articles controller's `index` action and article count by
locale were reviewed, which align with the implemented fixes.

## Checklist:

- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my code
- [ ] 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 (N/A, relied on existing tests)
- [ ] New and existing unit tests pass locally with my changes (Unable
to run tests in this environment)
- [ ] Any dependent changes have been merged and published in downstream
modules

---
Linear Issue:
[CW-5529](https://linear.app/chatwoot/issue/CW-5529/articles-from-the-correct-locale-is-not-shown-on-the-widget)

<a
href="https://cursor.com/background-agent?bcId=bc-2f944ea8-863e-4e80-b137-c05ce0b017cc">
  <picture>
<source media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/open-in-cursor-dark.svg">
<source media="(prefers-color-scheme: light)"
srcset="https://cursor.com/open-in-cursor-light.svg">
<img alt="Open in Cursor" src="https://cursor.com/open-in-cursor.svg">
  </picture>
</a>
<a
href="https://cursor.com/agents?id=bc-2f944ea8-863e-4e80-b137-c05ce0b017cc">
  <picture>
<source media="(prefers-color-scheme: dark)"
srcset="https://cursor.com/open-in-web-dark.svg">
<source media="(prefers-color-scheme: light)"
srcset="https://cursor.com/open-in-web-light.svg">
    <img alt="Open in Web" src="https://cursor.com/open-in-web.svg">
  </picture>
</a>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
2025-08-28 18:32:27 +05:30
Shivam Mishra b22425d5fb Merge branch 'feat/sso-models' of github.com:chatwoot/chatwoot into feat/saml-controllers 2025-08-28 17:54:15 +05:30
Shivam MishraandGitHub 9b8d6bfc74 Merge branch 'develop' into feat/sso-models 2025-08-28 17:52:15 +05:30
Shivam Mishra d48a7aac64 feat: update gems 2025-08-28 17:25:24 +05:30
Shivam Mishra eca7704bda Merge branch 'feat/sso-models' of github.com:chatwoot/chatwoot into feat/saml-controllers 2025-08-28 16:58:48 +05:30
Shivam Mishra cb887f0dd9 test: fix rubocop issue 2025-08-28 16:54:21 +05:30
Shivam Mishra 3c0f053983 chore: docs 2025-08-28 16:50:51 +05:30
Shivam Mishra 35b09fd8b8 refactor: account_id is not optional 2025-08-28 16:50:40 +05:30
Shivam Mishra cbe5936b7b refactor: builder 2025-08-28 16:47:07 +05:30
Shivam Mishra 184b735846 chore: remove enabled check 2025-08-28 16:39:12 +05:30
Shivam Mishra 594ca1f526 chore: remove attribute map spec 2025-08-28 16:38:13 +05:30
Shivam Mishra 7c78fd3087 test: update specs to handle removed fields 2025-08-28 16:36:59 +05:30
Shivam Mishra f818f462ea chore: remove attribute mapping 2025-08-28 16:33:29 +05:30
Shivam Mishra f17de99d1b Merge branch 'feat/sso-models' of github.com:chatwoot/chatwoot into feat/saml-controllers 2025-08-28 16:31:30 +05:30
Shivam Mishra 94bbfff8fd chore: remove unnecessary change 2025-08-28 16:30:22 +05:30
Shivam Mishra abf07c44c2 chore: revert unrelated change 2025-08-28 16:28:39 +05:30
Shivam Mishra 0c9e4f430a feat: remove enforced_sso and attribute_mappings field 2025-08-28 16:27:44 +05:30
Shivam Mishra 846ea71e56 feat: remove certificate fingerprint field 2025-08-28 16:13:17 +05:30
Shivam Mishra 85fb20013e feat: remove enabled field 2025-08-28 16:09:07 +05:30
Shivam Mishra 04cc25d55e chore: remove debugging files 2025-08-28 16:02:46 +05:30
Shivam Mishra b999fe6439 chore: remove spec 2025-08-28 16:02:01 +05:30
Shivam Mishra 589daac302 chore: revert spec 2025-08-28 16:01:02 +05:30
Shivam Mishra 87171c5b53 feat: remove old controller 2025-08-28 16:00:29 +05:30
Shivam Mishra 40f476315b chore: remove redundant route 2025-08-28 15:58:39 +05:30
Shivam Mishra 2b533aa135 feat: remove saml methods from user 2025-08-28 15:57:35 +05:30
Shivam Mishra 3fb2506aab feat: move SAML builder to enterprise 2025-08-28 15:56:51 +05:30
Shivam Mishra 9598021f87 chore: remove redundant route 2025-08-28 15:50:35 +05:30