Where the "Bookings by the AI agents" card gets its numbers, what "verified" means on a conversation, and how to keep tests and misclicks out of the count.
When an agent books a job through the Workiz integration, two different things record it: the job itself in Workiz, and the conversation analysis that reads the transcript afterwards. Before October 2026 the dashboard only counted the second — what the AI read as a booking — and on a real account that both counted the owner's own test bookings and missed real ones. This article explains the record-based count that replaced it and the surfaces it feeds.
The moment a booking tool succeeds, the platform writes three things:
When the conversation is analyzed, the analysis does not decide whether a booking happened. If the conversation carries a booking reference, its outcome is written as booked and marked verified; the AI's reading of the transcript cannot override it. If the analysis reads a booking but the conversation carries no job, the outcome keeps what the AI wrote and is marked unverified, so the discrepancy is visible rather than silently counted.
flowchart LR
A[Agent calls the booking tool] --> B[Job created in Workiz]
B --> C[Mirror row: origin = agent + the conversation id]
B --> D[Booking reference stamped on the conversation]
D --> E[Analysis: outcome = booked, verified]
C --> F[Dashboard: From conversation to booked job]
A reschedule by an agent is recorded the same way, as rescheduled. A lead the agent converts into a job is recorded as a booking of that job.
On a chat session, SMS thread or call detail page, the Outcome card shows a Booked in Workiz row for each job the conversation booked, with the job id linked to Workiz. Two other states can appear there:
| Row | What it means |
|---|---|
| Existing booking | The booking tool returned a job that a different conversation had already created for this customer, time and job type. It is shown so you can see what the customer was told, but it is not this conversation's booking. |
| Reported booked · no Workiz job | The analysis read this conversation as booked, but no job was written from it. Check the transcript and Workiz; this is the case the old count got wrong. |
In the conversations list the Resolution column carries a Job booked chip on a verified booking and a Booked? unverified chip on an unverified one, so both can be filtered at a glance.
Dashboard → Conversation Insights (sign-in required) opens with a full-width block titled From conversation to booked job on any workspace with Workiz connected. It sits first on the tab, above every other card, and reads the same conversations as the rest of the tab (closed and billable, on every channel — web chat, SMS threads, calls and email — in the date range, narrowed by the tab's channel and handled-by filters like every other card). The job step is read from the Workiz record.
The headline is computed from the counts: 1 in 10 conversations became a booked job. (or 6 of 10 … once jobs are common, or No conversation became a booked job yet.). One line under it names where the biggest loss is.
The stream is one band flowing left to right. Its thickness at each step is that step's share of all conversations, and between two steps the share that was lost drips away. The drop the leak sentence names is coloured; the others are quiet; the drop after Got a job is grey because a job not done yet is timing, not a loss. Above the stream each step shows its count and its share of the previous step:
| Step | Counted from |
|---|---|
| Conversations | Every analyzed conversation in the range, on every channel. |
| Got a price | The Quotes & purchases pack: a price was stated, or the quote ended quoted, purchased, declined or with a follow-up agreed. Shown only when that pack is on. |
| Asked to book | The Booking & appointments pack: the customer asked to make, change or cancel a booking. Shown only when that pack is on. |
| Got a job | The Workiz record: the conversation's own booking tool created the job. Not the transcript. A note under the count says how many were later cancelled. |
| Done | The live Workiz status of those jobs. |
Steps whose pack is off are left out rather than shown empty, and a line says which pack would add them. With three steps the bands are equal; with four or five they follow the stream.
Everything that carries a number is a click that lists those conversations: a step (the band or its count), a drop between two steps (the drip, or the gap label under it such as 49 never got to a price), and each reason in the leak panel. A step and the list it opens always agree, because both are built from the same condition.
Where it leaks — one sentence, computed from the counts: the step that converts worst, how many were lost there, and the top reasons as bars (the Booking pack's blocker, the Quote pack's outcome, or the conversation's drop-off reason). For example: 27 of 39 who asked to book left without a job — 18 undecided after the quote, 5 other reasons, 2 no slot that fit. That is where to look at the agent's instructions first.
Needs a look — shown only when it applies: the number of conversations the analysis called booked with no job behind them (the agent said "booked" and the tool did not). Click it to review them.
Booked value — the Workiz totals of the funnel's jobs, large in the header, with what is already completed under it, once a currency is set (see below). The booking tool sends no price, so a job counts here only once the office has priced it in Workiz. Office-booked jobs (the assisted ones below) are never inside it. Revenue needs the analytics:read permission.
+N assisted — shown only when it applies, beside the Got a job step at the right of the stream (a dotted line drops from the band to it): jobs the office created in Workiz for a customer who had an AI conversation in the 14 days before, with the Workiz value of those jobs under the count. These are a different Workiz record from the funnel's jobs and are never inside the Got a job count or Booked value — the block says so. The value follows the Booked value rule (cancelled jobs add nothing, withheld without a currency or the permission). The figure is a lower bound (only office jobs the webhook or a lookup brought into your workspace's copy) and follows the tab's channel filter, not the handled-by filter.
The footer says it plainly: Jobs counted from Workiz, not transcripts. The table icon shows the step table and the agents' jobs by channel and live status. On a phone the stream turns vertical with one row per step beside it, the assisted block sits right under it, and everything else stacks.
Hide the block under Settings (the gear icon) → Analytics → Analytics & Insights → Cards & alerts → Integration cards if you do not want it on the dashboard.
Jobs booked by agents now count on Data → Google Ads Lifecycle like any other job, with an Origin column (AI agent or Workiz) in the records table. They were left out of that page before October 2026.
Workiz sends job totals without a currency. On Settings (the gear icon) → Integrations → Workiz, in the booking defaults group, enter the three-letter code (for example CAD) under Currency of Workiz amounts and select Save booking defaults. Until one is set here or on the Google Ads integration, amounts are withheld rather than shown with a $ that may be wrong.
Test bookings count like any other booking: a cancelled test is a cancelled job. Clean them up in Workiz, where the record lives, and the card follows.
The workiz_find_jobs tool takes an origin filter: agent returns only the jobs your agents booked, workiz only the jobs created in Workiz itself. Each job carries origin, provenance (the chat, text thread or call that booked it) and bookedAt. That is the same data the card reads, so a figure on the card can be checked against the list.
A job the agent booked is not in the funnel. The funnel counts the conversation that booked it, placed at the conversation's start date, on whichever channel it came in on. If it was booked before October 2026, a platform administrator can run Workiz: link agent bookings to their conversations under the migrations console to stamp the older jobs; until then they still appear in workiz_find_jobs with origin: agent.
The conversation says "Reported booked · no Workiz job". The analysis read a booking the tool never made — usually the agent said "you're booked" before the tool confirmed, or the booking failed after. Open the transcript; the tool result lines say what happened.
Amounts show "no currency set". Enter the currency on the Workiz settings page, or under Per-source currencies on the Google Ads settings page.