Relay SMS Platform
Template Features

Validation

Templates include built-in validation to catch errors before sending.

Basic Validation

TypeScriptCode
import { getTemplate, validateTemplateData } from '@relay-works/templates'; const template = getTemplate('otp-verify'); // Validate your data const validation = validateTemplateData(template, { code: '123', // Too short! company: 'A'.repeat(50) // Too long! }); if (!validation.valid) { validation.errors.forEach(error => { console.log(`${error.field}: ${error.message}`); console.log(`Suggestion: ${error.suggestion}`); }); } // Output: // code: Must be exactly 6 characters // Suggestion: Use a 6-digit verification code // company: Must be 20 characters or less // Suggestion: Use a shorter company name or abbreviation

Validation Response

The validateTemplateData function returns:

TypeScriptCode
{ valid: boolean; errors?: Array<{ field: string; message: string; suggestion: string; }>; }

Common Validation Rules

String Length

  • company - Maximum 20 characters
  • code - Exactly 6 characters for OTP codes
  • url - Maximum 50 characters (use URL shorteners)

Number Ranges

  • minutes - Must be positive number
  • itemCount - Must be positive integer

Format Requirements

  • amount - String format (e.g., "49.99")
  • last4 - Exactly 4 digits
  • trackingNumber - Varies by carrier

Validation in Production

Always validate before sending:

TypeScriptCode
async function sendTemplatedMessage( templateId: string, data: any, recipient: string ) { const template = getTemplate(templateId); // Validate first const validation = validateTemplateData(template, data); if (!validation.valid) { throw new Error(`Validation failed: ${JSON.stringify(validation.errors)}`); } // Render and send const result = renderTemplate(template, data); return await relay.messages.send({ to: recipient, message: result.text }); }

Next Steps:

Last modified on