@awesomate/hosting-mcp 0.54.0 → 0.56.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.
Files changed (26) hide show
  1. package/dist/index.js +2 -2
  2. package/package.json +1 -1
  3. package/skill/CHANGELOG.json +16 -0
  4. package/skill/awesomate-email/SKILL.md +291 -0
  5. package/skill/awesomate-email/evals/ask-never-emailed/graders/grader.md +22 -0
  6. package/skill/awesomate-email/evals/ask-never-emailed/prompt.md +1 -0
  7. package/skill/awesomate-email/evals/health-segment/graders/grader.md +20 -0
  8. package/skill/awesomate-email/evals/health-segment/prompt.md +1 -0
  9. package/skill/awesomate-email/evals/results-honest/graders/grader.md +19 -0
  10. package/skill/awesomate-email/evals/results-honest/prompt.md +1 -0
  11. package/skill/awesomate-email/evals/spam-folder/graders/grader.md +18 -0
  12. package/skill/awesomate-email/evals/spam-folder/prompt.md +1 -0
  13. package/skill/awesomate-email/evals/starter-lists-studio/graders/grader.md +21 -0
  14. package/skill/awesomate-email/evals/starter-lists-studio/prompt.md +1 -0
  15. package/skill/awesomate-email/evals/write-newsletter/graders/grader.md +24 -0
  16. package/skill/awesomate-email/evals/write-newsletter/prompt.md +1 -0
  17. package/skill/awesomate-email/references/asking-permission.md +116 -0
  18. package/skill/awesomate-email/references/consent-law.md +111 -0
  19. package/skill/awesomate-email/references/copywriting.md +167 -0
  20. package/skill/awesomate-email/references/deliverability.md +81 -0
  21. package/skill/awesomate-email/references/list-planning.md +127 -0
  22. package/skill/awesomate-email/references/migration.md +101 -0
  23. package/skill/awesomate-email/references/reporting.md +53 -0
  24. package/skill/awesomate-email/references/segmentation.md +107 -0
  25. package/skill/awesomate-knowledge/references/ingestion-sources.md +2 -2
  26. package/skill/awesomate-knowledge/references/quotas-and-packs.md +17 -2
