Skip to content

Private dispatch: hand a job to your own helpers

Too much on? Hand one of the jobs to a helper in your shop. The button says 🤝 Subcontract; what it opens is a dispatch.

One thing to get straight first: you are not handing over the job, you are handing over money. The job itself stays in your shop and only you can edit it. What you send out is "here is what I'll pay you for this one". The helper gets a read-only view of the job plus their own number.

Helpers never see what the job sold for

That promise is printed right under the button on the dispatch page: "Helpers only see their own amount, not the price of the job itself."

1. Where you start it

Three places can start a dispatch, and the button is worded differently in each:

Where Button
A job card on the schedule page 🤝 Subcontract
A repair ticket detail page 🤝 Subcontract to a helper
A cleaning job detail page 🤝 Subcontract to helper

All three open the same page: "🤝 Dispatch a job".

A few live rules:

  • One source job carries one dispatch. Tap it again on a job you already dispatched and you land straight back on the existing one; you can't open a second.
  • On the schedule page, a job you already dispatched loses the "🤝 Subcontract" button. In its place sits a chip like "🤝 Subcontract · recruiting · 1/2 staff ›" that opens the dispatch. Finished jobs have no dispatch button either.
  • On repair and cleaning tickets, the button disappears once the ticket is closed (handed over and booked / finished and booked).
  • No helpers in the shop, no dispatch. The page says: "No helpers yet. Go to Settings → Edit store / storefront / invite helpers to generate an invite code, then dispatch once they join.", with a "🤝 Invite helper" button next to it. See Invite partners for how to bring helpers in.

2. How many people, and who

The first field is "How many people needed", minimum 1. That number is the headcount on this dispatch.

Below it is "Pick helpers · set each one's amount (AUD)". Every helper in your shop is listed, and the pay is negotiated one person at a time — not one price for everyone.

3. Two ways to price it

"Pricing" is a two-way switch. There are only these two, and it starts on Fixed price.

\"Fixed price\" here, \"Flat price\" on the board — one and the same

Chinese uses a single word throughout, 一口价: one agreed number, no hourly meter. English changes the label depending on the screen — Fixed price on this page, Fixed on the reprice row, Flat price on the public board, 💵 Flat as a job card's own price mode. Same idea every time; don't read them as different pricing systems.

The odd one out is Flat rate over in Inventory / Services. That is a per-item pricing unit on your storefront, nothing to do with what you pay a helper.

A flat price agreed per person: each helper gets their own amount box, with the placeholder "Blank = no invite" — only the people you put a number against get invited, the rest are skipped.

Leave them all blank and it stops you: "Set an amount for at least one helper".

That number is what you pay this helper, booked on your side as Subcontract cost. It is not a referral fee and it is not a cut of anything.

Three numbers: "Base (can be 0)", "Rate ($/hour)" and "Estimated hours".

The formula is spelled out on the page:

Pay per helper = base + rate × hours. Quoted on the estimate; settled on actual hours at completion.

  • Estimated hours are prefilled from this job's own time window, with a note under the field: "Prefilled from this job's time window: 3 h. Editable." You can change it.
  • You can override the rate per person. Each ticked helper gets a small extra box, titled "Per-person rate override (blank = shared rate)". Pay your experienced hand more and the new guy less, right here.
  • You see the estimate before you send. A green chip like "≈$240" sits next to each ticked helper: base + that person's rate × estimated hours.
  • Two checks on submit: "Hourly pricing needs a rate and estimated hours above 0" and "Tick at least one helper". Note the shared rate has to be above 0 — even if you filled in a per-person rate for everybody.

Then tap "✓ Send dispatch invite". You get "Dispatch invite sent" and land on the dispatch.

Hourly amounts carry a ≈ sign until the job is done

While an hourly job is unfinished the amount shows as "≈$240", to remind you it's an estimate. The "≈" drops off once the hours are settled at completion. The rate line reads "base 100 + 40/hour × est. 3h", and once actual hours are in it gains "· actual 3.5h".

4. The helper accepts, or doesn't

