<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: JZ</title>
    <description>The latest articles on Forem by JZ (@joshzaldana).</description>
    <link>https://forem.com/joshzaldana</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F87057%2F58e8f2bc-49bb-461d-8037-7dd181b1ddc7.jpg</url>
      <title>Forem: JZ</title>
      <link>https://forem.com/joshzaldana</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/joshzaldana"/>
    <language>en</language>
    <item>
      <title>How to improve your email workflow (w/o code)</title>
      <dc:creator>JZ</dc:creator>
      <pubDate>Mon, 13 Aug 2018 13:47:56 +0000</pubDate>
      <link>https://forem.com/joshzaldana/how-to-improve-your-email-workflow-wo-code-50hf</link>
      <guid>https://forem.com/joshzaldana/how-to-improve-your-email-workflow-wo-code-50hf</guid>
      <description>&lt;p&gt;Early in my growth marketing career I came across a developer principle that continues to power my ability to synchronously build and execute multiple campaigns. What's that principle? &lt;/p&gt;

&lt;p&gt;Don't repeat yourself.&lt;/p&gt;

&lt;p&gt;Building campaigns can be a tricky and daunting task - especially if you're starting from scratch every single time. This is where a solid workflow supports the developer and non-developer alike. &lt;/p&gt;

&lt;h2&gt;What's your strategy?&lt;/h2&gt;

&lt;p&gt;Let's start by answering what we're trying to solve. Before attempting my next campaign or touching code, I answer these crucial questions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Who is the intended audience? 
- What should the recipient do? 
- Why should the recipient care?
- How will success be measured?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I start by defining why this campaign should be developed and what value it provides to the recipient. These questions pave the way for how the campaign should be built. &lt;/p&gt;

&lt;h2&gt;Keeping up with the details&lt;/h2&gt;

&lt;p&gt;Remember that developer principle? The goal of an email workflow is to outline all of the steps required in order to build, deploy, and track your campaigns so you're not having to remember what process you followed three months ago. &lt;/p&gt;

&lt;p&gt;After answering my strategy questions, I move on to using a campaign overview doc.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;What's a campaign overview doc? 
This doc contains all of the high level information about the campaign. Litmus test, ask someone unrelated to the campaign to read through your doc. If they can't tell you what the campaign is about, what the email looked liked, and when it was sent, your doc requires a re-write.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here's an example for what my campaign overview doc's header looks like:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AY8hqf0o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://image.ibb.co/cbSEt9/Screen_Shot_2018_08_12_at_7_29_58_PM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AY8hqf0o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://image.ibb.co/cbSEt9/Screen_Shot_2018_08_12_at_7_29_58_PM.png" alt="Campaign Overview Doc sample"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Know your dates&lt;/h2&gt;

&lt;p&gt;One of the biggest mistakes I see email marketers do time and time again is fail to set timelines for their campaigns. Whatever the reason, this is a bad habit and it will affect your campaign's quality - doesn't matter if your coffee mug says, "best under pressure." Below are the timelines I review and answer with the teams I work with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Kickoff: {4-6 weeks from send date }
- Finalize email copy &amp;amp; assets: { 2 weeks from send date }
- Send preview email(s): { 1 week from send date }
- Send Date: ...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There you have it! This is my no-code process I use to improve my email workflow and build solid campaigns.&lt;/p&gt;

&lt;p&gt;If you and your team already have a workflow in place, I'd love to hear about it. Please post it in the comments. Thanks!&lt;/p&gt;

</description>
      <category>email</category>
      <category>marketing</category>
      <category>beginners</category>
      <category>productivity</category>
    </item>
    <item>
      <title>3 tools to enhance your email workflow</title>
      <dc:creator>JZ</dc:creator>
      <pubDate>Mon, 06 Aug 2018 15:54:02 +0000</pubDate>
      <link>https://forem.com/joshzaldana/3-tools-to-enhance-your-email-workflow-55l6</link>
      <guid>https://forem.com/joshzaldana/3-tools-to-enhance-your-email-workflow-55l6</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimage.ibb.co%2FfN8tMK%2Fprogrammer.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimage.ibb.co%2FfN8tMK%2Fprogrammer.jpg" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;&lt;b&gt;#1 Use a task runner&lt;/b&gt;&lt;/h3&gt;

