Once Workiz is connected, your KarmaFlow agents can work your field-service business the way a good dispatcher does: look up a caller's history, say when a technician is free, book the appointment, move it when plans change, and capture the lead when the answer is "not yet".
This article covers what the agents can do, what they deliberately cannot, and how to build from a simple use case to an ambitious one. If you have not connected Workiz yet, start with Workiz Integration.
Thirteen tools are available. They appear in the Workiz (Field Service) group when you configure an agent, and only in workspaces where Workiz is connected.
| Group | Tools | What it means for a conversation |
|---|---|---|
| Look things up | workiz_find_jobs, workiz_find_leads, workiz_get_job |
"I can see your appointment on Tuesday at two." Search by phone, email, name, address or date range. |
| Check availability | workiz_get_availability, workiz_list_team |
"We could do Thursday morning or Friday afternoon." Open slots computed from your real schedule and your business hours. |
| Book and change | workiz_book_job, workiz_reschedule_job, workiz_assign_tech, workiz_update_job_status |
Create the job, move it, put a named technician on it, mark it in progress or done. |
| Capture demand | workiz_create_lead, workiz_convert_lead, workiz_mark_lead_lost |
Take the enquiry now, turn it into a job when it firms up, close it honestly when it does not. |
| Take payment | workiz_add_payment |
Record a cash, credit or cheque payment against a job. |
Every one works on every channel — voice, chat, SMS, email strategies and task agents — because they share one implementation. An agent that can book on the phone can book over SMS without any extra setup.
Workiz has no availability API, so KarmaFlow keeps a local mirror and computes availability itself. Three channels keep that mirror true, and each carries something the others cannot:
flowchart LR
W[Workiz Automations<br/>webhooks] -->|"changes as they happen<br/>invoices + estimates"| M[(KarmaFlow mirror)]
C[Calendar Sync feed<br/>iCal] -->|"tasks + events"| M
R[Developer API<br/>REST, on demand] -->|"jobs, leads, schedule<br/>read at the moment of answering"| M
M --> A[Agents answer, and book]
Nothing polls on a timer. An agent refreshes the schedule at the moment it is about to reason about it, and keeps whatever it fetched. Answers are current because they are fetched to answer, not because a background job ran five minutes ago.
That has one consequence worth knowing: a brand-new workspace starts with an empty mirror and fills as agents use it. The first lookup for a given customer is the one that fetches their history.
The smallest useful thing, and often the highest value. A caller asks for availability; the agent checks the real schedule and offers times that are genuinely open.
Needs: business hours mirrored (step 4 of setup). Nothing else.
A caller phones about "my appointment". The agent looks them up by the number they are calling from and answers from their actual record — date, time, job type, address — instead of asking them to repeat it.
Needs: nothing beyond a connected account. The lookup fetches their history on demand.
Out of hours, or while everyone is on a job, the agent takes the enquiry: name, number, what they need, where. It lands in Workiz as a lead, ready for the morning.
This is usually where a field-service business sees value first, because the alternative is a voicemail nobody returns.
The agent offers slots, the caller picks one, the agent books it — and the job appears in Workiz with the caller's details, the job type, and a source stamp identifying it as agent-booked.
Needs: business hours mirrored. Strongly recommended: the Calendar Sync feed, so the agent can see tasks and events that occupy technician calendars.
"Something's come up, can we move it to Friday?" The agent finds the job, checks Friday, moves it, and confirms. Rescheduling correctly excludes the job being moved from its own conflict check, so an appointment can always be moved into a slot it already occupies.
A task agent chases leads that have gone quiet, converts the ones that firm up into jobs, and marks the rest lost so the pipeline reflects reality. An SMS agent confirms tomorrow's appointments. A voice agent records payment when the customer pays over the phone.
Compose the above into one agent that runs your phone line after hours:
The point is not that the agent is clever. It is that the same connector serves every step, so the capability grows without new integration work.
These are Workiz platform limits, not KarmaFlow choices. Design around them rather than being surprised by them.
| Limitation | What it means in practice |
|---|---|
| Nothing can be deleted in Workiz | A job, lead or payment created by mistake is permanent. It can be cancelled or rescheduled, never removed. |
| Payments cannot be undone | No API can void or correct a payment, and Workiz cannot reverse one at all after 60 days. Agents must confirm the amount with the customer before recording it. |
| Invoices and estimates only arrive by webhook | There is no way to fetch them afterwards. Anything raised before you configure the automations is never captured. |
| Tasks and events only arrive by calendar feed | They occupy technician calendars but are invisible to every other channel. Without the feed, availability is incomplete. |
| Subcontractors are not in the calendar feed | Workiz excludes them, so their commitments are invisible even with the feed connected. If you dispatch to subcontractors, treat availability as more approximate. |
| Recurring series cannot be managed | A single occurrence can be moved or cancelled like any job, but agents cannot see that it belongs to a series, and cannot create or change the recurrence. |
| Technicians are assigned by name | Workiz has no id-based assignment, so two active technicians with the same name cannot be told apart. The agent refuses rather than guessing. |
| Scheduling settings do not sync | Workiz exposes no API for them. If you change your availability in Workiz, change it in KarmaFlow too, or agents will offer times you no longer serve. |
| "Require approval" bookings are invisible | If your Workiz online-booking portal is set to Require approval, those bookings sit in the Workiz Message Center, which no integration can read. Set the portal to Create job or Create lead so agents can see them. |
The connector is deliberately careful where mistakes are expensive.
Connecting Workiz makes the tools available; each agent still chooses which to use.
Give an agent the smallest set that does its job. A booking agent rarely needs workiz_add_payment; a payment-taking agent rarely needs workiz_mark_lead_lost. Fewer tools makes an agent's behaviour easier to predict and to explain.