@awesomate/hosting-mcp 0.54.0 → 0.55.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +2 -2
- package/package.json +1 -1
- package/skill/CHANGELOG.json +8 -0
- package/skill/awesomate-email/SKILL.md +291 -0
- package/skill/awesomate-email/evals/ask-never-emailed/graders/grader.md +22 -0
- package/skill/awesomate-email/evals/ask-never-emailed/prompt.md +1 -0
- package/skill/awesomate-email/evals/health-segment/graders/grader.md +20 -0
- package/skill/awesomate-email/evals/health-segment/prompt.md +1 -0
- package/skill/awesomate-email/evals/results-honest/graders/grader.md +19 -0
- package/skill/awesomate-email/evals/results-honest/prompt.md +1 -0
- package/skill/awesomate-email/evals/spam-folder/graders/grader.md +18 -0
- package/skill/awesomate-email/evals/spam-folder/prompt.md +1 -0
- package/skill/awesomate-email/evals/starter-lists-studio/graders/grader.md +21 -0
- package/skill/awesomate-email/evals/starter-lists-studio/prompt.md +1 -0
- package/skill/awesomate-email/evals/write-newsletter/graders/grader.md +24 -0
- package/skill/awesomate-email/evals/write-newsletter/prompt.md +1 -0
- package/skill/awesomate-email/references/asking-permission.md +116 -0
- package/skill/awesomate-email/references/consent-law.md +111 -0
- package/skill/awesomate-email/references/copywriting.md +167 -0
- package/skill/awesomate-email/references/deliverability.md +81 -0
- package/skill/awesomate-email/references/list-planning.md +127 -0
- package/skill/awesomate-email/references/migration.md +101 -0
- package/skill/awesomate-email/references/reporting.md +53 -0
- package/skill/awesomate-email/references/segmentation.md +107 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Consent law for email: Australia and New Zealand
|
|
2
|
+
|
|
3
|
+
Read this when deciding who may be emailed, when an owner asks "can I email
|
|
4
|
+
these people?", or before any import. Checked against primary sources on
|
|
5
|
+
1 October 2026. You are not the owner's lawyer: state the practical rule,
|
|
6
|
+
and when a case is genuinely unclear, say so and suggest they check.
|
|
7
|
+
|
|
8
|
+
## Australia: the Spam Act 2003
|
|
9
|
+
|
|
10
|
+
Three things for every commercial email (anything that offers, promotes or
|
|
11
|
+
links to goods or services, including an email asking for consent):
|
|
12
|
+
|
|
13
|
+
1. **Consent.** Express (they agreed, for example by filling in a form) or
|
|
14
|
+
inferred (see below). The sender must be able to prove it (s 16(5)).
|
|
15
|
+
2. **Identify the sender.** The business's legal name, or the owner's name
|
|
16
|
+
and ABN, and how to contact them, valid for 30 days after sending (s 17).
|
|
17
|
+
3. **A working unsubscribe.** A link or a reply address; "reply with
|
|
18
|
+
unsubscribe" is valid. No login, no extra details. It must keep working
|
|
19
|
+
for 30 days, and the withdrawal takes effect within 5 business days
|
|
20
|
+
(s 18; Sch 2 cl 6). Build to "at once": Gmail and Yahoo expect two days.
|
|
21
|
+
|
|
22
|
+
**Asking for consent by email is itself a commercial message.** ACMA: "You
|
|
23
|
+
cannot send an electronic message to ask for consent, because this is a
|
|
24
|
+
marketing message." A message that links to marketing content is commercial
|
|
25
|
+
too.
|
|
26
|
+
|
|
27
|
+
**Inferred consent is narrow.** The Act allows consent that "can reasonably
|
|
28
|
+
be inferred from the conduct and the business and other relationships" (Sch
|
|
29
|
+
2 cl 2). ACMA reads that as "a provable, ongoing relationship with your
|
|
30
|
+
business, and the marketing is directly related to that relationship". It
|
|
31
|
+
"does not cover sending messages after someone has just bought something",
|
|
32
|
+
and its 2024 statement of expectations says: "Do not infer consent from
|
|
33
|
+
one-off purchases ... including in cases where email addresses are obtained
|
|
34
|
+
to send receipts or tax invoices", and "Do not use consent that is old,
|
|
35
|
+
where a consumer would not expect it to still apply."
|
|
36
|
+
|
|
37
|
+
In practice:
|
|
38
|
+
|
|
39
|
+
| Who | Inferred consent? |
|
|
40
|
+
|---|---|
|
|
41
|
+
| A current member, student, retained client, service-plan or maintenance-contract customer | Usually yes, for messages directly related to that relationship |
|
|
42
|
+
| A property manager or business you do repeat work for | Usually yes, for related messages to the person you deal with |
|
|
43
|
+
| Someone who had one job, one purchase or one appointment | No |
|
|
44
|
+
| Someone who asked for a quote and didn't go ahead | Not established; treat as no |
|
|
45
|
+
| An address you hold only because you sent a receipt or invoice | No |
|
|
46
|
+
| A former customer from years ago | No ("old" consent) |
|
|
47
|
+
|
|
48
|
+
**Conspicuous publication** (Sch 2 cl 4) is a narrow exception for business
|
|
49
|
+
addresses: published for a person or role, publication reasonably assumed to
|
|
50
|
+
be agreed, no "no marketing" statement next to it, and the email relevant to
|
|
51
|
+
their work. The mere fact an address is published is not consent.
|
|
52
|
+
|
|
53
|
+
**Double opt-in is not required**, but ACMA recommends it. Filling in a form
|
|
54
|
+
is express consent. Keep records of how consent was obtained, the terms, and
|
|
55
|
+
the date and time. ACMA has said nothing specific about people who signed up
|
|
56
|
+
but never clicked the confirmation link; treat them as not emailable.
|
|
57
|
+
|
|
58
|
+
**Penalties.** For a company with no prior record, up to 100 penalty units
|
|
59
|
+
per contravention, capped at 2,000 units a day; ten times that with a prior
|
|
60
|
+
record (s 25). At $364 a unit from 1 July 2026 that is $36,400 per message
|
|
61
|
+
breach and $728,000 a day. Recent ACMA actions: Commonwealth Bank $7.5m (2024),
|
|
62
|
+
Pizza Hut $2.5m (2024), Ticketek $515,040 (2023), Outdoor Supacentre
|
|
63
|
+
$302,500 (2024, "companies can't outsource their compliance obligations"),
|
|
64
|
+
Lululemon $702,900 and Latitude $3.96m (2026).
|
|
65
|
+
|
|
66
|
+
## New Zealand: the Unsolicited Electronic Messages Act 2007
|
|
67
|
+
|
|
68
|
+
Much the same. Consent is express, inferred ("from the conduct and the
|
|
69
|
+
business and other relationships"), or deemed (conspicuous publication, same
|
|
70
|
+
conditions). A message that links to or directs someone to marketing is
|
|
71
|
+
commercial (s 6). The Department of Internal Affairs says consent cannot be
|
|
72
|
+
inferred from a single transaction, "silence should not be taken as consent",
|
|
73
|
+
and emailing an old database to ask people to unsubscribe "cannot establish
|
|
74
|
+
consent". Unsubscribe takes effect within 5 working days and must work by the
|
|
75
|
+
same method the message came by (ss 9, 11). On double opt-in the DIA is
|
|
76
|
+
firmer than Australia: "If this link is not clicked, then electronic
|
|
77
|
+
marketing should not take place." Penalties up to $200,000 for an individual
|
|
78
|
+
and $500,000 for an organisation.
|
|
79
|
+
|
|
80
|
+
## Privacy Act 1988 (Australia), where it touches email
|
|
81
|
+
|
|
82
|
+
- **Health information is sensitive information.** Collecting it needs the
|
|
83
|
+
person's consent (APP 3.3), and using sensitive information for direct
|
|
84
|
+
marketing needs consent too (APP 7.4). Health service providers are never
|
|
85
|
+
exempt as small businesses.
|
|
86
|
+
- So: never build a marketing group from conditions or diagnoses. Use an
|
|
87
|
+
opt-in interest instead.
|
|
88
|
+
- The statutory tort for serious invasions of privacy has applied since
|
|
89
|
+
10 June 2025. Direct-marketing changes are still only proposed (exposure
|
|
90
|
+
draft, August 2026).
|
|
91
|
+
|
|
92
|
+
## The mailbox providers' rules
|
|
93
|
+
|
|
94
|
+
Not law, but they decide whether email arrives. See `deliverability.md`.
|
|
95
|
+
Google's Workspace policy bans "unsolicited mass email" and can suspend the
|
|
96
|
+
account; Microsoft says businesses that need to send newsletters "should use
|
|
97
|
+
third-party providers". Neither the owner's Gmail nor their Microsoft 365
|
|
98
|
+
mailbox is a bulk sending tool.
|
|
99
|
+
|
|
100
|
+
## Sources
|
|
101
|
+
|
|
102
|
+
- Spam Act 2003: https://www.legislation.gov.au/C2004A01214/latest/text
|
|
103
|
+
- ACMA, Avoid sending spam: https://www.acma.gov.au/avoid-sending-spam
|
|
104
|
+
- ACMA, consent expectations (2024): https://www.acma.gov.au/publications/2024-07/guide/consumer-consent-expectations-businesses-conducting-telemarketing-and-e-marketing
|
|
105
|
+
- ACMA enforcement: https://www.acma.gov.au/investigations-spam-and-telemarketing
|
|
106
|
+
- Penalty unit from 1 July 2026: https://www.legislation.gov.au/F2026N00424/asmade/2026-06-16/text/original/pdf
|
|
107
|
+
- UEM Act 2007: https://www.legislation.govt.nz/act/public/2007/0007/latest/whole.html
|
|
108
|
+
- DIA FAQs: https://dia.govt.nz/Spam-Frequently-Asked-Questions and https://www.dia.govt.nz/Spam-Three-Steps
|
|
109
|
+
- Privacy Act 1988: https://www.legislation.gov.au/C2004A03712/latest/text
|
|
110
|
+
- Google Workspace sending limits: https://knowledge.workspace.google.com/admin/gmail/gmail-sending-limits-in-google-workspace
|
|
111
|
+
- Exchange Online limits: https://learn.microsoft.com/en-us/office365/servicedescriptions/exchange-online-service-description/exchange-online-limits
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# Writing emails for a small business's customers
|
|
2
|
+
|
|
3
|
+
Read this before drafting any email. The goal is an email the owner would be
|
|
4
|
+
happy to have written themselves, that a customer reads in twenty seconds and
|
|
5
|
+
acts on.
|
|
6
|
+
|
|
7
|
+
## The voice
|
|
8
|
+
|
|
9
|
+
- **The owner, writing to one person.** First person ("I", "we"), signed by
|
|
10
|
+
a real person. Not "Dear Valued Customer", not a brand talking to a crowd.
|
|
11
|
+
- **Their words, not marketing words.** Reuse how the owner talks about their
|
|
12
|
+
work. If they say "hot water unit", don't write "water heating solution".
|
|
13
|
+
If the account has a brand voice on file, follow it.
|
|
14
|
+
- **Australian or New Zealand English.** Organise, colour, centre, licence
|
|
15
|
+
(noun), program. Mobile, not cell. Postcode, not zip. Autumn, not fall.
|
|
16
|
+
Dates as 4 October or 4/10. Money in AUD or NZD with the dollar sign.
|
|
17
|
+
- **Southern hemisphere calendar.** December is summer and the Christmas
|
|
18
|
+
shutdown; storm season in Queensland and New South Wales runs roughly
|
|
19
|
+
November to March; winter is June to August. EOFY is 30 June in Australia,
|
|
20
|
+
31 March in New Zealand. School terms and public holidays differ by state
|
|
21
|
+
and region. Check before sending.
|
|
22
|
+
- **Plain, warm, direct.** "G'day" or "Kia ora" only if the owner talks that
|
|
23
|
+
way. No hype, no exclamation runs, no ALL CAPS, no emoji, no em-dashes
|
|
24
|
+
(Awesomate's checks refuse an em-dash in an email).
|
|
25
|
+
|
|
26
|
+
## Structure of one email
|
|
27
|
+
|
|
28
|
+
1. **Subject line**: specific and plain, usually under about 50 characters.
|
|
29
|
+
It should be true of the body.
|
|
30
|
+
2. **Preview text**: the line shown after the subject in the inbox. Add to
|
|
31
|
+
the subject; never repeat it, and never leave it to "View in browser".
|
|
32
|
+
3. **Opening line**: why this, why now, why you. One sentence.
|
|
33
|
+
4. **Body**: one idea. Two or three short paragraphs, or a short list.
|
|
34
|
+
5. **One button**: a verb and an outcome ("Book a storm-season check", "See
|
|
35
|
+
the new timetable"). Secondary links are fine as plain text; a second
|
|
36
|
+
button is a second email.
|
|
37
|
+
6. **Sign-off from a person**, optionally a P.S. (people read them).
|
|
38
|
+
7. **Footer**: why they're getting it ("You asked for seasonal tips"), the
|
|
39
|
+
business name and ABN or contact details, and unsubscribe. In Awesomate
|
|
40
|
+
the hub adds the footer and the unsubscribe link; you write only the
|
|
41
|
+
reason line, in the draft's `reason`.
|
|
42
|
+
|
|
43
|
+
## Subject lines that work for small businesses
|
|
44
|
+
|
|
45
|
+
- The question the customer is already asking: "Is your hot water system on
|
|
46
|
+
borrowed time?"
|
|
47
|
+
- The useful number: "3 things to check before the first storm"
|
|
48
|
+
- The local hook: "Carindale: water restrictions start Monday"
|
|
49
|
+
- The plain announcement: "Saturday classes start 12 October"
|
|
50
|
+
- The owner's voice: "A quick one from Rob"
|
|
51
|
+
|
|
52
|
+
Avoid: fake "RE:" or "FWD:" (misleading, and it trains people to distrust
|
|
53
|
+
you), clickbait the body doesn't pay off, ALL CAPS, piles of emoji, and
|
|
54
|
+
"Newsletter #14".
|
|
55
|
+
|
|
56
|
+
## Email types and what each one needs
|
|
57
|
+
|
|
58
|
+
| Type | Send when | Must include |
|
|
59
|
+
|---|---|---|
|
|
60
|
+
| Welcome | Straight after joining | What they'll get and how often, one useful thing now, who it's from |
|
|
61
|
+
| Tips or newsletter | On the promised cadence | One main idea; link to more |
|
|
62
|
+
| Announcement | Something genuinely new | What changed, who it's for, what to do |
|
|
63
|
+
| Offer | A real offer with a real end | The exact terms, the real end date, how to claim |
|
|
64
|
+
| Service reminder | Something is due | What's due, why it matters, one-click booking |
|
|
65
|
+
| Event invite | 2 to 4 weeks before | Date, time, place, cost, how to book |
|
|
66
|
+
| Win-back | Past customer, gone quiet | A personal note, a reason to come back, no guilt |
|
|
67
|
+
| Still want these? | Quiet for 6 to 12 months | One click to stay, otherwise we stop. Then stop. |
|
|
68
|
+
| Review request | After a finished job | A direct link; ask everyone, not only the happy ones |
|
|
69
|
+
|
|
70
|
+
## Rules from the law and the industry bodies
|
|
71
|
+
|
|
72
|
+
- **No invented proof.** No made-up testimonials, reviews, numbers or case
|
|
73
|
+
studies. Real reviews only with permission and quoted accurately.
|
|
74
|
+
- **Offers must be real.** "Was $X, now $Y" only if $X was the genuine
|
|
75
|
+
price. "Ends Friday" only if it ends Friday. "Free" means free. (Australian
|
|
76
|
+
Consumer Law; NZ Fair Trading Act.)
|
|
77
|
+
- **Reviews:** asking only satisfied customers for reviews ("review gating")
|
|
78
|
+
can mislead under consumer law. Ask everyone.
|
|
79
|
+
- **Registered health practitioners** (physio, chiro, dental, psychology,
|
|
80
|
+
optometry, osteopathy and others regulated by Ahpra) **cannot use
|
|
81
|
+
testimonials in advertising** for their regulated services, and must not
|
|
82
|
+
create unreasonable expectations or encourage unnecessary use. No
|
|
83
|
+
before-and-after claims, no "cure", no discounts that pressure people into
|
|
84
|
+
treatment.
|
|
85
|
+
- **Financial services:** if the firm holds an AFSL, broadcast content is
|
|
86
|
+
general advice at most and carries their warning. Never write personal
|
|
87
|
+
advice into a broadcast.
|
|
88
|
+
- **Real estate:** don't publish a vendor's sale price or a buyer's details
|
|
89
|
+
without permission.
|
|
90
|
+
|
|
91
|
+
## Personalisation
|
|
92
|
+
|
|
93
|
+
- First name only when the data is reliable; otherwise "Hi there". A wrong
|
|
94
|
+
name is worse than none. In Awesomate, `{{first_name|there}}` does both.
|
|
95
|
+
- Refer to their history only when it's accurate and expected: "the hot
|
|
96
|
+
water system we installed in 2019" is helpful from a plumber. "We noticed
|
|
97
|
+
you looked at our pricing page" is creepy.
|
|
98
|
+
- AI-personalised emails (a different paragraph per person) are fine when
|
|
99
|
+
every version is drafted from approved content and the owner has seen
|
|
100
|
+
samples. Show three examples, including the strangest one. Awesomate's
|
|
101
|
+
emails personalise with first name, last name and email only, so this is
|
|
102
|
+
for other platforms.
|
|
103
|
+
|
|
104
|
+
## From a video (Loom, YouTube, Vimeo)
|
|
105
|
+
|
|
106
|
+
Watch it first (the watch skill) so the email describes what is actually in
|
|
107
|
+
it. Email clients don't play video: use a still from the video with a play
|
|
108
|
+
button drawn on it, linking to the video. Summarise the useful part in the
|
|
109
|
+
email itself, so someone who never clicks still gets value.
|
|
110
|
+
|
|
111
|
+
## Design and accessibility
|
|
112
|
+
|
|
113
|
+
Single column. Real text, never text inside an image. Body at least about
|
|
114
|
+
16px. Buttons as real links with descriptive text, never "click here".
|
|
115
|
+
Alt text on every image. Works in dark mode. A plain-text version always.
|
|
116
|
+
No attachments: link to the file instead. In Awesomate the theme handles
|
|
117
|
+
layout, dark mode and the plain-text version; you supply the words, the alt
|
|
118
|
+
text and https links.
|
|
119
|
+
|
|
120
|
+
## Length
|
|
121
|
+
|
|
122
|
+
Most small-business emails are best between about 75 and 200 words. A
|
|
123
|
+
newsletter can be longer when it's scannable (short sections with clear
|
|
124
|
+
headings), but if it needs scrolling on a phone, ask whether it's two emails.
|
|
125
|
+
|
|
126
|
+
## Worked example: trades tips
|
|
127
|
+
|
|
128
|
+
Subject: 3 things to check before the first storm
|
|
129
|
+
Preview: Two minutes with a bucket can save a flooded laundry.
|
|
130
|
+
|
|
131
|
+
> G'day Sam,
|
|
132
|
+
>
|
|
133
|
+
> Storm season's nearly here. Before the first big one, it's worth two
|
|
134
|
+
> minutes on these:
|
|
135
|
+
>
|
|
136
|
+
> 1. **Gutters.** Clear leaves before they overflow into the eaves.
|
|
137
|
+
> 2. **Downpipes.** Pour a bucket down each and watch where it goes.
|
|
138
|
+
> 3. **The stormwater pit.** Lift the grate and check it isn't full of silt.
|
|
139
|
+
>
|
|
140
|
+
> If any of them look wrong, we'll sort it before the rain does.
|
|
141
|
+
>
|
|
142
|
+
> [Book a storm-season check]
|
|
143
|
+
>
|
|
144
|
+
> Cheers,
|
|
145
|
+
> Rob
|
|
146
|
+
>
|
|
147
|
+
> P.S. If your hot water system is more than 10 years old, ask us to look at
|
|
148
|
+
> it while we're there.
|
|
149
|
+
|
|
150
|
+
## Worked example: studio term enrolment (New Zealand)
|
|
151
|
+
|
|
152
|
+
Subject: Term 4 enrolments open Monday
|
|
153
|
+
Preview: Saturday hip hop is back, and there's a new adult beginners class.
|
|
154
|
+
|
|
155
|
+
> Kia ora Mere,
|
|
156
|
+
>
|
|
157
|
+
> Term 4 starts on 13 October and enrolments open this Monday at 9am.
|
|
158
|
+
> Saturday hip hop is back by popular demand, and we've added an adult
|
|
159
|
+
> beginners contemporary class on Wednesday nights.
|
|
160
|
+
>
|
|
161
|
+
> Spots in the Saturday classes went in two days last term, so if Aria is
|
|
162
|
+
> keen, Monday morning is the time.
|
|
163
|
+
>
|
|
164
|
+
> [See the Term 4 timetable]
|
|
165
|
+
>
|
|
166
|
+
> Ngā mihi,
|
|
167
|
+
> Jess
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Keeping email out of the spam folder
|
|
2
|
+
|
|
3
|
+
Read this when setting up sending, before a big or unusual send, or when
|
|
4
|
+
the owner says emails are going to spam.
|
|
5
|
+
|
|
6
|
+
## The set-up that protects the business
|
|
7
|
+
|
|
8
|
+
- **Send marketing from a subdomain**, for example `news.theirdomain.com.au`,
|
|
9
|
+
never from the main domain the owner uses for quotes and invoices. If a
|
|
10
|
+
campaign goes badly, the damage stays on the subdomain.
|
|
11
|
+
- **SPF, DKIM and DMARC all pass**, aligned with the From address. DMARC can
|
|
12
|
+
start at `p=none` on the subdomain and tighten to quarantine once mail has
|
|
13
|
+
passed cleanly for a few weeks. Never change the main domain's DMARC to
|
|
14
|
+
set up marketing.
|
|
15
|
+
- **A branded link domain** (for example `links.news.theirdomain.com.au`)
|
|
16
|
+
rather than a shared tracking domain. Never use URL shorteners in email.
|
|
17
|
+
- **Never bulk-send from the owner's own Gmail or Microsoft 365 mailbox.**
|
|
18
|
+
Those accounts have daily limits and outbound spam controls, and a
|
|
19
|
+
suspension takes the owner's everyday email with it. Small personal
|
|
20
|
+
batches are a different thing (see `asking-permission.md`).
|
|
21
|
+
|
|
22
|
+
## Starting a new sending address (warm-up)
|
|
23
|
+
|
|
24
|
+
New addresses have no reputation. Build it over about two weeks: a small
|
|
25
|
+
first day, growing each day, most engaged people first (recent customers and
|
|
26
|
+
recent clickers). One schedule that works: 150 on day one, 700 by day four,
|
|
27
|
+
2,000 by day seven, then the full list. A sudden big send from a new or
|
|
28
|
+
long-silent address looks like a spammer.
|
|
29
|
+
|
|
30
|
+
In Awesomate each approved email goes to everyone on its list who may be
|
|
31
|
+
emailed, so warm up by list: the smallest, most engaged list first (often the
|
|
32
|
+
customers list), then the bigger ones over the following weeks.
|
|
33
|
+
|
|
34
|
+
## List hygiene
|
|
35
|
+
|
|
36
|
+
Awesomate does the first of these for you: anyone who unsubscribes,
|
|
37
|
+
hard-bounces or marks an email as spam is left out of every later send, and
|
|
38
|
+
every marketing email carries one-click unsubscribe.
|
|
39
|
+
|
|
40
|
+
- Hard bounces and spam complaints: suppressed immediately, for good.
|
|
41
|
+
- Soft bounces: retry; suppress after several in a row.
|
|
42
|
+
- Quiet for six to twelve months (no click, reply, booking or purchase): one
|
|
43
|
+
"still want these?" email, then stop sending to anyone who doesn't respond.
|
|
44
|
+
Old, unread addresses are where spam traps live.
|
|
45
|
+
- Never buy, rent or scrape a list. Never import an event attendee list
|
|
46
|
+
someone else ran.
|
|
47
|
+
- Watch for typo domains on sign-up forms (gmial.com, hotmial.com).
|
|
48
|
+
|
|
49
|
+
## What the big inboxes require
|
|
50
|
+
|
|
51
|
+
Google and Yahoo (since February 2024): every sender needs SPF or DKIM,
|
|
52
|
+
valid DNS and TLS, and a low spam complaint rate. Senders of roughly 5,000
|
|
53
|
+
or more messages a day to them also need SPF, DKIM and aligned DMARC, and
|
|
54
|
+
one-click unsubscribe (the `List-Unsubscribe-Post` header, RFC 8058) on
|
|
55
|
+
marketing mail, honoured within two days. Keep the complaint rate below
|
|
56
|
+
0.1%; at 0.3% Gmail starts filtering or rejecting. Microsoft applies similar
|
|
57
|
+
rules to high-volume senders to Outlook.com addresses. Build to the bulk
|
|
58
|
+
standard even for small lists: it costs nothing and the thresholds are
|
|
59
|
+
measured across everything sent from the domain.
|
|
60
|
+
|
|
61
|
+
## Content that hurts
|
|
62
|
+
|
|
63
|
+
Image-only emails, missing plain-text version, link text that doesn't match
|
|
64
|
+
the link, URL shorteners, attachments, a different From name every send,
|
|
65
|
+
and subject lines the body doesn't pay off. "Spam words" matter far less
|
|
66
|
+
than people think; reputation and complaints matter far more.
|
|
67
|
+
|
|
68
|
+
## Diagnosing "we're going to spam"
|
|
69
|
+
|
|
70
|
+
1. **Check authentication** on a received copy: the headers should show
|
|
71
|
+
`spf=pass`, `dkim=pass`, `dmarc=pass` for the sending domain.
|
|
72
|
+
2. **Check complaint rate and reputation**: Google Postmaster Tools for the
|
|
73
|
+
sending domain; the platform's complaint numbers.
|
|
74
|
+
3. **What changed?** A new import, an old segment, a jump in frequency, a
|
|
75
|
+
new link domain, a new From address. The cause is almost always one of
|
|
76
|
+
these.
|
|
77
|
+
4. **Fix the cause, then recover slowly**: send only to the most engaged for
|
|
78
|
+
a couple of weeks, then widen.
|
|
79
|
+
|
|
80
|
+
Don't "fix" spam placement by rewording subject lines while the real cause
|
|
81
|
+
(an old list, high complaints) is still there.
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# Planning the lists: the first conversation
|
|
2
|
+
|
|
3
|
+
Read this when a business is starting email properly, moving off another
|
|
4
|
+
platform, or asks "what lists should we have?".
|
|
5
|
+
|
|
6
|
+
## Lists are promises, groups are filters
|
|
7
|
+
|
|
8
|
+
| | A list | A group |
|
|
9
|
+
|---|---|---|
|
|
10
|
+
| What it is | What someone agreed to receive | A filter over people already on lists |
|
|
11
|
+
| Who creates it | The owner, with wording people see | Anyone, any time |
|
|
12
|
+
| Needs consent? | Yes, its own | No, it inherits from the list |
|
|
13
|
+
| How many | Two to four | As many as are useful |
|
|
14
|
+
| Example | "Tips & seasonal checks" | "On Tips, hot water job over 8 years ago" |
|
|
15
|
+
|
|
16
|
+
Why so few lists: each one is a separate promise, needs its own sign-up
|
|
17
|
+
wording, and has to be honoured on cadence. Five lists that each send monthly
|
|
18
|
+
is five emails a month to someone on all of them. Most small businesses are
|
|
19
|
+
best served by one main list plus one customers-only list.
|
|
20
|
+
|
|
21
|
+
## The method
|
|
22
|
+
|
|
23
|
+
1. **Learn the business.** Read the website (services, seasons, what is
|
|
24
|
+
booked or bought again and again), the business overview if the account
|
|
25
|
+
has one, and how they describe themselves. Note the customer's buying
|
|
26
|
+
cycle: a hot water system every 10 to 15 years, a dental check every 6
|
|
27
|
+
months, a dance term every 10 weeks, a tax return every year.
|
|
28
|
+
2. **Read the source list.** Groups, interests and tags from the old
|
|
29
|
+
platform say what people actually signed up for. Sign-up form names and
|
|
30
|
+
dates tell you which promise each person saw.
|
|
31
|
+
3. **Read the job or sales history if connected.** Customers with an
|
|
32
|
+
ongoing relationship (members, retained clients, service plans, repeat
|
|
33
|
+
work) can usually receive messages directly related to it, once the
|
|
34
|
+
owner confirms the relationship. One-off customers can't, until they
|
|
35
|
+
sign up (see `consent-law.md` and `asking-permission.md`). Customers are
|
|
36
|
+
still the most valuable people on any list.
|
|
37
|
+
4. **Propose two to four lists**, each as one sentence the owner can read
|
|
38
|
+
aloud: name, the promise in the words a subscriber will see, how often,
|
|
39
|
+
who starts on it and why, and the count. Then three to five starter
|
|
40
|
+
groups.
|
|
41
|
+
5. **Put imported people only on a list their sign-up covers.** Someone who
|
|
42
|
+
signed up for "seasonal tips" has not agreed to "offers". When a mapping
|
|
43
|
+
is a judgement call, put them on the closer, narrower list and tell the
|
|
44
|
+
owner what you did.
|
|
45
|
+
6. **Let the owner change it in their words.** "Drop News, fold it into
|
|
46
|
+
Tips" is a complete instruction. Repeat back what will change, then make
|
|
47
|
+
the change. In Awesomate the owner creates and changes lists in the hub
|
|
48
|
+
(https://hub.awesomate.ai/contacts, or while importing), so give them each
|
|
49
|
+
list's name and wording ready to paste, and say which ones are customers
|
|
50
|
+
lists.
|
|
51
|
+
|
|
52
|
+
Present the proposal like this (keep it this short):
|
|
53
|
+
|
|
54
|
+
> I'd start with three lists.
|
|
55
|
+
> **Tips & seasonal checks**, about monthly, more in storm season. Promise:
|
|
56
|
+
> "Seasonal maintenance tips by email. Unsubscribe any time." 1,527 people
|
|
57
|
+
> from your Mailchimp "Newsletter" group start here.
|
|
58
|
+
> **Service reminders**, only when something is due, about work we did for
|
|
59
|
+
> them. 412 repeat customers and property managers, if you confirm you work
|
|
60
|
+
> with them regularly. One-off customers join when they next book.
|
|
61
|
+
> **News & offers**, a few times a year. 1,179 people who ticked "specials"
|
|
62
|
+
> on your old form.
|
|
63
|
+
> And groups for: hot water systems over 8 years old, Carindale and
|
|
64
|
+
> surrounds, clicked but didn't book, quiet for six months.
|
|
65
|
+
> Want any of those changed?
|
|
66
|
+
|
|
67
|
+
## Starter sets by kind of business
|
|
68
|
+
|
|
69
|
+
These are starting points to adapt, not templates to copy. Rename everything
|
|
70
|
+
into the owner's own words.
|
|
71
|
+
|
|
72
|
+
**Trades and field service** (plumbers, electricians, builders, pest,
|
|
73
|
+
cleaning, solar). Lists: Tips & seasonal checks (monthly, heavier before
|
|
74
|
+
storm season, winter or summer depending on the trade); Service reminders
|
|
75
|
+
(customers, when due); News & offers (occasional). Groups: by suburb or
|
|
76
|
+
postcode radius, by job type, by age of the thing installed, landlords vs
|
|
77
|
+
owner-occupiers, commercial vs residential.
|
|
78
|
+
|
|
79
|
+
**Studios, classes and training** (dance, martial arts, yoga, music,
|
|
80
|
+
tutoring, swim). Lists: Timetable & new classes (per term, plus changes);
|
|
81
|
+
Events & workshops; Members' and families' news (current students, inferred
|
|
82
|
+
from enrolment). Groups: by class or level, parents vs adult students,
|
|
83
|
+
lapsed students (no enrolment this term), trial-class attendees who didn't
|
|
84
|
+
join. Term dates drive cadence: send before enrolments open, not during
|
|
85
|
+
holidays.
|
|
86
|
+
|
|
87
|
+
**Retail, ecommerce and product.** Lists: New arrivals & restocks; Sales &
|
|
88
|
+
offers; Care & how-to (product care, recipes, guides). Groups: bought in a
|
|
89
|
+
category, repeat buyers, first-time buyers in their first 30 days, haven't
|
|
90
|
+
bought in 6 or 12 months, VIP by spend. Be careful with frequency: offers
|
|
91
|
+
weekly trains people to wait for the discount.
|
|
92
|
+
|
|
93
|
+
**Health and allied health** (physio, chiro, dental, psych, optometry,
|
|
94
|
+
vets). Lists: Clinic news & general tips (no condition-specific content);
|
|
95
|
+
Appointment and recall reminders (patients, part of their care, kept
|
|
96
|
+
separate from marketing). Groups: only from non-sensitive facts unless the
|
|
97
|
+
patient explicitly consented to that use (location, practitioner seen,
|
|
98
|
+
"interested in Pilates" from an opt-in). Never a group built from diagnoses
|
|
99
|
+
or conditions. Registered health practitioners cannot use testimonials in
|
|
100
|
+
advertising. See `copywriting.md`.
|
|
101
|
+
|
|
102
|
+
**Real estate and property.** Lists: Suburb market updates; New listings &
|
|
103
|
+
open homes; Landlord updates (landlords only). Groups: by suburb, buyers vs
|
|
104
|
+
sellers vs landlords vs tenants, appraisal requested, price band. Sold
|
|
105
|
+
results need care around vendor privacy.
|
|
106
|
+
|
|
107
|
+
**Finance, accounting and advisory.** Lists: Tax time & key dates (BAS,
|
|
108
|
+
EOFY, lodgement deadlines); Business tips; Client updates (current clients).
|
|
109
|
+
Groups: sole traders vs companies, BAS quarterly vs monthly, clients with
|
|
110
|
+
upcoming lodgements. If the firm holds an AFSL, broadcast content stays
|
|
111
|
+
general and carries their general advice warning; ask them for it.
|
|
112
|
+
|
|
113
|
+
**Coaching and consulting.** Lists: Weekly or fortnightly letter (the
|
|
114
|
+
owner's thinking, one idea per email); Programs & events. Groups: past
|
|
115
|
+
clients, workshop attendees, downloaded a guide.
|
|
116
|
+
|
|
117
|
+
**Hospitality** (cafes, restaurants, venues). Lists: What's on & specials;
|
|
118
|
+
Functions & events. Groups: by venue, booked a function, birthday month
|
|
119
|
+
(only if collected with consent).
|
|
120
|
+
|
|
121
|
+
## What the owner should leave with
|
|
122
|
+
|
|
123
|
+
- The lists, each with its promise wording (this becomes the consent wording
|
|
124
|
+
version 1), cadence and starting count.
|
|
125
|
+
- The starter groups, each as a sentence and a count.
|
|
126
|
+
- What happens to people who fit no list: they stay as contacts and are not
|
|
127
|
+
emailed until they join something.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Moving a list off Mailchimp, ActiveCampaign or Ontraport
|
|
2
|
+
|
|
3
|
+
Read this before importing from another platform. The aim is to bring the
|
|
4
|
+
consent records as well as the addresses, so that on day one everyone's
|
|
5
|
+
status is known and nobody who left is ever emailed again.
|
|
6
|
+
|
|
7
|
+
## Into Awesomate's Contacts & email
|
|
8
|
+
|
|
9
|
+
The owner imports, in the hub at https://hub.awesomate.ai/contacts/import
|
|
10
|
+
(Bring your list). It takes a spreadsheet (a CSV with an email column),
|
|
11
|
+
Mailchimp (an API key, which is used once and not kept, or the subscribed,
|
|
12
|
+
unsubscribed and cleaned export files), an ActiveCampaign export (one file per
|
|
13
|
+
status, or one file with a Status column) or an Ontraport export (with the
|
|
14
|
+
Bulk Email Status column). The hub reads each person's status, puts the
|
|
15
|
+
unsubscribed and bounced in first, and sorts everyone by the record of how
|
|
16
|
+
they agreed: a sign-up record, needs the owner's word, or unknown. At review
|
|
17
|
+
the owner picks the lists, gives their word for the people with no record if
|
|
18
|
+
they can, may say that everyone with a given tag is a customer they work with
|
|
19
|
+
regularly (which puts them on a customers list), and commits. They can undo an import until the end of that day.
|
|
20
|
+
|
|
21
|
+
You can't import or commit, because committing is the owner's statement about
|
|
22
|
+
who agreed. Your part: read the export first, report the counts per status,
|
|
23
|
+
and suggest which list each group or tag belongs on (below).
|
|
24
|
+
|
|
25
|
+
## Bring these, not just the emails
|
|
26
|
+
|
|
27
|
+
- Status (subscribed, pending, unsubscribed, bounced, complained).
|
|
28
|
+
- When and how they signed up: time, source or form, IP if recorded,
|
|
29
|
+
confirmation time if double opt-in.
|
|
30
|
+
- Groups, interests and tags (they map to lists or groups, see below).
|
|
31
|
+
- Custom fields worth keeping (suburb, customer type, last job).
|
|
32
|
+
- The last 12 months of clicks if available, to send to the most engaged
|
|
33
|
+
first while a new sending address warms up.
|
|
34
|
+
|
|
35
|
+
## Status maps
|
|
36
|
+
|
|
37
|
+
| Platform | Status in the source | Becomes |
|
|
38
|
+
|---|---|---|
|
|
39
|
+
| Mailchimp | subscribed, with OPTIN_TIME / CONFIRM_TIME | Can be emailed on the matching list |
|
|
40
|
+
| Mailchimp | subscribed, no sign-up record | Needs the owner's statement before anyone emails them |
|
|
41
|
+
| Mailchimp | pending (never confirmed) | Not emailed. See `asking-permission.md` |
|
|
42
|
+
| Mailchimp | unsubscribed | Suppressed, permanently |
|
|
43
|
+
| Mailchimp | cleaned (hard bounced) | Suppressed, permanently |
|
|
44
|
+
| Mailchimp | transactional, archived | Not on any marketing list |
|
|
45
|
+
| ActiveCampaign | Active (list status 1) | Can be emailed on that list |
|
|
46
|
+
| ActiveCampaign | Unconfirmed (0) | Not emailed |
|
|
47
|
+
| ActiveCampaign | Unsubscribed (2), Bounced (3) | Suppressed |
|
|
48
|
+
| Ontraport | Opted-in, Double opt-in | Can be emailed |
|
|
49
|
+
| Ontraport | Transactional Only | Not on any marketing list |
|
|
50
|
+
| Ontraport | Hard bounce, Under review | Suppressed |
|
|
51
|
+
|
|
52
|
+
Where to find them: Mailchimp exports an audience as a ZIP with subscribed,
|
|
53
|
+
unsubscribed and cleaned files (Audience, All contacts, Export Audience); the
|
|
54
|
+
API also returns `timestamp_signup`, `timestamp_opt` and `ip_opt`.
|
|
55
|
+
ActiveCampaign's API URL and key are under Settings, Developer. Ontraport's
|
|
56
|
+
API key and App ID are under Administration, Integrations; the email status
|
|
57
|
+
field is `bulk_mail` (Bulk Email Status in an export). For Awesomate, only
|
|
58
|
+
Mailchimp is read by API key; ActiveCampaign and Ontraport come in as export
|
|
59
|
+
files.
|
|
60
|
+
|
|
61
|
+
Platform field names change; check the export headers rather than trusting
|
|
62
|
+
this table blindly, and say so if a column you expected isn't there.
|
|
63
|
+
|
|
64
|
+
## Groups and tags: list or group?
|
|
65
|
+
|
|
66
|
+
- A group or interest someone **chose** on a sign-up form ("Tips", "Specials")
|
|
67
|
+
is a promise: map it to a list.
|
|
68
|
+
- A tag the business **applied** ("customer", "Carindale", "VIP") is a fact:
|
|
69
|
+
map it to a field or a group, never to a list.
|
|
70
|
+
- When a source has one big list and no groups, everyone goes on the list
|
|
71
|
+
closest to what the sign-up form promised. Find the form wording if you
|
|
72
|
+
can.
|
|
73
|
+
|
|
74
|
+
## Order of work
|
|
75
|
+
|
|
76
|
+
1. Read the source and report counts per status before importing anything.
|
|
77
|
+
2. Agree the lists (see `list-planning.md`).
|
|
78
|
+
3. Import, with suppressions first, so a suppressed address can never be
|
|
79
|
+
re-added as subscribed by a later row. (Awesomate's import does this
|
|
80
|
+
itself.)
|
|
81
|
+
4. The owner confirms anything that needs their statement.
|
|
82
|
+
5. Decide where new sign-ups go. If the new system takes sign-ups, point the
|
|
83
|
+
website form and any automations at it. Awesomate's Contacts & email
|
|
84
|
+
doesn't host a sign-up form, so keep the form in a tool that records what
|
|
85
|
+
each person agreed to, and import from it.
|
|
86
|
+
6. **Keep the old platform open for 30 days after its last send.**
|
|
87
|
+
Unsubscribe links in old emails must keep working for that long. At the
|
|
88
|
+
end, import once more to catch late unsubscribes, then close it.
|
|
89
|
+
7. Leave the old platform's DNS records alone until it is closed.
|
|
90
|
+
|
|
91
|
+
## Things that go wrong
|
|
92
|
+
|
|
93
|
+
- Re-importing an old export after unsubscribes have happened, which
|
|
94
|
+
re-subscribes people. Suppressions always win.
|
|
95
|
+
- Treating "pending" as subscribed. They never confirmed.
|
|
96
|
+
- Importing a "leads" or "event attendees" list with no consent as if it
|
|
97
|
+
were subscribers.
|
|
98
|
+
- Mapping every tag to a list, so people are "on" ten lists they never
|
|
99
|
+
chose.
|
|
100
|
+
- Sending to the whole imported list on day one from a new address. Warm up
|
|
101
|
+
(see `deliverability.md`).
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Reading results honestly
|
|
2
|
+
|
|
3
|
+
Read this when reporting on a send, comparing sends, or when the owner asks
|
|
4
|
+
"was that good?".
|
|
5
|
+
|
|
6
|
+
## What each number means
|
|
7
|
+
|
|
8
|
+
| Number | What it really tells you | Trust it? |
|
|
9
|
+
|---|---|---|
|
|
10
|
+
| Delivered | Accepted by the receiving server. Not "in the inbox". | Yes |
|
|
11
|
+
| Bounced | Address doesn't exist (hard) or is temporarily full or blocked (soft). | Yes |
|
|
12
|
+
| Clicked (people) | Unique people who clicked, after filtering inbox scanners. | Yes, the main signal |
|
|
13
|
+
| Replied | People who wrote back. Small but strong. | Yes |
|
|
14
|
+
| Booked, bought | Only if bookings or orders are connected and matched to the email. | Yes, when connected |
|
|
15
|
+
| Unsubscribed | People who left. Read with the content and cadence. | Yes |
|
|
16
|
+
| Complaints | People who pressed "Report spam". The one that hurts deliverability most. | Yes |
|
|
17
|
+
| Opened | Apple Mail and many scanners open emails automatically, so this overstates reading by a lot. | Trend only |
|
|
18
|
+
|
|
19
|
+
Never decide "who is engaged", pick A/B winners, or praise a send on opens.
|
|
20
|
+
|
|
21
|
+
## Healthy ranges (rules of thumb, not benchmarks)
|
|
22
|
+
|
|
23
|
+
- Bounces under about 2% of a send. Above that, the list has old or bad
|
|
24
|
+
addresses; stop and clean before sending again.
|
|
25
|
+
- Complaints well under 0.1%. Gmail treats 0.3% as a hard line.
|
|
26
|
+
- Unsubscribes: a fraction of a percent per send is normal. A spike means
|
|
27
|
+
the content didn't match the promise, or the cadence went up.
|
|
28
|
+
- Clicks vary enormously by business and list. **Compare a business with its
|
|
29
|
+
own previous sends**, not with published industry averages, which are
|
|
30
|
+
built on opens and on businesses unlike this one.
|
|
31
|
+
|
|
32
|
+
## What to do about what you see
|
|
33
|
+
|
|
34
|
+
| You see | Likely cause | Do |
|
|
35
|
+
|---|---|---|
|
|
36
|
+
| Bounces jumped | An old or bought list was imported, or a typo-heavy form | Remove hard bounces, check the source, add form validation |
|
|
37
|
+
| Complaints | People don't remember agreeing, or got more than promised | Check where those people came from; slow the cadence; make the reason-for-receiving line clearer |
|
|
38
|
+
| Unsubscribes spiked | Off-promise content, or a sudden frequency jump | Send what the list promised; offer a less-often option |
|
|
39
|
+
| Clicks dropping send on send | Same email every time, or too often | Fewer, more specific emails; send to a narrower group |
|
|
40
|
+
| Gmail delivering to spam | Authentication, complaints, or a burst to cold addresses | See `deliverability.md` |
|
|
41
|
+
|
|
42
|
+
## How to report to the owner
|
|
43
|
+
|
|
44
|
+
One-line verdict, three numbers, at most three next steps, each tied to a
|
|
45
|
+
number. Credit honestly: a click is not a booking unless the booking is
|
|
46
|
+
connected.
|
|
47
|
+
|
|
48
|
+
> Your best send so far. 1,398 people got it, 214 clicked (15.3%, up from
|
|
49
|
+
> 14.7% in September), and nobody complained.
|
|
50
|
+
>
|
|
51
|
+
> Next: 46 people tagged hot water clicked the hot water
|
|
52
|
+
> link. I'd send them a short personal note about the new heat pump option.
|
|
53
|
+
> Want me to draft it?
|