@awesomate/hosting-mcp
Version:
Awesomate MCP server — lets Claude manage your Awesomate WordPress hosting, plan, limits, n8n automations, and build Node/static apps + databases
216 lines (190 loc) • 12.3 kB
Markdown
# Solutions — the recipes the greeter offers from
Business-outcome recipes, each composed only of parts that exist. Lead with
the outcome, never the technology. Reads work on every plan; **every build
below needs Support Plus+** — say so once, honestly, before starting (a 403
on a write is the plan gate; offer the upgrade, don't retry). Anything that
sends email needs an email credential in THEIR n8n — check the inventory
(`awesomate_n8n_inspect {what:'credentials'}`) before promising it.
**Leads and sign-ups go to Contacts.** When `awesomate_get_context` says
`features.contacts.available` is true, every lead or sign-up from a form goes
into Contacts with the Awesomate node, never into an n8n data table, and
nothing here emails a lead or subscriber from Gmail or SMTP in n8n. Contacts
keeps one record per email address, and its rules (consent, unsubscribes,
bounces) apply to everything sent to them later. The two recipes below say
how; the node itself is awesomate-n8n `references/awesomate-node.md`.
**A sign-up box or a free download: use the hub's own form first.**
`awesomate_crm_forms` (the awesomate-funnels skill) makes a form that adds the
person to Contacts with a tag, emails them the download from the business's
own name, and offers the email list as an unticked box, recording their yes
itself (single or double opt-in). No n8n, no forwarder, no email credential,
and it works on a WordPress page, a `static-landing` page or any site builder.
Build the n8n path below only for what that form doesn't do: an enquiry with
a message or questions, a quote request, routing to a person, or a form that
has to stay exactly as it is on the site.
## capture-leads-and-follow-up
**What you get:** every enquiry on your website lands in Contacts and in
front of you, answered the same day, never lost, never duplicated.
**First, which form:** when the "lead" is someone asking for a guide, a price
list or your news (name and email, no message), that is the hub's own form
(`awesomate_crm_forms`, awesomate-funnels): use it and skip the rest of this
recipe. Build this recipe when people write to you: a message, a question,
details of a job.
**Made of:** a WP page or `static-landing` page with a form, then the
server-side forwarder, then an n8n webhook workflow that, with the Awesomate
node, in this order:
1. adds or updates the person in Contacts (Contact, Create or Update), tagged,
for example `web-enquiry`;
2. tells the owner: a task (Task, Give) when `features.tasks` is available,
otherwise an email to the owner's own address;
3. records what happened (Contact, Record Event, `enquiry_received`, keyed on
the forwarder's `event_key`, one per person per day, so a resubmit is
recorded once). Last, so an event the hub refuses still leaves the person
in Contacts and the owner told.
**The reply to the lead** is a service email: it says the enquiry arrived and
when to expect an answer, with no offer and no sign-up link. The owner makes
it in the hub as an email series of kind service that starts on the
`enquiry_received` event (Contacts, Email series,
https://hub.awesomate.ai/contacts/series; awesomate-email "Starting an email
series from what happened"), and approves it and switches it on there. It
goes from the business's own sending name and skips anyone who asked to stop
every email. Never send the lead anything from Gmail or SMTP in n8n: n8n
can't see who unsubscribed or bounced. Until the owner's series is on, the
owner's task or email is how the lead gets answered.
**An enquiry is not a yes to marketing.** The workflow never puts anyone on a
list (the node can't, on purpose). If the form also asks "send me your
news", handle that tick as in newsletter-signup below.
**Needs:** Support Plus+. Contacts, and the node's **Awesomate Hub**
credential (awesomate-node.md, "Before you build"). An email credential in
their n8n only when the owner's notice goes by email (no Tasks). For the
reply: the business's sending set up (Contacts, Settings, Get ready to send)
and a service series switched on. WP wiring per awesomate-n8n
`references/wp-form-handler.md`.
**Build order:**
1. awesomate-n8n: check the node and its credential, then the webhook
workflow (Create or Update, the owner's notice, Record Event). Test with
fake payloads and the owner's own address, using a tag and an event no
live series starts on, or before such a series is switched on: a series
can start on a tag or an event, and the test would send real email.
2. awesomate-credentials: an email key only when the notice goes by email and
none exists (routes to n8n).
3. awesomate-app-builder (static page) or awesomate-hosting (WP page): form +
forwarder per wp-form-handler.md; verify both hops end to end: the test
person shows once on Contacts, People, with the tag, and on no list.
4. The owner, in the hub: the reply as a service series on
`enquiry_received`, approved and switched on.
5. awesomate-seo: the page is public.
**Without Contacts** (`features.contacts.available` false): the workflow
saves the lead to a data table (deduped by email) and tells the owner. It may
send the lead a plain acknowledgement from the owner's own email credential,
saying only that the enquiry arrived; never a welcome, newsletter or offer.
## take-bookings
**What you get:** customers pick a time on your site; it lands in your
calendar with a confirmation email to both of you — no double bookings.
**Made of:** WP/static page with a booking form → forwarder → n8n webhook
workflow: check a slots data table (double-booking guard) → create the
calendar event → send confirmations.
**Needs:** Support Plus+. Google Calendar credential + email credential in
their n8n (guided OAuth if missing).
**Build order:**
1. awesomate-n8n — workflow + slots data table; test slot-taken and happy path.
2. awesomate-credentials — calendar/email credentials (routes to n8n).
3. awesomate-app-builder or awesomate-hosting — booking page + forwarder.
4. awesomate-seo — the page is public.
## customer-database-plus-simple-portal
**What you get:** one place holding all your customers, and a login page
where each customer sees their own details.
**Made of:** Node app (`node-auth-sync` — signup/login built in) + its own
app database (`awesomate_app_provision_db` — one Postgres per env,
`DATABASE_URL` injected). Customer data lives in the app DB, never a data
table. Optional n8n workflow for "new customer" email alerts.
**Needs:** Support Plus+ (app building). No external credential to start;
email credential only if alerts are wanted.
**Build order:**
1. awesomate-app-builder — confirm name + stack, `awesomate_app_create`,
scaffold, build on dev; awesomate-github backup immediately after scaffold.
2. awesomate-credentials — any secrets the app needs (encrypted, injected).
3. awesomate-n8n — optional alert workflow called from the app.
4. Promote dev → live only on explicit approval; awesomate-seo if public.
## quote-or-invoice-follow-up
**What you get:** quotes and invoices that go quiet get a polite chaser
automatically — you stop leaving money on the table.
**Made of:** n8n scheduled workflow + data table holding each quote's status
and last-chase date (the cursor + dedupe) + email credential. Source of
quotes: a data table the owner updates, or an already-connected app from the
credential inventory — verify, never assume a credential works.
**Needs:** Support Plus+. Email credential. No page required.
**Build order:**
1. awesomate-n8n — quotes data table + scheduled chaser workflow.
2. awesomate-credentials — email key if none exists.
3. Test with fake quotes ([TEST] subjects to the owner's own inbox); hand
over the workflow URL and how to add/close a quote.
## newsletter-signup
**What you get:** a sign-up box on your site; everyone who signs up is in
Contacts and on your email list, by their own yes, with nothing to maintain.
**Made of:** the hub's own sign-up form: `awesomate_crm_forms` `create` with
`kind: 'signup'`, the list, and `optin` (single by default: ticking and
sending joins at once; double: they confirm by email first), pasted onto a WP
page, a `static-landing` page or any site builder with its snippet. The form's
box and small print are the hub's words, from the list's own name and
promise; the owner turns the form on at `review_url`. The awesomate-funnels
skill has the whole recipe (page, list, form, turning it on, first test).
**Needs:** Contacts and email (every plan), a list in the owner's words, and
the business's sending set up (the form's `missing` says what is left).
**Build order:**
1. awesomate-email: the list, in the owner's words, if they have none
(`awesomate_crm_lists` `create`, after they agree the promise).
2. awesomate-funnels: the form (`awesomate_crm_forms create`, kind
`signup`), then the snippet on the page; the owner turns it on and signs
up once with their own address.
3. awesomate-email: offer a welcome series as a draft (`awesomate_crm_series`
`{action: 'draft', template: 'welcome', list}`, Support Plus and above); it
starts when someone joins the list, and the owner switches it on.
4. awesomate-seo: the page is public.
**When the site's own form has to stay** (a theme's footer box the owner
won't replace): the forwarder and an n8n workflow add the person to Contacts
with a tag (`asked-for-news`) and tell the owner, who then sends each one a
one-click invite from Contacts, People (**Add to email list**, "They asked to
hear from us"); they join when they press Yes. Nothing in n8n can put anyone
on a list, and no welcome email goes from n8n. That form's thank-you promises
only what is sure: "Thanks, we've got it. We'll only add you to our list once
you've confirmed by email." WP wiring: awesomate-n8n
`references/wp-form-handler.md`.
**Without Contacts** (`features.contacts.available` false): a data table
(deduped by email) that keeps, for each person, the exact words they agreed
to and when, so the owner can bring them into Contacts later with that
record (awesomate-email `references/asking-permission.md`), plus a notice to
the owner. No welcome or newsletter email from n8n.
## ai-chat-on-your-site
**What you get:** a chat bubble on your site that answers customer questions
about your business, day and night.
**Made of:** n8n chat agent (chatTrigger `mode:"webhook"` → agent + model
credential — awesomate-n8n `references/ai-agents.md`, incl. the chat widget
embed) + the embed snippet on their WP or static page. Optional data table
for FAQs the agent looks up.
**Needs:** Support Plus+. A model credential (OpenRouter/OpenAI/Anthropic)
in their n8n — none = stop and ask, never invent one.
**Build order:**
1. awesomate-n8n — agent workflow per ai-agents.md; test conversations first.
2. awesomate-credentials — model API key if none exists (routes to n8n).
3. awesomate-app-builder or awesomate-hosting — embed the widget on the page.
4. Try it together on the live page; agree what the agent must NOT answer.
## order-status-notifications
**What you get:** customers hear from you automatically the moment their
order is received, shipped, or delayed — fewer "where's my order?" emails.
**Made of:** n8n webhook workflow fed by their shop (WooCommerce webhook,
server-to-server) or their own Node app → status-ledger data table (dedupe:
one notification per order per status) → email to the customer.
**Needs:** Support Plus+. Email credential. A shop or app that emits order
events — if neither exists yet, this recipe comes after the shop does.
**Build order:**
1. awesomate-n8n — webhook workflow + status data table; test every status.
2. awesomate-credentials — email key if none exists.
3. awesomate-hosting — point the WooCommerce webhook at the workflow (or
wire the app's order code to call it).
4. Confirm a real test order notifies exactly once per status change.
## Offering these
After understanding the business (first-run questions + inventory), offer
the **2–3 most relevant recipes** as a one-line menu — "I could set up A, B,
or C — which sounds most useful?" Never list all seven, never lead with the
technology, and state the plan requirement before building. If none fit,
ask one more short question instead of forcing a recipe.