@@ -0,0 +1,107 @@
1
+ # Groups (segments) that a small business can actually use
2
+
3
+ Read this when choosing who gets a particular email, or when the owner asks
4
+ for "a segment", "a group", "just the people who...".
5
+
6
+ In Awesomate an email goes to everyone on one list who may be emailed, and
7
+ can't be narrowed to a group. There, groups decide what to write, which list
8
+ fits, and when a handful of personal notes would do better than a broadcast.
9
+ Count them with `awesomate_crm_query` and check examples with
10
+ `awesomate_crm_rows`. On a platform that sends to groups, they also decide
11
+ who gets it.
12
+
13
+ ## Start from what the business recorded
14
+
15
+ In order of usefulness for a small business:
16
+
17
+ 1. **What they bought, booked or had done**, and when. The strongest signal
18
+ there is.
19
+ 2. **What is due.** Last service date plus the interval: gas appliance
20
+ service, hot water check, dental recall, car service, term enrolment, tax
21
+ lodgement, lease renewal.
22
+ 3. **What they clicked or replied to.** Interest shown in a past email.
23
+ 4. **What they told you.** Answers on a sign-up or preferences page.
24
+ 5. **Where they are.** Suburb or postcode, for anything local.
25
+ 6. **Their role.** Owner vs tenant vs landlord; who pays vs who is on site.
26
+
27
+ Opens are not on this list. Apple Mail and many inbox scanners open emails
28
+ automatically, so "opened" does not mean "read". Never build an "engaged"
29
+ group from opens alone.
30
+
31
+ ## Tags: how what the business knows gets in
32
+
33
+ When the email system holds contacts and email activity but not jobs or
34
+ orders, everything else arrives as **tags**. On most platforms an n8n workflow
35
+ can tag people when a job finishes in ServiceM8, an import brings the old
36
+ platform's tags, and the owner can tag people by hand. In Awesomate's Contacts
37
+ & email, tags and fields come in with an import. Tags are what most groups are
38
+ built from, so keep them tidy:
39
+
40
+ - **One idea per tag, in the owner's words, with a consistent prefix** when
41
+ there are many: `service: hot water`, `suburb: Carindale`, `customer:
42
+ regular`, `installed: 2016`. Prefixes make groups easy to read and stop
43
+ near-duplicates ("hotwater", "hot water", "HWS").
44
+ - **Say where each tag comes from**: "added by the ServiceM8 workflow when a
45
+ job is invoiced". A tag nobody can explain is a tag nobody should send on.
46
+ - **A tag is a fact, never permission.** Tagging someone "customer" does not
47
+ put them on a list or make them emailable. Only their consent does.
48
+ - **Retire tags that stop being true** ("quote pending") or the groups built
49
+ on them quietly go wrong.
50
+ - Before creating a tag, look for an existing one that means the same thing.
51
+
52
+ ## Recipes
53
+
54
+ | Group | Rule, in a sentence |
55
+ |---|---|
56
+ | New in the last 30 days | Joined any list in the last 30 days. Gets the welcome, not the backlog. |
57
+ | Active customers | Job, booking or purchase in the last 12 months. |
58
+ | Lapsed customers | Last job or purchase more than one buying cycle ago (12 to 18 months for most services; a term for classes). |
59
+ | Subscribers who never bought | On a list, no job or purchase ever. |
60
+ | Due for service | Last service of type X more than its interval ago, no open booking. |
61
+ | Clicked, didn't act | Clicked the booking or buy link in the last send, no booking or order since. |
62
+ | Quiet for six months | No click, reply, booking or purchase in six months. Candidates for one "still want these?" email, then stop. |
63
+ | Local | Postcode in a list, or within N km of the business. |
64
+ | High value | Top 20% by spend in 24 months (retail), or repeat customers (services). |
65
+ | Interested in X | Ticked X on the preferences page, or clicked an X link twice. |
66
+
67
+ For retail, recency, frequency and spend (RFM) groups work well: recent and
68
+ frequent buyers get new arrivals first; high spend but lapsed get a personal
69
+ win-back.
70
+
71
+ ## Always leave out
72
+
73
+ - Unsubscribed, hard-bounced and complained. Not a choice.
74
+ - Anyone emailed in the last few days, unless the list promised more.
75
+ - Anyone with an open complaint or a job in dispute. An offer to an unhappy
76
+ customer is how a complaint becomes a review.
77
+ - Staff, family and test addresses (put them in a test group instead).
78
+ - People whose only consent is for another list.
79
+
80
+ ## Never build a group from
81
+
82
+ Health conditions or diagnoses, disability, financial hardship, criminal
83
+ record, religion, ethnicity, sexuality, union or political membership, unless
84
+ the person explicitly consented to that information being used for that
85
+ purpose. In Australia most of these are "sensitive information" under the
86
+ Privacy Act and need consent to collect at all. In practice: use an opt-in
87
+ interest ("interested in our Pilates classes") instead of a condition ("has
88
+ back pain").
89
+
90
+ Also avoid groups that feel creepy even when legal: "looked at this page
91
+ three times", "lives on your street". Use what the person would expect the
92
+ business to know.
93
+
94
+ ## Size sense
95
+
96
+ - Under about 20 people: consider personal emails from the owner instead of
97
+ a broadcast. They will out-perform any template.
98
+ - A group that is most of the list is not a group. Ask what makes this email
99
+ relevant to only some people.
100
+ - Show the count and two or three example names before using a group, so
101
+ the owner can spot a wrong rule ("why is my accountant in here?").
102
+
103
+ ## How to write a group down
104
+
105
+ Name, rule as one sentence, count, and when it was counted. Groups update
106
+ themselves: the count at send time can differ from the count at drafting,
107
+ and each batch re-checks who may be emailed at that moment.
@@ -10,9 +10,9 @@ estimating BEFORE asking approval.
10
10
  |---|---|---|
11
11
  | Web page / blog post | `add {url}` | One page per URL; extraction skips pages under ~200 chars of real text |
12
12
  | Whole site / blog | `add {sitemap, since?}` | sitemap.xml; default cap 500 pages per job — a bigger sitemap FAILS the job loudly rather than truncating silently. `since` skips entries with older `<lastmod>` |
13
- | YouTube / hosted video, podcast audio | `add {url}` | Transcribed (Deepgram); language defaults to English |
13
+ | YouTube / hosted video, podcast audio | `add {url}` | **Not transcribed today**: a link to a recording is read as a web page (title and description). Pro and above only; below Pro, or in a trial, it is refused (403 `media_ingest`). To transcribe a recording, upload the file |
14
14
  | PDF / book / document / markdown | hub upload page | Text layer used; scanned pages OCR'd automatically (`auto` mode, capped at 300 OCR pages per job — over that the job fails BEFORE any vision spend) |
15
- | Video/audio FILES | hub upload page (≤ 100 MB) | Bigger media: host it and add by URL |
15
+ | Video/audio FILES | hub upload page (≤ 100 MB) | Transcribed (Deepgram, language defaults to English). Pro and above, within the month's media hours. A longer recording: split or compress it and upload each part |
16
16
  | Images | hub upload page | Vision-described, then indexed |
17
17
  | Facebook export | hub upload page | The platform's facebook-export lane |
18
18
  | FAQs | Markdown file via `awesomate_knowledge_upload` | One `##` per question, so each becomes its own citable section. **Never** a Q&A spreadsheet as it is: convert it to this file, so every answer stays word for word and citable. Full recipe: [faqs.md](faqs.md) |
@@ -33,8 +33,9 @@ Knowledge → Usage page. A full library on Support Plus and up answers 402
33
33
  `addon_required` with the add-on's details when the owner can buy it, or 402
34
34
  `storage_full` with a sentence when they can't (in a trial, at the cap, or
35
35
  not the owner). Relay either one as it is; never buy anything.
