skills/sales-proposal-analytics/SKILL.md
Interprets Qwilr engagement signals and decide what to do next. Use when a prospect hasn't opened your proposal, the buyer went dark after viewing, you don't know who else on the committee saw it, you're unsure whether to follow up or wait, a prospect keeps re-reading the pricing section but won't sign, or deal momentum stalled after sending the quote.
npx skillsauth add sales-skills/sales sales-proposal-analyticsInstall 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.
Help the user read Qwilr engagement signals and turn them into concrete next steps — follow-up messages, strategy adjustments, or deal actions.
If references/learnings.md exists, read it first for accumulated knowledge.
Ask the user:
What are the analytics showing?
How long since you sent it?
Deal context:
If the user's request already provides most of this context, skip directly to the relevant step. Lead with your best-effort answer using reasonable assumptions (stated explicitly), then ask only the most critical 1-2 clarifying questions at the end — don't gate your response behind gathering complete context.
Interpret the engagement pattern using this framework:
| Signal | Likely Meaning | Urgency | |---|---|---| | Viewed once, briefly | Skimmed it, may return later — or may not be prioritizing | Medium | | Viewed once, spent time on pricing | Evaluating cost, possibly comparing to alternatives | High | | Viewed multiple times | Actively considering, possibly building internal case | High | | Multiple unique viewers | Being circulated to buying committee — deal is progressing | High | | Pricing section revisited 3+ times | Price sensitivity or building a budget justification | High | | Executive summary skipped, jumped to pricing | Buyer already understands the value, focused on cost | Medium | | Not viewed after 24h | Email may not have landed, or not a priority right now | Medium | | Not viewed after 3+ days | Delivery issue, lost priority, or buyer is going dark | High | | Viewed then went silent | May be discussing internally, or lost momentum | Medium-High | | Partial acceptance | Wants some items but not others — negotiation opportunity | High |
When multiple people view the proposal:
Based on the signals, provide concrete next steps:
Write 1-2 follow-up messages tailored to the specific engagement pattern. Messages should:
Help the user set up real-time alerts for future proposals using Qwilr webhooks:
curl -X POST https://api.qwilr.com/v1/webhooks \
-H "Authorization: Bearer $QWILR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-endpoint.com/qwilr-events",
"events": ["pageFirstViewed", "pageViewed", "pageAccepted", "pagePartiallyAccepted"]
}'
| Webhook Event | Recommended Action |
|---|---|
| pageFirstViewed | Alert rep in Slack/email — prospect opened the proposal |
| pageViewed (repeat) | Log in CRM — track view count and timing |
| pageAccepted | Update CRM deal stage, notify rep, trigger onboarding |
| pagePartiallyAccepted | Alert rep — buyer selected some items, follow up on the rest |
| pagePreviewAccepted | Internal preview was accepted — ready for client review |
For full automation setup (CRM sync, Slack notifications, etc.), use /sales-qwilr-automation.
Don't over-interpret a single page view. One view could be the prospect, their EA, or an automated CRM preview. A single brief view doesn't mean "they're interested" — it means "someone opened the link." Wait for patterns (repeat views, time spent, multiple viewers) before drawing conclusions.
Don't treat all engagement signals equally. Pricing section views are much higher signal than a quick skim of the cover page. Weight your interpretation toward the sections that indicate evaluation behavior (pricing, scope, case studies).
Don't recommend aggressive follow-up on automated CRM views. Some CRMs and email tools auto-preview links, generating false "viewed" signals. If a view happens within seconds of sending with zero time on page, it's likely automated.
Don't tell the prospect you can see their views. Saying "I noticed you looked at the pricing 3 times" is creepy and breaks trust. Reference engagement signals indirectly — "I wanted to see if you had questions about the pricing options."
Don't ignore time-of-day context. A prospect reviewing a proposal at 10pm on a Sunday suggests they're doing personal due diligence, possibly building a case. A 30-second view during business hours is likely a quick skim between meetings.
Self-improving: If you discover something not covered here, append it to references/learnings.md with today's date.
/sales-proposal-page — Write or restructure the proposal itself/sales-qwilr-automation — Set up automated CRM sync and webhook workflows/sales-follow-up — General follow-up strategies (non-Qwilr-specific)/sales-deal-room — For complex deals that need a multi-page deal room/sales-do — Not sure which skill to use? The router matches any sales objective to the right skill. Install: npx skills add sales-skills/sales --skill sales-dotools
Waitlister platform help — pre-launch waitlist platform with hosted landing pages, points-based viral referrals, built-in email broadcasts, REST API, and five HMAC-signed webhook events. Use when choosing Free (100 subscribers) vs Launch $15/mo (unlimited subs, referrals + broadcasts) vs Growth $49/mo (API, webhooks, Klaviyo/Mailchimp/Kit sync, fraud detection unlock here) vs Business $129/mo, building a webhook handler that verifies X-Webhook-Signature, webhooks auto-disabled after 10 consecutive failures, API signups bypassing referral fraud detection because client_ip/fingerprint weren't forwarded, granting bonus points or pulling top referrers via the API for reward fulfillment, broadcast send caps forcing an ESP handoff, automating without Zapier (Waitlister has none — webhooks/API only), or comparing Waitlister vs LaunchList/KickoffLabs/GetWaitlist/Prefinery. Do NOT use for list-growth strategy (use /sales-audience-growth) or LaunchList help (use /sales-launchlist).
development
LaunchList platform help — viral pre-launch waitlist platform with one-time lifetime pricing, gamified referrals (queue jumping, leaderboard, position inflation), embed widget + custom form POST endpoint, new_user/email_verify webhooks, Zapier, and spam protection. Use when choosing Free (100 submissions) vs Launch $29 (500) vs Grow $79 one-time (10K — webhooks, Zapier, team unlock here), wiring waitlist signups into Mailchimp/Kit/HubSpot or a CRM because LaunchList has no email broadcast system, needing programmatic access when there is no public REST API yet (form POST + webhook workaround), building a webhook handler with referred_by referral attribution, blocking disposable-email or bot signups on a viral waitlist, a custom signup form not submitting or not tracking referrals, or comparing LaunchList vs KickoffLabs/Viral Loops/Prefinery/GetWaitlist on one-time vs subscription pricing. Do NOT use for list-growth strategy (use /sales-audience-growth) or KickoffLabs help (use /sales-kickofflabs).
development
UpViral platform help — viral referral marketing and list-building platform (by Emarky) for viral sweepstakes, giveaway/reward campaigns, pre-launch waiting lists, and milestone referrals, with REST API (`app.upviral.com/api/v1/`, form-encoded `uvapikey` + `uvmethod`), Callback-URL webhooks, IP-based fraud detection, and 30+ ESP/CRM integrations. Use when campaigns aren't tracking referral points, deciding between Starter $79/mo (10K leads, NO API) vs Business $119/mo (API + webhooks) vs Premium $319/mo, the API erroring because you're on Starter where API/webhooks are gated, building a pipeline with `add_contact`/`get_leads`/`get_leads_points`, interpreting same-IP suspicious-referral flags, or picking UpViral over Viral Loops/Vyper/Gleam. Do NOT use for newsletter audience growth (use /sales-audience-growth), KickoffLabs help (use /sales-kickofflabs), merge-tag referrals (use /sales-referralkit), SparkLoop recommendations (use /sales-sparkloop), or multi-level Level 1/2/3 tracking (use /sales-referralhero).
tools
ReferralHero platform help — full-stack referral, affiliate, waitlist, contest, and NPS platform with REST API, webhooks, Zapier, native ESP connectors, multi-level referral tracking (Level 1/2/3), coupon groups, anti-fraud, and a 5,000 calls/hour limit. Use when referrals aren't tracking, deciding between Free (no API) vs PRO $199/mo (API + webhooks) vs PREMIUM $399/mo (ReCaptcha + SMS Verification), auth failing with `no_token` or `Bearer` vs `X-API-Key`, Level 2/3 counts off from calling `level_2_all_referrals` not `level_2_referrals`, bulk 429s from not chunking the 500-transaction `add_bulk_transactions` limit, coupon endpoints 404 without a coupon group, reward fulfillment (`promote` then `unlock_promoted_reward`) failing, or comparing to SparkLoop/ReferralKit/GrowSurf. Do NOT use for newsletter audience growth (use /sales-audience-growth), merge-tag referrals (use /sales-referralkit), SparkLoop recommendations (use /sales-sparkloop), or affiliate strategy across tools (use /sales-affiliate-program).