Substitution and Section Tags

If you prefer to use Twilio SendGrid Dynamic Transactional Templates and Marketing Campaigns designs, use Handlebars.

Simple Name Substitution

This example will show you how to create a name substitution for your emails. We will be using the tag -name- in this example. In this example, the tag -name- will get replaced with the name of the recipient.

Email Content

Hello -name-,

HTML

<html>
  <head></head>
  <body>
    <p>Hello -name-,<br /></p>
  </body>
</html>

X-SMTPAPI Header

{
  "to": ["john@domain.com", "jane@domain.com", "matt@domain.com"],
  "sub": {
    "-name-": ["John", "Jane", "Matt"]
  }
}

v3 Mail Send

{
  "personalizations": [
    {
      "to": [
        {
          "email": "john@domain.com",
          "name": "John"
        }
      ],
      "subject": "Example 01",
      "substitutions": {
        "-name-": "John"
      }
    },
    {
      "to": [
        {
          "email": "jane@domain.com",
          "name": "Jane"
        }
      ],
      "subject": "Example 02",
      "substitutions": {
        "-name-": "Jane"
      }
    },
    {
      "to": [
        {
          "email": "matt@domain.com",
          "name": "Matt"
        }
      ],
      "subject": "Example 03",
      "substitutions": {
        "-name-": "Matt"
      }
    }
  ],
  "from": {
    "email": "sender@senddomain.com",
    "name": "Sender"
  },
  "reply_to": {
    "email": "sender@senddomain.com",
    "name": "Sender"
  },
  "subject": "Example",
  "content": [
    {
      "type": "text/plain",
      "value": "Hello -name-,"
    },
    {
      "type": "text/html",
      "value": "Hello -name-,"
    }
  ]
}

Example Outcome:

john@domain.com

Text

Hello John,

HTML

<html>
  <head></head>
  <body>
    <p>Hello John,<br /></p>
  </body>
</html>

Example Outcome:

jane@domain.com

Text

Hello Jane,

HTML

<html>
  <head></head>
  <body>
    <p>Hello Jane,<br /></p>
  </body>
</html>

Example Outcome:

matt@domain.com

Text

Hello Matt,

HTML

<html>
  <head></head>
  <body>
    <p>Hello Matt,<br /></p>
  </body>
</html>

First Name and Last Name Substitutions

This example will show you how to create a first name and last name substitution for your emails. We will be using the tags -first_name- and -last_name- in this example. In this example the tag -first_name- will get replaced with the first name of the recipient and the tag -last_name- will get replaced with the last name of the recipient.

Text

Hello -first_name-  -last_name-,

HTML

<html>
  <head></head>
  <body>
    <p>Hello -first_name- -last_name-,<br /></p>
  </body>
</html>

X-SMTPAPI Header

{
  "to": [
    "john.smith@domain.com",
    "jane.williams@domain.com",
    "matt.johnson@domain.com"
  ],
  "sub": {
    "-first_name-": ["John", "Jane", "Matt"],
    "-last_name-": ["Smith", "Williams", "Johnson"]
  }
}

v3 Mail Send

{
  "personalizations": [
    {
      "to": [
        {
          "email": "john.smith@domain.com",
          "name": "John Smith"
        }
      ],
      "subject": "Example 01",
      "substitutions": {
        "-first_name-": "John",
        "-last_name-": "Smith"
      }
    },
    {
      "to": [
        {
          "email": "jane.williams@domain.com",
          "name": "Jane Williams"
        }
      ],
      "subject": "Example 02",
      "substitutions": {
        "-first_name-": "Jane",
        "-last_name-": "Williams"
      }
    },
    {
      "to": [
        {
          "email": "matt.johnson@domain.com",
          "name": "Matt Johnson"
        }
      ],
      "subject": "Example 03",
      "substitutions": {
        "-first_name-": "Matt",
        "-last_name-": "Johnson"
      }
    }
  ],
  "from": {
    "email": "sender@senddomain.com",
    "name": "Sender"
  },
  "reply_to": {
    "email": "sender@senddomain.com",
    "name": "Sender"
  },
  "subject": "Example",
  "content": [
    {
      "type": "text/plain",
      "value": "Hello -first_name- -last_name-,"
    },
    {
      "type": "text/html",
      "value": "Hello -first_name- -last_name-,"
    }
  ]
}

