Closed wmnnd closed 2 years ago
Very exciting to see this feature in the roadmap! Definitely going to follow this feature and product as you build it out. As you encouraged people to do, I just wanted to give my 2c on how this might be used in-practice.
We're currently using a lot of programmatic sugar around the MailChimp campaign data feature (via their "editable areas" template language) to send data-driven newsletters on a regular basis. I do not necessarily think MailChimp is the best tool to do this, as we're definitely flexing it quite a bit, but it does the job.
MailChimp only allows the campaign data to be used via their template language, which is very weak (and afaik doesn't even exist in their newer template types), so we actually embed handlebars inside of the editable regions to make the templates more powerful. We stole this idea from this Contentful blog post from 2018. We chose handlebars simply because it is lightweight, but I have found we have to write lots of helpers to make it powerful enough to do everything we want.
We have a regular cronjob setup that pulls data from our API, applies it to a Mailchimp campaign, and sends it. The workflow, currently, is:
It seems that the implementation as you've described it in your twitter thread would very easily fit nearly this exact workflow (and you've already built-in a much more powerful and friendly templating language!) - which is incredibly cool to see. I don't have much more to input since I haven't used keila at all, but I hope this input is useful in how you shape this feature!
@dpraul Thank you so much for your input. This is exactly one of the use-cases I had in mind when designing this feature, so I hope you’ll find it useful once it’s been implemented!
This feature has now been implemented via #104 :partying_face:
@dpraul I’m looking forward to hearing from you what you think.
Campaigns, just like contacts, should allow for custom data in the shape of a
data
jsonb field. This will allow the use of templates with Liquid to generate emails based on that data.