# Turn finished Workiz jobs into text review requests

> Every day at 5pm we text your finished customers for a review, skip anyone who seemed unhappy, and send those to Slack so a manager can call first.

- Workflow type: agent
- Services: Workiz, ClickSend, Slack
- Categories: Customer Support, Operations
- Published: 2026-08-10

## What it does

- Checks every evening for the jobs your crews marked completed that day
- Writes each customer a short, friendly text that uses their first name, the work you did, and the technician who did it, then sends it
- Leaves out callbacks, warranty visits, and redo jobs, along with anyone you already texted in the last 90 days
- Spots the jobs where the customer seemed unhappy and posts those to Slack for a manager to call, instead of asking them for a public review
- Ends the day with a Slack summary of how many requests went out and which customers were held back

## What you'll need

- A Workiz account with the Developer API add-on switched on, which is what lets other tools read your jobs
- A ClickSend account with enough credit to send the day's texts
- A Slack workspace, with a channel for service recovery alerts and one for the daily summary
- Customer mobile numbers saved on your Workiz jobs, including the country code
- Job types, sub statuses, and notes filled in on jobs, since that is what the unhappy customer check reads

## Prompt

Every day at 5pm, turn the jobs my team finished today into review request texts, while making sure that customers who had a bad experience get a call from a manager instead of a public review ask.

Start with the Workiz List Jobs operation and page through the results. It returns at most 100 records per page, so keep advancing the offset until you have every job. Keep only the jobs whose status is completed and whose completion date is today. For each one, read the customer first name and phone number, the job type, the assigned technician, the SubStatus field, and any job notes. Workiz has no separate sub status or notes endpoint, so take all of that from the job record in the List Jobs payload.

Drop any job that looks like a callback, a warranty visit, or a redo of earlier work. Check the job type, the SubStatus, and the notes for wording like callback, warranty, redo, rework, recall, or return visit. Those are not moments to ask someone for a review.

Also drop customers who have already been texted in the last 90 days. Use the ClickSend Get SMS History operation with a date range covering the last 90 days and compare those recipient numbers against today's customers. When you are unsure whether a number matches, skip it rather than risk texting the same person twice.

Before drafting anything, judge whether the customer seemed unhappy. Read the SubStatus and the job notes for signs of a complaint, an argument about price, a missed or late appointment, damage caused on site, or a problem that was not actually fixed. If a job reads that way, do not text that customer at all. Instead post it to the Slack channel #service-recovery using the Slack Send a Message operation, including the customer name, the job type, the technician, the SubStatus, the exact wording from the notes that concerned you, and one line on why it needs a phone call. A manager will call them.

For every job still on the list, write a short friendly text of no more than two sentences. Thank the customer by first name, mention the specific work using the job type, name the technician who did it, and ask for a review. Vary the wording between customers so the messages do not read like one template, keep the tone warm and plain, and skip emoji. Send each message with the ClickSend Send SMS operation. ClickSend needs full international numbers with a leading plus and country code, so normalize each Workiz phone number first and skip anything that is clearly not a mobile.

Finish by posting one summary to the Slack channel #field-ops with Slack Send a Message: how many review requests went out, how many jobs you skipped and why, broken down into callback or warranty or redo, already texted in the last 90 days, and unusable phone number, and then a list of the jobs you deliberately held back for service recovery with the customer name and job type for each. If nothing qualified today, still post the summary saying so.

## How to customize

- Move the 5pm run time later if your crews close out jobs in the evening
- Change the 90 day quiet period, or the wording that marks a job as a callback, warranty, or redo
- Point recovery alerts and the daily summary at different Slack channels
- Adjust the tone and length of the text, or the review link you point customers to

## Example output

Review requests sent: 9

Held back for service recovery (2):
- Dana R. / Garage door spring replacement / tech Miguel. Sub status says Customer Unhappy and the notes mention the crew arrived three hours late.
- Tom B. / AC diagnostic / tech Priya. Notes say the unit is still not cooling and he asked to speak to a supervisor.

Skipped (5): three callback or warranty visits, one customer already texted 12 days ago, one landline only number.

## FAQ

### Will an unhappy customer still get a review request?

No. If the job's sub status or notes suggest the customer was unhappy, the text is never sent. That job goes to your Slack channel instead, with the details a manager needs to call them first.

### How does it decide who to skip?

Three ways. It leaves out callbacks, warranty visits, and redo jobs, since those are not good moments to ask. It checks your recent text history and skips anyone contacted in the last 90 days. And it holds back anyone whose job notes or sub status suggest a problem.

### Do I need the paid Workiz Developer API add-on?

Yes. Workiz only opens up your job data to outside tools once that add-on is switched on in your account, so the workflow cannot read completed jobs without it.

### What happens if a customer has no mobile number?

They are skipped rather than guessed at, and they show up in the end of day Slack summary so you can follow up another way if you want to.

### Can I see the messages before they go out?

Yes. You can have it post the drafted texts to Slack for approval instead of sending them straight away, which is a common change once teams see the first few days of messages.

Use this prompt in General Input: https://www.generalinput.com/prompts/turn-finished-workiz-jobs-into-text-review-requests