Example Outcome:

john.smith@domain.com

Text

Hello John Smith,

HTML

<html>
  <head></head>
  <body>
    <p>Hello John Smith,<br /></p>
  </body>
</html>

Example Outcome:

jane.williams@domain.com

Text

Hello Jane Williams,

HTML

<html>
  <head></head>
  <body>
    <p>Hello Jane Williams,<br /></p>
  </body>
</html>

Example Outcome:

matt.johnson@domain.com

Text

Hello Matt Johnson,

HTML

<html>
  <head></head>
  <body>
    <p>Hello Matt Johnson,<br /></p>
  </body>
</html>

Simple Greeting Section with Name Substitution

Due to low usage, the Section Tags feature has been deprecated. It will be fully removed on 06/22/2020. Click here for more information.

This example will show you how to create a section as a greeting with a name substitution. We will be using the tags -warm_welcome-, -greeting- and -name- in this example. In this example, we have created a greeting using the section tag -warm_welcome-. The -warm_welcome- tag is replaced with the -greeting- substitution which calls the section "Hello -name-,". The -name- tag in "Hello -name-," is then replaced with the recipient's name.

Text

-warm_welcome-

HTML

<html>
  <head></head>
  <body>
    <p>-warm_welcome-<br /></p>
  </body>
</html>

X-SMTPAPI Header

{
  "to": ["john@domain.com", "jane@domain.com", "matt@domain.com"],
  "sub": {
    "-name-": ["John", "Jane", "Matt"],
    "-warm_welcome-": ["-greeting-", "-greeting-", "-greeting-"]
  },
  "section": {
    "-greeting-": "Hello -name-,"
  }
}

v3 Mail Send

{
  "personalizations": [
    {
      "to": [
        {
          "email": "john@domain.com",
          "name": "John"
        }
      ],
      "subject": "Example 01",
      "substitutions": {
        "-name-": "John",
        "-warm_welcome-": "-greeting-"
      }
    },
    {
      "to": [
        {
          "email": "jane@domain.com",
          "name": "Jane"
        }
      ],
      "subject": "Example 02",
      "substitutions": {
        "-name-": "Jane",
        "-warm_welcome-": "-greeting-"
      }
    },
    {
      "to": [
        {
          "email": "matt@domain.com",
          "name": "Matt"
        }
      ],
      "subject": "Example 03",
      "substitutions": {
        "-name-": "Matt",
        "-warm_welcome-": "-greeting-"
      }
    }
  ],
  "from": {
    "email": "sender@senddomain.com",
    "name": "Sender"
  },
  "reply_to": {
    "email": "sender@senddomain.com",
    "name": "Sender"
  },
  "subject": "Example",
  "content": [
    {
      "type": "text/plain",
      "value": "-warm_welcome-"
    },
    {
      "type": "text/html",
      "value": "<html>\n  <head></head>\n  <body>\n    <p>-warm_welcome-<br>\n    </p>\n   </body>\n</html>"
    }
  ],
  "sections": {
    "-greeting-": "Welcome -name-,"
  }
}

Example Outcome:

john@domain.com

Text

Hello John,

HTML

<html>
  <head></head>
  <body>
    <p>Hello John,<br /></p>
  </body>
</html>

Example Outcome:

jane@domain.com

Text

Hello Jane,

HTML

<html>
  <head></head>
  <body>
    <p>Hello Jane,<br /></p>
  </body>
</html>

Example Outcome:

matt@domain.com

Text

Hello Matt,

HTML

<html>
  <head></head>
  <body>
    <p>Hello Matt,<br /></p>
  </body>
</html>

Greeting Section with First & Last Name Substitutions

