services/TemplateNormalizer.js

chatwoot · app/javascript/dashboard/services/TemplateNormalizer.js · javascript · MIT
voice, ui, tag:embed-classified

Normalizes WhatsApp and Twilio templates into a unified structure for use.

// Source: https://github.com/chatwoot/chatwoot | License: MIT | Copyright 2017-2026 Chatwoot Inc
// Provided via justclaw.it.com; keep this notice with the code.
import { TemplateTypeDetector } from './TemplateTypeDetector';
import {
  PLATFORMS,
  TWILIO_TYPE_PREFIX,
  WA_COMPONENT_TYPES,
  WA_PARAM_FORMATS,
} from './TemplateConstants';

/**
 * TemplateNormalizer - Convert platform-specific formats to unified structure
 */
export class TemplateNormalizer {
  static normalizeWhatsApp(template) {
    const components = template.components || [];

    return {
      id: template.id,
      name: template.name,
      platform: PLATFORMS.WHATSAPP,
      type: TemplateTypeDetector.detectWhatsAppType(template),
      parameterFormat: template.parameter_format || WA_PARAM_FORMATS.POSITIONAL,
   

... (truncated -- full source via MCP)

See the full source, get the GitHub permalink, and search for more like it.

Get a free API key