TL;DR

  • Every sales script template ranking for this term is a phone script, and Gong's 300M-call data says the average rep reaches a human on 5.4% of dials. On Upwork the script is written, and the client reads it in a stack of 40.
  • We measured 133,872 outbound proposals from GigRadar's pipeline (Dec 2025 to Feb 2026). Baseline reply rate: 7.45%.
  • One script pattern clears a real evidence bar: 1,626 sends across 21 independent agencies, 15.25% reply rate. It is four lines long and it is in this article, free.
  • A first sentence over 26 words ending in a question mark replies at 16.0%. The same-length sentence ending in a period replies at 7.1%.
  • The trap nobody publishes: the lines that win replies show no evidence of winning hires. Question openers appear in 7.4% of replied-but-not-hired proposals and 1.8% of hired ones.
  • Build and copy your version in the free Script Builder below, then read the section on why most of these numbers are weaker than they look.

Across 133,872 Upwork proposals we measured, one four-line script sent by 21 unrelated agencies replied at 15.25% against a 7.45% baseline. It contains no pitch, no bullet list, no portfolio link, and no list of skills or years.

It asks one question and offers a video that has not been made yet.

It also has a failure mode that costs money, which is where most of this article goes.

The sales script template you copied was written for a phone call nobody answers

Search the term and every result is the same artifact: a cold-call opener, a permission-based intro, four discovery questions, three objection rebuttals, and a close asking for 15 minutes on Tuesday.

That artifact assumes a rep with a dialer and a prospect on the line. Gong analysed more than 300 million cold calls and found the average rep connects with a human on 5.4% of dials, roughly 19 attempts per conversation.

5.4%
of cold dials reach a human (Gong, 300M calls)
7.45%
baseline reply rate, Upwork proposals (n = 133,872)
15.25%
the four-line script, across 21 independent agencies

Your client is not screening a call. They posted a job, and 30 proposals arrived in the first hour.

They are reading, not listening. Everything a phone script optimises for (tone, pause handling, the recovery after "now is not a good time") is dead weight in a channel where you get one shot and no interruptions.

Top r/Upwork posts about proposals getting no replies, showing freelancers describing months of silence after sending proposals
The top r/Upwork threads of the past year on proposals that go unanswered. Source: r/Upwork search.

A client in that same subreddit, describing hundreds of jobs posted and more than $250,000 spent, laid out the mechanics from the other side.

"I get 100+ applications. I only need to hire one person."
u/in9zero, r/Upwork

He goes on to say the screening is often delegated to an assistant paid per interview. Your script is not being savoured, it is being triaged by someone with a quota.

The half that survives is the half almost nobody measures, because measuring it needs outcome data across tens of thousands of sends. Gong has that for calls, and we have it for Upwork proposals.

What the data is

133,872 outbound proposals sent through GigRadar's pipeline between December 2025 and February 2026, where replied means the client opened a chat or moved the proposal into a hiring room. Baseline across all categories: 7.45%.

We print the sample size on every number below, and we say so when the sample is one agency wearing a costume.

To be fair to page one, the frameworks there are not lazy. HubSpot's own guide tells you to script only the first 20 seconds and build objection responses into the flow, which is good advice for a live conversation.

Both halves of that sentence assume a conversation exists. Neither survives a channel where the buyer reads once, in silence, and either types or does not.

What a phone script optimisesDoes it survive on Upwork?
Permission-based opener ("did I catch you at a bad time?")No. There is no interruption to apologise for.
Objection handling, usually the middle third of the scriptNo. Gong found 49.5% of call objections are dismissive reflexes like "not interested." Nobody types those, they just close the tab.
Discovery questions asked in sequenceNo. You get one question, not four.
An opener that earns the next 30 secondsYes, and it matters more, because it is also the preview text.
A close that names a specific next stepYes. This is the single most transferable idea from the phone playbook.

Cold-call frameworks from HubSpot and Cognism compared against what an asynchronous Upwork proposal can actually carry.

