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 utilisent ensuite ; un retour arrière republie une ancienne version comme nouvelle version. 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.templates.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.templates.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.templates.rollback('shipping-update', { version: 1 })
if (error) throw new Error(error.message)
console.log(data.published_version)