Skip to content
SendOps

Templates & assets

Make every step sound like you.

From the first welcome to the last reminder, give each workflow a message worth reading. Create reusable templates, personalize them, and preview before you send.

Connect your AWS account. One flat SendOps fee.

Part of every great journey

A consistent voice across the whole journey.

Your campaign logic and email content work together. Keep the message reusable, the variables predictable, and every change easy to review.

  1. 01

    Create the message

    Author templates in the dashboard or bring rendered React Email templates from your own build.

  2. 02

    Check the real result

    Use previews and test data to review content and personalization before deployment.

  3. 03

    Reuse and improve

    Use the template in a workflow or broadcast, inspect its history, and restore an earlier version when needed.

Inside SendOps

A familiar workflow for every email template.

A developer or marketer edits a template file in the repository. The file is standard HTML with Handlebars-style variables — the same format SES uses natively.

templates/order-confirmation.html
@@ -12,5 +12,5 @@
12-<p>Hi {{first_name}},</p>
12+<p>Hi {{name}},</p>
13 <p>Order #{{order_id}} confirmed</p>
14-<a href="{{link}}">Track order</a>
14+<a href="{{tracking_url}}">Track your order</a>

The details, handled

Everything you need for templates & assets.

React Email support

Use components to author emails and bring the rendered output into your SendOps deployment workflow.

Personalization

Use template variables and contact data to make each message fit its recipient.

Previews & test data

Check variants and rendering before a customer sees the email.

Version history

See who changed a template, inspect the differences, and restore earlier content as a new version.

Assets & deployment

Manage email assets and inspect the source, deployed version, and differences between them.

Push from CI

Keep a copy in your repository and push definitions from your build process. Templates remain editable in SendOps.

For your developers

The same care as your product code.

Build with React Email, use test data for previews, and push your rendered templates from CI. Transactional and lifecycle messages share a consistent foundation.

emails/order-confirmation.tsx
// emails/order-confirmation.tsx
import { Html, Body, Heading, Text, Link, Section, Row, Column } from "@react-email/components"

type Props = {
  name: string
  orderId: string
  items: { name: string; quantity: number; price: string }[]
  trackingUrl: string
}

export default function OrderConfirmation({ name, orderId, items, trackingUrl }: Props) {
  return (
    <Html>
      <Body>
        <Heading>Order confirmed</Heading>
        <Text>Hi {name}, your order #{orderId} is confirmed.</Text>
        <Section>
          {items.map((item) => (
            <Row key={item.name}>
              <Column>{item.name}</Column>
              <Column>{item.quantity}</Column>
              <Column>{item.price}</Column>
            </Row>
          ))}
        </Section>
        <Link href={trackingUrl}>Track your order</Link>
      </Body>
    </Html>
  )
}

Keep the journey connected

Bring the next piece into place.

Your next workflow starts here

Give every customer a next step.

Connect your AWS account. Build your first journey. Make the next email count.

Free plan available. No credit card required.

Copies a setup prompt for your AI coding tool