&lt;p&gt;Gulp's a great tool that allows you to automate any of the development work you find yourself working on each time you build a campaign. For example if you find yourself copy-and-pasting HTML code from a previous email into your next campaign, hitting ⌘+F to replace all of the previous copy with the new version, oh and you want to update the headline font-size - that's another ⌘+F. Aside from being time consuming, this workflow presents ample opportunity for human error - unclosed table cells anyone? Another pain-point in building emails this way is that code errors tend to compound over time; unlike those nice mutual funds these types of gains do not have a positive return. &lt;/p&gt;

&lt;p&gt;So how does a task runner help? At its core a task runner will ... automatically run tasks for you; It's as simple as that. What took hours (days for some) will only take minutes, all thanks to a task runner. When setup correctly, these automated workflows also allow you to quickly troubleshoot any errors - e.g. get notified if you're code is missing a closed table cell tags. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/gulpjs/gulp/blob/v3.9.1/docs/getting-started.md" rel="noopener noreferrer"&gt;See how to setup your Gulp task runner&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;&lt;b&gt;#2 Leverage templates&lt;/b&gt;&lt;/h3&gt;

&lt;p&gt;So you're already using a task runner? Great, the next step I'd recommend is to incorporate the use of templates. If you truly want to maximize the use of a task runner I highly recommend finding a template language that suits your development needs; I currently use &lt;a href="https://mozilla.github.io/nunjucks/" rel="noopener noreferrer"&gt;Nunjucks&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;These templating languages aren't difficult to use and for the most part are easy to learn. The real power in these templating languages is in their customization. Rather than using some other person's template you can build templates for your needs and easily replicate them. Below is sample for what a basic template can look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{% extends "base.html" %}

{% block header %}
&amp;lt;h1&amp;gt;{{ title }}&amp;lt;/h1&amp;gt;
{% endblock %}

{% block content %}
&amp;lt;ul&amp;gt;
  {% for name, item in items %}
  &amp;lt;li&amp;gt;{{ name }}: {{ item }}&amp;lt;/li&amp;gt;
  {% endfor %}
&amp;lt;/ul&amp;gt;
{% endblock %}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Did you see that embedded loop!? Your template can include all six rows OR you could simply use one line of code that looks up how many items your .json file is referencing and build the required rows from that - this is clutch when working on multiple projects.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://mozilla.github.io/nunjucks/getting-started.html" rel="noopener noreferrer"&gt;Learn more on how to get started with Nunjucks&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;&lt;b&gt;#3 Think modules&lt;/b&gt;&lt;/h3&gt;

&lt;p&gt;Remember playing with Legos? Emails are built much like those Lego kits; comprised of multiple pieces each fitting into one another. Take a look at the last email you built - do you see the main areas where your content is housed? A basic email template that includes the following can be broken down into three sections - two if you want to really compress your template.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;headline&lt;/li&gt;
&lt;li&gt;hero image &lt;/li&gt;
&lt;li&gt;body&lt;/li&gt;
&lt;li&gt;CTA button&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here's how I'd break them down:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- sectionBlock01 (contains headline)
- sectionBlock02 (contains hero image)
- sectionBlock03 (contains body and CTA button)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Using these three &lt;code&gt;sectionBlock&lt;/code&gt;s I can build any email in a matter of seconds - regardless of how many rows my &lt;code&gt;sectionBlock03&lt;/code&gt; contains - the loop will take care of the work. &lt;/p&gt;

&lt;p&gt;There you have it, 3 tools to enhance your email workflow and get you going on the right track towards becoming an efficient developer. &lt;/p&gt;

</description>
      <category>email</category>
      <category>marketing</category>
      <category>gulp</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
