Skip to content

Resend

Transactional email. A Piksio image goes into Resend as an ordinary image link. The platform fills in each recipient’s values, and Piksio renders their version when the email is opened.

Resend writes merge tags like {{{FIRSTNAME}}}.

Resend doesn’t URL-encode values inside links, so keep personalized fields free of & and # (they can cut the link short). If you build the email in code, use the Code output instead: it encodes every value for you.

  • Field names can be at most 50 characters.
  • These names are reserved by Resend: FIRST_NAME, LAST_NAME, EMAIL, UNSUBSCRIBE_URL, RESEND_UNSUBSCRIBE_URL.

Sending from code: use the Code snippet. Using a Resend template: declare each variable on the template, paste the HTML, and pass the values in template.variables.

Formats offered: Code, HTML, Image URL. The default for Resend is Code.

For a design with first_name and company_name, the Code looks like this:

// One Piksio image link per recipient. URLSearchParams encodes each value,
// so names like "Smith & Co" are safe. Empty values show the fallback.
function piksioImageUrl(recipient) {
const values = {
first_name: recipient.first_name,
company_name: recipient.company_name,
};
const params = new URLSearchParams();
for (const [key, value] of Object.entries(values)) {
if (value !== undefined && value !== null && value !== '') params.set(key, String(value));
}
const query = params.toString();
return `https://app.piksio.com/i/YOUR_IMAGE_ID${query ? '?' + query : ''}`;
}
// Put it in the html you pass to resend.emails.send().
const imageHtml = `<img src="${piksioImageUrl(recipient).replace(/&/g, '&amp;')}" width="600" alt="Your personalized image" style="display:block;max-width:100%;height:auto;border:0" />`;
  • Template variables without a fallback must be given a value on every send.
  1. In Use in email, use Test the link with sample values, and again with unfilled tags. Both are free.
  2. Preview one real recipient in Resend to confirm it fills in the fields.
  3. See Fallbacks and blanks for what a recipient with missing data sees.

Checked against Resend’s own documentation on 2026-10-07: