skills/check-outreach-status/SKILL.md
Check status of sent demo outreach emails and monitor follow-up draft status. Follow-up drafts are created by /setup-email-drafts — this skill only monitors. Run periodically after /setup-email-drafts has been used.
npx skillsauth add psquared-development/psquared-skills check-outreach-statusInstall 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.
Announce:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Outreach Status Check started. Checking environment... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Read the .env file using the Read tool. Do NOT use source — values contain semicolons that break shell parsing.
Required tokens:
PSQUARED_CRM_TOKEN — CRM GraphQL APIEMAIL_DRAFT_ONLY_BEARER — notification service draft API (can read, create, update drafts — cannot send)Stop if missing.
Once verified:
Environment OK. Checking sent outreach...
Query CRM for opportunities with demoStatus = SENT:
curl -s -X POST https://crm.psquared.dev/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $PSQUARED_CRM_TOKEN" \
-d '{"query":"{ opportunities(filter: { stage: { eq: SCREENING }, demoStatus: { eq: SENT } }, first: 50) { edges { node { id name outreachSentAt demoUrl { primaryLinkUrl } company { id name domainName { primaryLinkUrl } people(first: 5) { edges { node { id name { firstName lastName } emails { primaryEmail } } } } } } } } }"}'
For each opportunity:
outreachSentAt timestamp to calculate days since sentAnnounce:
Found [N] opportunities with SENT status: 1. [Company] — sent [N] days ago 2. [Company] — sent [N] days ago
For each opportunity, classify by days since sent:
| Days since sent | Classification | |-----------------|----------------| | < 5 days | Too early — no follow-up needed yet | | 5-10 days | Awaiting follow-up | | > 10 days | Cold — no response after 10+ days |
Also check: if the opportunity stage has moved beyond SCREENING (e.g., MEETING, PROPOSAL), mark as "already progressed".
For each opportunity that is 5+ days old, check whether a follow-up draft already exists in the notification service:
curl -s -X GET "https://notifications.psquared.dev/drafts?crmOpportunityId=[opportunity ID]&draftType=followup" \
-H "Authorization: Bearer $EMAIL_DRAFT_ONLY_BEARER"
For each result, note the draft status (e.g., DRAFT, SENT, PENDING).
This skill does NOT create follow-up drafts. Follow-ups are created by /setup-email-drafts.
Announce:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Outreach Status Check complete. Follow-up drafts pending send: [N] - [Company A] → email (sent 6 days ago) [status: DRAFT] - [Company B] → email (sent 8 days ago) [status: DRAFT] Follow-ups already sent: [N] - [Company C] — follow-up sent Too early for follow-up: [N] - [Company D] — sent 2 days ago Already progressed: [N] - [Company E] — stage moved to MEETING Cold leads (10+ days, no follow-up draft): [N] - [Company F] — sent 12 days ago ⚠️ (run /setup-email-drafts to create follow-up) Next step: Review and send follow-ups at → notifications.psquared.dev/drafts ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Reads: demoStatus (filter SENT), outreachSentAt (days since sent), demoUrl, stage, contact info
Does NOT write any fields. The notification service handles CRM updates on actual send.
tools
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.
development
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.