Courriel

Modèles

Enregistrez un modèle une fois, puis envoyez-le avec des variables. Les modifications vont dans un brouillon, et la publication en fait la prochaine version numérotée.

Modèles

Les modèles utilisent des doubles accolades autour d’un nom de variable fait de lettres, de chiffres et de traits de soulignement. Les triples accolades sont acceptées et traitées de la même façon : les valeurs sont toujours échappées en HTML dans html. Il n’y a ni conditions ni boucles.

text
Subject: Your order has shipped, {{ first_name }}
<p>Hi {{ first_name }}, track it with {{ tracking }}.</p>

"variables": [
  { "key": "first_name", "fallback": "there" },
  { "key": "tracking" }
]

Chaque variable qu’utilise un modèle doit être déclarée, avec une valeur de repli au besoin. Un envoi qui laisse une variable sans valeur ni repli est refusé et liste les clés manquantes.

Les modifications sont enregistrées dans un brouillon. La publication fait du brouillon la version numérotée suivante, que les envois de production utilisent ensuite ; un retour arrière republie une ancienne version comme nouvelle version. Un envoi avec une clé de test utilise plutôt le brouillon, publié ou non : vous pouvez donc créer et essayer un modèle avec une clé de test. Publier, revenir en arrière, supprimer et changer l’alias d’un modèle publié exigent une clé de production. Les courriels programmés gardent leur version. Envoyez par identifiant ou alias ; un from ou reply_to dans la requête prime sur celui du modèle.

// Create a draft
const { data: template, error } = await honkio.emailTemplates.create({
  name: 'Shipping update',
  alias: 'shipping-update',
  subject: 'Shipped, {{ first_name }}',
  html: '<p>Track it with {{ tracking }}.</p>',
  variables: [{ key: 'first_name', fallback: 'there' }, { key: 'tracking' }],
})
if (error) throw new Error(error.message)
console.log(template.id)
// Publish it as version 1
const { data, error } = await honkio.emailTemplates.publish('shipping-update')
if (error) throw new Error(error.message)
console.log(data.published_version) // 1
// Send it by alias
const { data, error } = await honkio.emails.send({
  from: 'noreply@mail.acme.ca',
  to: 'ada@example.com',
  template: { id: 'shipping-update', variables: { tracking: '1Z999' } },
})
if (error) throw new Error(error.message)
console.log(data.id)
// Roll back: copies version 1 into the draft and publishes it as a new version
const { data, error } = await honkio.emailTemplates.rollback('shipping-update', { version: 1 })
if (error) throw new Error(error.message)
console.log(data.published_version)