Accessing Proposals
Navigate to Sponsorships → Proposals from the sidebar to access sent proposals.Plan Required: Proposals feature requires Professional or Enterprise plan.
Permission Required: You need Proposals role or Admin access.
What Are Proposals?
Proposals are packages that have been sent to sponsors for review and approval. When you send a package from Package Builder, it moves from the Packages page to the Proposals page. Proposal Lifecycle:- Draft - Package created but not sent (shows in Packages page)
- Pending Approval - Sent to sponsor, awaiting response (shows in Proposals page)
- Approved - Sponsor accepted the proposal (shows in Proposals page)
- Rejected - Sponsor declined the proposal (shows in Proposals page)
- Expired - Proposal deadline passed without response (shows in Proposals page)
Proposals List Page
Empty State
If you haven’t sent any proposals yet, you’ll see:- Icon: Document graphic
- Title: “No pending packages”
- Message: “Generate proposals from your packages to send to sponsors for approval.”
- Action: “Go to Packages” button
Proposals List
Vertical list of all sent proposals sorted by sent date (newest first).List Item Layout
Each proposal displays: Left Side:- Sponsor Logo: 48×48px square (or document icon fallback)
- Sponsor Name: Bold, clickable
- Package Tier: Below name (e.g., “Gold”, “Platinum”)
- Sales Price: Currency formatted (hidden in Negotiator Mode)
- Package Name: Bold
- Sent Date: “Sent [date]” (e.g., “Sent Jan 15, 2025”)
- Expires Date: “Expires [date]”
- Status Badge: Visual indicator with color dot
Click Anywhere: The entire row is clickable and opens the proposal preview page.
Status Badges
Four status types with colored indicators:Pending
Color: Amber/Yellow Dot: Amber circle Label: “Pending” Meaning: Sent to sponsor, waiting for response Shows: Before expiration dateApproved
Color: Green Dot: Green circle Label: “Approved” Meaning: Sponsor accepted the proposal Shows: After sponsor approvalRejected
Color: Red Dot: Red circle Label: “Rejected” Meaning: Sponsor declined the proposal Shows: After sponsor rejectionExpired
Color: Gray Dot: Gray circle Label: “Expired” Meaning: Deadline passed without response Shows: After expiration date (still pending)Sorting
Order: Newest first (by sent date) Logic: Most recently sent proposals appear at the top Fixed: No manual sorting or filtering optionsProposal Preview Page
Detailed view of a single proposal with PDF preview and audit trail.Accessing Preview
From List: Click on any proposal in the list Direct URL:/products/sponsorships/packages/[id]/preview
Page Layout
Split-screen layout: Left Side (Main):- Full PDF preview
- Download button
- Proposal Preview header
- Status badge
- Audit trail
- Action buttons
Responsive: On mobile, sidebar appears above PDF for better UX.
PDF Preview
Display: Embedded PDF viewer Content: Exact proposal PDF sent to sponsor Features:- Scroll to view all pages
- Zoom controls
- Fullscreen option (browser-dependent)
- Shows spinner while PDF loads
- Error message if PDF fails to load
- Retry option on error
Status Badge (Detailed)
Expanded status information: Pending Approval:- Icon: Clock
- Color: Amber
- Label: “Pending Approval”
- Sub-text: “Awaiting sponsor response”
- Icon: Check Circle
- Color: Green
- Label: “Approved”
- Sub-text: “Accepted on [date]”
- Icon: X Circle
- Color: Red
- Label: “Rejected”
- Sub-text: “Declined on [date]”
- Icon: Clock
- Color: Gray
- Label: “Expired”
- Sub-text: “Expired on [date]“
Audit Trail
Chronological timeline of proposal events.Timeline Events
1. Proposal Sent:- Icon: Envelope
- Label: “Proposal Sent”
- Date: Sent date and time
- Details: Sent to [contact emails]
- Shows: Always (first event)
- Icon: Eye
- Label: “Proposal Opened”
- Date: First open timestamp
- Details: Opened by [IP address]
- Shows: If sponsor opened email
- Approved:
- Icon: Check Circle (green)
- Label: “Proposal Approved”
- Date: Approval date and time
- Details: Approved by [contact name]
- Value: Package value shown
- Rejected:
- Icon: X Circle (red)
- Label: “Proposal Rejected”
- Date: Rejection date and time
- Details: Rejected by [contact name]
- Icon: Pen
- Label: “Digitally Signed”
- Details:
- Signer name, title, company
- Signed date and time
- IP address
- Shows: If sponsor signed electronically
- Icon: Clock (gray)
- Label: “Proposal Expired”
- Date: Expiration date
- Details: “No response received”
- Shows: If expired without response
Chronological Order: Events appear in timeline order from top (most recent) to bottom (oldest).
Action Buttons
Located in sidebar panel.Edit Package (Pending/Draft only)
Button: “Edit Package” with pencil icon Visibility: Shows only for pending or draft proposals Action: Navigates to Package Builder Use Case: Make changes before sponsor respondsDownload PDF
Button: “Download PDF” with download icon Visibility: Always visible Action: Downloads proposal PDF to computer Filename:proposal-[package-name].pdf
Use Case: Save for records, print, or share internally
Resend Proposal (Coming Soon)
Button: “Resend” with envelope icon Visibility: Shows for expired or pending proposals Action: Re-sends proposal email to contacts Use Case: Remind sponsor, send to additional contactsProposal Information Panel
Additional details shown in sidebar: Sent To:- List of recipient email addresses
- Primary contact highlighted
- Shows all recipients from original send
- Package name
- Package tier badge
- Sales price (if not Negotiator Mode)
- Event assignments (if any)
- “Expires on [date]” (if pending)
- “Expired on [date]” (if expired)
- Countdown timer (optional, if pending)
Proposal Status Management
Status Transitions
Valid status flows:Automatic Status Updates
Sent: Status changes to “pending_approval” when email is sent Approved: Status changes to “approved” when sponsor clicks “Accept” Rejected: Status changes to “rejected” when sponsor clicks “Decline” Expired: Status remains “pending_approval” but badge shows “Expired”Real-Time Updates: Refresh the page to see latest status changes from sponsor actions.
Sponsor Approval via Email
How Sponsors Receive Proposals
When you send a proposal, sponsors receive an email containing: Email Contents:- Subject line with your organization name and package name
- Personalized greeting with sponsor contact name
- Brief introduction to the sponsorship package
- Package tier and sales price (if not Negotiator Mode)
- Unique proposal link button
- Expiration date reminder
- Contact information for questions
- Format:
https://yourorg.valiyou.com/proposal/[token] - Token: Unique, secure, non-guessable identifier
- Access: No login required (public link)
- Expires: After the expiration date set in package
External Approval Page
Split-screen interface designed for sponsor decision-making: Layout:- Left Side (75%): Full PDF preview of proposal
- Right Side (25%): Signing panel with approval form
- PDF preview on top (full width)
- Signing panel below (full width)
- Scrollable content
Signing Panel (Right Side)
Fixed panel with all approval controls.Header Section
Organization Branding:- Organization logo (48×48px)
- “Sponsorship Proposal” title
- “From [Organization Name]” subtitle
- White background
Signer Information Form
Section Title: “Entitled to draw” Required Fields:- Full Name - Text input for signer’s full name
- Job Title - Text input for position/role
- Company - Pre-filled with sponsor name (editable)
- All fields required before approval
- Empty fields prevent submission
- Error message shown if incomplete
Approval Consent Checkbox
Section Title: “Approval Consent” Checkbox Text: “I confirm that I am authorized to approve this sponsorship on behalf of [Company Name], that I have reviewed the complete package, and that I accept the terms and agree to pay [Sales Price] for this package.” Features:- Single comprehensive consent checkbox
- Dynamic company name (from Company field)
- Dynamic sales price display
- Must be checked to approve
- Unchecked by default
- Records consent timestamp
- Captures IP address
- Stores user agent (browser/device info)
- Creates SHA-256 hash of package snapshot for integrity
Download PDF Link
Location: Below consent checkbox, above action buttons Link Text: “Download proposal as PDF” with download icon Action:- Fetches PDF from API via proposal token
- Creates blob and triggers browser download
- Filename:
[Package_Name]_Proposal.pdf - Allows sponsor to save proposal before deciding
Download First: Sponsors can download the proposal PDF to share internally or review offline before making a decision.
Action Buttons
Fixed at bottom of signing panel. Approve Package Button:- Style: Primary blue button, full width
- Text: “Approve Package” with check icon
- State: Disabled until form is valid (all fields filled + consent checked)
- Loading: Shows spinner when submitting
- Action: Submits approval with signature data
- Style: Secondary gray button, full width
- Text: “Decline Proposal”
- State: Always enabled (no form validation required)
- Loading: Shows spinner when submitting
- Action: Submits rejection (optional signer info if provided)
- Shows below buttons if submission attempted with incomplete form
- Text: “Please complete all required fields and checkboxes”
- Red text, center-aligned
PDF Preview (Left Side)
Embedded PDF viewer showing exact proposal sent via email. Features:- Full-page PDF display
- Scroll to view all pages
- Zoom controls (browser-native)
- Same PDF as downloaded version
- Organization header and logo
- Sponsor name and logo
- Package tier and pricing
- Inclusions table with quantities and costs
- Terms and conditions
- Total package value
Approval Flow
Step-by-step process when sponsor approves: 1. Sponsor Clicks Approve Button:- Form validation runs
- Check all required fields
- Check consent checkbox
- Show error if incomplete
- POST request to
/api/products/sponsorships/proposal/[token] - Body includes:
action: 'approve'signature.signer: Name, title, companysignature.consent: All consent data with timestamp
- Verify proposal token exists
- Check proposal hasn’t expired
- Confirm status is “pending_approval” (not already responded)
- Validate signature data provided
- IP address from request headers
- User agent (browser/device info)
- Timestamp of signature
- SHA-256 hash of package snapshot for data integrity
- Change status from “pending_approval” to “approved”
- Store signature data (signer info + consent + audit trail)
- Clear expiration date (no longer relevant)
- Keep proposal token active (for confirmation page)
- Green checkmark icon
- “Proposal Approved” title
- Thank you message
- “Your digital signature has been recorded…” note
- Download proposal link
- Modal overlays entire page
Rejection Flow
Simplified process when sponsor declines: 1. Sponsor Clicks Decline Button:- No form validation required
- Can decline even without filling form
- Confirmation immediate (no additional modal)
- POST request to
/api/products/sponsorships/proposal/[token] - Body includes:
action: 'reject'signature.signer: Optional (if name provided, includes it)
- Verify proposal token and expiration
- Confirm status is “pending_approval”
- No signature data validation required
- Change status from “pending_approval” to “rejected”
- Store minimal signer info (if provided)
- Clear expiration date
- Keep proposal token active
- Red X icon
- “Proposal Declined” title
- “You have declined the sponsorship package…” message
- “The organization has been notified” confirmation
- Modal overlays entire page
No Form Required: Sponsors can decline without filling any fields. Signer information is optional for rejections.
Post-Response States
What happens after sponsor responds: Proposal Already Approved:- Shows success modal immediately on page load
- Green checkmark with “Proposal Approved” message
- Download PDF link available
- Prevents duplicate submissions
- Shows declined modal immediately on page load
- Red X with “Proposal Declined” message
- Organization notified text
- Prevents duplicate submissions
- Yellow clock icon
- “Proposal Expired” title
- Message: “This proposal link has expired. Please contact the organization for a new proposal.”
- No form or buttons shown
- Red error icon
- “Error Loading Proposal” title
- Generic error message
- No form or buttons shown
Security and Compliance
Data Integrity:- Package snapshot hash (SHA-256) ensures proposal wasn’t modified after signing
- Hash includes: package ID, name, sales price, cost price, items
- Prevents tampering and provides legal proof
- IP address capture (x-forwarded-for header)
- User agent capture (browser/device info)
- Timestamp in ISO 8601 format
- All data stored in
signature_dataJSONB column
- Digital signature with explicit consent
- Timestamp and IP for non-repudiation
- Package snapshot hash for integrity
- Audit trail for legal documentation
- No user account required (public link)
- Minimal data collection (only what’s needed for signature)
- Secure token prevents unauthorized access
- Expiration date limits exposure window
Permissions
Different permissions show different content:| Permission | Can View List | Can View Preview | Can Edit | Can Resend |
|---|---|---|---|---|
| Proposals Role | ✅ Yes | ✅ Yes | ✅ Yes (pending only) | ✅ Yes |
| Admin | ✅ Yes | ✅ Yes | ✅ Yes (pending only) | ✅ Yes |
| Other Roles | ❌ No | ❌ No | ❌ No | ❌ No |
Professional/Enterprise Only: Proposals feature requires Professional or Enterprise plan. Starter plans cannot access this module.
Common Use Cases
Monitoring Sent Proposals
- Open Proposals page
- Review list for pending proposals
- Click on specific proposal
- Check audit trail for opens/actions
- Follow up if no response after several days
Verifying Proposal Contents
- Click on proposal from list
- Review PDF preview
- Verify all items, quantities, pricing
- Check terms and conditions
- Confirm correct sponsor information
Following Up on Pending
- Check sent date in list
- Review audit trail for opens
- Wait appropriate time (3-7 days)
- Use audit trail to time follow-up
- Resend or contact sponsor directly
Handling Approvals
- See “Approved” badge in list
- Open proposal preview
- Review approval timestamp
- Check signature data (if provided)
- Download PDF for records
- Proceed with contract finalization
Managing Rejections
- See “Rejected” badge in list
- Open proposal preview
- Review rejection timestamp
- Check audit trail for context
- Follow up with sponsor for feedback
- Create revised package if needed
Dealing with Expirations
- See “Expired” badge in list
- Open proposal preview
- Check if sponsor opened (audit trail)
- Resend with extended deadline
- Or contact sponsor directly
Troubleshooting
Proposal Not Showing in List
Check:- Proposal was sent (not still draft)
- You have Proposals permission
- Refresh page to update list
- Check Packages page (might be draft)
PDF Preview Won’t Load
Try:- Refresh page
- Clear browser cache
- Check network connection
- Try different browser
- Contact support if persists
Status Not Updating
Fix:- Refresh page manually (status updates on refresh)
- Check sponsor received link
- Verify link wasn’t expired when sponsor clicked
- Check spam folder for bounce emails
Can’t Edit Proposal
Reasons:- Proposal is approved (can’t edit)
- Proposal is rejected (can’t edit)
- Don’t have edit permissions
- Network error
- Create new package for approved/rejected
- Request permissions from admin
- Check browser console for errors
Download PDF Fails
Try:- Disable popup blocker
- Allow file downloads in browser
- Check disk space
- Try different browser
- Use “Print to PDF” as alternative

