Proposal pipeline app for freelancers: Draft to Won/Lost
Build a proposal pipeline app to track Draft to Won/Lost, trigger status-based reminders, and measure close rates by service type without heavy CRM overhead.

Why proposals fall through the cracks
Most freelancers donât lose proposals because their work is weak. They lose them because the proposal disappears.
The usual mess looks familiar: a draft in a doc, a final PDF in a folder, the last client message buried in email or chat, and the only âstatusâ is whatever you remember. When youâre busy delivering client work, itâs easy to forget whoâs waiting on a quote and who needs a second nudge.
Proposals end up scattered across places like:
- A Google Doc called âProposal v7 FINAL (2)â
- An email thread with three different subject lines
- A note in your phone with a follow-up date
- A calendar reminder with no context
- Your head (until itâs too late)
Proposals slip for one simple reason: thereâs no single place that shows the next action. If you canât answer âWhat do I do next, and for which client?â in 10 seconds, follow-ups get delayed. Delayed follow-ups turn into lost deals, even when the client was interested.
Thatâs what a pipeline is, in plain terms: a small set of clear statuses that show where each proposal stands and what should happen next. A proposal pipeline app isnât a fancy sales machine. Itâs a scoreboard and a to-do list in one.
Keep expectations grounded. Youâre not building a complex CRM with forecasting, territories, and reports youâll never read. You want a lightweight tool that fits how you actually work and makes the ânext stepâ obvious.
Hereâs what this prevents. You send a website redesign quote on Tuesday and tell yourself youâll follow up Friday. Friday gets busy. By Monday, you canât remember whether you already checked in. A tiny pipeline with one visible âWaiting on clientâ stage and a clear next-follow-up date stops that quiet loss.
What a lightweight proposal pipeline should do
A proposal pipeline app has one job: keep every proposal moving from Draft to Won or Lost with as little effort as possible. If it creates extra admin work, youâll stop using it right when you need it.
Before you design anything, decide what you must know about a proposal even months later. Keep it to the handful of details that help you follow up, forecast income, and learn what sells.
A practical minimum for each proposal:
- Client (person or company) and contact method
- Service type (for example: website refresh, mobile app, monthly SEO)
- Estimated amount (or range) and expected start date
- Next follow-up date
- Current status (Draft, Sent, Negotiation, Won, Lost)
Then define what âdoneâ means so the app stays trustworthy. A proposal shouldnât sit in Sent forever. âDoneâ means stalled items trigger reminders, outcomes get logged when you hear back, and you can see simple reporting without exporting spreadsheets.
Keep scope small at first. One user, one workspace, and simple fields beat a big system you never maintain. If you send three proposals this week (two for âlanding page + copyâ and one for âretainer supportâ), a pipeline that forces a next follow-up date and an outcome will quickly show which service closes more often and where you lose time.
Pick statuses that match your real workflow
Statuses only help if they reflect your real day, not an ideal process you wonât follow. Keep the set small enough that moving a card forward feels effortless.
A practical set:
- Drafting
- Ready to send
- Sent
- Follow-up due
- Negotiating
- Won
- Lost
Keep the names short and action-based. If you canât tell what to do next when you read a status, rename it.
Next, set a few simple rules so nothing turns into a zombie proposal.
For example:
- A proposal canât move to Sent unless it has a client, a service type, a total price, and a delivery window.
- Negotiating should mean the client replied and the scope, price, or terms are actively changing.
- Won should require a clear signal: a signed agreement, a paid deposit, or a written âyes.â
Follow-up dates are the other guardrail. Not every status needs a reminder, but some do. A solid default is: Sent and Follow-up due must have a next follow-up date. Negotiating can require one too, but only when the next step is on you.
A quick scenario: you send a website redesign quote on Monday. If you donât hear back by Thursday, it shows up as Follow-up due. If the client replies with âcan we remove the blog and lower the price?â, you move it to Negotiating and set the next follow-up for the next day. Thatâs enough structure to keep momentum without turning your workflow into paperwork.
Design the data: clients, proposals, services, activity
A proposal pipeline app lives or dies on its data. If the structure is too loose, youâll skip fields. If itâs too strict, youâll stop using it. Aim for a small set of records you can trust, then add details only when you feel real pain.
Start with four core objects: Clients, Proposals, Services, and Activities.
The core tables (and what they store)
Keep the first version simple:
- Clients: name, contact person, email, notes (and optionally company size)
- Proposals: title, client_id, service_type (or services), value, status, sent_date, next_follow_up_date, outcome_reason
- Services: name (for example: âWebsite refreshâ, âSEO auditâ), optional default price range
- Activities: proposal_id, type (note, reminder, call, email), timestamp, details
For proposals, next_follow_up_date is your future selfâs safety net. outcome_reason matters when you mark Won or Lost, because âLost: too expensiveâ and âLost: timingâ lead to different fixes.
One service per proposal vs multiple services
One service type per proposal is the fastest setup and works if you sell clear packages. Multiple services per proposal is better if you bundle work (design + build + maintenance), but it adds complexity. Youâll need a join table (like ProposalServices) and your reporting gets harder.
A good compromise is to start with one service type and add multiple services only when you see real mixed proposals.
Activities give you lightweight history without digging through email. After sending a proposal, log a quick note like âSent v2, client asked about timeline.â Later, you can see what happened at a glance.
Plan the screens: board, list, details, report
A proposal pipeline app only needs a few screens if each one answers a clear question. The goal is speed: open it, see what needs attention, make one update, move on.
Pipeline board (daily view)
This is the screen you live in. Each column is a status. Each card should show just enough to decide your next move:
- Client name
- Proposal value (or estimated monthly retainer)
- Next follow-up date
- Service type tag
Quick actions matter more than perfect layout. From the card (or a small detail drawer), you should be able to change status, set a follow-up date, add a note, and mark Won or Lost without filling out a long form.
Proposal list (search and catch-up view)
Boards are great for flow, but lists are better for finding things. Use a simple table-style list with filters like status, client, service type, and follow-up overdue. This becomes your âcatch-upâ view when the week gets busy.
Details pages (fast edits, not paperwork)
You only need two: a Proposal page and a Client page.
The Proposal page is for the timeline (notes, status changes, next follow-up date) plus key fields like value and service type. The Client page is where context lives: contact info, current proposals, and recent activity.
If changing a follow-up date takes 30 seconds, you wonât keep it updated. Optimize these pages for one-tap edits.
Simple report (one screen)
One lightweight report is enough at first: close rate by service type and average time to close. It should answer two questions: âWhat should I sell more of?â and âWhere do deals stall?â
Build it from zero to usable
A usable proposal pipeline app isnât a âfull CRM.â Itâs a place to see whatâs active, whatâs stuck, and what needs a follow-up today.
Build a first version you can use the same day
Start with the data model and a few fake records so you can test the flow. Create one client with two proposals and at least two service types (for example, âWebsite refreshâ and âOngoing SEOâ).
Then build two core screens: a board (columns by status) and a proposal detail form. The board is for daily scanning. The form is for accurate updates.
A build order that keeps you moving:
- Model: Client, Proposal, ServiceType, Activity
- UI: Board view + Proposal detail form (status, value, sent date, next follow-up)
- Rules: Block status moves unless key fields exist (for example, Sent requires a sent date)
- Reminders: Notify on follow-up due (and optionally when a proposal first becomes Sent)
- Dashboard: Counts by status and one close-rate chart by service type
Add âcanât move forward untilâŠâ checks
This is what makes the app trustworthy.
Example: you drag a proposal from Draft to Sent, but the app stops you if thereâs no client email or no proposal amount. That small friction prevents messy data later.
One default rule keeps everything from drifting: every open proposal must have a next follow-up date. If itâs missing, show a warning on the board.
A simple definition of âusableâ:
- You can add a proposal in under 60 seconds
- You can see who to follow up with today in one glance
- Status changes stay consistent (no half-sent proposals)
- Close rate is visible by service type
- Reminders stay quiet when youâre already on top of it
Status-driven reminders that donât annoy you
Reminders work best when theyâre tied to a clear moment in your pipeline, not a random calendar ping. If your app knows the current status, it can nudge you only when a proposal is likely to go stale.
You donât need many triggers. A simple setup looks like this:
- When a proposal moves to Sent, require a follow-up date.
- On the follow-up date, send one reminder.
- If thereâs still no reply after X days in Sent, create a follow-up task automatically.
Keep reminder text short and action-focused. Include only who itâs for, what itâs about, and the next action:
- "Follow up with {Client}: {Proposal} - quick check-in"
- "{Client} / {Proposal} - ask if they want changes before approval"
- "{Client} / {Proposal} - confirm timeline and start date"
Add guardrails so it doesnât become noise: cap reminders at one per proposal per day, and include Snooze options (1 day, 3 days, next week).
Track what happened to each reminder, too. Store a small outcome log: completed, snoozed (until when), skipped, or sent.
Example: you mark âWebsite refresh - Acme Coâ as Sent on Monday and set follow-up for Thursday. Thursday morning you get one reminder and snooze it to Friday. On Friday you follow up, mark the reminder completed, and the âno reply after X daysâ timer resets.
Track close rates by service type (and use the numbers)
A proposal pipeline app is only valuable if it helps you decide what to do next. The easiest way to get there is to track close rates by service type, not just overall. âWebsite redesignâ and âmonthly maintenanceâ often behave like different businesses.
First, make outcomes consistent:
- Won means a clear yes (signed agreement, paid deposit, or confirmed start date).
- Lost means youâre no longer pursuing it (they said no, chose someone else, or itâs been inactive long enough that youâre confident itâs dead).
Pick one rule and stick to it, or your numbers become noise.
Keep loss reasons short and consistent:
- Price
- Timing
- Scope mismatch
- No response
- Chose competitor
Then compute close rate per service type over a window you actually use (last 30 or 90 days). If you sent 12 âBrand strategyâ proposals and won 3, thatâs a 25% close rate. If you sent 6 âLanding page buildsâ and won 4, thatâs 67%. It doesnât need to be perfect, just steady.
Add âtime to closeâ to keep yourself honest. Track days from Sent to Won or Lost. You might learn âSEO auditâ closes in 5-10 days, while âFull website rebuildâ takes 30-45 days. That changes how often you follow up and how you forecast income.
Make the numbers actionable with one simple rule. If a service has a low close rate and a long time to close, tighten the offer (scope, proof, pricing) or qualify harder before you write the proposal. If a service has a high close rate, protect it: reuse what works and raise your price carefully.
Common traps when building a proposal CRM
The fastest way to make a proposal pipeline app useless is to make it confusing. Freelancers start with good intentions, then end up with a tool they donât trust.
One trap is having too many statuses that mean the same thing. If you canât explain the difference between âSentâ, âSubmittedâ, âDeliveredâ, and âIn reviewâ in one sentence, you probably only need one.
Another trap is letting Sent become a graveyard. If you donât require a follow-up date, youâll open your board later and see a pile of proposals with no next step. One simple rule fixes most of this: every proposal in Sent must have a next action scheduled.
A few other mistakes that quietly break focus:
- Mixing proposals with general leads, so your pipeline becomes a random inbox
- Not logging Lost reasons, so you repeat the same pricing and scope mistakes
- Over-automating early, and spending more time tuning reminders than sending proposals
Keep reminders boring and specific. One reminder tied to a follow-up date is usually enough. More rules can wait until you have a month of real usage data.
If you lose three proposals in a row with the note âtimeline too longâ, thatâs a signal to offer a smaller first phase, not to add five new statuses.
Quick checklist before you rely on it
Before you treat your proposal pipeline app as the single source of truth, make sure nothing sits in limbo and the next step is obvious.
Open the pipeline view and time yourself. You should understand todayâs priorities in under 30 seconds. If you have to click into multiple proposals to find the next step, your design is hiding the most important field.
Checklist:
- Every open proposal shows a clear status and a next follow-up date. If it has no next step, close it.
- Your âtodayâ view shows actions you can do now (follow up, send, revise), not just a list of stress.
- When something becomes Won or Lost, you capture the final amount and a short reason.
- Close rate by service type is visible for a recent window you use (30-90 days).
- Reminders can be snoozed, and you donât get duplicates for the same proposal on the same day.
Do a small stress test. Create three sample proposals for different services, move them across statuses, and trigger reminders. If you can break it in five minutes, youâll break it during a busy week.
Example: a simple week of proposals (and what you learn)
On Monday, you send five proposals. Three are for a web redesign package, and two are for a monthly support retainer. Everything starts in Draft, then moves to Sent once the email goes out.
By Wednesday, the statuses tell a story:
- Two redesign proposals move to Viewed (you saw the client opened the doc)
- One redesign proposal is still Sent (no view)
- One retainer proposal moves to Negotiating (they asked to adjust hours)
- One retainer proposal moves to Won (they signed)
Reminders keep you from dropping the ball. A âViewed but no reply in 2 daysâ rule nudges you to follow up with the two redesign leads on Friday morning. A âSent but not viewed in 3 daysâ rule catches the quiet one, so you resend with a shorter message and a clear next step.
Real life is messy, though. One client replies late on Sunday with âSorry, busy weekâ and asks to start next month, so you move it to On Hold instead of letting it rot in Sent. The negotiation stays active, but the reminder checks in once, not every day.
By the end of the week, close rate by service type is eye-opening: support retainer is 1/2 won, web redesign is 0/3. Next week you change one thing: tighten the redesign scope into two tiers and add a simple deadline for feedback.
Next steps: ship a small version, then improve it
The fastest way to get value is to ship the smallest version youâll actually open every day. A proposal pipeline app doesnât need templates, complex automation, and charts on day one. It needs to tell you what you sent, whatâs waiting, and what you should do next.
Set your statuses so each one answers a simple question: what action is expected now? If you canât explain a status in one sentence, it will slow you down.
Three actions to take this week:
- Set 5 to 7 statuses (Draft, Sent, Follow-up due, Negotiating, Won, Lost is usually enough)
- Build a board view so you can move proposals between statuses in seconds
- Turn on reminders for only the cases that matter (Follow-up due, and Negotiating when the next step is on you)
Once the basic loop feels natural, add improvements one at a time. A good order is reminders first (so nothing slips), reporting second (so you learn), and templates later (so you save time). If you add everything at once, you wonât know what helped and what became noise.
If you want to build this without heavy coding, AppMaster (appmaster.io) is a practical option: you can model the database (clients, proposals, services) and build the UI and status rules in one place, then iterate as your process changes.
Keep upgrades small and measurable. After one week, ask: did I follow up faster, and did I miss fewer replies? After one month, ask: which service closes best, and which one needs a better offer or a higher price?
Treat the first version like a personal tool, not a product. If it takes more than 30 seconds to log a new proposal or move it forward, simplify the fields and screens before you add anything else. When it feels effortless, youâll actually use it, and the data will stay reliable.
FAQ
A proposal pipeline app is a simple place to track every proposal from Draft to Won or Lost. The main goal is to make the next action obvious so you donât forget follow-ups when youâre busy delivering client work.
Start with the smallest set that matches your real day: Drafting, Ready to send, Sent, Follow-up due, Negotiating, Won, Lost. If two statuses feel the same in practice, merge them so moving a proposal forward stays effortless.
Keep only what helps you follow up and learn what sells: client, service type, estimated value, sent date, current status, and a next follow-up date. Add an outcome reason only when you mark Won or Lost, so your reporting stays useful without adding daily admin.
Default to requiring a next follow-up date for every open proposal, especially in Sent and Follow-up due. If a proposal has no next step scheduled, it will quietly rot and youâll lose track of whether you already checked in.
Tie reminders to pipeline moments, not random calendar pings. A practical setup is: when a proposal becomes Sent, require a follow-up date; on that date, send one reminder; if it stays stuck too long, prompt a new follow-up date instead of spamming alerts.
Use a clear rule you can apply the same way every time. A good default is Won only after a signed agreement, paid deposit, or a written âyesâ with a confirmed start plan, so your close rates donât get inflated by âmaybeâ deals.
Record a short loss reason every time you mark Lost, such as price, timing, scope mismatch, no response, or chose someone else. You donât need perfect detail; you need consistency so you can spot patterns and improve your offer or qualification.
Start with one service type per proposal because itâs faster and keeps reporting simple. Switch to multiple services only when bundles are common for you and the extra complexity will actually change decisions you make.
Log a quick activity note after key moments, like when you send a revised version or the client asks about timeline. A lightweight activity trail saves you from hunting through email and helps you respond faster and more consistently.
You can model clients, proposals, services, and activities, then build a board view with status rules and follow-up reminders in one place. With a no-code tool like AppMaster, you can generate a working app quickly, iterate on the statuses and required fields, and keep the workflow lightweight so youâll actually use it daily.


