Skip to content

Amazon Pinpoint migration

Move your Amazon Pinpoint email templates to Amazon SES.

Last updated 30 September 2026

Amazon Pinpoint support ends on October 30, 2026, and AWS recommends Amazon SES for email. Here’s how to get your email templates out of Pinpoint and into SES, with a visual editor for the part that usually hurts.

What’s changing

AWS is ending support for Amazon Pinpoint on October 30, 2026. After that date, the Pinpoint console and Pinpoint resources (endpoints, segments, campaigns, journeys, and analytics) are no longer available. Pinpoint stopped accepting new customers on May 20, 2025.

AWS’s guidance splits by what you use Pinpoint for:

  • Email: migrate to Amazon SES. Pinpoint’s deliverability dashboard is replaced by SES Virtual Deliverability Manager.
  • Campaigns, journeys, segments: Amazon Connect outbound campaigns and Customer Profiles.
  • SMS, voice, push, OTP: these APIs continue under AWS End User Messaging.

Export your templates before October 30, 2026. Once the console and resources are gone, so is the easy way to copy template content out.

Source: Amazon Pinpoint end of support (AWS documentation).

What carries over to SES

The good news for email: Pinpoint message templates and SES stored templates both render with Handlebars. Your HTML, {{#if}} conditions, and {{#each}} loops carry over. SES also supports nested attribute paths and inline partials (SES advanced personalization).

Three things change:

  1. Placeholder data. Pinpoint filled placeholders like {{User.UserAttributes.FirstName}} from its own endpoint records. SES fills them from the TemplateData JSON your code sends.
  2. Template fields. Pinpoint uses Subject, HtmlPart, and TextPart. SES v2 uses TemplateContent with Subject, Html, and Text.
  3. Who sends. Pinpoint campaigns and journeys sent for you. With SES, your application calls SendEmail or SendBulkEmail with a template name.

Export your Pinpoint templates

Use the AWS CLI with credentials for the account and Region your Pinpoint project lives in:

# List every email template in the account and Region
aws pinpoint list-templates --template-type EMAIL

# Save one template's HTML body to a file
aws pinpoint get-email-template \
  --template-name welcome \
  --query 'EmailTemplateResponse.HtmlPart' \
  --output text > welcome.html

# Keep the full response too: Subject, TextPart, and DefaultSubstitutions
aws pinpoint get-email-template --template-name welcome > welcome.json

Repeat for each template, or script it over the list-templates output. Keep the full JSON: DefaultSubstitutions holds the default values Pinpoint used for placeholders, which make good sample data later.

If you’d rather automate the conversion, AWS publishes a sample Pinpoint to SES v2 template migrator that rewrites placeholders and template fields. You can still use Huskar Send afterwards to review, preview, and maintain the result.

Map Pinpoint placeholders

You have two options. Pick one convention and use it across all your templates.

Pinpoint placeholderKeep the path in SESOr flatten it
{{User.UserAttributes.FirstName}}{{User.UserAttributes.FirstName}}{{firstName}}
{{Attributes.PlanName}}{{Attributes.PlanName}}{{planName}}
{{User.UserId}}{{User.UserId}}{{userId}}
  • Keep the path if you want the smallest template diff. Your sending code then builds TemplateData with the same nesting, for example {"User":{"UserAttributes":{"FirstName":"Ada"}}}.
  • Flatten if you’re rewriting the sending code anyway. Short names are easier to read in the editor and in TemplateData.

Pinpoint stored endpoint attributes as lists of values. In SES you pass TemplateData yourself, so send plain values, or arrays only where the template loops over them with {{#each}}.

Import, fix, and preview

This is where most migrations stall: raw HTML with dozens of placeholders, no way to see what it looks like with real data, and a JSON file to hand-edit. In Huskar Send:

  1. Open the editor (no account needed) and import the HTML you exported. Imported HTML becomes a code template with a live preview.
  2. Rename placeholders to your chosen convention.
  3. Add a sample data profile using the values from DefaultSubstitutions, then preview in Gmail, Apple Mail, and Outlook frames on desktop and mobile.
  4. Want blocks instead of raw HTML? Start from a starter and rebuild the email visually, keeping conditions and loops as real Handlebars.

Publish to Amazon SES

Two ways to get the template into SES:

  • Publish from Huskar Send. Sign in, connect your AWS account through an IAM role you create with our CloudFormation template, and publish. Publish creates or updates the SES template. See how connecting works and the security model.
  • Export and deploy yourself. Export SES template JSON (this works as a guest too) and create the template with the AWS CLI:
{
  "TemplateName": "welcome",
  "TemplateContent": {
    "Subject": "Welcome aboard, {{firstName}}",
    "Html": "<h1>Welcome aboard, {{firstName}}</h1> ...",
    "Text": "Welcome aboard, {{firstName}} ..."
  }
}
aws sesv2 create-email-template --cli-input-json file://welcome-ses.json

Update your sending code

Where Pinpoint campaigns or SendMessages calls used to send, call SES with the template name and the data for its placeholders:

{
  "FromEmailAddress": "Northwind <hello@northwind.example>",
  "Destination": { "ToAddresses": ["ada@example.com"] },
  "Content": {
    "Template": {
      "TemplateName": "welcome",
      "TemplateData": "{ \"firstName\": \"Ada\", \"planName\": \"Team\" }"
    }
  },
  "ConfigurationSetName": "transactional"
}
aws sesv2 send-email --cli-input-json file://send.json

AWS recommends a configuration set that publishes Rendering Failure events to Amazon SNS: SES can accept a message whose template data doesn’t render and then fail to deliver it, and those events tell you which one (SES templates guide). Note that SES doesn’t HTML-escape values when rendering the HTML part, so escape user-entered data before sending.

Migration checklist

  • List every Pinpoint email template and export it, including DefaultSubstitutions.
  • Choose a placeholder convention: keep Pinpoint paths or flatten.
  • Check each template is under SES’s 500 KB limit (HTML and text combined). SES allows up to 20,000 stored templates per Region.
  • Verify your sending domain and identities in SES, and request production access if the account is still in the SES sandbox.
  • Set up a configuration set for click and open tracking and Rendering Failure events.
  • Preview every template with realistic data, including empty and missing values.
  • Publish the templates to SES and switch your sending code to SendEmail or SendBulkEmail.
  • Send test messages to Gmail, Apple Mail, and Outlook before cutting over.

FAQ

When does Amazon Pinpoint support end?

AWS ends support for Amazon Pinpoint on October 30, 2026. After that date you can no longer access the Pinpoint console or Pinpoint resources such as endpoints, segments, campaigns, journeys, and analytics. Pinpoint stopped accepting new customers on May 20, 2025.

What does AWS recommend for email after Pinpoint?

If you use Amazon Pinpoint to send email, AWS recommends migrating to Amazon Simple Email Service (SES). Engagement features such as campaigns and journeys map to Amazon Connect outbound campaigns, and SMS, voice, and push continue under AWS End User Messaging.

Do Amazon Pinpoint email templates work in Amazon SES?

Mostly. Both use Handlebars, so conditions, loops, and most markup carry over. What changes is the placeholder data (Pinpoint paths such as User.UserAttributes.FirstName) and the template fields: Pinpoint uses Subject, HtmlPart, and TextPart, while SES v2 uses TemplateContent with Subject, Html, and Text.

Can Huskar Send import templates directly from Pinpoint?

No. Export the HTML from Pinpoint with the AWS CLI or console, then import it into Huskar Send as a code template. From there you can fix placeholders, preview with sample data, and publish to SES.

Does Huskar Send replace Pinpoint campaigns and journeys?

No. Huskar Send designs and publishes Amazon SES email templates. It does not send email, manage lists, or run campaigns. Your application or another tool sends through SES using the templates you publish.

What are the Amazon SES template limits?

You can create up to 20,000 stored email templates in each AWS Region, and each template can be up to 500 KB including both the HTML and text parts.