Build your sales script template here, then argue with it

Pick one option per row. Each carries the reply rate its pattern recorded in our sample, and the builder writes out a script you can copy straight into a proposal.

Free interactive tool

Reply-Rate Script Builder

Five slots, measured against 133,872 proposals.

How to read that number

Each option carries the rate its pattern scored on its own, with nothing else held constant. Those effects overlap heavily, so the builder adds them onto the 7.45% baseline and caps the total at 22%, the best rate any real combination reached in our sample.

Use it to rank choices against each other, not to forecast your next 40 proposals.

The one script pattern that clears a real evidence bar

Most "data-backed" script advice is one lucky sender's template with a sample size printed next to it. The test that separates a pattern from an anecdote is how many independent teams reproduce it.

This one was sent 1,626 times by 21 unrelated agencies, and it replied at 15.25% against the 7.45% baseline.

Hey [First name], I recently completed a very similar project. Can I share a 1-minute Loom with some ideas for your project? [Your first name]

Under 30 words. One concrete proof claim, one question, one first-name sign-off, no links and no bullets.

It works hardest in Sales and Marketing (17.5%) and Design and Creative (16.1%). It scores 6.0% in Web, Mobile and Software Development, below baseline, because it has been copied so widely that clients in that category recognise it on sight.

Saturation is the expiry date

A template's reply rate decays as your category adopts it. That is a reason to schedule the rewrite before the decay reaches your pipeline, not a reason to avoid the template.

In dev categories, treat it as a starting shape rather than a script to send verbatim.

Compare it to the flashiest number in our dataset: a "top 1% showreel" template with brand-name drops and Vimeo links that replied at 17.70%. It came from exactly one agency in Video and Animation, so it tells you what that agency's tuned letter achieved and nothing about what yours would.

Your first line is a socket, not a pitch

The likeliest reason a question outperforms a statement: it costs the client one word to answer, where a statement costs them a judgement about whether you are worth replying to at all.

We split every proposal by the punctuation ending its first sentence, then by how long that sentence ran.

Reply rate by first-sentence length and ending punctuation, n = 133,872 proposals Reply rate by first-sentence length and ending punctuation GigRadar pipeline data, n = 133,872 outbound proposals, Dec 2025 to Feb 2026 18% 9% 0% 1-5 words 8.0 6-15 words 8.1 16-25 words 9.6 26+ words 16.0 ends in ! ends in . ends in ? Baseline 7.45%
A short question beats a short statement by half a point. A long question beats a long statement by nine.

A 26-word statement is a credential dump. "I am a full-stack developer with 8+ years in React, Node, AWS, MongoDB and modern DevOps practices" replies at 7.1%.

A 26-word question is their own project handed back to them. "Reading your post, you want to move email revenue from $30K to $300K MRR in six months with Klaviyo flows, is that the priority?" replies at 16.0%.

That version proves you read the post, makes replying a one-word decision, and gives the client a chance to correct you. Being slightly wrong on purpose is a reason for them to type.

This is also where the phone frameworks mislead you most. Objection handling exists because a call is synchronous and the prospect can push back in real time.

On Upwork there is no objection to answer, because 92.55% of proposals get no response at all. Agencies compensate by pre-empting objections in the proposal itself, which is one of the most expensive things you can write.

Pre-emptive framingnReply rate
"You're tired of [what the client literally wrote]"2907.93%
"You're looking for..."3,9567.89%
"I can tell you're frustrated with..."2464.07%
"Many freelancers will [do X badly]..."2923.42%

Source: GigRadar pipeline data, Dec 2025 to Feb 2026. Restating what the client wrote works, while inferring their feelings or disparaging your peers does not.

Most scripts die in the last line, not the first

The close is where agency scripts collapse into corporate reflex. Ranked by what the client actually did next:

