Skip to content

Templates

Igor Balos edited this page Jun 25, 2019 · 13 revisions

For these API requests you will need to use a server API token. Once you obtain it, you will need to use server API client.

let postmark = require("postmark")
const serverToken = "xxxx-xxxxx-xxxx-xxxxx-xxxxxx"
let client = new postmark.ServerClient(serverToken);

Get list of available templates

client.getTemplates().then(result => {
    console.log(result);
    console.log(result.Templates[0].Name);
    console.log(result.Templates[0].TemplateId);
    console.log(result.Templates[0].Active);
});

Get list of available layouts

client.getTemplates({count:5, offset:0, templateType: 'Layout'}).then( result => {
    console.log(result);
    console.log(result.Templates[0].Name);
    console.log(result.Templates[0].TemplateId);
    console.log(result.Templates[0].Active);
});

Get template by ID

client.getTemplate(12345).then(result => {
    console.log(result.Active);
    console.log(result.AssociatedServerId);
    console.log(result.TemplateId);
    console.log(result.Subject);
});

Get template by Alias

client.getTemplate("password_reset").then(result => {
    console.log(result.Active);
    console.log(result.AssociatedServerId);
    console.log(result.TemplateId);
    console.log(result.Subject);
});

Create a new template

client.createTemplate({Name: "welcome email", HtmlBody: "test", Subject: "test"}).then(result => {
    console.log(result.Name);
});

Update template by ID

client.editTemplate(8773462, {Name: "changeName"}).then(result => {
    console.log(result.Name);
});

Update template by Alias

client.editTemplate("password_reset", {Name: "changeName"}).then(result => {
    console.log(result.Name);
});

Delete template by ID

client.deleteTemplate(123456).then(result => {
    console.log(result.Message);
});

Delete template by Alias

client.deleteTemplate("password_reset").then(result => {
    console.log(result.Message);
});

Validate template

client.validateTemplate({
    Subject: "{{#company}}{{name}}{{/company}} {{subjectHeadline}}",
    HtmlBody: "{{#company}}{{address}}{{/company}}{{#each person}} {{name}} {{/each}}",
    TextBody: "{{#company}}{{phone}}{{/company}}{{#each person}} {{name}} {{/each}}",
}).then(result => {
    console.log(result.AllContentIsValid);
    console.log(result.HtmlBody.ContentIsValid);
    console.log(result.TextBody.ContentIsValid);
    console.log(result.Subject.ContentIsValid);
    console.log(result.Subject.ValidationErrors);
    console.log(result.Subject.RenderedContent);
}).catch(error => {
    console.log(error);
});

Send email with template

client.sendEmailWithTemplate({
    TemplateId:1234567,
    From: "[email protected]",
    To: "[email protected]",
    TemplateModel: {company: "wildbit"}
});

In case you would like to attach attachments and you are not sure how to do it, feel free to check out email sending tutorial.

Send batch email with templates

client.sendEmailBatchWithTemplates([
    {
        TemplateId:1234567,
        From: "[email protected]",
        To: "[email protected]",
        TemplateModel: {company: "wildbit"}
    },
    {
        TemplateId:1234567,
        From: "[email protected]",
        To: "[email protected]",
        TemplateModel: {company: "wildbit"}
    }
]);

Push templates from one server to another

If you would like to push templates from one server to another one, check out the following article..