Combine templates with the Messages API to send professional SMS messages.
Basic Integration
import { getTemplate, renderTemplate } from '@relay-works/templates';
import { RelayAPI } from '@relay-works/sdk-js';
const relay = new RelayAPI({ apiKey: process.env.RELAY_API_KEY! });
async function sendOTP(phoneNumber: string, code: string) {
// Get and render template
const template = getTemplate('otp-verify');
const result = renderTemplate(template, {
code,
company: 'Acme'
});
// Send via Relay
const message = await relay.messages.send({
to: phoneNumber,
message: result.text,
from: process.env.RELAY_PHONE_NUMBER!
});
console.log(`Sent ${result.segments} segment(s)`);
return message;
}
// Usage
await sendOTP('+15551234567', '482916');
Next.js Server Actions
// app/actions/send-otp.ts
'use server';
import { getTemplate, renderTemplate } from '@relay-works/templates';
import { RelayAPI } from '@relay-works/sdk-js';
export async function sendOTP(phoneNumber: string, code: string) {
const relay = new RelayAPI({ apiKey: process.env.RELAY_API_KEY! });
// Get and render template
const template = getTemplate('otp-verify');
const result = renderTemplate(template, {
code,
company: 'Acme'
});
// Send via Relay
const message = await relay.messages.send({
to: phoneNumber,
message: result.text,
from: process.env.RELAY_PHONE_NUMBER!
});
return { success: true, segments: result.segments };
}
Error Handling
Always validate template data and handle sending errors gracefully:
import { validateTemplateData, renderTemplate } from '@relay-works/templates';
async function sendTemplate(templateId: string, data: any, recipient: string) {
const template = getTemplate(templateId);
// Validate first
const validation = validateTemplateData(template, data);
if (!validation.valid) {
console.error('Validation failed:', validation.errors);
return { success: false, errors: validation.errors };
}
// Render
const result = renderTemplate(template, data);
// Send
try {
const message = await relay.messages.send({
to: recipient,
message: result.text
});
return { success: true, messageId: message.id };
} catch (error) {
console.error('Send failed:', error);
return { success: false, error: error.message };
}
}
Next Steps:
Last modified on