EmailElement Docs

Transactional Email Walkthrough

Prerequisites

  • At least one active Send Integration
  • An API key with Transactional Email API set to Full Access
  • An API client such as Postman, cURL, or your application code

Step 1: Create a Transactional Relay

  1. Navigate to Transactional Emails from the sidebar
  2. Click Create Transactional Relay
  3. Enter a Name, for example "Password Reset Relay"
  4. Select a Send Integration. This decides which ESP sends the email
  5. Optionally add Suppression Lists. Email to an address on one of them is blocked
  6. Optionally enable Bot Protection
  7. Click Save
  8. Copy the generated Transactional Relay ID. Every API call needs it

Step 2: Configure API Key Permissions

  1. Navigate to Account > API Keys
  2. Click an existing key, or Add to create one
  3. Set Transactional Email API to Full Access
  4. Click Save, then Copy

Step 3: Build the API Request

  1. Navigate to API Documentation > Transactional Email API
  2. The page lists every field with its type, whether it is required, and its size limit
  3. Tick the fields you want in the POST Request Generator. to.email, subject and transactionRelayId are required, and you need at least one of HTML Body, Text Body or Template ID
  4. Copy the Request URL and Request Body
  5. Scroll to the response list. It gives every code this call returns with an example body

Step 4: Send a Transactional Email

Using Postman

  1. Create a POST request
  2. Paste the Request URL
  3. Add header x-api-key with your API key
  4. Under Body > Raw > JSON, paste the request body
  5. Fill in to.email, subject, your content, and transactionRelayId
  6. Click Send

Using cURL

curl -X POST "https://transactional.emailelement.com/api/Email"   -H "x-api-key: YOUR_API_KEY"   -H "Content-Type: application/json"   -d '{
    "to": { "name": "Jane Doe", "email": "jane.doe@example.com" },
    "subject": "Your order confirmation",
    "transactionRelayId": 42,
    "htmlBody": "<h1>Thank you for your order</h1>"
  }'

to is an object. There is no top-level email field.

Step 5: Verify

  1. A 200 means the email was accepted and queued
  2. Keep the messageId from the response. It is the run id, and it is what ties webhook events back to this request
  3. Check Delivery Events to follow the send. The relay name appears in the event details

Optional Fields Worth Knowing

Field What it does
from An object with name and localPart. fromName still works but is only there for older integrations
substitutions Key-value pairs. Each key in the content is replaced by its value
delaySeconds Hold the send for up to 43199 seconds, which is 12 hours
triggerId Start a triggered sequence whose trigger event is Transactional Email API
attachments filename, contentType and Base64 content
trackId1 to trackId5 Your own reference values, at most 255 characters each

The API does not accept replyTo, cc or bcc. Those fields are not in the request model. If someone asks for them, say the field does not exist rather than guessing at a spelling.

Size Limits

  • htmlBody and textBody: 1 MB each
  • Attachments: 20 MB across all of them, measured on the Base64 text, not the original files. Base64 is about a third larger than the bytes it encodes, so roughly 15 MB of actual files is the real ceiling

Managing Transactional Relays

  • View all relays on the Transactional Emails page
  • Edit a relay to change the Send Integration, Suppression Lists or Bot Protection
  • Delete a relay when it is no longer needed. API calls using that relay id will fail afterwards
  • Each relay works on its own. Use separate relays for different kinds of transactional email
Something went wrong. Reloading the page usually fixes it. Reload ×

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.