diff --git a/app/javascript/dashboard/components-next/template-preview/README.md b/app/javascript/dashboard/components-next/template-preview/README.md
deleted file mode 100644
index 38aadc1ef..000000000
--- a/app/javascript/dashboard/components-next/template-preview/README.md
+++ /dev/null
@@ -1,121 +0,0 @@
-# Template Preview System
-
-A comprehensive template preview system for WhatsApp and Twilio templates that provides real-time visual previews during template selection, campaign creation, and displays accurate rendered templates in message threads.
-
-## Features
-
-- **Multi-Platform Support**: WhatsApp and Twilio templates
-- **Real-Time Preview**: Interactive variable editing with live preview updates
-- **Template Type Detection**: Automatic detection and routing to appropriate preview components
-- **Variable Validation**: Real-time validation with error states
-- **Responsive Design**: Works across mobile and desktop
-- **Storybook Integration**: Complete component documentation and examples
-
-## Supported Template Types
-
-### WhatsApp Templates
-- **Text Templates**: Simple text with variables
-- **Media Templates**: Image/Video/Document headers with text
-- **Interactive Templates**: URL, Phone, Quick Reply buttons
-- **Copy Code Templates**: Discount/promo code functionality
-- **Combined Templates**: Media + Text + Buttons
-
-### Twilio Templates
-- **Text Templates**: Simple text with variables
-- **Media Templates**: Text + Image/Video
-- **Quick Reply Templates**: Interactive action buttons
-
-## Usage
-
-### Basic Usage
-
-```vue
-
-
-
-
-
-```
-
-### Preview Modes
-
-- **`display`**: Static preview with populated variables (for sent messages)
-- **`interactive`**: Live editing with input fields (for campaign creation)
-- **`placeholder`**: Show example values from template definition
-
-### Integration Examples
-
-See the stories in `stories/TemplatePreview.stories.js` for comprehensive examples covering all template types and use cases.
-
-## Component Architecture
-
-```
-template-preview/
-├── TemplatePreview.vue # Main container component
-├── components/ # Shared UI components
-│ ├── MessageBubble.vue # Platform-specific message bubble
-│ └── VariableInput.vue # Variable input field
-├── whatsapp/ # WhatsApp-specific previews
-│ ├── WhatsAppTextPreview.vue
-│ ├── WhatsAppMediaPreview.vue
-│ ├── WhatsAppButtonPreview.vue
-│ └── WhatsAppCopyCodePreview.vue
-├── twilio/ # Twilio-specific previews
-│ ├── TwilioTextPreview.vue
-│ ├── TwilioMediaPreview.vue
-│ └── TwilioQuickReplyPreview.vue
-└── stories/ # Storybook documentation
- └── TemplatePreview.stories.js
-```
-
-## Services & Composables
-
-- **`TemplateTypeDetector`**: Identifies template types across platforms
-- **`TemplateNormalizer`**: Converts platform-specific formats to unified structure
-- **`useTemplateVariables`**: Composable for variable management and validation
-
-## Development
-
-### Running Storybook
-
-```bash
-npm run storybook
-```
-
-### Adding New Template Types
-
-1. Add type detection logic in `TemplateTypeDetector.js`
-2. Add normalization logic in `TemplateNormalizer.js`
-3. Create preview component in appropriate platform folder
-4. Add component mapping in `TemplatePreview.vue`
-5. Add story examples in `TemplatePreview.stories.js`
-
-## Design System
-
-The system uses Chatwoot's existing design tokens and follows the established component patterns:
-
-- **Colors**: Uses `n-alpha-2`, `n-slate-12`, etc. from the design system
-- **Spacing**: Consistent with existing message bubble components
-- **Typography**: Matches WhatsApp/platform styling
-- **Buttons**: Uses existing `Button.vue` component
-
-## Testing
-
-The system includes comprehensive Storybook stories that serve as both documentation and visual regression testing. Each template type and mode combination is covered.
\ No newline at end of file
diff --git a/app/javascript/dashboard/components-next/template-preview/TemplatePreviewExamples.story.vue b/app/javascript/dashboard/components-next/template-preview/TemplatePreviewExamples.story.vue
index 19ab84012..862c8b773 100644
--- a/app/javascript/dashboard/components-next/template-preview/TemplatePreviewExamples.story.vue
+++ b/app/javascript/dashboard/components-next/template-preview/TemplatePreviewExamples.story.vue
@@ -1,602 +1,10 @@
diff --git a/app/javascript/dashboard/components-next/template-preview/templates/twillio-templates.js b/app/javascript/dashboard/components-next/template-preview/templates/twillio-templates.js
new file mode 100644
index 000000000..6257dd956
--- /dev/null
+++ b/app/javascript/dashboard/components-next/template-preview/templates/twillio-templates.js
@@ -0,0 +1,185 @@
+export const twilioTemplates = [
+ {
+ body: '=_ Introducing our latest release the {{1}}! Available now for just {{2}}. Be among the first to own this style. Limited stock available!',
+ types: {
+ 'twilio/media': {
+ body: '=_ Introducing our latest release the {{1}}! Available now for just {{2}}. Be among the first to own this style. Limited stock available!',
+ media: ['https://vite-five-phi.vercel.app/jordan-shoes.jpg'],
+ },
+ },
+ status: 'approved',
+ category: 'utility',
+ language: 'en',
+ variables: {
+ 1: 'Jordan',
+ 2: '100$',
+ },
+ content_sid: 'HX4b1ff075f097ccdf7f274b6af4d7be02',
+ friendly_name: 'shoe_launch',
+ template_type: 'media',
+ },
+ {
+ body: '=_ Introducing our latest release the {{1}}! Available now for just {{2}}. Be among the first to own this style. Limited stock available!',
+ types: {
+ 'twilio/media': {
+ body: '=_ Introducing our latest release the {{1}}! Available now for just {{2}}. Be among the first to own this style. Limited stock available!',
+ media: ['https://vite-five-phi.vercel.app/jordan-shoes.jpg'],
+ },
+ },
+ status: 'approved',
+ category: 'utility',
+ language: 'en',
+ variables: {
+ 1: 'Jordan',
+ 2: '400$',
+ },
+ content_sid: 'HXd5c1f8f8d68976f841c440d5e4b46c2e',
+ friendly_name: 'product_launch_custom_price',
+ template_type: 'media',
+ },
+ {
+ body: '=_ Introducing our latest release the Nike Air Force! Available now for just $129.99',
+ types: {
+ 'twilio/media': {
+ body: '=_ Introducing our latest release the Nike Air Force! Available now for just $129.99',
+ media: ['https://vite-five-phi.vercel.app/jordan-shoes.jpg'],
+ },
+ },
+ status: 'approved',
+ category: 'utility',
+ language: 'en',
+ variables: {},
+ content_sid: 'HX25f6e823f2416ca4b34254d98e916fae',
+ friendly_name: 'product_launch',
+ template_type: 'media',
+ },
+ {
+ body: 'Hey {{1}}, how may I help you?',
+ types: {
+ 'twilio/text': {
+ body: 'Hey {{1}}, how may I help you?',
+ },
+ },
+ status: 'approved',
+ category: 'utility',
+ language: 'en',
+ variables: {
+ 1: 'John',
+ },
+ content_sid: 'HXee240fd3a8b5045dba057feda5173e55',
+ friendly_name: 'greet',
+ template_type: 'text',
+ },
+ {
+ body: "Hi {{1}} Thanks for placing an order with us. We'll let you know once your order has been processed and delivered. Your order number is {{3}}. Thanks",
+ types: {
+ 'twilio/text': {
+ body: "Hi {{1}} Thanks for placing an order with us. We'll let you know once your order has been processed and delivered. Your order number is {{3}}. Thanks",
+ },
+ },
+ status: 'approved',
+ category: 'utility',
+ language: 'en',
+ variables: {
+ 1: 'John',
+ 3: '12345',
+ },
+ content_sid: 'HX88291ef8d30d7dcd436cbb9b21c236f4',
+ friendly_name: 'order_status',
+ template_type: 'text',
+ },
+ {
+ body: 'Welcome and congratulations!! This message demonstrates your ability to send a WhatsApp message notification from the Cloud API, hosted by Meta. Thank you for taking the time to test with us.',
+ types: {
+ 'twilio/text': {
+ body: 'Welcome and congratulations!! This message demonstrates your ability to send a WhatsApp message notification from the Cloud API, hosted by Meta. Thank you for taking the time to test with us.',
+ },
+ },
+ status: 'approved',
+ category: 'utility',
+ language: 'en',
+ variables: {},
+ content_sid: 'HXdc6da32d489ee80f67c07d5bb0e7e390',
+ friendly_name: 'hello_world',
+ template_type: 'text',
+ },
+ {
+ body: 'Thanks for reaching out to us. Before we proceed, we would like to get some information from you to assist you better. To whom would you like to connect?',
+ types: {
+ 'twilio/quick-reply': {
+ body: 'Thanks for reaching out to us. Before we proceed, we would like to get some information from you to assist you better. To whom would you like to connect?',
+ actions: [
+ {
+ id: 'Sales_payload',
+ title: 'Sales',
+ },
+ {
+ id: 'Support_payload',
+ title: 'Support',
+ },
+ ],
+ },
+ },
+ status: 'approved',
+ category: 'utility',
+ language: 'en_US',
+ variables: {},
+ content_sid: 'HX778677f5867f96175ab4b7efb9a5bee6',
+ friendly_name: 'welcome_message_new',
+ template_type: 'quick_reply',
+ },
+ {
+ body: 'What type of Chatwoot installation are you using? Select "Chatwoot Cloud" if you are using app.chatwoot.com, otherwise select "Self-hosted Chatwoot".',
+ types: {
+ 'twilio/quick-reply': {
+ body: 'What type of Chatwoot installation are you using? Select "Chatwoot Cloud" if you are using app.chatwoot.com, otherwise select "Self-hosted Chatwoot".',
+ actions: [
+ {
+ id: 'Chatwoot Cloud_payload',
+ title: 'Chatwoot Cloud',
+ },
+ {
+ id: 'Self-hosted Chatwoot_payload',
+ title: 'Self-hosted Chatwoot',
+ },
+ ],
+ },
+ },
+ status: 'approved',
+ category: 'utility',
+ language: 'en_US',
+ variables: {},
+ content_sid: 'HX3a35e5cd76529fd91d19341deb4ef685',
+ friendly_name: 'saas_whatsapp_question',
+ template_type: 'quick_reply',
+ },
+ {
+ body: 'Thanks for reaching out to us. Happy to help. What are you looking for?',
+ types: {
+ 'twilio/quick-reply': {
+ body: 'Thanks for reaching out to us. Happy to help. What are you looking for?',
+ actions: [
+ {
+ id: 'Support_payload',
+ title: 'Support',
+ },
+ {
+ id: 'Sales_payload',
+ title: 'Sales',
+ },
+ {
+ id: 'Demo_payload',
+ title: 'Demo',
+ },
+ ],
+ },
+ },
+ status: 'approved',
+ category: 'utility',
+ language: 'en_US',
+ variables: {},
+ content_sid: 'HX5d8e09f96cee2f7fb7bab223c03cb0a1',
+ friendly_name: 'welcome_message',
+ template_type: 'quick_reply',
+ },
+];
diff --git a/app/javascript/dashboard/components-next/template-preview/templates/whatsapp-templates.js b/app/javascript/dashboard/components-next/template-preview/templates/whatsapp-templates.js
new file mode 100644
index 000000000..ebb68b850
--- /dev/null
+++ b/app/javascript/dashboard/components-next/template-preview/templates/whatsapp-templates.js
@@ -0,0 +1,408 @@
+export const whatsAppTemplates = [
+ {
+ id: '1381151706284063',
+ name: 'event_invitation_static',
+ status: 'APPROVED',
+ category: 'MARKETING',
+ language: 'en',
+ components: [
+ {
+ text: "You're invited to {{event_name}} at {{location}}, Join us for an amazing experience!",
+ type: 'BODY',
+ example: {
+ body_text_named_params: [
+ {
+ example: 'F1',
+ param_name: 'event_name',
+ },
+ {
+ example: 'Dubai',
+ param_name: 'location',
+ },
+ ],
+ },
+ },
+ {
+ type: 'BUTTONS',
+ buttons: [
+ {
+ url: 'https://events.example.com/register',
+ text: 'Visit website',
+ type: 'URL',
+ },
+ {
+ url: 'https://maps.app.goo.gl/YoWAzRj1GDuxs6qz8',
+ text: 'Get Directions',
+ type: 'URL',
+ },
+ ],
+ },
+ ],
+ sub_category: 'CUSTOM',
+ parameter_format: 'NAMED',
+ },
+ {
+ id: '767076159336759',
+ name: 'purchase_receipt',
+ status: 'APPROVED',
+ category: 'UTILITY',
+ language: 'en_US',
+ components: [
+ {
+ type: 'HEADER',
+ format: 'DOCUMENT',
+ example: {
+ header_handle: [
+ 'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf',
+ ],
+ },
+ },
+ {
+ text: 'Thank you for using your {{1}} card at {{2}}. Your {{3}} is attached as a PDF.',
+ type: 'BODY',
+ example: {
+ body_text: [['credit', 'CS Mutual', 'receipt']],
+ },
+ },
+ ],
+ parameter_format: 'POSITIONAL',
+ },
+ {
+ id: '1469258364071127',
+ name: 'discount_coupon',
+ status: 'APPROVED',
+ category: 'MARKETING',
+ language: 'en',
+ components: [
+ {
+ text: '<� Special offer for you! Get {{discount_percentage}}% off your next purchase. Use the code below at checkout',
+ type: 'BODY',
+ example: {
+ body_text_named_params: [
+ {
+ example: '30',
+ param_name: 'discount_percentage',
+ },
+ ],
+ },
+ },
+ {
+ type: 'BUTTONS',
+ buttons: [
+ {
+ text: 'Copy offer code',
+ type: 'COPY_CODE',
+ example: ['SAVE1OFF'],
+ },
+ ],
+ },
+ ],
+ sub_category: 'CUSTOM',
+ parameter_format: 'NAMED',
+ },
+ {
+ id: '1075221534579807',
+ name: 'support_callback',
+ status: 'APPROVED',
+ category: 'UTILITY',
+ language: 'en',
+ components: [
+ {
+ text: 'Hello {{name}}, our support team will call you regarding ticket # {{ticket_id}}.',
+ type: 'BODY',
+ example: {
+ body_text_named_params: [
+ {
+ example: 'muhsin',
+ param_name: 'name',
+ },
+ {
+ example: '232323',
+ param_name: 'ticket_id',
+ },
+ ],
+ },
+ },
+ {
+ type: 'BUTTONS',
+ buttons: [
+ {
+ text: 'Call Support',
+ type: 'PHONE_NUMBER',
+ phone_number: '+16506677566',
+ },
+ ],
+ },
+ ],
+ sub_category: 'CUSTOM',
+ parameter_format: 'NAMED',
+ },
+ {
+ id: '1023596726651144',
+ name: 'training_video',
+ status: 'APPROVED',
+ category: 'MARKETING',
+ language: 'en',
+ components: [
+ {
+ type: 'HEADER',
+ format: 'VIDEO',
+ example: {
+ header_handle: [
+ 'https://scontent.whatsapp.net/v/t61.29466-34/521582686_1023596729984477_1872358575355618432_n.mp4',
+ ],
+ },
+ },
+ {
+ text: "Hi {{name}}, here's your training video. Please watch by{{date}}.",
+ type: 'BODY',
+ example: {
+ body_text_named_params: [
+ {
+ example: 'john',
+ param_name: 'name',
+ },
+ {
+ example: 'July 31',
+ param_name: 'date',
+ },
+ ],
+ },
+ },
+ ],
+ sub_category: 'CUSTOM',
+ parameter_format: 'NAMED',
+ },
+ {
+ id: '1106685194739985',
+ name: 'order_confirmation',
+ status: 'APPROVED',
+ category: 'MARKETING',
+ language: 'en',
+ components: [
+ {
+ type: 'HEADER',
+ format: 'IMAGE',
+ example: {
+ header_handle: ['https://vite-five-phi.vercel.app/vaporfly.png'],
+ },
+ },
+ {
+ text: 'Hi your order {{1}} is confirmed. Please wait for further updates',
+ type: 'BODY',
+ example: {
+ body_text: [['blue canvas shoes']],
+ },
+ },
+ ],
+ sub_category: 'CUSTOM',
+ parameter_format: 'POSITIONAL',
+ },
+ {
+ id: '1242180011253003',
+ name: 'product_launch',
+ status: 'APPROVED',
+ category: 'MARKETING',
+ language: 'en',
+ components: [
+ {
+ type: 'HEADER',
+ format: 'IMAGE',
+ example: {
+ header_handle: ['https://vite-five-phi.vercel.app/coat.png'],
+ },
+ },
+ {
+ text: 'New arrival! Our stunning coat now available in {{color}} color.',
+ type: 'BODY',
+ example: {
+ body_text_named_params: [
+ {
+ example: 'blue',
+ param_name: 'color',
+ },
+ ],
+ },
+ },
+ {
+ text: 'Free shipping on orders over $100. Limited time offer.',
+ type: 'FOOTER',
+ },
+ ],
+ sub_category: 'CUSTOM',
+ parameter_format: 'NAMED',
+ },
+ {
+ id: '1449876326175680',
+ name: 'technician_visit',
+ status: 'APPROVED',
+ category: 'UTILITY',
+ language: 'en_US',
+ components: [
+ {
+ text: 'Technician visit',
+ type: 'HEADER',
+ format: 'TEXT',
+ },
+ {
+ text: "Hi {{1}}, we're scheduling a technician visit to {{2}} on {{3}} between {{4}} and {{5}}. Please confirm if this time slot works for you.",
+ type: 'BODY',
+ example: {
+ body_text: [
+ ['John', '123 Maple St', '2025-12-31', '10:00 AM', '2:00 PM'],
+ ],
+ },
+ },
+ {
+ type: 'BUTTONS',
+ buttons: [
+ {
+ text: 'Confirm',
+ type: 'QUICK_REPLY',
+ },
+ {
+ text: 'Reschedule',
+ type: 'QUICK_REPLY',
+ },
+ ],
+ },
+ ],
+ parameter_format: 'POSITIONAL',
+ },
+ {
+ id: '997298832221901',
+ name: 'greet',
+ status: 'APPROVED',
+ category: 'MARKETING',
+ language: 'en',
+ components: [
+ {
+ text: 'Hey {{customer_name}} how may I help you?',
+ type: 'BODY',
+ example: {
+ body_text_named_params: [
+ {
+ example: 'John',
+ param_name: 'customer_name',
+ },
+ ],
+ },
+ },
+ ],
+ sub_category: 'CUSTOM',
+ parameter_format: 'NAMED',
+ },
+ {
+ id: '632315222954611',
+ name: 'hello_world',
+ status: 'APPROVED',
+ category: 'UTILITY',
+ language: 'en_US',
+ components: [
+ {
+ text: 'Hello World',
+ type: 'HEADER',
+ format: 'TEXT',
+ },
+ {
+ text: 'Welcome and congratulations!! This message demonstrates your ability to send a WhatsApp message notification from the Cloud API, hosted by Meta. Thank you for taking the time to test with us.',
+ type: 'BODY',
+ },
+ {
+ text: 'WhatsApp Business Platform sample message',
+ type: 'FOOTER',
+ },
+ ],
+ parameter_format: 'POSITIONAL',
+ },
+ {
+ id: '787864066907971',
+ name: 'feedback_request',
+ status: 'APPROVED',
+ category: 'MARKETING',
+ language: 'en',
+ components: [
+ {
+ text: "Hey {{name}}, how was your experience with Puma? We'd love your feedback!",
+ type: 'BODY',
+ example: {
+ body_text_named_params: [
+ {
+ example: 'muhsin',
+ param_name: 'name',
+ },
+ ],
+ },
+ },
+ {
+ type: 'BUTTONS',
+ buttons: [
+ {
+ url: 'https://feedback.example.com/survey',
+ text: 'Leave Feedback',
+ type: 'URL',
+ },
+ ],
+ },
+ ],
+ sub_category: 'CUSTOM',
+ parameter_format: 'NAMED',
+ },
+ {
+ id: '1938057163677205',
+ name: 'address_update',
+ status: 'APPROVED',
+ category: 'UTILITY',
+ language: 'en_US',
+ components: [
+ {
+ text: 'Address update',
+ type: 'HEADER',
+ format: 'TEXT',
+ },
+ {
+ text: 'Hi {{1}}, your delivery address has been successfully updated to {{2}}. Contact {{3}} for any inquiries.',
+ type: 'BODY',
+ example: {
+ body_text: [['John', '123 Main St', 'support@telco.com']],
+ },
+ },
+ ],
+ parameter_format: 'POSITIONAL',
+ },
+ {
+ id: '1644094842949394',
+ name: 'delivery_confirmation',
+ status: 'APPROVED',
+ category: 'UTILITY',
+ language: 'en_US',
+ components: [
+ {
+ text: '{{1}}, your order was successfully delivered on {{2}}.\\n\\nThank you for your purchase.\\n',
+ type: 'BODY',
+ example: {
+ body_text: [['John', 'Jan 1, 2024']],
+ },
+ },
+ ],
+ parameter_format: 'POSITIONAL',
+ },
+];
+
+// Helper function to get variable values from examples
+export const getWhatsAppVariables = template => {
+ const variables = {};
+ template.components?.forEach(component => {
+ if (component.example?.body_text_named_params) {
+ component.example.body_text_named_params.forEach(param => {
+ variables[param.param_name] = param.example;
+ });
+ }
+ if (component.example?.body_text) {
+ component.example.body_text[0]?.forEach((value, index) => {
+ variables[(index + 1).toString()] = value;
+ });
+ }
+ });
+ return variables;
+};