This documentation provides examples for specific use cases. Please [open an issue](https://github.com/sendgrid/sendgrid-sharp/issues) or make a pull request for any use cases you would like us to document here. Thank you!
# Table of Contents
* [Transactional Templates](#transactional_templates)
# Transactional Templates
For this example, we assume you have created a [transactional template](https://sendgrid.com/docs/User_Guide/Transactional_Templates/index.html). Following is the template content we used for testing.
Template ID (replace with your own):
```text
13b8f94f-bcae-4ec6-b752-70d6cb59f932
```
Email Subject:
```text
<%subject%>
```
Template Body:
```html
Hello -name-,
I'm glad you are trying out the template feature!
<%body%>
I hope you are having a great day in -city- :)
```
## With Mail Helper Class
```csharp
using System;
using SendGrid;
using SendGrid.Helpers.Mail;
using System.Threading.Tasks;
namespace Example
{
internal class Example
{
private static void Main()
{
Execute().Wait();
}
static async Task Execute()
{
string apiKey = Environment.GetEnvironmentVariable("NAME_OF_THE_ENVIRONMENT_VARIABLE_FOR_YOUR_SENDGRID_KEY", EnvironmentVariableTarget.User);
dynamic sg = new SendGridAPIClient(apiKey);
Email from = new Email("test@example.com");
String subject = "I'm replacing the subject tag";
Email to = new Email("test@example.com");
Content content = new Content("text/html", "I'm replacing the body tag");
Mail mail = new Mail(from, subject, to, content);
mail.TemplateId = "13b8f94f-bcae-4ec6-b752-70d6cb59f932";
mail.Personalization[0].AddSubstitution("-name-", "Example User");
mail.Personalization[0].AddSubstitution("-city-", "Denver");
dynamic response = await sg.client.mail.send.post(requestBody: mail.Get());
}
}
}
```
## Without Mail Helper Class
```csharp
using System;
using SendGrid;
using Newtonsoft.Json; // You can generate your JSON string yourelf or with another library if you prefer
using System.Threading.Tasks;
namespace Example
{
internal class Example
{
private static void Main()
{
Execute().Wait();
}
static async Task Execute()
{
String apiKey = Environment.GetEnvironmentVariable("NAME_OF_THE_ENVIRONMENT_VARIABLE_FOR_YOUR_SENDGRID_KEY", EnvironmentVariableTarget.User);
dynamic sg = new SendGridAPIClient(apiKey);
string data = @"{
'personalizations': [
{
'to': [
{
'email': 'test@example.com'
}
],
'substitutions': {
'-name-': 'Example User',
'-city-': 'Denver'
},
'subject': 'I\'m replacing the subject tag'
}
],
'from': {
'email': 'test@example.com'
},
'content': [
{
'type': 'text/html',
'value': 'I\'m replacing the body tag'
}
],
'template_id': '13b8f94f-bcae-4ec6-b752-70d6cb59f932'
}";
Object json = JsonConvert.DeserializeObject