@awesomate/hosting-mcp
Version:
Awesomate MCP server — lets Claude manage your Awesomate WordPress hosting, plan, limits, n8n automations, and build Node/static apps + databases
143 lines (113 loc) • 7.87 kB
Markdown
# The webinar recipe: registration on the business's own Zoom, in one conversation
**What the owner gets:** a page on their website for a webinar (a masterclass, a Q&A, a workshop)
with a registration form. Each person who registers gets their own Zoom link on the page and by
email, a reminder a day before and an hour before, and the recording afterwards, all from the
business's own sending name. Everyone registered is in Contacts with the webinar's tag. People who
tick the box join the email list. A follow-up series waits as a draft for the owner to switch on.
**Made of:** `awesomate_business`, `awesomate_webinars`, `awesomate_crm_forms` (the webinar's form),
`awesomate_crm_lists`, a page (`awesomate_wp_post`, or a static landing app),
`awesomate_crm_series`. No n8n and no Zoom node: the hub talks to Zoom and sends the emails.
**Needs:** Contacts, email and webinars on the account (`awesomate_get_context` `features`), the
business's sending set up, and Zoom connected in the hub with at least one Zoom user who can host:
a paid (Licensed) user for a meeting with registration, plus Zoom's Webinars add-on for a Zoom
Webinar. Support Plus and above for the follow-up series. On Essentials, one webinar is open at a
time, with 100 registrations a month.
Work through it in order, one short message to the owner at a time.
## 1. Zoom, and what's missing
1. `awesomate_webinars` `zoom`. When `connected` is false, say `note` in one line; when `ready` is
false, say `sentence`. Either way give the owner `connect_url`: an Owner connects Zoom there by making a small app in
their own Zoom and pasting its three values. The step-by-step is
https://hub.awesomate.ai/docs/mcp/guides/zoom/ (about ten minutes). **Never ask for the Account
ID, Client ID or Client secret in the chat**, and if the owner pastes one, tell them not to and
to paste it in the hub instead. Carry on drafting meanwhile.
2. `hosts`: who can host what. `meetings: true` can host a meeting with registration; `webinars:
true` can host a Zoom Webinar. If nobody can, the owner needs a paid Zoom seat for the host.
3. `awesomate_business` for the voice, and `awesomate_crm_forms` `ready`: each item in `missing`
comes with the hub page that fixes it (a sending name, the email terms, business details). Tell
the owner in one line each.
## 2. The event
Agree with the owner, in their words:
- **The title** people read in every email ("Thursday masterclass: pricing your first job"). Plain
words, at most 120 characters.
- **When**, in their time zone: a date and a wall-clock time (`starts_at: '2026-11-05T19:00'`,
`timezone: 'Australia/Sydney'`; `Pacific/Auckland` for New Zealand). Read it back as a sentence
before making it.
- **How long** (`minutes`, 15 to 480; default 60).
- **Meeting or Zoom Webinar.** Recommend a meeting (`kind: 'meeting'`) unless they have the
Webinars add-on and want a presenter-only room for a big audience.
- **Who hosts** (`host_email`), from `hosts`.
- **Whether to offer the email list**, and which one, as in the lead magnet recipe: agree a new
list's name and promise word for word before making it. Single opt-in by default.
## 3. The webinar and its form
`awesomate_webinars create`:
```json
{
"action": "create",
"title": "Thursday masterclass: pricing your first job",
"starts_at": "2026-11-05T19:00",
"timezone": "Australia/Sydney",
"minutes": 60,
"kind": "meeting",
"host_email": "sam@brightwater.com.au",
"website": "https://brightwater.com.au",
"lists": ["tips"],
"optin": "single",
"tag": "masterclass-nov-2026",
"intro": "One hour, live, with time for your questions."
}
```
- `tag` goes on everyone who registers. Give it a short lower-case name (letters, numbers and
dashes) when a follow-up series may need to pick out this webinar's people: a series only takes
a tag of that shape. Left out, the tag is the webinar's title.
- It is a DRAFT with its registration form. Nothing is in Zoom yet and nobody can register.
- `open_block` says what still stops registration opening, in words to pass on as they are.
- The webinar's `form_id` is an ordinary form: show the owner its preview with
`awesomate_crm_forms get {id: form_id}` (the fields, the box's sentence and the small print, word
for word). Change the form there (`update {id: form_id, version, ...}`); change the webinar's
title, time, length, kind or host with `awesomate_webinars update {id, version, ...}` while it is
a draft.
## 4. The page
Exactly as the lead magnet recipe's section 5: on a WordPress site we host, the form's
`shortcode` (from `awesomate_webinars get`, `form.shortcode`, or `awesomate_crm_forms snippet {id:
form_id}`) on its own line in a draft page, written with `awesomate_wp_post`; anywhere else, the
snippet. The page says what the session covers, who it is for, the date and time with the zone,
and how long. Never paste Zoom's own registration page or a join link onto it: each person gets
their own.
Until registration opens, the form shows visitors "This form isn't switched on yet", so publish the
page after the owner opens registration, or say so.
## 5. Opening registration
Give the owner `review_url`, in one line: "Open this, look over the form and the emails, then press
Open registration." Only the owner, or someone they named, can: it creates the event in their Zoom
(with Zoom's own emails off) and turns the form on. When they say it's done,
`awesomate_webinars get` and confirm `webinar.status: open`. Once open, the webinar is fixed in
Zoom: to move it, the owner cancels it in the hub (everyone registered is told) and you make a new
one.
## 6. The first registration
Ask the owner to register once on the live page with their own email address. Then:
- their own Zoom link shows on the page, with calendar links, and the confirmation email arrives
from their sending name;
- they show on Contacts, People with the webinar's tag;
- registering again with the same address shows the same link.
Never register made-up addresses to test: each one is registered in Zoom, becomes a contact and
gets the reminders.
## 7. The follow-up
Offer one series (Support Plus and above), drafted with `awesomate_crm_series`, for after the event:
- start it on the event `webinar_attended` (or `webinar_missed` for a "sorry we missed you" offer):
`starts_when: {type:'event', name:'webinar_attended', label:'Came to a webinar'}`;
- the event has the same name for every webinar the business runs, so the easiest follow-up is one
that suits any of them (the business's offer, the next step). For one about this session only,
add `only_for: [{type:'has_tag', tag:'masterclass-nov-2026'}]` (the tag set at create); someone
who registered for this one and comes to a later one would start it then, so tell the owner to
switch it off once this webinar's people have been through it;
- it is marketing, so it reaches only people on its list: the ones who ticked the box.
The reminders and the recording are not a series: the webinar sends them itself. Never draft a
series to remind people of the time; a series counts its waits from when each person started, so it
can't send "the day before".
## 8. After the event
- `awesomate_webinars attendance {id}`: how many registered, came and missed, once Zoom's report is
read (from 30 minutes after the end, hourly for a day). Who came is in Contacts, by the webinar's
tag and the events; never ask Zoom for names through Claude.
- When the owner has the recording's link (Zoom's share link, or where they put it):
`awesomate_webinars set_replay {id, url}`. It sends nothing. Give the owner `review_url` again:
they press Send the recording, and people who came read "thanks for coming", the rest "sorry we
missed you". `replay.block` says why it can't go yet (Zoom's report not ready, no link).