General step-by-step guide

Here's how you can create a data-only send for Braze.

  1. Create a template

Log in to Braze and create an email template. Use placeholder variables where dynamic content should go. For example:

<p>Hey {{ first_name }},</p>
<p>We have a special offer just for you!</p>
<p>Use {{ offer_code }} to get 10% off your next purchase!</p>
  1. Find the template ID

Once the template is created, you can get the template ID by viewing the template in the Braze dashboard.

  • Log in to Braze and navigate to the "Campaigns" or "Email Templates" section from the main dashboard.
  • Click on “Email Templates” (or go directly to the "Templates" section if you're in the "Campaigns" tab).
  • You will see a list of your email templates. Click on the template you want to use.
  • Once inside the template editor, you'll see the template ID in the "settings" area of the "template details" page.

(Alternate Method)

If you have your private API key handy, you can also use Braze's API to list the IDs of all your email templates.

GET https://your-api.braze.com/templates/email

The response will look something like this:

{
  "data": [
    {
      "template_id": "YOUR_TEMPLATE_ID_1",
      "template_name": "Welcome Email",
      "subject": "Welcome to our Service",
      "from": "[email protected]"
    },
    {
      "template_id": "YOUR_TEMPLATE_ID_2",
      "template_name": "Discount Offer",
      "subject": "Special Offer Just for You!",
      "from": "[email protected]"
    }
  ]
}
  1. Prepare the payload

Create a properly formatted JSON structure. Include the template ID and the variables that will populate the placeholders. Note, the "recipients" field takes in an array. You can have multiple recipients, each with different dynamic fields.

{
  "recipients": [
    {
      "external_user_id": "john.doe@exam",
      "first_name": "John",
      "offer_code": "DISCOUNT123"
    },
    {
      "external_user_id": "[email protected]",
      "first_name": "Jane",
      "offer_code": "SUMMER2024"
    }
  ],
  "template_id": "T-12345abc-6789-def0-1234-ghij56789klm",
  "from": "[email protected]",
  "subject": "Your Special Offer Inside!"
}

Field Guide

{{first_name}} will become "John" for the first recipient and "Jane" for the second recipient.
{{offer_code}} will become "DISCOUNT123" for the first recipient and "SUMMER2024" for the second recipient.
external_user_id: The id of the user you want to send to.
template_id: The ID of your Braze template.
from: The email address you want to send from.
subject: The subject of the email.
  1. Send the request

POST the payload to Wunderkind.

POST https://api-gateway.wunderkind.co/v1/inbox/sendemail

If everything is set up correctly, you'll get a response that looks like this:

{
  "status": "success",
  "message": "Emails sent successfully",
  "data": {
    "recipients_sent": 2,
    "email_campaign_id": "1234567890"
  }
}

Response Guide

200 OK: Success (email sent successfully).
4xx: Client-side errors (e.g., missing required fields).
5xx: Server-side errors (e.g., temporary issues with the Braze API server).

And that's it. You just created a data-only send! 🎉