Links You Send Customers & Staff
UpChannels sends seven kinds of link: five for customers (online invoice, payment link, customer portal, review invitation, delivery tracking) and two for your team (driver route, online dispatch list). Nobody logs in to open one — the link itself is the key — so every link expires. This page puts them side by side; each feature's own page has the full detail.
Overview
| Link | Who gets it | Where it comes from | Works for | After that the person sees |
|---|---|---|---|---|
| Online invoice (on a quote: Online link) | Customer | Order window → Print ▾ → Online invoice, or Send ▾ → Text invoice… | 30 days | "Invoice Error" |
| Payment link | Customer | Order window → Payment tab → Create payment link, or the Include payment link switch when you email or text the invoice | 24 hours | The link no longer opens checkout — make a new one |
| Customer portal link | Customer | Order window → Send ▾ → Portal link…, plus the portal's automatic emails | 60 days | "This link has expired" |
| Review invitation | Customer | Order window → Send ▾ → Request review, or automatically after the order completes | 30 days | "This link has expired" |
| Delivery tracking link | Customer | Sent automatically in delivery texts and emails | 60 days | "This link is invalid or has expired" |
| Driver route link | Driver | Sales → Routes → Route arranger → Copy link or Text link | 48 hours | "This link has expired" |
| Online dispatch list | Your technicians | Sales → Schedule → Online Dispatch | 7 days | "Dispatch List Error" |
What every link has in common:
- No login. Anyone holding the link can open it, so send it only to the person it is for.
- Each click makes a new link. Older links are not cancelled; each works until its own expiry. The exception is the review invitation: there is only one per order, and asking again re-uses it. The only ways to stop links early are listed under each link below.
- They show what is true now. The invoice, portal, tracking page, driver route and dispatch list read your data when the link is opened, so changes you make after sending show up.
- There is no separate receipt link. Once an order is paid, its online invoice lists the payments under Payment received and shows a Paid tag beside the total. The customer portal also has a View receipt button. Send ▾ → Email invoice… attaches a PDF rather than a link.
- Texts need an SMS plan. Anything sent by text needs Pro or Premium (or a free trial) with SMS allowance left and your store's texting number set up. Otherwise use Copy and send the link another way.
Send an invoice or quote link
- Open the order from Sales → List.
- To open the invoice yourself (and copy its address), choose Print ▾ → Online invoice (Online link on a quote). It opens in a new tab.
- To text it, choose Send ▾ → Text invoice…. The Send Invoice via SMS dialog opens with the customer's phone in To and a message such as "Hi …, here is your invoice #…: … Thank you!" already written.
- Optionally turn on Include payment link for $… (shown only when card payments are ready and the order is a sale with at least $0.50 still owed). The amount is the balance due: the order total minus the payments already completed.
- Click Send SMS.
The customer sees your letterhead, the items, Payment received, the totals and Balance due (not on quotes), your customer and fulfillment notes, your terms, and signature lines. The invoice has no Pay button — include a payment link, or send the portal link, if you want to be paid online. Print ▾ and Send ▾ do not appear on Scrap orders. The rest of the order window is on Order Management.
Send a payment link
Payment links need card payments (Card Payments): the card payments add-on, the owner's Enable card payments switch, and a Stripe account that can take charges.
- Open the order and go to the Payment tab (not while editing).
- In the Take card payment card, click Create payment link.
- Click Copy, Email link or Text link. Email link and Text link open the invoice email or text dialog with the link already in the message; nothing is sent until you click Send Email or Send SMS.
The customer pays on Stripe's secure checkout page, then returns to the order's online invoice (also if they cancel). After paying they see a green note at the top of the invoice: "Payment received — thank you. This invoice updates once your payment is confirmed; refresh in a moment." The payment appears on the order once Stripe confirms it — you do not record it by hand. A link is for at least $0.50 and never more than the open balance. It lasts 24 hours, and a new click makes a new link without cancelling the old one.
When a driver finishes a delivery and money is still owed, the "delivered" text or email includes its own 24-hour payment link automatically (when card payments are set up).
Send a customer portal link
The portal needs Pro or Premium (a free trial counts) and the owner's Enable customer portal switch. See Customer Portal.
- Open the order → Send ▾ → Portal link…. A new 60-day link is made every time the dialog opens.
- Click Copy, or check To and Message and click Send by text.
The customer sees their order page: progress, items, balance with a Pay button (when card payments are ready), receipt, appointments, delivery booking and a Request a change form. If the owner switches the portal off, or the plan no longer includes it, every portal and review link shows Portal unavailable; they work again once the portal is back.
Ask for a review
- Open a Delivered or Completed order → Send ▾ → Request review.
- UpChannels emails the invitation. If no email goes out, it texts it instead, but only to a customer who allows texts.
The link lasts 30 days, after which the invitation is marked expired and a fresh one can be started. There is one invitation per order, and clicking again asks the customer again on that same invitation — up to the two reminders the store allows. The customer picks 1–5 stars and can add a comment; afterwards they see Review us on Google if a Google review link is saved on one of your locations. Replies appear in the Review requests section of Growth → Reviews Booster (Reviews).
The owner's Review request after completion switch in Settings → Customer Portal (off by default) sends invitations automatically about a day after an order is Delivered or Completed. Up to two reminders follow, three days apart, on any invitation still waiting — including one you sent by hand — unless the owner turns Remind customers who have not answered off.
Delivery tracking links
There is no button. Tracking links go out on their own when:
- a delivery is scheduled or rescheduled,
- the driver taps I'm on my way (first time only),
- the driver finishes the stop (delivered, or part delivered),
- the day before a confirmed delivery, as a reminder email (Settings → Delivery & Routes → Day-before delivery reminder).
When the Customer Portal is available (switched on, and Pro or Premium), these messages link to the portal order page instead. The tracking page shows the delivery window or status, who signed, a timeline, the driver's delivery photos and your contact details — no prices. Messages go by text when the customer allows texts and has a phone, otherwise (or if the text fails) by email. See Delivery.
Send a driver their route
- Open Sales → Routes and find the route's row in the Route arranger card.
- Click Copy link (the route needs a driver assigned) and paste it into any message, or click Text link, which texts the assigned driver straight away. With no driver assigned, Text link asks for a phone number.
The driver sees that day's stops on their phone — no app, no login. The link lasts 48 hours. It stops early if you deactivate that driver under Drivers & recipients, or if the owner turns off Delivery & Routes. Dissolving a route does not stop the link. See Driver link and Routes Board.
Send the online dispatch list
- Open Sales → Schedule and set the date range you want to share.
- Click Online Dispatch (it reads Generating... while the link is made).
- In Send Dispatch Link, tick team members (only those with a full phone number can be ticked), or type a Name (optional) and Phone Number and click +.
- Leave Message empty for the default text, or write your own — the link is added to the end either way, and the box underneath shows exactly what each person receives. Click Send to … recipients. Preview opens the list for you.
It goes by text only (no email). The list shows your service jobs in the chosen dates, grouped by day, with customer, service, priority, status, time, phone, address, work order, value and notes. Cancelled and no-show jobs are left off. A link covers the dates you had chosen when you made it and nothing else: if none of your jobs fall in them, your team sees "No Jobs Scheduled". The link lasts 7 days. See Schedule.
Tips & best practices
- Send a new link rather than hunting for an old one. New links cost nothing and old ones keep working until they expire.
- One link beats three. On Pro or Premium, the portal link covers the order, the balance, payment, the receipt and delivery booking in one place.
- See what they see. Online invoice opens the customer's view in a new tab; copy a portal or driver link into a private browser window; Preview in the dispatch dialog opens the list.
- Only confirm SMS consent when the customer agreed. Confirm opt-in & send sends the text and then records their opt-in on the customer record.
- Paste the whole link. A link cut short shows "This link isn't valid" or "Invoice Error".
- Read the dispatch preview before sending. Under the Message box, "This is what each person receives:" shows the exact text, link and all.
- Time-clock tablets use a link of their own; see Workforce.
Troubleshooting
| Problem | Likely cause | Fix |
|---|---|---|
| Customer sees "Invoice Error" | The link is more than 30 days old, or was cut short when copied | Print ▾ → Online invoice or Send ▾ → Text invoice… again |
| Customer sees "This link has expired" on the portal | More than 60 days since the link was made | Send ▾ → Portal link… again |
| Customer sees "This link isn't valid" | The link was copied incompletely | Send it again and paste the whole address |
| Customer sees "Portal unavailable" | The portal is switched off, or the plan no longer includes it | The owner turns it back on, or upgrades; old links then work again |
| Customer paid through a link but the invoice still shows a balance | The payment is recorded when Stripe confirms it, a few seconds after they are sent back | The customer already sees "Payment received — thank you…" on the page; refresh after a moment and the balance follows |
| Include payment link is missing | Card payments are not ready, the order is not a sale, it is cancelled or refunded, or less than $0.50 is still owed (for example it is fully paid) | Finish Card Payments setup if that is the reason; otherwise there is nothing to collect |
| Portal link… or Request review is missing from Send ▾ | The portal is off or not in your plan; Request review also needs a Delivered or Completed order | Owner checks Settings → Customer Portal |
| Toast Still could not be sent instead of Review request sent | The invitation could not be emailed, and the customer does not allow texts (or the text failed) | The invitation stays Pending and is tried again every three days, and clicking again tries at once. When the customer opted out of texts, or their email address or phone number cannot be used, the three-day retry stops until a click gets through. Meanwhile copy its link from Review requests on Reviews and send it yourself |
| Toast Not sent — "already been asked as many times as the store allows" | The two reminders are used up | Copy the link from Review requests and send it yourself |
| Toast Upgrade required | Your plan has no SMS, the trial or subscription is inactive, or this month's SMS allowance is used up | Upgrade, or Copy the link and send it another way |
| Driver sees "This link has expired" | More than 48 hours since it was made | Copy link or Text link again |
| Driver sees "This link is no longer active" | That driver was deactivated in Drivers & recipients | Click Activate beside them, or send the route to an active driver |
| Driver sees "Delivery is not enabled for this organization" | The owner turned off Delivery & Routes | Owner turns it back on in Settings → Delivery & Routes |
| Team sees "Dispatch List Error" | The link is more than 7 days old, was cut short, or its address was edited after it was sent | Click Online Dispatch again |
| Dispatch result says Nothing was sent | Every text was refused — the reasons are listed under it, named person by person | Fix the numbers or your texting setup, then send again. Nobody received the link |
| Dispatch result says Some texts did not go out | Some texts went, some didn't | The people listed underneath got nothing; send to them again |
| Dispatch list says "No Jobs Scheduled" | Nothing is booked in the dates that link covers | Set the range on the Schedule, then click Online Dispatch again |
| Tracking page says "No delivery scheduled yet" | The order has no delivery appointment, no service visit still to come, and is not marked delivered or still has a product to hand over (an order whose next stop is a service visit shows Scheduled visit with its day and times instead; a cancelled order, or one whose products all came back, shows Nothing left to deliver) | Schedule the delivery (Delivery) |
| Online invoice opens nothing | The browser blocked the new tab | Allow pop-ups for UpChannels and try again |
What's next
- Order Management — the order window, with Print ▾ and Send ▾
- Card Payments — take card payments and send payment links
- Customer Portal — portal settings, automatic emails and what customers can do
- Reviews — see review requests and replies
- Delivery and Driver link — delivery messages and the driver's phone screen
- Schedule — service jobs and Online Dispatch
- SMS setup — set up your store's texting number
Detailed reference
Every button, field, page and message involved in sending links, for when you need the exact detail. Each panel starts closed — open the one you need.
Section: Order window — Print ▾ and Send ▾
Open any order from Sales → List. Both menus sit in the order window's header and are hidden while you are editing and on Scrap orders.
| Control | Where | What it does | Notes |
|---|---|---|---|
| Print ▾ (printer icon) | Order window header | Opens the print menu | Hidden on Scrap orders and while editing |
| Print ▾ → Print invoice / Print quote | Print menu | Prints the invoice from a pop-up window | Not a link. Label is Print quote on quotes |
| Print ▾ → Service sheet | Print menu | Prints the service sheet | Not a link. Hidden on quotes and returns |
| Print ▾ → Online invoice (open-in-new-tab icon) | Print menu | Makes a new 30-day online invoice link and opens it in a new browser tab | Label is Online link on quotes. Copy the address from the new tab to share it. If it fails, a red "Online invoice not opened" message shows the reason or "Failed to open online invoice" |
| Send ▾ (paper-plane icon) | Order window header | Opens the send menu | Hidden on Scrap orders and while editing |
| Send ▾ → Email invoice… (envelope icon) | Send menu | Opens Send Invoice via Email | Sends the invoice as a PDF attachment, not a link (a payment link can be added) |
| Send ▾ → Text invoice… (speech-bubble icon) | Send menu | Makes a new 30-day online invoice link, then opens Send Invoice via SMS with the link in the message | If the link cannot be made, a red "Text invoice not ready" message shows the reason or "Failed to prepare SMS" |
| Send ▾ → Portal link… (globe icon) | Send menu | Opens Customer portal link | Only when the portal is live: owner switch on and a Pro, Premium or trial plan. Otherwise the item is not there |
| Send ▾ → Request review (star icon) | Send menu, last item | Creates a review invitation for this order and sends it; reads Requesting… while working | Only when the portal is live and the order status is Delivered or Completed. Works whether or not the automatic review switch is on. One live invitation per order: clicking again asks the customer again on that invitation, up to the store's reminder limit, and once a 30-day link has run out it starts a fresh one |
Section: Payment tab — payment links
The Take card payment card shows on sale orders in view mode when card payments are fully set up and at least $0.50 is still owed; a fully paid, cancelled or refunded order doesn't show it. See Card Payments for reader charges.
| Control | Where | What it does | Notes |
|---|---|---|---|
| "No card readers registered. Register one in Settings → Accept Payments to charge a card in the shop; a payment link works without one." | Top of the card | Shown when the store has no card reader. Settings → Accept Payments is a link for everyone Settings opens for; for anyone else it is plain text and the message adds "Ask the owner to register one." | Payment links still work without a reader |
| Amount | Top of the card | Sets the amount for a reader charge, and also for the next payment link | Only shown when a card reader is registered. Starts at the Balance due: the order total minus the payments already completed |
| Create payment link | Take card payment card, lower section | Makes a Stripe checkout link for the amount shown | Greyed out while working. Each click makes a new link; earlier links are not cancelled |
| "Send a secure Stripe checkout link for $… (valid 24h)" | Beside the button | Shows the amount the link is asked for: the Amount, or the balance due | A deposit already paid is taken off. The link is never for less than $0.50 or more than the balance due |
| Link box (read-only) | Under the button | Shows the link; clicking selects it | Clears itself when the link expires, or after a card-reader payment on this card |
| Copy → Copied! | Link box | Copies the link | If the browser blocks it: "Copy failed — select the link text and copy manually" |
| Email link (envelope icon) | Link box | Opens Send Invoice via Email with subject "Payment link for Invoice #… from …" and the link in the message | Nothing is sent until Send Email |
| Text link (speech-bubble icon) | Link box | Opens Send Invoice via SMS with "Hi …, here is your payment link for invoice #…. Pay $… securely online: … (link expires …)" and "Thank you!" | Nothing is sent until Send SMS |
| "Link expires …" | Under the link box | Date and time the link stops working | 24 hours after it was made |
| Red error line | Under the section | Why the link could not be made | See Messages you may see |
What the customer gets: Stripe's hosted checkout for the amount. Paying or cancelling returns them to the order's online invoice; after paying, the invoice shows "Payment received — thank you. This invoice updates once your payment is confirmed; refresh in a moment." at the top. A customer who paid from a delivery text lands on the tracking page instead and sees "Payment received — this page will update shortly. Refresh in a moment to see it reflected." Nothing is added to the order until the customer pays; Stripe's confirmation then adds a Completed payment.
Section: Schedule — Online Dispatch
| Control | Where | What it does | Notes |
|---|---|---|---|
| Online Dispatch (share icon) | Sales → Schedule: beside Print Dispatch List in the list views, or beside Print Dispatch in the calendar view | Makes a new 7-day dispatch-list link for the Schedule's current date range, then opens Send Dispatch Link | Reads Generating... and is greyed out while working. Failure: a red "Dispatch link not created" message with the reason, or "Failed to generate dispatch link"; "Organization not found. Please try again." if your store could not be read |
Section: Routes — driver route links
In Sales → Routes, each route row in the Route arranger card has these buttons. Both are greyed out while the card is working. Notices show in a green box and problems in a red box at the top of the card (not as pop-up toasts). Full detail: Routes Board and Driver link.
| Control | Where | What it does | Notes |
|---|---|---|---|
| Copy link (chain-link icon, tooltip Copy the driver route link) | Route row | Makes a new 48-hour link for the route's driver and date and copies it. Notice: "Route link copied — valid for 48 hours." | Needs a driver on the route, else: 'Assign a driver first, or use "Text link" with a phone number.' Other failures: the reason, or "Copy link failed" |
| Text link (speech-bubble icon, tooltip Text the route link) | Route row | Route with a driver: texts that driver at once, no confirmation. Route with no driver: opens a row to type a number | Needs your store's own texting number and an SMS plan. Notice: "Route link texted to … (…)." A plan without texting, or a month's texts used up, shows the Upgrade required toast with an Upgrade button. Other failures: the reason, or "Text link failed" |
| Phone field (placeholder "Phone number") | Row under the route | Number to text | Only when the route has no driver |
| Name field (placeholder "Name (optional)") | Row under the route | Name for a new recipient | Blank = "Driver" plus the last four digits |
| Send | Row under the route | Texts the link and assigns the route to that person; an unknown number becomes a new recipient | Greyed out until a number is typed |
| "Any phone works — contractors get a recipient record automatically." | Row under the route | Helper text | — |
| Text the driver receives | Driver's phone | "…: your route for … is ready. Open your stops here: … (link expires in 48h)" | The date is written like 2026-09-18 |
| Deactivate / Activate | Drivers & recipients card | Deactivate stops every link that driver holds, from their next tap; Activate lets their links work again until they expire | A deactivated driver sees "This link is no longer active" |
Section: Automatic messages that carry a link
These go out without anyone clicking. Delivery messages go by text when the customer allows texts and has a phone, otherwise (or if the text fails) by email, and each goes once per delivery (a reschedule sends again for each new window).
| Message | When | Link it carries | Text (verbatim) |
|---|---|---|---|
| Delivery scheduled | A delivery is booked | Tracking link, or the portal link when the portal is available | "…: your delivery for order … is scheduled for …. Track it here: …" (email subject "Your delivery is scheduled — order …") |
| Delivery rescheduled | A delivery moves to a new window | Same | "…: your delivery for order … was moved to …. Details: …" (email subject "Your delivery was rescheduled — order …") |
| On the way | The driver's first I'm on my way tap on a delivery stop | Same | "…: your delivery is on the way (window …). Follow along: …" plus " Estimated arrival: about … minutes." when an estimate is available (email subject "Your delivery is on the way — order …") |
| Delivered | The driver finishes the stop and everything on the order is delivered | Same, plus a 24-hour payment link when money is owed and card payments are ready | "…: order … was delivered. Photos and details: …" plus " Balance due — pay securely here (link valid 24h): …" (email subject "Delivered — order …") |
| Partial delivery | The driver finishes the stop with items still to deliver | Same | "…: part of order … was delivered today; we'll follow up to schedule the rest. Details: …" (email subject "Partial delivery — order …") |
| Missed delivery | The driver records the stop as Not delivered | Same | "…: we couldn't complete your delivery for order … (…). We'll be in touch to book another. Details: …" with the window attempted; when the link goes to the portal and customer self-scheduling is on, "Pick a new time here, or we'll be in touch to book another: …" (email subject "We couldn't complete your delivery — order …"). Controlled by Missed delivery message in Settings → Delivery & Routes |
| Day-before delivery reminder | The day before a confirmed delivery | Tracking link (email only) when the portal is not available | Subject "Reminder: your delivery is tomorrow", heading "Your delivery is tomorrow", "A friendly reminder: your delivery for order #… is tomorrow (…)." with button View details. Controlled by Day-before delivery reminder in Settings → Delivery & Routes. When the portal is available, the portal's Day-before reminder switch sends it instead, with the portal link (and also by text when Also send by text (SMS) is on) |
| Review invitation | Request review, or automatically 1–3 days after the order becomes Delivered or Completed when the owner's Review request after completion switch is on | Review link (30 days) | Email subject "How did we do? — …", heading "Thanks for choosing …!", "How did we do with your order #…? We'd love your feedback — it takes under a minute." with button Leave a quick review. The text version is the same sentence plus the link |
| Review reminder | Every 3 days after an unanswered invitation that was sent, up to 2, only while Review request after completion is on | Review link | Heading "How did we do?", "A quick reminder from … — we'd love your feedback on order #…. It takes under a minute." A reminder sent when fewer than 5 days of the link remain carries a freshly signed link, good until the invitation itself runs out 30 days after it was created — a reminder never extends the invitation |
| Portal emails | Payment received (order fully paid), Appointment scheduled, Day-before reminder, Order completed, Ready to schedule | Portal link | Owner switches in Settings → Customer Portal. Wording: Customer Portal |
Delivery emails carry a button instead of the address: Track your delivery, View your delivery on the delivered message, and View details (or Pick a new time) on the missed-delivery message. In review messages and the day-before reminder, "order" and "delivery" may read as your industry's own words.
Dialog: Send Invoice via SMS
Opened by Send ▾ → Text invoice…, or by Text link in the Take card payment card.
Fields:
| Field | Required | Default | Rules and error text |
|---|---|---|---|
| To (placeholder "Customer phone number") | Yes | The customer's phone | Send SMS stays greyed out while To or Message is empty |
| Message | Yes | From Text invoice…: "Hi …, here is your invoice #…: …" and "Thank you!" (on a quote: "your quote"). From Text link: the payment-link message | The helper under the box names what the message actually carries. From Text invoice…: "A link to the online invoice is included. Standard SMS rates may apply." — and with the payment-link switch on, "A link to the online invoice and a secure payment link for $… are included. It expires …. Standard SMS rates may apply." From Text link: "A secure payment link for $… is included. It expires …. Standard SMS rates may apply.", or "The payment link has been taken out of the message." if you switch it off |
| Include payment link for $… (switch) | No | Off (on when opened from Text link) | Adds "Pay $… securely online: … (link expires …)" to the message; turning it off removes that line. Greyed out, with a spinner, while the link is being made. Shown only when card payments are ready and the order is a sale that is not cancelled or refunded with at least $0.50 still owed. The $ figure is the balance due (order total minus completed payments), the same amount the link and the message carry |
| Start a new conversation (switch) | No | Off | Closes the current text conversation with this number and starts a new one with this text. The closed conversation keeps its messages in Messages. Off every time the dialog opens, so it never carries over to a later text |
Buttons:
| Control | Where | What it does | Notes |
|---|---|---|---|
| Cancel | Dialog footer | Closes without sending | — |
| Send SMS → Sending... | Dialog footer | Texts the message from your store's number. Toast SMS Sent — "Invoice link sent successfully." | May open Confirm SMS consent first, or show Upgrade required. Failure toast SMS Failed |
Dialog: Send Invoice via Email
Opened by Send ▾ → Email invoice…, or by Email link in the Take card payment card. The invoice goes as a PDF attachment.
Fields:
| Field | Required | Default | Rules and error text |
|---|---|---|---|
| To (placeholder "customer@example.com") | Yes | The customer's email | Send Email stays greyed out while To or Subject is empty, with "Enter the customer's email address to send the invoice." (or "Enter a subject to send the invoice.") beside the buttons |
| From (read-only, tooltip "Invoices are always sent from your business name") | — | Your business name: the order's location's Name on invoices (Settings → Locations), or the Organization Name when it has none | Cannot be changed |
| Subject | Yes | "Invoice #… from …" ("Quote #…" on quotes); from Email link: "Payment link for Invoice #… from …" | — |
| Message | No | "Hello, Please find your invoice attached as a PDF. Thank you for your business! Best regards, … Team" ("quote" on quotes); from Email link: the payment-link message, then "Your invoice is attached for reference." | — |
| Send a copy to my business email (…) (tick box) | No | Off | Only when your store has a business email |
| Include payment link for $… (switch) | No | Off (on when opened from Email link) | Adds "Amount due: $…. Pay securely online:" and the link with its expiry. Same conditions and notes as in the SMS dialog |
Buttons:
| Control | Where | What it does | Notes |
|---|---|---|---|
| Invoice Preview | Dialog body | Shows the invoice ("Preparing preview…" while loading) | — |
| Cancel | Dialog footer | Closes without sending | — |
| Send Email → Sending... | Dialog footer | Emails the invoice. Toast Invoice Sent — "The invoice email was sent successfully." | Failure toast Email Failed with the reason, for example "Failed to send invoice" |
Dialog: Customer portal link
Opened by Send ▾ → Portal link…. Every time it opens it makes a new 60-day link; older links keep working. If the link cannot be made, the dialog shows only the reason (see Messages you may see), with Open portal settings or Upgrade to Pro where they help; close it with X.
Fields:
| Field | Required | Default | Rules and error text |
|---|---|---|---|
| Link (read-only) | — | The new portal link | Clicking selects it. Helper: "The customer can open this link without logging in. It expires automatically." |
| To (placeholder "Customer phone number") | Yes, to text | The customer's phone | — |
| Message | Yes, to text | "Hi …, view your order #…, track status and pay online here: …" | Reads "Hi Customer Name" when the order has no customer |
Buttons:
| Control | Where | What it does | Notes |
|---|---|---|---|
| "Creating link…" | Dialog body | Shown while the link is made | — |
| Copy (two-squares icon) | Right of Link | Copies the link. Toast Link copied with the address | If the browser blocks it: Copy failed — "Select and copy the link manually." |
| Open portal settings | Dialog body, on failure | Opens Settings → Customer Portal | When the portal was switched off after the order window opened |
| Upgrade to Pro | Dialog body, on failure | Opens Plan & Billing | When the plan no longer includes the portal |
| X (close) | Top right | Closes the dialog | — |
| Close | Dialog footer | Closes. Nothing is sent | — |
| Send by text → Sending... | Dialog footer | Texts the message. Toast SMS Sent — "Portal link sent successfully." and the dialog closes | Greyed out while To or Message is empty. May open Confirm SMS consent or show Upgrade required |
Dialog: Confirm SMS consent
Opens when you text an invoice or portal link to a customer who is not marked as agreeing to texts.
| Control | Where | What it does | Notes |
|---|---|---|---|
| "This customer isn’t marked as opted in to SMS." | Dialog | Explains why it opened | — |
| Amber note "Only continue if this customer has agreed to receive text messages from you. Confirming sends this message and, once it has gone out, records their SMS opt-in. If they previously texted STOP, the carrier will still block delivery until they text START." | Dialog | Warning | — |
| Cancel | Dialog footer | Closes. Nothing is sent | Greyed out while sending |
| Confirm opt-in & send → Sending… | Dialog footer | Sends the text, then records the customer's SMS opt-in | The opt-in is only recorded once the text has actually gone out; a refused send leaves it as it was |
Dialog: Send Dispatch Link
Opened by Online Dispatch on the Schedule. Title Send Dispatch Link, subtitle "Send the dispatch list link to your team members via SMS".
Fields:
| Field | Required | Default | Rules and error text |
|---|---|---|---|
| Message | No | Empty; the placeholder shows the default "… Dispatch List for … - …. View your assignments here: …" ("for this week" when the Schedule has no date range) | Helper: "Leave empty for the default message. Whatever you write, the dispatch link is added at the end if it isn't already in your text." A link you paste in yourself is kept where you put it, and a link left over from an earlier Online Dispatch is swapped for the current one |
| Recipients (… selected) list | At least one | Everyone on your team, with the mobile or business phone from their profile, none ticked | A tick box works only when the phone field holds at least 10 digits; type or fix a number in the row's field ("Enter phone number"). The count only includes ticked people with a full number |
| Name (optional) (placeholder "Team member name") | No | — | Blank = "Phone" plus the last four digits |
| Phone Number (placeholder "+1 (555) 123-4567") | To add someone | — | Fewer than 10 digits: alert "Please enter a valid phone number". Enter also adds |
Buttons:
| Control | Where | What it does | Notes |
|---|---|---|---|
| Checkbox | Each recipient row | Selects that person | Greyed out without a 10-digit phone |
| Trash icon | Rows you added by hand | Removes that person | — |
| + (plus icon) | Beside Phone Number | Adds the person, already ticked | Greyed out until a number is typed |
| "Add team members above to send the dispatch link" | Recipients area | Shown when the list is empty | — |
| "This is what each person receives:" box | Under Message | The exact text that will be sent, link included | Updates as you type |
| "Dispatch Link:" box | Above the footer | Shows the link | — |
| Preview (open-in-new-tab icon) | Dialog footer, left | Opens the dispatch list in a new tab | — |
| Cancel | Dialog footer | Closes without sending | — |
| Send to … recipient(s) → Sending... | Dialog footer | Texts each selected person from your store's number | Greyed out with nobody selected. Needs an SMS plan (otherwise the Upgrade required toast shows and the dialog stays open) and your store's own texting number |
| Messages Sent! (green) | Result view | Every text went out | "… sent, 0 failed" |
| Some texts did not go out (amber) | Result view | Some went, some didn't | "The people listed below did not get the dispatch link." Each failure is named: "Failed to send to …: …" |
| Nothing was sent (red) | Result view | No text reached anyone | "Nobody received the dispatch link. Check the reasons below, fix the numbers or your texting setup, then send again." The counts are the texts that went and the texts that failed |
| Close | Result view | Closes the dialog | — |
Sub-page: Online invoice (what the customer sees)
Opened from the link; no login. Browser tab title "Invoice - …" (or "Quote - …").
| Part | What it shows | Notes |
|---|---|---|
| Letterhead | Your logo, business name, address and phone | From Settings: the address, phone and name of the location the order was rung up at, the name being its Name on invoices or else the Organization Name |
| Invoice / Quote, Nº, Invoice #, date | Document type, order number, your own invoice number, order date | Invoice # only when the order has one |
| Billed to / Quote for | Customer name, address, phone and email | — |
| Payment and Fulfillment | How it was paid and how it is fulfilled | When known |
| Items table: Nº, Item, Qty, Unit, Amount (plus Tax rate and Tax when tax is shown per line) | The order lines. Under each item: its SKU and type, and a Warranty: line (terms, price, provider, and ID for a card number) | — |
| Payment received | Each payment with its method, amount and status | "No payment recorded" when there is none |
| Subtotal, Discount, Tax (…%), Shipping, Total | Totals | Discount and Shipping only when above $0 |
| Paid tag beside Total | The order is fully paid | Not on quotes |
| Balance due | What is still owed | Not on quotes |
| "Thank you for your business." | Closing line, under Payment received | — |
| Customer notes, Fulfillment notes | The order's customer notes, delivery method and delivery notes | Internal notes never appear |
| Terms & conditions | Your store's terms, in small print | When set. Long terms print in two columns. A typical order of up to four lines fits on one letter page with them |
| Customer signature, Date lines | For signing a printed copy | — |
| Footer | Business name, phone, email, address | — |
There is no Pay button and no Print button on this page; the customer can print it with the browser. Error page: "Invoice Error" / "Unable to load invoice. The link may be invalid or expired." / "Ask the store for a new link." Nothing technical is shown.
Sub-page: Customer portal and review pages
Full detail of the portal page, its cards and the review form: Customer Portal. The pages carry the footer "Secure link provided by …".
| Page | What it shows | Link lifetime |
|---|---|---|
| Portal order page | Store header, status, progress timeline, What's included, Invoice & balance with Pay $…, Receipt, Appointments, Delivery scheduling, Contact the store | 60 days |
| Receipt (from View receipt) | The same invoice layout, with ← Back to your order and Print | Same link as the order page |
| Review page | "How was your experience with …?", five stars, optional comment (up to 1,000 characters), Send feedback, then "Thanks for the feedback!" and Review us on Google when a Google review link is saved on a location | 30 days. Opening it marks the invitation Link clicked |
Screens a customer can land on instead:
| Screen | Text | Cause |
|---|---|---|
| This link isn't valid | "The link may have been copied incompletely. Contact the store for a new one." | Cut short, altered, or the order or invitation no longer exists |
| This link has expired | "For your security, portal links expire after a while. Contact the store for a new one." | Older than 60 days (portal) or 30 days (review) |
| Portal unavailable | "… doesn't have the customer portal turned on right now. Contact the store directly about your order." | Portal switched off, or the plan no longer includes it. Links work again once it is back |
| Already reviewed | "Thanks for the feedback!" / "You've already shared your experience with us." | The review link was used already |
Sub-page: Delivery tracking page
Browser tab title "Delivery status"; read-only, no buttons. Details: Delivery.
| Part | What it shows | Notes |
|---|---|---|
| Header | Store name and "Delivery status for order …" | — |
| Scheduled window | The delivery day and time window | Before delivery, in your store's time zone |
| Scheduled visit | The day and times of the order's next service visit | When the order has no delivery booked but has a service visit still to come |
| Status | Delivered or Partially delivered | After the stop is finished. Also Delivered when nothing is booked and no service visit is to come, but the order is marked delivered and no product is still to hand over (the goods went over the counter, say). Not when every product came back: that reads Nothing left to deliver |
| Status Not delivered, "We couldn't complete your delivery on …. We'll be in touch to book another." | The day the driver recorded the delivery as Not delivered | While a product is still to hand over and nothing is booked in its place. Once the order is booked in again, the new window shows. An order marked delivered another way reads Delivered, and one with nothing left to bring (every product came back, even on an order still Completed) Nothing left to deliver |
| "Signed by …" | The name the customer signed under | When delivered or part delivered AND a signature was actually captured. A name with nothing signed shows no line here |
| Status Nothing left to deliver | — | Nothing is booked, no service visit is to come, and the order has a product line but nothing left to bring: it was cancelled or refunded, or every product came back. Every product coming back reads this even while the order is still Completed or marked delivered (a sale that kept its delivery fee stays Completed) |
| "No delivery scheduled yet" | — | The order has no delivery appointment and no service visit still to come, and is not marked delivered or still has a product to hand over |
| Timeline | Delivery scheduled, Delivery rescheduled, Delivery confirmed, Out for delivery, Driver arrived, Delivered, Partially delivered, Delivery attempted, Delivery cancelled — each with date and time | Internal notes and damage reports never show. A failed visit cancelled because a new booking replaced it is not shown as "Delivery cancelled" |
| Delivery photos | Up to 12 photos the driver took at the stop | Damage photos, the signature and a photo removed on the order's Delivery tab never show |
| Footer | "Questions? Contact … at … or …." | When the store has a phone or email |
No prices appear. Error screens: "This link is invalid" or "This link is invalid or has expired", each with "This tracking link may have expired — contact the store for an update on your delivery."
Sub-page: Driver route page
What the driver does on the page is covered in Driver link. The screens that decide whether the link opens:
| Screen | When |
|---|---|
| "Loading your route…" | Opening |
| "This link is invalid" + "Ask your dispatcher to send you a fresh route link." | The link is incomplete |
| "This link has expired" + "Ask your dispatcher to send you a fresh route link." | More than 48 hours since the link was made |
| A reason + "Ask your dispatcher to send you a fresh route link." | The link was checked and refused: "Invalid link", "This link has expired — ask for a new one", "This link is no longer active" (driver deactivated), "Delivery is not enabled for this organization" (Delivery & Routes off), or "This link is no longer valid" |
| "No connection — retrying…" | No signal and no saved copy on this phone |
| "No stops on your route for this day yet. Pull down or check back later." | The link works but has no stops, for example after the route was dissolved |
Sub-page: Online dispatch list
Browser tab title "Dispatch List - …"; read-only. Built fresh each time the link is opened.
| Part | What it shows | Notes |
|---|---|---|
| Header | Your logo, business name and main location, Dispatch List, and the date range | Always the days the list actually covers. Made from a Schedule with no dates set at all, the link covers your store's current Sunday-to-Saturday week; with only one end set, it covers seven days from (or up to) that day |
| Counters | Total Jobs, Scheduled, In Progress, Completed | Count the jobs on the page |
| "Showing the first 500 jobs in this date range. Ask your dispatcher for a link to a shorter range to see the rest." | Amber line under the header | Only when the link's dates hold more than 500 jobs. The list stops at 500 (earliest first) rather than building one very long page |
| Day headings | Date and "… job(s)" | Jobs grouped by day |
| Job card | Customer name ("Unknown Customer" when none), service, priority badge (EMERGENCY, URGENT, HIGH, NORMAL, LOW) and status badge (Scheduled, In Progress, Completed, Rescheduled) | Cancelled and no-show jobs are left off, so the shared list can be shorter than the printed one |
| Time | Start time and length, or "TBD" | — |
| Assigned To | The technician's name, or "Unassigned" | Their display name, else first and last name. Someone no longer in your team list shows as "Technician" plus a four-character code |
| Phone | Customer phone; tap to call | When known |
| Address | Service address; opens Google Maps | When known |
| Work Order | Work order number | When known |
| Value | The job's price | When above $0 |
| Notes | Job description | When present |
| "No Jobs Scheduled" / "There are no jobs scheduled for the selected date range." | Empty state | Shown whenever nothing is booked in the days the link covers |
| Footer | Store phone, email, address and "Generated on …" | — |
Error page: "Dispatch List Error" / "Unable to load dispatch list. The link may be invalid or expired. Ask your dispatcher for a new one." Nothing technical is shown with it. It also appears when the address was edited after it was sent — the dates and the store a link covers are fixed when it is made.
Sub-page: Older link formats
Customers may still hold links in these older formats. The app makes only the current ones.
| Link form | What happens |
|---|---|
Invoice link with two parts after /receipts/ | Shows the same online invoice, with the same "Invoice Error" page when invalid or expired |
Invoice link with one long code after /receipts/ | Shows the same online invoice; if invalid or expired the page shows "Oops, something went wrong" with Try again |
Short link starting /r/ | Forwards straight to the online invoice, with a Continue link if it does not forward. It is not a review link |
Fix for all of them: send a fresh Online invoice or Text invoice….
Messages you may see
| Message | When it appears | What to do |
|---|---|---|
| "Online invoice not opened" — "Failed to open online invoice" (or the reason it gives) | Print ▾ → Online invoice could not make the link | Try again |
| "Text invoice not ready" — "Failed to prepare SMS" (or the reason it gives) | Text invoice… could not make the link | Try again |
| Toast SMS Sent — "Invoice link sent successfully." | Invoice or payment-link text sent | — |
| Toast SMS Sent — "Portal link sent successfully." | Portal link text sent | — |
| Toast Invoice Sent — "The invoice email was sent successfully." | Send Email worked | — |
| Toast Email Failed — "Failed to send invoice" / "Unable to send email" | The email could not go (an empty To or Subject cannot be sent: the button stays greyed out) | Check the address and try again |
| Toast SMS Failed — the reason | The text did not go. The toast names the reason the app gave: "Business phone not configured", "Messaging is not configured for your organization", "No phone number or message was given.", or what the texting service reported. "Unable to send SMS" only appears when the browser could not reach the app at all | Check the number and your texting setup (SMS setup). When the toast names another reason, read the row below first |
| Toast SMS Failed — "Couldn't add this customer to this conversation, so nothing was sent. Their number is still held by another conversation. Use 'Start a new conversation' on the customer to move them over." or "This conversation can't reach the customer, so nothing was sent. Open their newest conversation, or use 'Start a new conversation' on the customer." | The link could not reach the customer's text conversation. Nothing was sent | In the Text invoice… or Portal link dialog, turn Start a new conversation on and send again. Their earlier messages stay in Messages, marked Closed. This is not a texting-setup problem |
| Toast Upgrade required — "Your plan does not include SMS. Upgrade to Pro or Premium to send messages." | Basic plan | Upgrade opens Plan & Billing, or copy the link instead |
| Toast Upgrade required — "Your subscription is inactive or your trial has expired. Update billing to send SMS." | Trial ended or subscription inactive | Update billing |
| Toast Upgrade required — "No active subscription. Subscribe to Pro or Premium to send SMS." | No subscription | Subscribe |
| Toast Upgrade required — "Monthly SMS limit reached (…/…). …" | This month's texts used up | Upgrade, buy more, or wait for the next cycle |
| Any of the four plan messages above, in the red box of the Route arranger card | Text link or Send on Routes blocked by your plan | Same fixes; there is no Upgrade button there. Copy link still works |
| Toast Payment Link Failed — "…" | The Include payment link switch could not make a link | See the reason |
| "Could not create the payment link" / "Could not create the payment link: …" | Link creation failed (with Stripe's reason when there is one) | Try again |
| "Order not found" | A payment, portal or review link for an order that no longer exists | Close the order window and reopen the order |
| "The Stripe payments add-on is not enabled for this organization" | Card payments add-on off | Contact UpChannels |
| "Stripe payments are not enabled for this organization" | Owner's Enable card payments switch off | Owner turns it on in Settings → Accept Payments |
| "Stripe is not ready to take payments yet (finish onboarding first)" | Stripe setup unfinished | Finish Stripe onboarding |
| "Payment links are only supported on sale orders" | Return, quote or scrap order | — |
| "Order status … cannot take a payment" | Cancelled, refunded or quote order | — |
| "This order has no chargeable balance" | Less than $0.50 owed, for example already paid. Uncommon, because the card and the switch are hidden once there is nothing to charge — you normally see it only when the balance was settled after the page loaded | Nothing to collect. Close and reopen the order to see the balance as it now stands |
| "Copied!" / "Copy failed — select the link text and copy manually" | Payment link Copy | Select the text and copy by hand |
| "Creating link…" | Portal link… dialog opening | Wait |
| "The customer portal is turned off for this organization" (+ Open portal settings) | Portal link or review request while the portal is off | Owner turns it on |
| "The Customer Portal is included with Pro and Premium — upgrade your plan to use it" (+ Upgrade to Pro) | Portal link or review request on a plan without the portal | Upgrade |
| "Failed to create the portal link" | Portal link could not be made | Try again |
| "Portal links are not configured on this server" | A set-up problem on UpChannels' side | Contact UpChannels support |
| Toast Link copied / Copy failed — "Select and copy the link manually." | Portal link Copy | — |
| Toast Review request sent — "The customer got a link to leave a review by email." (or "by text") | Invitation sent | — |
| Toast Review request sent again — "The customer has been asked again by email." (or "by text") | Request review clicked again while the invitation's link is still good and a reminder is left | Each click asks the customer again, up to the two reminders the store allows |
| Toast Nothing to send — "This customer has already answered, or asked not to be contacted." | The customer already left a review, or opted out of review requests | — |
| Toast Still could not be sent — with the reason: "There is no working email address and no consent to text…", "The email or text could not be delivered just now…", or the refusal itself (the customer opted out of texts, an email address or phone number that cannot be used, or the store's plan, text allowance or texting number) | The invitation exists but nothing carried it | It is retried: the automatic check tries again three days after the last attempt, and Request review tries at once. When the refusal is about the customer (opted out, or an email address or phone number that cannot be used), the automatic check stops asking until Request review gets through. Review requests on Reviews shows the invitation with a Copy link button, so you can also send it by hand |
| Toast Review request failed — "This order has no customer to invite" / "Customer has no email or phone on file" / "The organization has no active location" / "Customer not found" / "Order not found" / "Could not create the review invitation" / "Could not create the review request" | The invitation could not be made | Fix the named cause |
| "Dispatch link not created" — "Failed to generate dispatch link" / "Organization not found. Please try again." (red message) | Online Dispatch could not make the link | Try again |
| "Please enter a valid phone number" | Adding a dispatch recipient with fewer than 10 digits | Type the full number |
| Messages Sent! / Some texts did not go out / Nothing was sent, with "… sent, … failed" | Dispatch texts finished | The heading says how the send went. Read any "Failed to send to …: …" lines |
| Nothing was sent — "Messaging is not configured for your organization. Contact UpChannels support to set up texting." | Your store's own texting number is not set up | Ask UpChannels to connect it (the Contact Sales form on SMS setup), or share the link another way |
| Nothing was sent — "Failed to send dispatch SMS" | Something went wrong while sending | Try again |
| "Route link copied — valid for 48 hours." | Copy link worked | Paste it to the driver |
| 'Assign a driver first, or use "Text link" with a phone number.' | Copy link on a route with no driver | Assign a driver |
| "Assign a driver or enter a phone number to text the link to." | Text link or Send with no driver and no number | Type a number |
| "Route link texted to … (…)." | Text link worked | — |
| "This recipient is deactivated" / "This recipient has no valid phone number" / "This number cannot take texts…" (or another reason the text could not go, ending "The route was left with its previous driver.") / "Text link failed" | Text link to a bad recipient, or the texting service refused | Fix the recipient, or Copy link |
| "Copy link failed" | Copy link could not make or copy the link | Try again |
| "Invoice Error" / "Unable to load invoice. The link may be invalid or expired." | Customer opened an invoice link that is old, altered or cut short | Send a fresh one |
| "Oops, something went wrong" + Try again | Customer opened an old long-code invoice link that no longer works | Send a fresh one |
| "This link isn't valid" / "This link has expired" / "Portal unavailable" | Customer opened a portal or review link | See Sub-page: Customer portal and review pages |
| "Payment received — this page will update shortly. Refresh in a moment to see it reflected." | Customer returned to the portal after paying | They refresh after a moment |
| "This link is invalid" / "This link is invalid or has expired" + "This tracking link may have expired — contact the store for an update on your delivery." | Customer opened a bad or 60-day-old tracking link | Send a portal link, or tell them the delivery status |
| "This link has expired" / "This link is no longer active" / "Delivery is not enabled for this organization" + "Ask your dispatcher to send you a fresh route link." | Driver opened a route link that no longer works | See Sub-page: Driver route page |
| "Dispatch List Error" / "Unable to load dispatch list. The link may be invalid or expired. Ask your dispatcher for a new one." | Technician opened a dispatch link that is old, cut short or edited | Click Online Dispatch again |
Who can use what
| Action | Who | Plan, add-on or switch needed |
|---|---|---|
| Online invoice, Email invoice… | Any team member who can open the order | Every plan. Not on Scrap orders |
| Text invoice…, Send by text, Text link (payment or driver), dispatch texts | Any team member who can reach the page | Pro or Premium (or an active trial) with SMS allowance left, and your store's own texting number |
| Create payment link, Include payment link | Any team member | Card payments add-on (set by UpChannels), owner's Enable card payments switch, Stripe able to take charges; sale order with at least $0.50 owed |
| Portal link… | Any team member | Owner's Enable customer portal switch and Pro, Premium or a trial |
| Request review | Any team member | Same as Portal link…, and the order is Delivered or Completed |
| Portal and review switches | Owner only | Settings → Customer Portal |
| Online Dispatch | Anyone who can open Sales → Schedule | Sending needs SMS as above |
| Copy link / Text link (driver) | Anyone who can open Sales → Routes | Delivery & Routes switched on (every plan) |
| Opening any link | Whoever holds it | No login. Portal and review links also need the portal to be available; driver links need Delivery & Routes on and the driver still active |
If the owner hides List, Schedule or Routes from someone with Menu Visibility (Team), that person cannot reach those buttons.
Common questions
A customer says their invoice link doesn't work. What do I do? "Invoice Error" means the link is more than 30 days old or was cut short when copied. Open the order and use Send ▾ → Text invoice… (or Print ▾ → Online invoice and copy the address). The error page just says the link may be invalid or expired and to ask the store for a new one.
How long does each link last? Online invoice 30 days, payment link 24 hours, portal link 60 days, review link 30 days, tracking link 60 days, driver route link 48 hours, online dispatch list 7 days.
Can I cancel a link I sent to the wrong person? There is no button to cancel a single link; each works until it expires. Three things stop links early: deactivating a driver under Drivers & recipients stops that driver's route links, turning Delivery & Routes off stops every driver link, and switching the Customer Portal off stops every portal and review link for all customers. In each case the links work again once it is turned back on, until they expire.
How can I tell which link a customer has?
By the address: /receipts/ or /r/ is the online invoice, /portal/o/ the portal, /portal/review/ a review invitation, /track/o/ delivery tracking, /drive/s/ a driver route and /dispatch/s/ the dispatch list. A payment link opens Stripe's checkout page.
Why did the delivery text link to the portal and not the tracking page? When the Customer Portal is available (switched on, and Pro or Premium), delivery messages link to the portal order page, which includes delivery status. The tracking page is used when the portal is not available.
The customer paid through the link. Why does the invoice still show a balance? The payment is recorded when Stripe confirms it, usually within moments. Ask them to refresh the page. You never record a payment-link payment by hand.
The review link expired. Can I send the customer a new one? Yes. A review link lasts 30 days; once it has run out, Request review starts a fresh invitation and sends it, and the message says so — "The last link had run out, so the customer got a new one" — because any copy of the old link stops working. While a link is still good, Request review asks the same customer again on the same invitation, up to the two reminders the store allows.
Our team opened the dispatch list and it says "No Jobs Scheduled". We do have jobs. The link only ever shows the days it was made for, and cancelled and no-show jobs are left off it. Set the range you want on Sales → Schedule, click Online Dispatch again and send the new link. Editing the dates in the address of a link you already sent does not work — that link stops opening.
Why does one job on the dispatch list show "Technician" and a code instead of a name? Assigned To shows the person's name from your team list. A job assigned to someone who is no longer in it keeps a short code instead. Reassign the job on Sales → Schedule and send a new link.
The dispatch list says it is showing the first 500 jobs. The link's dates hold more jobs than one page lists. Pick a shorter range on Sales → Schedule and click Online Dispatch again.