36
- An answers pack counts only for the calendar month (UTC) it is bought in, so
37
- buying one late in the month buys less; say so before they confirm.
36
+ An answers pack and a media-hours pack count only for the calendar month (UTC)
37
+ they are bought in, so buying one late in the month buys less; say so before
38
+ they confirm. A media-hours pack is Pro and above (audio and video are).
38
39
 
39
40
  - An ingest that would exceed included+packs returns `pack_required`. The
40
41
  tool response purchases NOTHING and queues NOTHING.
@@ -45,6 +46,20 @@ buying one late in the month buys less; say so before they confirm.
45
46
  - Insufficient credits → 402 `insufficient_credits`: top up from Billing
46
47
  first. Never loop on it.
47
48
 
49
+ ## Media hours
50
+
51
+ Audio and video are Pro and above. The month's media hours are where
52
+ transcription stops: the plan's hours, plus the one-off onboarding hours in the
53
+ workspace's first month, plus this month's media-hours packs, plus the monthly
54
+ media-hours add-on. Past them, a new recording is refused (`media_hours_exceeded`)
55
+ until the 1st of next month (UTC); a recording already transcribed once is never
56
+ charged again. The owner is told at 80% and 100%.
57
+
58
+ The ways past it: a media-hours pack (40 hours for the rest of this month,
59
+ 1 credit, via the pack flow above), the monthly media-hours add-on (40 more hours
60
+ in every month it runs, $100 a month on the card, added by the owner on Knowledge
61
+ → Usage; don't buy it from here), or a bigger plan.
62
+
48
63
  ## Answer limit
49
64
 
50
65
  Answers are a hard stop. The allowance is the plan's monthly answers plus