skills/sales-proposal-page/SKILL.md
Writes and structure a Qwilr proposal page that closes deals. Use when your proposals look generic and aren't closing, you don't know what sections to include, the pricing table confuses buyers, your proposal doesn't stand out from competitors, or you're staring at a blank Qwilr page and need a structure that sells.
npx skillsauth add sales-skills/sales sales-proposal-pageInstall 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 write and structure a Qwilr proposal page — from section planning through copy and interactive element configuration. Qwilr replaces static PDF proposals with interactive web-based pages that include quote blocks, embedded content, and real-time engagement tracking.
If references/learnings.md exists, read it first for accumulated knowledge.
Ask the user:
/sales-deal-room {your question})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.
Design a section-by-section page structure mapped to Qwilr block types. A strong Qwilr proposal typically follows this flow:
| Section | Qwilr Block Type | Purpose | |---|---|---| | Cover / Hero | Splash block | First impression, prospect's name/logo, one-line value prop | | Executive Summary | Text + Image block | Why this matters to them specifically (2-3 paragraphs max) | | Problem & Solution | Text block or Accordion | Frame the pain, present your solution mapped to their needs | | Scope of Work | Text block or Accordion | What's included, deliverables, timeline | | Pricing | Quote block | Interactive pricing table with line items | | Timeline & Milestones | Text block | Key dates, phases, dependencies | | About Us / Team | Text + Image block | Credibility — relevant team members, case study snippets | | Next Steps / CTA | Accept block | Clear call to action — accept the proposal, sign, or book a call |
Adapt this structure based on the deal context:
isOptional: true on expansion line items (new modules, add-ons, additional seats) so the buyer can self-select what to add beyond the base renewal. This gives the CFO/budget holder control while making the upsell frictionless.Write actual copy for each section, not just placeholders. Follow these principles:
Use {{token}} syntax for any fields the user might want to auto-populate via the Qwilr API later (e.g., {{company_name}}, {{contact_first_name}}, {{deal_amount}}).
If the proposal includes a quote block, design the pricing structure:
fixedCost type for most itemsisOptional: true so the buyer can select/deselectquantity ranges where buyers should choose volume (seats, units)oneOff or recurring (monthly/quarterly/annual) per itemIf the user wants to create the page programmatically via the Qwilr API, generate a POST /pages JSON payload with blocks, tokens, and quote sections. See references/qwilr-api-proposals.md for the full payload structure, field reference, and endpoint list.
Key points:
GET /blocks/saved first to discover available block IDsisPublished: false to review before sendingtokens to substitute CRM data into {{token}} placeholdersDon't generate walls of text. Qwilr is a visual, web-based platform — not a Word doc. Use Qwilr block types (Splash, Accordion, Quote blocks) to break up content. If a section runs longer than 3 paragraphs, restructure it into an Accordion or split it into sub-sections.
Don't forget the interactive pricing/quote block. Claude defaults to writing pricing as plain text. Qwilr's quote block is the product's key differentiator — use it for any proposal that includes pricing. Configure line items, optional add-ons, and quantity selectors.
Don't skip the CTA. Every proposal needs a clear call to action using Qwilr's Accept block. Don't end with "let us know your thoughts" — end with "Accept this proposal" or "Book your kickoff call."
Don't make the proposal too long. Web proposals are not PDFs. Buyers skim. A strong Qwilr proposal is 5-8 sections. If it's longer, consider moving detailed content to a deal room (/sales-deal-room) instead.
Don't forget {{token}} placeholders. If the proposal might be auto-generated via API later, use {{company_name}}, {{contact_first_name}}, etc. throughout — not hardcoded values.
Self-improving: If you discover something not covered here, append it to references/learnings.md with today's date.
This skill covers a strategy domain across many platforms. Before pointing the user to any specific platform skill (any /sales-{platform} listed in ## Related skills, e.g., /sales-mailshake, /sales-klaviyo, /sales-apollo), read that platform skill's actual SKILL.md first. The 1-line description in ## Related skills is enough to identify a candidate — it's not enough to commit to it or to write a prompt that invokes it well.
How to read it:
~/.claude/skills/{skill-name}/SKILL.md exists locally, Read it.sales-* skills, WebFetch directly from this repo: https://raw.githubusercontent.com/sales-skills/sales/main/skills/{skill-name}/SKILL.md — e.g., for sales-mailshake: https://raw.githubusercontent.com/sales-skills/sales/main/skills/sales-mailshake/SKILL.md.sales-* skills (third-party), look up {org}/{repo} in ~/.claude/skills/sales-do/references/skill-sources.md if installed and fetch the same skills/{skill-name}/SKILL.md path under that repo.After reading, ground your recommendation in something concrete from the SKILL.md (its scope, a sub-flow, its argument-hint shape, or a "Do NOT use for..." negative trigger). Align any generated invocation with the platform skill's argument-hint. If the platform skill turns out not to fit the user's situation, swap to another or handle the question here directly rather than recommending a poor fit.
/sales-proposal-analytics — Track engagement after sending (who viewed, which sections, when to follow up)/sales-qwilr-automation — Automate proposal creation from CRM data via the Qwilr API/sales-deal-room — For complex multi-stakeholder deals that need multiple pages/sales-proposal-template — Design reusable templates for your whole team/sales-proposal — For general (non-Qwilr) proposal strategy and pricing/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).