Closing patternnReply rate
"...talk about getting started together?"27421.2%
"Reply and I don't bite."22616.4%
"Call tomorrow at noon."47714.7%
"Can I share a Loom with some ideas for your project?"83314.2%
"Hop on a quick call!"33110.6%
"Let's discuss this further."2284.0%
"Can we discuss the details?"3832.6%
"Regards, [Name] and [Agency]"3631.38%

Source: GigRadar pipeline data, measured on the final five words of each proposal. Read the bottom rows as symptoms of agency-voice positioning, not as proof that one word choice costs you six points.

"Can we discuss the details?" and "Let's discuss this further" fail for the same reason. Both ask the client to invent the next step.

"Call tomorrow at noon" replies better than "hop on a quick call" because one is a decision and the other is a chore.

On the video ask, the phrasing moves the number more than the video does.

+4.26pp
"a 1-minute video"
+3.80pp
"Can I send a Loom?"
+1.43pp
a bare Loom URL

Naming the length lifts more than sending the video. Asking permission to send a 1-minute Loom outperforms attaching an actual Loom link by roughly 3 points.

A sent video costs the client 60 seconds before they know whether it was worth it. A request for permission costs them one word.

Five lines to delete from your sales script template today

Each of these was measured on at least 200 sends against the 7.45% baseline.

Delete this
Write this instead
"Many freelancers will overpromise..."
3.42%, the worst framing we measured
"You said [X] is the blocker. Here is how I would fix it."
Restating beats disparaging by about 4.5 points
"I can tell you're frustrated with..."
4.07%
"You're tired of [the exact thing they wrote]."
7.93%
"I have experience with [tool]."
3.79%
"I am a perfect fit for this because [reason]."
13.11%, with the caveat below
"I have 30 hours per week available."
5.00%
"I can have the first version with you in 3 days."
9.97%
"I came across your job posting."
5.44%
"Just saw your post."
10.92%

One more, because it is the funniest result in the dataset. Proposals opening with "Hi there, non-ChatGPT generated proposal" replied at 5.9%.

Announcing that you are not a bot appears to convince clients that you are. Vague urgency fares no better: "immediately" scores 6.93% and "ASAP" 7.61%, both below a specific "in 3 days" at 9.97%.

GigRadar

Free audit for Upwork agencies

A great script still needs the right job in front of it

GigRadar finds the Upwork jobs that match your agency and submits proposals through our own Upwork Business Manager account, under our team's review. You invite our BM through Upwork's official invitation flow, and your own freelancer account is never touched.

Get your free agency audit

The reply-rate trap: the lines that open chats do not close contracts

This is the part no page-one article publishes, and it is why a script rewrite can double your reply rate while your revenue does not move.

Inside the replied cohort (9,971 replies, 112 of which became tracked hires), the features that won the reply are systematically less common in the proposals that won the contract.

FeatureEffect on replySignal on hires
Question opener+3.08pp, the strongest signal in our model1.8% of hired vs 7.4% of replied-not-hired
Loom or video offer+3.80pp14.3% of hired vs 19.5%
500+ word letters11.4%, the highest length band0 hires in 334 sends
"From $X to $Y" growth claim+4.04pp-0.62pp on hire
"Guarantee"modest2.28% hire-given-reply vs 1.06%
"Discount"+2.59pp4.00% hire-given-reply vs 1.07%

Source: GigRadar pipeline data. Hire counts are small (112) and undercount systematically because agencies close off-platform, so read the direction rather than the decimal.

We cannot prove question openers reduce hires. We can say they show no evidence of producing them, and every cut of the sample points the same way.

At a 7.45% reply rate and roughly 1.1% reply-to-hire, 1,000 proposals buys about 74 conversations and one tracked hire.

Triple your reply rate with a question opener and you have bought about 220 conversations. If that script converts at zero, you have sold yourself 150 unpaid discovery calls and logged it as a win.

The sends themselves are not free either. Upwork's own help centre puts Connects at $0.15 each, and the number a job requires varies by post, so every proposal carries a real dollar price before anyone reads it.

