How to Create an Email Marketing Campaign From Scratch
Most campaign guides start with the subject line. That is the fifth or sixth decision, and starting there is why so many campaigns read as competent and achieve nothing. A subject line cannot rescue a campaign that has no reason to exist.
This is a build order. It goes from the decision that constrains everything else down to the send, and it flags the points where campaigns usually go wrong.
Step one: decide what this campaign is for, in one sentence
The most common failure is a campaign with three goals. Announce a feature, drive a trial, and re-engage lapsed users. Each goal pulls the copy in a different direction, and the recipient, who has two seconds, cannot tell what you want.
Write the goal as a single sentence with a verb and a subject:
- "Get trial users who have not sent a campaign to send their first one."
- "Get existing customers to add a second sending domain."
- "Recover people who opened three campaigns but never clicked."
If you cannot finish the sentence, you do not have a campaign yet. You have an idea for one.
Two things this sentence settles immediately:
- The audience is implied by who the sentence is about.
- The success metric is implied by the verb. "Send their first one" is measurable. "Increase engagement" is not.
The one-goal test
Show the sentence to someone who does not work on email. Ask them what action you want the reader to take. If they hesitate, the campaign will too.
Step two: pick an audience you can actually act on
You cannot write to "everyone" usefully. But the more common mistake is the opposite: creating a segment so narrow it has forty people in it and cannot tell you anything.
A usable audience has three properties:
| Property | Means | Test |
|---|---|---|
| Large enough | Enough people to learn from, or enough revenue to matter | Would a 20% difference in response change a decision? |
| Behaviourally defined | Based on what they did, not who you assume they are | Could you show me the event that put them in this list? |
| Actionable | You can see what to say to them that you would not say to everyone else | Write that sentence. If you cannot, do not segment. |
The third property is the one that gets skipped. If your segment does not change the copy, you have created a filter, not an audience.
Which attributes are worth segmenting on
Roughly in order of how much they change what you say:
- Lifecycle stage. Lead, trial, active customer, dormant, churned. Different messages entirely.
- Behavioural recency. Opened recently versus not opened in 90 days.
- Actions taken or not taken. Imported contacts but never sent. Viewed pricing but did not start a trial.
- Plan or spend level. Changes what you can offer and what they already have.
- How they arrived. Content, referral, paid, event. Different expectations.
Roughly not worth it unless you have a specific reason: demographic guesses, job titles from a form field nobody validated, and anything where the two groups get identical copy.
The suppression list is part of the audience
Before you send, subtract the people who should not receive this:
- Anyone who received a campaign in the last few days.
- People who unsubscribed from a related topic.
- Recent complainants and hard bounces.
- Anyone who already took the action you are asking for.
That last one is the most damaging to skip. Asking someone to do the thing they did yesterday makes it clear you are not looking at your own data.
Step three: choose the campaign type, because it sets the structure
Campaign type is not a style choice; each type has a shape that works and a shape that fails.
| Type | Structure that works | Common failure |
|---|---|---|
| Announcement | What changed, why it matters to them, one action | Leading with the how, not the why |
| Educational | One idea, explained properly, with an example | Covering three ideas at surface level |
| Onboarding step | One task, done in under two minutes | Explaining the whole platform in step one |
| Re-engagement | An honest reason to come back, plus a way out | Guilt framing and "we miss you" |
| Offer or promotion | Clear terms, deadline, no friction | Burying the deadline below the fold |
| Lifecycle / seasonal | Timely, and useful independent of a purchase | Manufacturing urgency with no real trigger |
Pick one. Hybrid campaigns read as unfocused because they are.
Step four: write the subject line as part of a pair
The subject line and the preheader appear together in almost every inbox. Writing them separately produces repetition, which wastes the second line.
What the pair has to do: give a reason to open, and not repeat each other.
Weak pair:
Subject: Big news from us!
Preheader: We have some big news to share...
Usable pair:
Subject: Your campaign report now shows deliverability
Preheader: Per-domain inbox placement, available today
The second pair works because the subject line names the change and the preheader adds information rather than restating it.
Rules worth keeping
- Front-load the meaning. Mobile clients truncate around 30-40 characters.
- Avoid clickbait that the email does not deliver on. It costs you trust and, with a spam complaint, deliverability.
- One idea per line. Two clauses in a subject line read as noise.
- Do not use the same structural shape every send. Ten questions in a row is a pattern recipients notice.
- Check the preheader is not just the first line of the body. Many clients auto-fill it with your opening text if you leave it blank.
Step five: write the email so it survives two seconds
Assume nobody reads. Assume they scan once, on a phone, with the thumb already moving. Your job is not to be read in full; it is to earn the second scan.
The structure that does this:
- First line: the point. Not a greeting, not context. The thing you would say if you only had one sentence.
- Second line: why it matters to them specifically.
- Short section: the detail, if they want it. Keep it to two or three sentences.
- One call to action.
- Sign-off from a person.
A worked example
Goal: get trial users who imported contacts but never sent a campaign to send one.
Subject: Your contacts are imported, but nothing has sent yet
Preheader: A campaign takes about four minutes to send
You have X contacts in Cresca and no sends yet.
That is a normal place to stop: importing is easy, writing is not.
The fastest way past it is to send something small rather than
something perfect.
Describe what you want to say and Cresca drafts the campaign
structure and copy. You edit it, then send.
[ Generate your first campaign ]
If anything is unclear, reply and I will answer.
Lalit
That is roughly 120 words. It has one idea, one action, and a specific first line. It would not work for a different segment, which is exactly the point.
Step six: design, or decide not to
Plain, text-forward email works. It often outperforms designed email, partly because it looks like a message rather than a broadcast. You do not owe anyone a template.
What design must do if you use it:
- Survive images being blocked. Many clients block by default. If your message is unreadable without images, half your audience sees a blank rectangle.
- Work at 320px wide. That is still a real device width.
- Be readable with alt text only. Write alt text as if it is the content.
- Have text-based buttons. An image button is a broken button for anyone with images off.
One structural warning: multi-column layouts collapse badly on mobile. If you must, design mobile-first and confirm the desktop version still reads in order.
Step seven: the pre-send checklist
- Every link resolves and goes where you think. Click them all, on a phone.
- Merge fields have fallbacks. Check one record with a missing first name.
- Unsubscribe is present and works. Required in most jurisdictions and non-negotiable.
- Send yourself the real thing. Not the preview. The preview lies about images and spacing.
- Check dark mode. Text on transparent backgrounds frequently fails here.
- Read it aloud. Catches sentences that only looked fine on screen.
- Confirm the audience size. A missing filter sends to everyone and is unrecoverable.
- Verify the schedule timezone. The most common avoidable mistake.
Item seven is worth automating away. A final confirmation showing the count and the segment definition before send prevents the worst category of email mistake.
Step eight: measure the thing you set out to measure
Return to the sentence from step one. It named a verb. That verb is your metric.
- "Send their first one" → first-send rate among the target segment. Not open rate.
- "Add a second domain" → number of second domains added within the window.
- "Recover people who never clicked" → clicks from dormant users, and whether they returned.
Open rate is affected by image blocking, privacy protections and mailbox-provider behaviour. Treat it as a diagnostic, not a goal.
Reading the results without fooling yourself
- Compare against the same segment, not your whole list. A dormancy campaign will always look worse than a recent-buyer one.
- Give it a full window. Most clicks on a campaign land in the first few hours, but a re-engagement email can take days.
- Write down your prediction first. What did you expect? A prediction made before sending turns a result into a lesson.
- Record what you will do differently. One sentence, in a shared document. This is the mechanism by which campaigns improve.
Timing and cadence: the decisions around the send
The campaign itself is only half of it. When it lands and how often you send determine whether it gets read, and both are usually decided by habit rather than reasoning.
When to send
There is no universal best time. Published averages exist and they mostly describe other people's audiences. What matters is whether your audience is reachable at that hour, which you can only learn from your own results.
What is worth knowing before you test:
- Time of day matters more than day of week for most B2B audiences, and day of week matters more for B2C.
- Send when they can act, not when they might read. A Tuesday 3am send may get opened at breakfast, but the action will be delayed or forgotten.
- Timezone is a decision, not a default. A single send for a multi-timezone list inevitably lands badly for someone.
- Consistency beats optimisation. An audience that hears from you every Tuesday at the same hour develops a pattern. Erratic timing trains them to miss you.
Test it once, properly: split your list, send at two times on the same day with the same copy, and compare on your step-one metric rather than opens. Then stop testing it for a year.
How often to send
Frequency is where teams do the most damage, usually by increasing it after a good campaign.
- Every send has a cost, paid in unsubscribes and reduced attention. A campaign that performs well in isolation can still be net negative if it burns audience patience.
- Relevance buys frequency. A list that receives only messages that apply to them tolerates more volume than one receiving generic broadcasts.
- Watch the tail. Unsubscribe and complaint rates on the third send in a short window tell you more than the open rate of the first.
- Consider consolidating. Two campaigns a week that could have been one, sent to half the list each, is often a sign the segmentation is doing the work that fewer, better sends would.
A practical guardrail: set a maximum number of marketing sends per person per week, and treat it as a hard limit that requires a reason to exceed rather than a target to fill.
The mistakes that recur
| Mistake | What it looks like | Fix |
|---|---|---|
| Multiple goals | Three CTAs, unclear action | One sentence, one verb |
| Segment changes nothing | Same copy, different list | Write the sentence you would not say to everyone |
| Subject/preheader repeat | Two lines, one message | Write them as a pair |
| Burying the point | Two paragraphs of context first | Lead with the thing |
| Asking for a completed action | Promoting a thing they already did | Suppress those people |
| Measuring opens | Optimising for a noisy metric | Measure the step-one verb |
| No record of results | Repeating the same test next quarter | One line in a log every time |
Where this fits in Cresca
The steps above are tool-agnostic. Two parts of Cresca are relevant to them:
- Segment definition from real contact data. Behavioural and lifecycle segments are built from attributes on your contacts, so the audience in step two is something you can see and re-use rather than rebuild each time.
- Campaign generation. If step five is where you stall, describing what you want to send produces a campaign structure and a draft you edit. It addresses the blank page specifically, not the strategy in steps one to four, which remains yours.
The honest framing: a generator removes the friction of starting. It does not decide what to say or who to say it to, and those are the decisions that determine whether the campaign works.
The short version
Write the goal as one sentence before anything else; it determines the audience and the metric. Pick an audience defined by behaviour, and make sure it changes what you say. Choose one campaign type and follow its shape.
Write subject and preheader as a pair. Lead the body with the point, keep one call to action, and check the links, the fallbacks and the count before you send. Then measure the verb from your first sentence, not your open rate.
Record one sentence about what you will do differently, and the next campaign starts from a better place than this one did.
Continue learning
Related Cresca resources
External references