Workiz logo

Workiz automation · runs daily

Invoice completed Workiz jobs and send the invoices

Every morning the Need invoices widget on the Workiz Invoices dashboard shows yesterday's Done jobs again, and someone has to generate the invoices, check them and send each one before the client forgets the visit.

Cotlet does it in your own Workiz account with list_jobs, list_invoices, get_job, create_invoice and send_invoice, called by your AI agent, an n8n workflow or a script.

Hosted · nothing to install or maintain

Official options

Can Workiz do this on its own?

Workiz's API has no invoice endpoints (checked 11 Oct 2026). The Workiz Automations add-on has a Create invoice / Immediately template that creates an invoice when a job reaches a chosen status, and the help center describes that rule as creating the invoice only; sending stays a manual step on the Invoices dashboard (checked 12 Oct 2026). When the job has no line items, the rule creates a blank invoice. Zapier, on the Ultimate plan only, has a Job Is Done trigger and no invoice action.

By hand

How you do it in Workiz today

  1. Open the Workiz Invoices dashboard and select the Need invoices widget to see Done jobs that have no invoice yet.
  2. Select the jobs, choose Generate invoice, then Create X invoices.
  3. Open any new invoice with the status No amount, because the job had no line items, and add the items before it goes out.
  4. Filter the Invoices dashboard by Unsent, select the invoices and choose Send invoice.
  5. The Need invoices list fills up again every day, and an empty invoice from a job where the tech never added items is easy to send by mistake.

With an agent

How to invoice completed Workiz jobs and send the invoices

Prompt

Invoice every job marked Done yesterday, skip any job that already has an invoice or has no line items, and email the invoices to the clients.
  1. 01

    Collect the Done jobs

    Your agent calls list_jobs for yesterday with the status Done and follows next_cursor until the list ends, so a busy day with more than one page is not cut short.

  2. 02

    Skip jobs that are already billed

    It reads recent invoices with list_invoices and drops every job that already has one, for example an invoice your Automations rule or a tech on the mobile app created. If that invoice was never sent, the agent queues it for sending instead of creating a second one.

  3. 03

    Check the job before billing

    For each remaining job it opens get_job. A job with no items or a zero total is not invoiced, because Workiz would produce a No amount invoice; it goes on the list for the office. A job whose amount due is already zero, paid on site, is invoiced only if your prompt asks for paid invoices as records.

  4. 04

    Create, then send

    create_invoice runs without a due date, so Workiz applies the client's payment terms or your account default. send_invoice then goes out by email, or by text when the client has no email on file. You approve the batch of sends unless you switched confirmation off.

  5. 05

    Report the exceptions

    The agent ends with what it sent, what it skipped and why, so the only jobs left for a person are the ones that need items or a decision.

What you get back

Example data

Done jobs on Oct 11: 9
Invoiced and emailed: 6, $3,840.00 due
Already invoiced by your Automations rule, sent now: 1 (#2318, Kim Alvarez)
Skipped, no line items: 1 (Drain cleaning, 44 Birch Ln, tech Luis P.)
Skipped, paid in full on site: 1 (#2321, $180.00 cash)

Other ways to ask

  • Every evening at 7, invoice today's Done jobs but hold anything over $2,000 for my review.
  • Invoice last week's Done jobs for Mike R. only and text the invoices instead of emailing them.
  • List Done jobs from this month that still have no invoice, without creating or sending anything.

Before you automate it

What Workiz allows, and what to know first

  • Workiz copies a job's items and payments to an invoice created from that job, and later item changes sync both ways between the job and the invoice.
  • A standalone Workiz invoice can never be linked to a job afterwards, so invoices for field work belong on the job to keep job reports and automations correct.
  • A Workiz invoice takes its due date from the client's payment terms when they are set, otherwise from Default payment terms under Account preferences; for job invoices the account can count from job creation or the scheduled date.
  • Workiz sets invoice status itself (No amount, Due, Overdue, Paid), and a partially paid invoice is not marked Paid until the whole balance is collected.
  • Requesting an online payment through the Workiz invoice link requires Workiz Pay to be enabled on the account.

send_invoice asks for your OK by default. To run it daily without you, switch confirmation off for that tool in your dashboard.

Sources: Workiz Help: Managing and tracking invoices · Workiz Help: Automatically creating invoices when jobs are done · Workiz Help: How to create and send invoices · Workiz Help: Understanding invoice statuses

REST

Call send_invoice from a script

curl

curl https://cotlet.dev/api/v1/workiz/send_invoice \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"invoice_id":"inv_30214","via":"email"}'

Example response

{
  "invoice_id": "inv_30214",
  "status": "sent",
  "sent_via": "email",
  "amount_due": "480.00",
  "sent_at": "2026-10-11T18:00:00-07:00"
}

MCP: add https://cotlet.dev/mcp/v1 with the same key; the tool is workiz_send_invoice. Example data.

Schedule it in n8n, Make, Zapier or cron

Tools

Workiz tools this automation uses

Cotlet Workiz tools used to invoice completed Workiz jobs and send the invoices
Tool Parameters
list_jobs from, to, status, tech_id, limit, cursor
list_invoices status, since, limit
get_job job_id
create_invoice job_id, due_date
send_invoice invoice_id, via
All 15 Workiz tools with descriptions

Give your agent access to Workiz.

Free 7-day trial with 5,000 credits, no card needed. Cotlet is independent and not affiliated with Workiz.