This example will show you how to create a section with first name and last name substitution for your emails. We will be using the tags -warm_welcome-, -greeting-, -first_name- and -last_name- in this example. In this example, we have created a greeting using the section tag -warm_welcome-. The -warm_welcome- tag is replaced with the -greeting- substitution which calls the section "Hello -first_name- -last_name-,". The -first_name- and -last_name- tags in "Hello -first_name- -last_name-," is then replaced with the recipients first and last names.

Text

-warm_welcome-

HTML

<html>
  <head></head>
  <body>
    <p>-warm_welcome-<br /></p>
  </body>
</html>

X-SMTPAPI Header

{
  "to": [
    "john.smith@domain.com",
    "jane.williams@domain.com",
    "matt.johnson@domain.com"
  ],
  "sub": {
    "-first_name-": ["John", "Jane", "Matt"],
    "-last_name-": ["Smith", "Williams", "Johnson"],
    "-warm_welcome-": ["-greeting-", "-greeting-", "-greeting-"]
  },
  "section": {
    "-greeting-": "Hello -first_name- -last_name-,"
  }
}

v3 Mail Send

{
  "personalizations": [
    {
      "to": [
        {
          "email": "john.smith@domain.com",
          "name": "John Smith"
        }
      ],
      "subject": "Example 01",
      "substitutions": {
        "-first_name-": "John",
        "-last_name-": "Smith",
        "-warm_welcome-": "-greeting-"
      }
    },
    {
      "to": [
        {
          "email": "jane.williams@domain.com",
          "name": "Jane Williams"
        }
      ],
      "subject": "Example 02",
      "substitutions": {
        "-first_name-": "Jane",
        "-last_name-": "Williams",
        "-warm_welcome-": "-greeting-"
      }
    },
    {
      "to": [
        {
          "email": "matt.johnson@domain.com",
          "name": "Matt Johnson"
        }
      ],
      "subject": "Example 03",
      "substitutions": {
        "-first_name-": "Matt",
        "-last_name-": "Johnson",
        "-warm_welcome-": "-greeting-"
      }
    }
  ],
  "from": {
    "email": "sender@senddomain.com",
    "name": "Sender"
  },
  "reply_to": {
    "email": "sender@senddomain.com",
    "name": "Sender"
  },
  "subject": "Example",
  "content": [
    {
      "type": "text/plain",
      "value": "-warm_welcome-"
    },
    {
      "type": "text/html",
      "value": "<html>\n  <head></head>\n  <body>\n    <p>-warm_welcome-<br>\n    </p>\n   </body>\n</html>"
    }
  ],
  "sections": {
    "-greeting-": "Welcome -first_name- -last_name-,"
  }
}

Example Outcome:

john.smith@domain.com

Text

Hello John Smith,

HTML

<html>
  <head></head>
  <body>
    <p>Hello John Smith,<br /></p>
  </body>
</html>

Example Outcome:

jane.williams@domain.com

Text

Hello Jane Williams,

HTML

<html>
  <head></head>
  <body>
    <p>Hello Jane Williams,<br /></p>
  </body>
</html>

Example Outcome:

matt.johnson@domain.com

Text

Hello Matt Johnson,

HTML

<html>
  <head></head>
  <body>
    <p>Hello Matt Johnson,<br /></p>
  </body>
</html>

Three Different Greeting Sections with First & Last Name Substitutions

This example will show you how to create three different sections, each with first name and last name substitution for your emails. We will be using the tags -warm_welcome-, -greeting01-, -greeting02-, -greeting03-, -first_name- and -last_name- in this example. In this example, we have created three different greetings using the section tag -warm_welcome-. The -warm_welcome- tag is replaced with either -greeting01-, -greeting02- or -greeting03- substitution. This will call one of the three sections. In each of these sections, there is the -first_name- and -last_name- tags which will get replaced with the recipients first and last names.

Text

-warm_welcome-

HTML

<html>
  <head></head>
  <body>
    <p>-warm_welcome-<br /></p>
  </body>
</html>

X-SMTPAPI Header

