AI & Automation

Automate Review Invites and Protect Trust for Cleaning, 2026

Aug 8, 2026

A day in the life of a cleaning-service operator

The last crew has left a recurring client’s home, but the office has not finished the job. Someone needs to confirm that the visit was genuinely complete, make sure the customer may be contacted on the chosen channel, decide whether a request is appropriate after the customer’s last message, and preserve the answer if the customer replies. That work is often scattered among Jobber notes, an inbox, and a browser tab for the business’s Google profile.

A sensible review workflow does not turn that judgment into a star-rating filter. It turns the repeatable preparation into a small, inspectable handoff: a Jobber completion candidate becomes a Typeform feedback invitation only after an owner’s consent and message rules allow it. A customer may answer, decline, or post nothing at all. A manager—not an automation—owns an incentive, a service-recovery response, and any decision to quote feedback in marketing.

The legal boundary is just as practical as the service boundary. The FTC’s Consumer Review Fairness Act guidance identifies 3 kinds of standardized contract terms that can be unlawful: terms that restrict honest reviews, impose a penalty or fee for one, or require consumers to give up intellectual-property rights in their review, according to the Federal Trade Commission. That is consumer-protection guidance, not an estimate of a cleaning company’s review volume or response rate.

TL;DR

  • Use Jobber’s webhook envelope only to identify a candidate record; query the account’s authorized object before any outreach is queued.

  • Give each invitation a local, durable case ID and pass that ID through a configured Typeform hidden field instead of matching customer names.

  • Ask every eligible customer for honest feedback under one approved policy; never route only favorable answers to Google.

  • Keep consent, wording, review incentives, public publication, and service-recovery decisions with a named person.

  • US Tech Automations can prepare the packet, log exceptions, and make the human decision point visible.

The workflow, mapped

Start with a job-completion meaning that the cleaning business has defined and selected in Jobber’s Developer Center. Jobber webhooks use a topic configured for the app and carry data.webHookEvent.topic, data.webHookEvent.accountId, and data.webHookEvent.itemId. Timestamp handling is version-aware: apps created before 2023-12-08 use the documented legacy data.webHookEvent.occuredAt spelling, while newer apps use data.webHookEvent.occurredAt. At installation, record the app generation, normalize the one observed source timestamp into local jobber_event_occurred_at, and retain local jobber_timestamp_source_field as either occuredAt or occurredAt; never substitute a current time for a missing source field. The payload is deliberately not a full record, so the route uses itemId to retrieve only approved job context rather than assuming the webhook proves eligibility. According to Jobber’s webhook documentation, an endpoint must respond within 1 second and the webhook’s itemId identifies the affected object; that is why receipt and detailed evaluation should be separate steps.

The first worker stores the received envelope, verifies the Jobber signature, returns the required acknowledgement, and puts a local “completion candidate” into a queue. It does not send an email, text, or review link. A second worker fetches the permitted job details, checks the business’s own completion rule, and tests whether the customer’s contact permission and contact-window policy are documented. Missing permission, a recent complaint, an open service correction, or an ambiguous match produces a review task for a human owner.

When the owner elects to invite feedback, the workflow makes a local review_case_id and embeds it as a configured hidden value in the Typeform link. The business must decide the message language, sender, timing, and whether a customer should be contacted at all. The automation’s job is to show those rules and keep an audit entry; it must not infer consent from a phone number or from a completed job.

Worked example: a completion packet that stays reviewable

For one accepted completion candidate, store 3 Jobber values—data.webHookEvent.topic, data.webHookEvent.itemId, and exactly 1 version-specific source timestamp: legacy data.webHookEvent.occuredAt or modern data.webHookEvent.occurredAt. Map that timestamp into local jobber_event_occurred_at, retain its source-field name, then create 1 local review_case_id and schedule 0 Google review publications. The link adds review_case_id as a Typeform hidden value. When the customer submits the form, the receiver records Typeform’s event_id, form_response.token, and form_response.hidden.review_case_id; a matching case is updated, while a missing or duplicate identifier is paused. According to Typeform’s example webhook payload, event_id is a unique webhook ID and form_response.token is the unique submission ID, so neither needs to be invented from a customer’s name or email address.

The feedback form should ask only the questions the business has approved and make an answer optional where that fits the policy. It may ask whether the customer is willing to be contacted about an issue, but it should not promise that a particular answer changes the customer’s ability to leave a public review. A negative answer is a service signal for a manager; a positive answer is still not permission to draft or publish a customer review.

HandoffDurable evidenceAutomated resultHuman-owned result
Jobber receipt2 shared fields + 1 version-specific timestamp1 queued casecompletion meaning
Eligibility check1 local case ID0 invitations when data is missingconsent and timing
Typeform response3 response identifiers1 matched updateservice follow-up
Google monitoring1 location review query0 customer postsreply and publication policy

