skills/inboxmate-inbox-demo/SKILL.md
Set up a personalized InboxMate INBOX demo (Demo-Postfach) for a sales prospect: a public, read-only seeded inbox showing 5-7 pre-triaged emails in their industry's language, with categories, routing and ready AI drafts. Use for email-automation outreach (the €49-349 product), NOT for chatbot outreach. No agent is created.
npx skillsauth add psquared-development/psquared-skills inboxmate-inbox-demoInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The artifact this skill builds proves the email product (triage + auto-drafts, €49–349/mo) — not the free chatbot. The prospect receives a personalized link showing "their" inbox, pre-sorted by InboxMate, with reply drafts ready. The hook in the outreach mail is the Inbox-Befund: their top recurring email types, derived from their business.
create_inbox_demo. Never call create_agent / quick_setup_demo here — that's the chatbot pipeline (/inboxmate-demo)./inboxmate-demo Phase 2f — logo matters most here; there is no widget color).demoType: INBOX — this routes it into the inbox campaign/draft pipeline and the "InboxMate Email Outreach" CRM view.customMessage mentions the Befund, not generic copy: "So sieht Ihr Posteingang mit InboxMate aus — wir haben die [N] häufigsten Mail-Typen von [Company] simuliert."Same as /inboxmate-demo: read .env (NUXT_MCP_DEMO_TOKEN, OPENBRAND_API_KEY, PSQUARED_CRM_TOKEN), confirm MCP connectivity via tools/list on https://app.psquared.dev/api/mcp. The tools used here: create_inbox_demo, update_inbox_demo, get_demo.
Identical to /inboxmate-demo Phase 1 (validate website first, auto-skip dead sites, scrape homepage + leistungen/preise/faq/kontakt). Additionally extract what feeds the Befund:
Write 5 one-liners naming the email types this business receives daily, e.g. for a Therme:
1. Gutschein-Anfragen (Geburtstage, Weihnachten)
2. Gruppen- & Firmenbuchungen mit Preisanfrage
3. Stornierungen & Umbuchungen
4. Fragen zu Öffnungszeiten an Feiertagen
5. Rechnungskopien & Buchhaltungsanfragen
This list goes into (a) the outreach email (befundItems), (b) drives which threads you seed.
Thread shape (the create_inbox_demo schema validates sender/email/subject/preview/body):
{
"sender": "Anna Huber",
"email": "[email protected]",
"subject": "Gutschein für 2 Personen — Geburtstagsgeschenk",
"preview": "Liebes Team, ich möchte meiner Mutter zum 60er …",
"time": "09:14",
"unread": true,
"body": "Liebes Team,\n\nich möchte meiner Mutter …\n\nLiebe Grüße\nAnna Huber",
"category": { "label": "Gutschein-Anfrage" },
"suggestedAction": { "action": "reply", "summary": "Antwortentwurf erstellt — Gutschein-Anfrage", "priority": "normal" },
"aiDraft": "Liebe Frau Huber,\n\nvielen Dank für Ihre Anfrage! …\n\nHerzliche Grüße\nIhr Team von [Company]"
}
Rules:
action ∈ reply | archive | ticket | forward. Newsletter/Werbung → archive, no aiDraft. Beschwerde/komplexe Fälle → ticket or forward with priority: "high"/"urgent", draft optional.Same rules as /inboxmate-demo 2g: ask the user for the deadline (once per batch), offerText is a time-limited InboxMate deal, NEVER "Kostenlose Beratung/Erstgespräch". Inbox-specific pattern: "Inbox-Test starten und bis zu 50% Rabatt im ersten Jahr sichern".
Show the plan summary (company, Befund, thread list with categories/actions, offer, deadline) and proceed after 5 seconds unless stopped.
One call does everything (no agent, no publish):
{
"method": "tools/call",
"params": {
"name": "create_inbox_demo",
"arguments": {
"companyName": "[Company Name]",
"companyDomain": "[domain.com]",
"logoUrl": "[from OpenBrand]",
"offerText": "[from 2c]",
"offerExpiresAt": "[ISO date]",
"customMessage": "So sieht Ihr Posteingang mit InboxMate aus — wir haben die häufigsten Mail-Typen von [Company] simuliert: vorsortiert, mit fertigen Antwortentwürfen.",
"language": "de",
"inboxThreads": [ /* threads from 2b */ ]
}
}
}
Save
demoIdandplaygroundUrl. Fixes after review go throughupdate_inbox_demo(fullinboxThreadsreplacement).
WebFetch the playgroundUrl (demo.inboxmate.psquared.dev/?id=<demoId>): company name + logo render, thread list shows categories and action chips, CTA reads "Inbox-Test starten — 14 Tage gratis". The API response is at https://app.psquared.dev/api/demo/<demoId> (type: "inbox", inboxThreads populated).
curl -s -X POST https://crm.psquared.dev/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $PSQUARED_CRM_TOKEN" \
-d "{\"query\":\"mutation { createOpportunity(data: { name: \\\"[Company Name] — InboxMate Inbox-Demo\\\", stage: SCREENING, demoStatus: PENDING_REVIEW, demoType: INBOX, demoUrl: { primaryLinkUrl: \\\"[playgroundUrl]\\\" }, companyId: \\\"[companyId]\\\", outreachType: INBOXMATE }) { id name stage demoStatus demoType } }\"}"
demoType: INBOX is what separates this from chatbot demos in /plan-campaign, /setup-email-drafts and the "InboxMate Email Outreach" CRM view. Look up / create the company first if running standalone (same as /inboxmate-demo Phase 5).
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
INBOX DEMO READY — [Company Name]
Playground URL: [playgroundUrl]
Befund: [5 one-liners]
Threads: [N] ([categories] · [M] with AI draft)
Offer: [offerText] (expires [date])
Demo ID: [demoId] · Opportunity: demoType INBOX, PENDING_REVIEW
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
/inboxmate-demo 2f)demoType: INBOX, outreachType: INBOXMATE, stage SCREENING, PENDING_REVIEWdevelopment
Build InboxMate demos AND write personalised outreach drafts in a single pass per company — eliminating the double-research that happens when /inboxmate-batch-demo and /setup-email-drafts run separately. Use when kicking off a new campaign where the campaign already exists (plan via /plan-campaign first). For each target company, dispatches ONE subagent that researches the site, builds the demo, creates the CRM opportunity, and drafts the outreach email — reusing the same research across all three. After all subagents return, runs a single batch call to auto-generate follow-ups.
testing
Autonomous pilot for the InboxMate EMAIL outreach (Demo-Postfach/INBOX track). Assesses where the inbox pipeline stands (leads → demos → review → campaign → drafts) and executes the next sensible step end-to-end, always finishing with the inbox sanity check and a summary of what the user should do next (ideally: just schedule the mails). Runs in save mode by default: orchestration + all quality gates on the top model, data collection on haiku subagents, content generation on sonnet subagents (pass 'full' to disable). Use when asked to 'advance the email outreach', 'run the inbox pipeline', or 'what's next for the Demo-Postfach motion'.
tools
Generate a polished psquared client offer as a multi-page PDF (title, project description, screenshots, Angebot/pricing, AGB). Walks the user through gathering inputs (or accepts a JSON config), renders branded HTML templates with Playwright in two passes (title page edge-to-edge + body pages with margins and pagination), then merges with pdf-lib.
data-ai
Create email drafts for approved InboxMate demos. Verifies all demos are ready, pulls contacts from CRM, creates CRM tasks, and creates draft emails via the notification service. Run after /review-demos has processed all pending demos.