{
  "to": [
    "john.smith@domain.com",
    "jane.williams@domain.com",
    "matt.johnson@domain.com"
  ],
  "sub": {
    "-first_name-": ["John", "Jane", "Matt"],
    "-last_name-": ["Smith", "Williams", "Johnson"],
    "-warm_welcome-": ["-greeting01-", "-greeting02-", "-greeting03-"]
  },
  "section": {
    "-greeting01-": "Welcome -first_name- -last_name-,",
    "-greeting02-": "Hello -first_name- -last_name-,",
    "-greeting03-": "Dear -first_name- -last_name-,"
  }
}

v3 Mail Send

{
  "personalizations": [
    {
      "to": [
        {
          "email": "john.smith@domain.com",
          "name": "John Smith"
        }
      ],
      "subject": "Example 01",
      "substitutions": {
        "-first_name-": "John",
        "-last_name-": "Smith",
        "-warm_welcome-": "-greeting01-"
      }
    },
    {
      "to": [
        {
          "email": "jane.williams@domain.com",
          "name": "Jane Williams"
        }
      ],
      "subject": "Example 02",
      "substitutions": {
        "-first_name-": "Jane",
        "-last_name-": "Williams",
        "-warm_welcome-": "-greeting02-"
      }
    },
    {
      "to": [
        {
          "email": "matt.johnson@domain.com",
          "name": "Matt Johnson"
        }
      ],
      "subject": "Example 03",
      "substitutions": {
        "-first_name-": "Matt",
        "-last_name-": "Johnson",
        "-warm_welcome-": "-greeting03-"
      }
    }
  ],
  "from": {
    "email": "sender@senddomain.com",
    "name": "Sender"
  },
  "reply_to": {
    "email": "sender@senddomain.com",
    "name": "Sender"
  },
  "subject": "Example",
  "content": [
    {
      "type": "text/plain",
      "value": "-warm_welcome-"
    },
    {
      "type": "text/html",
      "value": "<html>\n  <head></head>\n  <body>\n    <p>-warm_welcome-<br>\n    </p>\n   </body>\n</html>"
    }
  ],
  "sections": {
    "-greeting01-": "Welcome -first_name- -last_name-,",
    "-greeting02-": "Hello -first_name- -last_name-,",
    "-greeting03-": "Dear -first_name- -last_name-,"
  }
}

Example Outcome:

john.smith@domain.com

Text

Welcome John Smith,

HTML

<html>
  <head></head>
  <body>
    <p>Welcome John Smith,<br /></p>
  </body>
</html>

Example Outcome:

jane.williams@domain.com

Text

Hello Jane Williams,

HTML

<html>
  <head></head>
  <body>
    <p>Hello Jane Williams,<br /></p>
  </body>
</html>

Example Outcome:

matt.johnson@domain.com

Text

Dear Matt Johnson,

HTML

<html>
  <head></head>
  <body>
    <p>Dear Matt Johnson,<br /></p>
  </body>
</html>

Three Confirmation Sections and Substitutions

This example will show you how to create three different sections for confirmation emails. We will be using the tags -name-, -confirmations-, -confirmation_001-, -confirmation_002-, -confirmation_003- and -order_id- in this example. In this example, we have created three different confirmations using the section tag -confirmations-. The -confirmations- tag is replaced with either -confirmation_001-, -confirmation_002- or -confirmation_003- substitution. This will call one of the three sections. In each of these sections, there is the -order_id- tag which will get replaced with the recipient's order id.

Text

Hello -name-,
-confirmations-

HTML

<html>
  <head></head>
  <body>
    <p>
      Hello -name-,<br />
      -confirmations-
    </p>
  </body>
</html>

X-SMTPAPI Header

{
  "to": ["john@domain.com", "jane@domain.com", "matt@domain.com"],
  "sub": {
    "-name-": ["John", "Jane", "Matt"],
    "-confirmations-": [
      "-confirmation_001-",
      "-confirmation_002-",
      "-confirmation_003-"
    ],
    "-order_id-": ["12345", "23456", "34567"]
  },
  "section": {
    "-confirmation_001-": "Thanks for choosing SendGrid. This email is to confirm that we have processed your order -order_id-.",
    "-confirmation_002-": "Thanks for choosing SendGrid. This email is to confirm that we have processed your order -order_id-. This invoice is to be paid by bank transfer within 7 days from the date of your monthly statement.",
    "-confirmation_003-": "Thanks for choosing SendGrid. This email is to confirm that we have processed your order -order_id-. You can download your invoice as a PDF for your records."
  }
}