On their side the heading is "Subcontract offer from {your shop}", and the card is called "Your job": their pay, the time slot, the address, the customer. Not the price of the job.

They get two buttons: "Decline" and "✓ Accept".

There is no counter-offer button

Helpers cannot quote or haggle in the app. Accepting means accepting that price and that time.

If there's something to negotiate it has to happen before they accept, in the one-to-one chat on the dispatch — and then you change the price.

Reprice and Remove sit on one row, and only show when two things are true at once:

  1. the dispatch is Recruiting, and
  2. that person is still Invited · awaiting reply.

In other words, the moment they tap "✓ Accept" your reprice option is gone. The price locks at acceptance.

  • Reprice can't switch the pricing mode. Someone invited on a flat price gets a single amount box; someone invited hourly gets Base / Rate / Est. hours. Success shows "Price updated". (On this row the switch is shortened to "Fixed" / "⏱ Hourly".)
  • Remove is the red one, and asks "Remove this helper's offer?" first. Removed people drop out of the "Helpers (n)" list.
  • While recruiting you can also "Add another": pick a person, same "Fixed" / "⏱ Hourly" switch, tap "Invite", and you get "Offer sent".

5. Once the spots are filled

When enough people have accepted, the dispatch goes from "Recruiting" to "Full". Invitations nobody answered — and any public-board applications — land on the status "Position filled · not selected".

As soon as the dispatch stops being Recruiting, four controls disappear from your side at once: Reprice, Remove, Add another, and 🌏 Recruit from the public board. What's left is the wrap-up.

There is no button that cancels a whole dispatch

"Cancelled" is one of the three dispatch states (Recruiting / Full / Cancelled), but nothing in the interface triggers it.

While nobody has accepted yet, backing out means removing the candidates one by one. Once someone has tapped "✓ Accept" there is no remove option for them — at that point talk to them in the chat on this job.

And anything the state doesn't allow comes back as one line: "Can't do that right now".

6. Every offer has its own chat

Under each candidate is a one-to-one thread only the two of you can see. On your side it's folded up as "Chat (3)"; on theirs it's "Chat with owner (3)", open by default.

You can only send new messages while the person is Invited · awaiting reply, Accepted · in progress, or Applied · awaiting confirm. After Done, Declined or Removed the thread is read-only history.

If you edit the source job (move the date, change the address), the dispatch's "📝 Change log (2)" records a line — "Order details changed · …" — and the helper can see it.

7. After the work: settling and paying

The helper taps "✓ Mark complete", and the two pricing modes diverge:

  • Fixed price: one confirmation, "Confirm this job is finished?", and that's it.
  • ⏱ Hourly: a "✓ Mark done · settle hours" sheet opens. They fill in "Actual hours", the settled amount is computed in front of them, and they tap "✓ Confirm done". The sheet says: "Enter how long this job actually took — pay settles on these hours. The owner can adjust them with you before paying out."

After an hourly job is done but before you've paid, you can still fix the hours: that row grows an input plus "🕐 Adjust hours", where you enter "Actual hours" (must be above 0) and the pay recalculates. This control only appears on rows that are done, unpaid and hourly.

You pay outside the app — the system only records the state. You tap "Mark paid"; your side reads "✓ Paid", and on the helper's side "Waiting for owner to settle" becomes "✓ Paid".

What you made on the job is on the "This job's books" card (visible to you only): Revenue booked − Subcontract cost = Net. While the source job hasn't been billed, that line changes to "Net {amount} (not booked yet, subcontract cost only)" to flag that no revenue is in the figure yet.

8. Where to find what you dispatched

  • Per shop: Me → Job assignment (dispatch to helpers) → "🤝 Job assignment", split into "Dispatched by this shop (n)" and "Jobs our people picked up elsewhere (n)", each row reading "Invited 3 · needed 2 · accepted 1".
  • Across shops: the Collab tab at the bottom → "🏬 Dispatched as owner" and "🧰 My jobs as helper".

When none of your own helpers can take it, open the dispatch and tap "🌏 Recruit from the public board", set one shared Flat price — the same kind of number as above, just one for everybody instead of one each — and let people in the community apply.

Next