iachat/app/javascript/dashboard/helper
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
..
AnalyticsHelper feat: Setup posthog analytics (#12291) 2025-08-27 09:10:06 +05:30
AudioAlerts feat: handle mine event for incoming messages (#10867) 2025-02-11 17:45:31 +05:30
CacheHelper feat: fallback to DB localStorage for idb names (#8682) 2024-01-15 15:08:15 +05:30
commandbar feat: Rewrite command bar mixin to a composable (#10015) 2024-08-26 15:55:59 +05:30
specs feat: Add twilio content templates (#12277) 2025-08-29 16:13:25 +05:30
actionCable.js feat: Add stores for copilotMessages and copilotThreads (#11603) 2025-05-27 18:36:32 -06:00
actionQueryGenerator.js fix: Unable to save automation "send email to team" (#6052) 2022-12-12 20:10:33 +05:30
agentHelper.js fix: Translate "None" option in agent assignment dropdown (#11060) 2025-03-11 14:49:27 -07:00
APIHelper.js fix: Allow users to login even if they have access to more than 15 accounts (#4475) 2022-04-14 20:54:26 +05:30
auditlogHelper.js feat: Add conversation delete feature (#11677) 2025-06-05 15:53:17 -05:00
automationHelper.js feat: Add automation rule event conversation resolved (#9669) 2025-08-13 12:57:14 +05:30
commons.js fix: Variable search item not showing after braces/commas (#11864) 2025-07-03 19:39:36 +05:30
conversationHelper.js fix: TypeError: t.messages.at is not a function (#9950) 2024-08-13 19:16:15 +05:30
customViewsHelper.js feat: Add support for frontend filtering of conversations (#11111) 2025-03-24 19:39:04 -07:00
DOMHelpers.js feat: add promise based loader for FB script (#9780) 2024-07-22 11:32:05 +05:30
downloadHelper.js feat: Add business hours in downloadable reports (#4674) 2022-05-27 09:26:59 +05:30
editorHelper.js feat: New Scenarios page (#11975) 2025-07-30 19:34:27 +05:30
featureHelper.js feat: Add frontend changes for Captain limits (#10749) 2025-01-24 09:21:09 -08:00
filterQueryGenerator.js chore: Support multiple values for automation message content (#7871) 2023-09-19 13:04:58 +05:30
flag.js chore: Replace packages with native functions (#5140) 2022-08-03 17:08:21 +05:30
inbox.js chore: Replace Thumbnail with Avatar (#12119) 2025-08-11 15:47:17 +05:30
labelColor.js feat: Create portal UI improvements (#5261) 2022-08-18 17:11:19 +05:30
permissionsHelper.js chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
portalHelper.js chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
preChat.js feat: Support Regex validation for custom attributes (#7856) 2024-01-23 18:01:57 +04:00
pushHelper.js feat: Replace alertMixin usage with useAlert (#9793) 2024-07-23 16:41:11 +05:30
ReconnectService.js feat: Vite + vue 3 💚 (#10047) 2024-10-02 00:36:30 -07:00
routeHelpers.js chore: Custom Roles to manage permissions [ UI ] (#9865) 2024-09-17 11:40:11 -07:00
scriptHelpers.js fix: Initialize SDK along with emitter registration (#10896) 2025-02-12 22:14:04 -08:00
snoozeHelpers.js feat(v4): Update Inbox view card design (#10599) 2025-01-07 21:11:54 +05:30
states.js Move src to dashboard (#152) 2019-10-16 14:36:17 +05:30
templateHelper.js feat: WhatsApp enhanced templates front end changes (#12117) 2025-08-12 18:53:19 +05:30
themeHelper.js feat: Support bigger font size in dashboard (#10974) 2025-02-27 12:10:33 +05:30
uploadHelper.js feat: Add the ability to paste images to editor (#10072) 2024-09-11 09:44:13 +05:30
URLHelper.js feat: Add twilio content templates (#12277) 2025-08-29 16:13:25 +05:30
validations.js chore: Add open conversation option (#11828) 2025-07-02 10:01:50 +05:30