Keeping the same freelancer on Upwork for monthly fixes
The short answer
Your automation or chatbot is built and accepted. You want the same freelancer to fix it when something breaks. On Upwork you have three ways to set that up:
- One hourly contract with a weekly hour limit. You pay only for hours logged, billed every week. Good for fixes you cannot predict.
- A new fixed-price contract each month. Simple to explain, but every new contract is a new contract on Upwork, with its own fee.
- One fixed-price contract that stays open, with a new milestone per fix or per month. You fund each milestone, test the fix, then approve.
For most non-developers, option 3 is the one to start with: you keep a test-then-pay step and Upwork does not charge the contract initiation fee again for added milestones. Use option 1 for a short period when the problems need investigation rather than a known fix.
What “monthly fixes” really looks like
Maintenance is lumpy. Some months nothing happens. Then one change outside the automation breaks it, and the fix takes some digging. Three things that broke in my own content pipeline show the range:
- A login stopped being accepted. The token one of my scheduled publishing jobs used to upload files was refused, and five publishing slots over two days came up empty while every scheduled run reported success. I wrote it up in the expired-token field note.
- A monthly spending limit was reached. An overnight content job of mine hit the spend limit on the account it runs on. It produced its output and then ended with an error. I keep a second job switched off because it would draw on the same limit.
- A format change was only half applied. After I changed what my pipeline produces, the nightly job that prepares content kept sending new items through the old renderer. Every one failed and none was queued for publishing.
None of them was a request for something new. Each was a working job that stopped working, and each needed someone who knew how the jobs fit together. That is why I keep the developer who built a project: once it is built, maintenance work follows it.
So the contract you choose has to handle two kinds of month: a quiet one, and one with a fix that is hard to scope in advance.
The three options side by side
From Upwork’s help center, checked October 2026:
| Hourly, weekly limit | New fixed-price contract each month | One fixed-price contract, new milestone per fix or month | |
|---|---|---|---|
| What you pay for | Hours logged in the week | The agreed monthly amount | The amount on each milestone |
| When money moves | Invoiced every Monday for the previous week, charged automatically | You fund the contract up front; released after you approve, or after 14 days | You fund each milestone up front; released after you approve, or after 14 days |
| Contract initiation fee ($0.99–$14.99) | Once, on the first payment | Again on every new contract, even with the same freelancer | Once; not charged again for added milestones |
| Client marketplace fee | Up to 7.99% on the Basic plan, on all payments | Same | Same |
| Your lever | Weekly limit; dispute hours before Friday of the invoice week | Approve or request changes | Approve or request changes; each resubmission restarts the 14-day review |
| A quiet month costs | Nothing, if no hours are logged | The full monthly amount | Nothing, if you fund per fix |
The initiation fee is small, but twelve new contracts a year means twelve fees, up to about $180 at the top of the range. Option 3 avoids that and keeps the whole history of fixes in one place.
The marketplace fee applies to every payment whichever option you pick, so it does not decide anything here. The Fiverr or Upwork guide compares these fees with Fiverr’s if you have not chosen a platform yet.
How to choose
The hourly and fixed-price differences in general, outside of maintenance, are in hourly or fixed price on Upwork.
Setting up the milestone option
Keep the build contract open, or start one maintenance contract once, and add a milestone each time:
- Per fix: when something breaks, the freelancer proposes a milestone with a short description and an amount. You fund it.
- Per month (on call): at the start of each month you fund one milestone for the agreed amount. It covers response time and up to an agreed number of fixes.
- The test is in the milestone. “The job runs on its next three scheduled times untouched, and a forced failure alerts me.” The acceptance checklist has the full set; you rarely need all nine for a fix.
- Approve only after the test. You have 14 days, which covers several scheduled runs of a daily job.
I have paid for work on fixed dates and on milestones. With milestones, I released each payment after checking what that stage produced. For maintenance that is the point: you pay for a fix you have seen work.
Setting up the hourly option
If you go hourly, put four lines in the contract terms or your first message:
- A low weekly hour limit. The most you are willing to pay in a week that produces nothing.
- A note at the end of every week with logged hours. What broke, what was changed, what is still at risk.
- A switch point. “Once the cause is known, quote the fix as a fixed-price milestone.”
- Work stays on your side. Changes go into your repository or workflow account, with the export updated.
Remember what the hourly dispute covers. It looks at whether hours were worked, not whether the fix holds. Your own test after each fix is still the real check.
A message you can copy
Send this before the build contract closes, with your own numbers:
Before we close this contract, can we set up fixes for the coming months?
- A fix = it stops doing what the brief says because something outside it changed. New behaviour = a new quote.
- Let’s keep one contract and add a milestone for each fix [or: one milestone per month for up to N fixes].
- Each milestone says what is fixed and how I test it. I approve after the next [three] scheduled runs.
- You reply to a failure report within [one working day].
- If the cause is unclear, up to [N] hours on an hourly contract with a weekly limit, then a fixed quote.
- Access stays on my accounts. With each fix: a few lines on what changed.
Does that work for you, or what would you change?
The maintenance guide explains each of these lines in more detail, and the brief on the workflow automation page ends with the same maintenance question. For chatbots, the brief on the chatbot page has a maintenance line too.
Where it goes wrong anyway
- A monthly contract you never test. Paying a fixed amount every month without checking that anything was fixed turns maintenance into a subscription. Put the test in the milestone.
- Hourly with no limit. One hard breakage can run for weeks. Set the weekly limit on day one.
- Every fix becomes “new work”. Go back to the fix-versus-change line. If the brief stated the result in measurable terms, the argument is short.
- Only the freelancer can restart it. Keep the run-book and the export current with every fix, so someone else can step in if this freelancer stops.
- No alert reaches you. A fix is only cheap when the failure is found early. The alert on a failed or empty run should come to you, not only to the freelancer.
Wrap-up
Keeping the developer who built your automation or chatbot is usually the right call. On Upwork, the cleanest way is one fixed-price contract with a new milestone per fix or per month: you test before you pay, and the contract initiation fee is not charged again. Use an hourly contract with a weekly limit only while a problem still needs investigating. If you are hiring for a new build that will need this kind of care later, post the job on Upwork and put the maintenance question in the job post from the start.
Questions people ask
Do I pay the Upwork contract initiation fee again if I rehire the same freelancer?
Yes, if you start a new contract. Upwork's help center says the fee is charged once for each new contract, including with a freelancer you have worked with before. Adding a new milestone to an existing fixed-price contract does not trigger the fee again.
Is hourly or fixed price better for ongoing automation maintenance on Upwork?
Hourly with a low weekly limit suits fixes that are unpredictable and need investigation, as long as you look at the hours every week. A fixed-price contract with a new milestone per fix or per month suits fixes you can test, because you approve each one before the money is released.
Can I dispute an Upwork hourly invoice for maintenance work that did not fix the problem?
You can dispute hours before Friday of the week you received the invoice, but an hourly dispute is about whether the hours were worked, not about whether the fix worked. If quality is the concern, move the fixes to fixed-price milestones you approve after testing.
If you'd rather hand it off
Checked on Fiverr 2026-09-26Workflow automation · Best first order
Asaf CadmonPro
★ 5.0114 reviewsfrom $125
Shortlist, price and brief for this job →
See gig on Fiverr →AI agents & chatbots · Chatbot that answers from your documents
BensbahouPro
★ 5.0474 reviewsfrom $100
Shortlist, price and brief for this job →
See gig on Fiverr →