Loading...
Loading...
Review InboxMate demos waiting for QA. Finds CRM opportunities at SCREENING with demoStatus=PENDING_REVIEW, opens each demo link, checks quality, and flags as OK_TO_SEND or NEEDS_FIX with a note explaining why.
npx skill4agent add psquared-development/psquared-skills review-demosAnnounce:━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Demo Review Pipeline started. Checking environment... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
.envsource .env.env.env$<CRM_TOKEN_VAR>$<MCP_TOKEN_VAR>.envOnce verified, announce:Environment OK. Finding demos pending review...
curl -s -X POST https://crm.psquared.dev/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $<CRM_TOKEN_VAR>" \
-d '{"query":"{ opportunities(filter: { stage: { eq: SCREENING }, demoStatus: { eq: PENDING_REVIEW } }, first: 50) { edges { node { id name stage demoStatus demoUrl { primaryLinkUrl } company { id name domainName { primaryLinkUrl } } } } } }"}'Announce:Found [N] demos pending review: 1. [Company Name] — [demoUrl] 2. [Company Name] — [demoUrl] ...
demo.inboxmate.psquared.dev/?id=<demoId>company.domainName.primaryLinkUrlWebFetch: https://openbrand.sh/api/extract?url=https://[companyDomain]"primary"colorsexpectedPrimaryColorWebFetch: https://app.psquared.dev/api/demo/[demoId]demoIddemoUrl?id=offerTextofferExpiresAtagentId| Check | What to verify |
|---|---|
| Company match | Demo mentions the correct company name |
| Language match | Demo language matches the company website language (DE/EN/both) |
| Greeting quality | Greeting is specific to the company, not generic ("Hi! How can I help?") |
| Quick questions | Questions are relevant to this company's products/services |
| Color match | Widget primary color matches OpenBrand |
| Countdown set | |
| Content accuracy | Any visible knowledge snippets reference real products/services from the website |
| No hallucinations | Demo doesn't mention products, pricing, or features not on the company website |
update_widget_stylecurl -s -X POST https://app.psquared.dev/api/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $<MCP_TOKEN_VAR>" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"update_widget_style","arguments":{"agentId":"[agentId]","primaryColor":"[expectedPrimaryColor]"}}}'curl -s -X POST https://app.psquared.dev/api/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $<MCP_TOKEN_VAR>" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"publish_agent","arguments":{"agentId":"[agentId]"}}}'Announce:Auto-fixed: Updated [Company] widget color from [oldColor] to [expectedPrimaryColor]After auto-fixing, mark the Color match check as PASS (fixed).
offerExpiresAtofferTextdemo_pagesUse mcp__plugin_supabase_supabase__execute_sql with:
project_id: "fevtfywriufbqnvbgyrm"
query: UPDATE demo_pages SET offer_text = '[corrected offerText]', offer_expires_at = '[corrected ISO date]' WHERE id = '[demoId]'Announce:Auto-fixed: Updated [Company] countdown — expires [date], text: "[offerText]"After auto-fixing, mark the Countdown set check as PASS (fixed).
OK_TO_SENDNEEDS_FIXOK_TO_SEND# Update demoStatus
curl -s -X POST https://crm.psquared.dev/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $<CRM_TOKEN_VAR>" \
-d '{"query":"mutation { updateOpportunity(id: \"[opportunityId]\", data: { demoStatus: OK_TO_SEND, demoReviewIssues: null }) { id } }"}'curl -s -X POST https://crm.psquared.dev/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $<CRM_TOKEN_VAR>" \
-d '{"query":"mutation { updateOpportunity(id: \"[opportunityId]\", data: { demoStatus: NEEDS_FIX, demoReviewIssues: \"[Issue 1: description. Issue 2: description. Suggested fixes: ...]\" }) { id } }"}'Announce:━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Demo Review complete. ✅ OK to send: - [Company A] — [brief reason] - [Company B] — [brief reason] ❌ Needs fix: - [Company C] — [issue summary] Next step: Send approved demos to prospects ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
| Step | Field | Value | When |
|---|---|---|---|
| 3 (OK) | | | Demo passed QA |
| 3 (OK) | | | Clear any previous issues |
| 3 (FIX) | | | Demo failed QA |
| 3 (FIX) | | | What's wrong and how to fix |
demoStatusdemoUrloutreachSentAtfollowupSentAtagenthubAccountIdstagedemoStatusdemoStatus: OK_TO_SEND