Upwork help centre page confirming Connects cost $0.15 USD each and are sold in bundles
Source: Upwork Help Center, Understanding and using Connects, checked August 2026.

At a 7.45% reply rate you are buying roughly 13 sends per conversation. At 15% you are buying about 7, which is the real argument for fixing the script, as long as you check what those conversations turn into.

The two-document rule

Your proposal script has one job: get a reply. The moment they answer, switch documents.

The reply-winner is short, asks a question, and offers a video. The hire-winner runs 300 to 499 words, first person, with bullets and a commercial commitment: a guarantee, a discount on the first milestone, or a specific price.

Sending the second one first drops your reply rate. Sending the first one twice drops your close rate.

Stage two is also where the phone research finally earns its keep. Once a client is talking to you, Gong's analysis of 519,000 B2B sales calls found the sweet spot is 11 to 14 targeted questions, spread through the conversation rather than front-loaded.

Every cold-call framework on page one is good advice pointed at the wrong stage. Move it one step later in your funnel and it starts working.

So should you use a question opener or not?

The fair objection to everything above: if switching documents after the reply worked, hired proposals would still show question openers at the front. They mostly do not.

We cannot resolve that with the data we have, so here is the decision rule we actually use instead of a blanket recommendation.

Your actual symptom
What to lead with
Almost nobody replies. You are sending into silence.
Question opener. Your bottleneck is the first gate, and this is the strongest thing we have measured for it.
Plenty of replies, chats that die, no contracts.
Commercial commitment. Lead with a guarantee, a first-milestone discount, or a specific price. The question opener is probably part of your problem.
Neither. Replies and hires are both flat.
Neither. The script is not your constraint. Look at the profile you send from and the jobs your scanner surfaces.

The reply-optimised opener is a treatment for one specific symptom, not a universal best practice. Any article that hands you one opener without asking which gate is broken is selling you a template, not a diagnosis.

The questions to ask once they do reply are in our discovery call questions guide, and the pricing conversation after that is covered in negotiation scripts for Upwork agencies.

What this data cannot tell you, and where agencies fool themselves

Nearly every number above is univariate. Each compares proposals that contained a phrase against proposals that did not, with nothing else held constant.

The deeper problem is that our unit of analysis is the proposal while our unit of variation is the agency. Team-level reply rates in this sample run from 3.76% at the bottom quartile to 12.86% at the top, and one agency on a rigid template contributes hundreds of near-identical letters.

Read this before you rewrite everything

A phrase table with n in the hundreds is often three or four agencies, so it measures their baseline as much as the phrase. The 14 to 15% first-name sign-offs are literally four individual senders' names.

The 1.38% agency-name close is a handful of agencies whose whole operation underperforms, where the sign-off is a symptom rather than a cause.

What generalises is the shape: question opener, one concrete proof, one low-friction ask. What does not generalise is one team's exact wording.

Our own headline lever is the least stable number we have. The question-opener lift measured +2.41pp in December, +3.86pp in January, and +0.87pp in February, while the Loom effect held steady between +1.9 and +2.2pp across the same three months.

The 30-feature logistic regression that produced the +3.08pp figure controls for category, experience level, letter length and bid type. It does not control for which agency sent it, which is the largest source of variance in the dataset.

Model performance was a cross-validated AUC of 0.585. Everything about the proposal, combined, explains roughly 16% of whether a client replies.

The other 84% is your profile, your category, your rate, and the client. Bidding into Web, Mobile and Software Development carries a measured penalty of about 2.8 points, and bidding on Intermediate-tier jobs about 2.3 points, before you write a word.

Hold us to the standard we hold page one to

Gong's newer 300M-call post puts "Did I catch you at a bad time?" at a 2.15% success rate. Their 2018 post on 90,380 calls puts the same opener at 0.9% against a 1.5% baseline.

Neither page defines the denominator or publishes a per-opener sample size. That is a fair criticism of the category, and it is only fair if we are equally transparent about our own weaknesses one scroll up.