v3 Mail Send

{
  "personalizations": [
    {
      "to": [
        {
          "email": "john@domain.com",
          "name": "John"
        }
      ],
      "subject": "Example 01",
      "substitutions": {
        "-name-": "John",
        "-order_id-": "12345",
        "-confirmations-": "-confirmation_001-"
      }
    },
    {
      "to": [
        {
          "email": "jane@domain.com",
          "name": "Jane"
        }
      ],
      "subject": "Example 02",
      "substitutions": {
        "-name-": "Jane",
        "-order_id-": "23456",
        "-confirmations-": "-confirmation_002-"
      }
    },
    {
      "to": [
        {
          "email": "matt@domain.com",
          "name": "Matt"
        }
      ],
      "subject": "Example 03",
      "substitutions": {
        "-name-": "Matt",
        "-order_id-": "34567",
        "-confirmations-": "-confirmation_003-"
      }
    }
  ],
  "from": {
    "email": "sender@senddomain.com",
    "name": "Sender"
  },
  "reply_to": {
    "email": "sender@senddomain.com",
    "name": "Sender"
  },
  "subject": "Example",
  "content": [
    {
      "type": "text/plain",
      "value": "Hello -name-,\n-confirmations-"
    },
    {
      "type": "text/html",
      "value": "<html>\n  <head></head>\n  <body>\n    <p>Hello -name-,<br>\n       -confirmations-</p>\n  </body>\n</html>"
    }
  ],
  "sections": {
    "-confirmation_001-": "Thanks for choosing SendGrid. This email is to confirm that we have processed your order -order_id-.",
    "-confirmation_002-": "Thanks for choosing SendGrid. This email is to confirm that we have processed your order -order_id-. This invoice is to be paid by bank transfer within 7 days from the date of your monthly statement.",
    "-confirmation_003-": "Thanks for choosing SendGrid. This email is to confirm that we have processed your order -order_id-. You can download your invoice as a PDF for your records."
  }
}

Example Outcome:

john@domain.com

Text

Welcome John,
Thanks for choosing SendGrid. This email is to confirm that we have processed your order 12345.

HTML

<html>
  <head></head>
  <body>
    <p>
      Welcome John,<br />
      Thanks for choosing SendGrid. This email is to confirm that we have
      processed your order 12345.
    </p>
  </body>
</html>

Example Outcome:

jane@domain.com

Text

Hello Jane,
Thanks for choosing SendGrid. This email is to confirm that we have processed your order 23456. This invoice is to be paid by bank transfer within 7 days from the date of your monthly statement.

HTML

<html>
  <head></head>
  <body>
    <p>
      Hello Jane,<br />
      Thanks for choosing SendGrid. This email is to confirm that we have
      processed your order 23456. This invoice is to be paid by bank transfer
      within 7 days from the date of your monthly statement.
    </p>
  </body>
</html>

Example Outcome:

matt@domain.com

Text

Dear Matt,
Thanks for choosing SendGrid. This email is to confirm that we have processed your order 34567. You can download your invoice as a PDF for your records.

HTML

<html>
  <head></head>
  <body>
    <p>
      Dear Matt,<br />
      Thanks for choosing SendGrid. This email is to confirm that we have
      processed your order 34567. You can download your invoice as a PDF for
      your records.
    </p>
  </body>
</html>
Rate this page:

Need some help?

We all do sometimes. Get help now from the Twilio SendGrid Support Team.

Running into a coding hurdle? Lean on the wisdom of the crowd by browsing the SendGrid tag on Stack Overflow or visiting Twilio's Stack Overflow Collective.

Thank you for your feedback!

Please select the reason(s) for your feedback. The additional information you provide helps us improve our documentation:

Sending your feedback...
🎉 Thank you for your feedback!
Something went wrong. Please try again.

Thanks for your feedback!

thanks-feedback-gif