Skip to content

Email templating

LoyaltyDish provides an API to create email templates based on the Jinja templating language

Create an email template

mutation (
    $name: String!
    $description: String
    $template: JSONString
    $prebuiltTemplateId: ID
) {
    createEmailTemplate(input: {
        name: $name
        description: $description
        template: $template
        prebuiltTemplateId: $prebuiltTemplateId
    }) {
        success
        errors
        emailTemplate {
            pk
            name
            description
            template
            merchant {
                pk
            }
        }
    }
}
{
    "name": "Email template 1",
    "description": "The first email template",
    "template": "{\"design\": {}}"
}
{
    "data": {
        "createEmailTemplate": {
            "success": true,
            "errors": null,
            "emailTemplate": {
                "id": "U3RvcmVOb2RlOjEzMQ=="
            }
        }
    }
}

Update an email template

mutation (
    $id: ID!
    $name: String
    $description: String
    $template: JSONString
) {
    updateEmailTemplate(input: {
        id: $id
        name: $name
        description: $description
        template: $template
    }) {
        success
        errors
        emailTemplate {
            pk
            name
            description
            template
        }
    }
}
{
    "id": 1,
    "name": "Email template 1 - edited"
}
{
    "data": {
        "updateEmailTemplate": {
            "success": true,
            "errors": null,
            "emailTemplate": {
                "id": "U3RvcmVOb2RlOjEzMQ=="
            }
        }
    }
}

Delete an email template

mutation (
    $id: ID!
) {
    deleteEmailTemplate(input: {
        id: $id
    }) {
        success
        errors
    }
}
{
    "id": 1
}
{
    "data": {
        "deleteEmailTemplate": {
            "success": true,
            "errors": null
        }
    }
}

List email templates

query {
    emailTemplates{
        edges {
            node {
                pk
                id
            }
        }
    }
}

Get a single email template

query {
    emailTemplate(id: "U3RvcmVOb2RlOjE5"){
        pk
        id
        name
    }
}

Create an prebuilt email template

mutation (
    $name: String!
    $description: String
    $template: JSONString
    $activeFrom: DateTime!
    $activeTo: DateTime!
    $categoryId: ID!
) {
    createPrebuiltEmailTemplate(input: {
        name: $name
        description: $description
        template: $template
        activeFrom: $activeFrom
        activeTo: $activeTo
        categoryId: $categoryId
    }) {
        success
        errors
        prebuiltEmailTemplate {
            pk
            name
            description
            template
            activeFrom
            activeTo
        }
    }
}

Update a prebuilt email template

mutation (
    $id: ID!
    $name: String
    $description: String
    $template: JSONString
    $activeFrom: DateTime
    $activeTo: DateTime
    $categoryId: ID
) {
    updatePrebuiltEmailTemplate(input: {
        id: $id
        name: $name
        description: $description
        template: $template
        activeFrom: $activeFrom
        activeTo: $activeTo
        categoryId: $categoryId
    }) {
        success
        errors
        prebuiltEmailTemplate {
            pk
            name
            description
            template
            activeFrom
            activeTo
        }
    }
}

Delete a prebuilt email template

mutation (
    $id: ID!
) {
    deletePrebuiltEmailTemplate(input: {
        id: $id
    }) {
        success
        errors
    }
}

List prebuilt email templates

query ($categoryId: ID){
    prebuiltEmailTemplates(categoryId: $categoryId) {
        count
        edges {
            node {
                pk
                id
            }
        }
    }
}

Get a single prebuilt email template

query ($id: ID!) {
    prebuiltEmailTemplate(id: $id) {
        id
        pk
        name
        template
        activeFrom
        activeTo
    }
}

Create an prebuilt email template category

mutation (
    $name: String!
    $displayName: String!
) {
    createPrebuiltEmailTemplateCategory(input: {
        name: $name
        displayName: $displayName
    }) {
        success
        errors
        category {
            pk
            name
            displayName
        }
    }
}

Update a prebuilt email template category

mutation (
    $id: ID!
    $name: String
    $displayName: String
) {
    updatePrebuiltEmailTemplateCategory(input: {
        id: $id
        name: $name
        displayName: $displayName
    }) {
        success
        errors
        category {
            pk
            name
            displayName
        }
    }
}

Delete a prebuilt email template

mutation (
    $id: ID!
) {
    deletePrebuiltEmailTemplateCategory(input: {
        id: $id
    }) {
        success
        errors
    }
}

List prebuilt email templates

query {
    prebuiltEmailTemplateCategories {
        count
        edges {
            node {
                pk
                id
                name
                displayName
            }
        }
    }
}

Get a single prebuilt email template

query ($id: ID!) {
    prebuiltEmailTemplateCategory(id: $id) {
        id
        pk
        name
        displayName
    }
}