The uncomfortable one

In a 59,339-proposal slice joined to job records, reply rate fell from 9.44% when a single GigRadar-powered agency bid on a job to 2.11% when eleven or more did.

Two thirds of the proposals in that slice landed on jobs where at least one other GigRadar customer was also bidding. When everybody's scanner surfaces the same job, the script is not what is failing.

The test that makes any of this true for you

1
Change one line, hold everything else

Same freelancer profile, same scanner, same bid type. Swap only the first sentence, 200 proposals per arm.

2
Track replies and hires in separate columns

A variant that lifts replies and flattens hires is a losing variant. You only see that if you record both.

3
Wait 14 days before calling a winner

Replies keep arriving for about two weeks. Judging on day three is how agencies kill their best script.

4
Test the profile before you test the words

The same template sent from two freelancer profiles inside one agency spreads by about 3.8 points at the median. Route bids to the profile that already converts before rewriting anything.

If your reply rate is stuck at 2%, the script is probably not your binding constraint. Rewriting it a fourth time is a comfortable way to avoid the harder question about which jobs you are bidding on.

A sales script template is a hypothesis, not a document

Start with the four-line Loom pitch, because it is the only pattern here that 21 independent agencies reproduced. Swap in the mirrored-goal question when the job post gives you a goal worth mirroring.

Then stop editing and start counting, in two columns, for fourteen days.

Seven-point script audit

Run your current script against this before you write a new one.

Greeting carries their first name
Hey [First name] beats Hi there by 1.6 points
First sentence ends in a question mark, if replies are your bottleneck
16.0% vs 7.1% at 26+ words, but see the decision rule above if replies already come and die
Exactly one concrete, checkable proof claim
Vague fit claims cost up to 3.7 points
The ask is a yes/no question, not an invitation to plan
Can we discuss the details? replies at 2.6%
Signed with a first name, never the agency name
Agency-name closes replied at 1.38%
Nothing in it pre-empts an objection nobody raised
Many freelancers... replies at 3.42%
A different, longer document is ready for after they reply
300-499 words converts best to hires

The pipeline math that turns a reply-rate lift into a revenue number is in our sales plan template. The letter-body rules are in the Upwork cover letter template, the full reply-rate teardown is in the Upwork proposal template guide, and seven pitches scored against this same dataset are in sales pitch examples.

Sales script template FAQ

What should a sales script template include?

Five slots: a casual personalised greeting, an opening line (a question mirroring the prospect's stated goal when replies are your bottleneck, a commercial commitment when they are not), one concrete proof claim, one low-friction ask, and a first-name sign-off. In our sample of 133,872 proposals the four-line version of that shape replied at 15.25% against a 7.45% baseline, but it is tuned for replies only, so pair it with a longer, commitment-heavy second message for the conversation that follows.

How long should a sales script be?

Reply rate is U-shaped on length: under 50 words replies at 9.4% and over 700 words at 18.5%, while the commonly taught 100 to 149 word range replies at 6.7%. For hires rather than replies, 300 to 499 words converted best at 1.50% hire-given-reply.

Do sales scripts still work in 2026?

Written ones do, and consistency helps rather than hurts: agencies whose letter length barely varies, meaning they send the same tuned template every time, replied at 8.63% against 6.87% for agencies that hand-edit every proposal. The honest reading is that hand-editing does not reliably beat a good locked template.

Why is my reply rate dropping on a script that used to work?

Usually saturation or competition density. The Loom pitch replies at 15.25% across most categories but 6.0% in Web, Mobile and Software Development where it has been copied to death, and reply rate falls from 9.44% to 2.11% when eleven or more agencies bid the same job.

Should a sales script include objection handling?

Not in the first message, because an Upwork proposal is asynchronous and 92.55% of them get no response at all, so there is no objection to answer yet. Pre-empting objections measurably backfires: "Many freelancers will [do X badly]" replies at 3.42% against a 7.45% baseline.