This is a control map, not an estimate of completed jobs, messages, or reviews.

Google’s review interface belongs at the observation end of this route, not the publishing end. A business can use its approved customer-facing review link after a person has approved the request policy, then reconcile voluntarily submitted reviews against the business profile. Google’s API guide describes accounts.locations.reviews.list for returning a location’s reviews and accounts.locations.reviews.updateReply for a business reply; it does not create a customer’s review. The batch endpoint’s default pageSize is 50, according to Google’s review-data documentation, which is useful for a reviewer’s monitoring plan but says nothing about how many reviews a company will receive.

US Tech Automations can attach the Jobber receipt, Typeform outcome, and the owner’s decision to one case so an operator can open the source record. At this step, the route is assisting with matching and exception context—not making a customer-contact, incentive, or public-review decision.

Make the contact rule a real operating record rather than a yes/no field added for the integration. The owner should specify the approved channel, the source of the permission, any relevant contact-window rule, the policy version, and what withdraws eligibility. A customer’s request not to receive messages, a complaint, a refunded service, or a duplicate contact can all be reasons to hold an invitation. The route should preserve the reason without exposing more customer history than the message owner needs.

The message itself needs human approval before a campaign or a single invitation is enabled. That approval covers the sender identity, the ordinary language, the destination link, the timing, and any disclosure or incentive wording. The workflow can render the approved template with a local case link and record the policy version used. It should not improvise a personalized claim about service quality, promise a remedy, or decide that a customer’s response warrants an offer.

Cancellation and correction behavior should be tested before volume is added. If a Jobber record is corrected after a candidate has entered the queue, compare the new source state with the saved receipt and send it to the owner if the completion meaning has changed. If an invitation has already been sent, do not silently send another. If a Typeform response arrives twice, use event_id and form_response.token to show the duplicate to the operator rather than recording two customer outcomes. These controls protect the customer experience as much as they protect the data model.

Review observation is not review steering

The company may monitor its own profile to find a voluntarily published review, but it should avoid pretending that a private response and a public review are the same object. Do not use an internal rating to suppress the review link for one customer and surface it for another. Do not have the route compose a public testimonial, post in the customer’s name, or select only favorable comments for a manager to publish. A reviewer can prepare a response workspace from the public review and the service record, while a designated person decides whether and how to reply.

If a customer reports a problem in Typeform, the useful automated result is a controlled service-recovery task with the local case ID and a link to the source response. The task’s owner decides whether to call, re-clean, refund, or take another action under company policy. That decision should never be decided by a score, a keyword, or an assumption that a closed Jobber job ended the customer relationship.

What it costs to keep doing it manually

The manual cost is not “time to send a link.” It is the cost of rebuilding context each time: locating the completed job, checking the contact rule, remembering which invitation has already gone out, recognizing an existing Typeform submission, and finding the feedback when someone calls with a concern. A spreadsheet that records only a sent date usually cannot distinguish a harmless duplicate from a customer who asked not to hear from the company again.

Use a local baseline rather than borrowing an ROI number. For a small pilot, have the manager time the actual review of ordinary, corrected, and suppressed records. Count a touch only when someone opens a source record, makes a decision, or corrects an error. Do not treat a customer’s lack of reply as a failure of the person or as a savings claim.

Manual activity to measurePilot sampleEvidence per caseResult to inspect
Completion-candidate review20 cases2 shared fields + 1 version-specific timestampeligible or paused
Consent/message check20 cases1 policy versioninvite, hold, or suppress
Typeform reconciliation20 cases3 response fieldsmatched or exception
Google monitoring review20 cases1 location queryvoluntary review found or none

The 20-case sample is a recommended local pilot design, not a benchmark or promised outcome.

Incentive policy deserves its own human checkpoint. The Federal Trade Commission’s Consumer Reviews and Testimonials Rule took effect on October 21, 2024, according to the FTC’s business Q&A. The FTC explains that incentives cannot be conditioned, expressly or implicitly, on a particular sentiment. A manager and, where appropriate, counsel should decide whether the company offers an incentive, whether disclosure is needed, and whether the relevant review platform permits it; the workflow should only hold the approved policy version and prevent use when it is absent.

The tool comparison

The right stack depends on where the source of truth lives. Jobber remains the operational system for the event and account-scoped object. Typeform gathers feedback a customer voluntarily chooses to submit. Google Business Profile is the public destination where a customer, not the workflow, may publish a review. An orchestration layer joins the evidence and exceptions but should not claim authority that those systems do not grant.

ComponentSource-bound roleIdentifier or evidenceDo not automate
Jobberreceipt and authorized record lookupdata.webHookEvent.itemIdtreating a webhook as consent
Typeformvoluntary feedback responseevent_id, form_response.tokeninventing a customer match
Google Business Profilereview observation and reply preparationlocation and review recordwriting a customer review
Orchestration queuelocal case and exception routingreview_case_idapproving incentives or public use

If the job-completion trigger itself needs work, compare it with the operational patterns in home-service review automation, post-job referral follow-up, and home-service scheduling automation. Those adjacent workflows should share a customer-contact policy, but they should not silently inherit a review-invitation rule.

For a team that wants one auditable queue across these tools, US Tech Automations’ workflow platform can route source evidence to the correct owner and retain the reason an item was held.

Payback math

Payback is a local calculation, not a percentage that follows from installing three products. Start with the number of routine preparation touches the business has actually measured, then subtract only the touches that the new route demonstrably removes. Add setup, message review, exception handling, and scheduled policy review. The flow has not paid back if it lowers an inbox count but creates a harder-to-resolve customer complaint.

Calculation inputLocal value to enterControl countWhy it belongs in the math
Cases sampled per period201 case ID eachmakes comparison repeatable
Routine manual touches per caseyour measured count3 source checksexposes preparation work
Exceptions requiring a personyour measured count1 named ownerpreserves judgment time
Automatic customer publications00 allowedprevents false “output” savings

Use the business’s own labor cost and measured touches. This table intentionally supplies no invented dollar result.

The review owner should inspect a sample before calculating any expansion. Open the Jobber record, the local case, the Typeform response if one exists, and the Google profile result if one exists. If the chain cannot explain why an invitation was sent or held, the process is not ready for a broader rollout.

Before the second review cycle, choose the exceptions that the team will measure separately: incomplete Jobber context, absent consent evidence, duplicate Typeform delivery, unresolved service issue, and unrelated public review. Review the sample with the person who owns customer communication, not just the person who built the route. The result should be a change record that names the rule altered, the policy owner who agreed, the test case, and the reversal path if the new rule produces confusion.

Who this is for

This route fits a cleaning business that already has a named owner for post-job customer communication, a documented method for recording contact preferences, and a verified Google Business Profile. It is particularly useful where office staff otherwise retype job references and hunt through submitted feedback to understand a service issue.

It is not a fit for a business that wants to contact every customer without a policy, screen unhappy customers away from a public-review request, or have a connector decide whether a complaint has been resolved. Those are customer, legal, and reputation decisions that need accountable people and a documented standard.

FAQs

Can Jobber send a complete cleaning job record in the webhook?

No. Jobber’s documented webhook payload identifies the affected object, and the workflow should use itemId to retrieve authorized details instead of treating the envelope as the full job record.

Which Jobber timestamp field should the route retain?

Use the field that matches the app’s creation generation: pre-2023-12-08 apps use occuredAt, while newer apps use occurredAt. Normalize the observed value into a local timestamp and retain which source spelling supplied it; do not assume both appear in one payload.

Should the workflow ask only satisfied customers for a Google review?

No. An eligibility policy should be applied consistently and approved by the business; routing by sentiment can create an unfair or deceptive review practice. A manager should own complaint follow-up separately.

Is a Typeform submission the same as a public Google review?

No. A Typeform response is private feedback in the company’s configured form. A Google review is a voluntary public action by the customer and may not happen after any invitation.

What should happen when the Typeform hidden case ID is missing?

Pause the item. Show the submitted event_id and form_response.token to an owner, retain the source link, and do not guess a customer or job match from text fields.

Can a cleaning company offer a gift card for reviews?

Only a responsible person should decide that after checking FTC guidance, applicable law, and the platform’s rules. The route should never condition an incentive on a positive rating or publish an incentive policy by itself.

Who writes a reply to a public review?

A designated person writes and approves it. The workflow may prepare context and a draft workspace, but a public reply can affect a customer relationship and should not be generated or posted without review.

Key Takeaways

  • Treat Jobber’s data.webHookEvent.itemId as a source record pointer, not as proof that outreach is allowed.

  • Match a Typeform response through a configured local case ID plus event_id and form_response.token, not a customer-name guess.

  • Use Google review APIs for monitoring and reply preparation; customers alone author and submit their own reviews.

  • Keep consent, message language, incentive policy, customer recovery, and public publication with people.

A cleaning-service review workflow is valuable when it makes legitimate follow-up easier to explain, not when it maximizes requests. US Tech Automations can help stage evidence, route exceptions, and preserve human ownership at every consequential decision.

About the Author

Garrett Mullins
Garrett Mullins
Workflow Specialist

Helping businesses leverage automation for operational efficiency.

See how AI agents fit your team

US Tech Automations builds and runs the AI agents that handle this work end to end, so your team doesn't have to.

View pricing & plans