Private preview of the new site. Not live.

API reference

284 operations, generated from the core's operation list. The same list makes the OpenAPI file and the MCP tools, so they always match.

Sign-in and agent access

OperationWhat it doesWho
auth.requestLinkEmail a one-time sign-in linkAgents can call this
auth.redeemLinkExchange a sign-in link token for a browser sessionHosted page only
auth.oauthRegisterRegister an OAuth client (RFC 7591 dynamic registration)Agents can call this
auth.oauthAuthorizeA signed-in person approves an agent clientAgents can call this
auth.oauthTokenExchange an authorization code and PKCE verifier, or a refresh token, for a short-lived agent access token and a new refresh tokenAgents can call this
me.getThe signed-in personAgents can call this
keys.createMake a named agent key for one shop (owner only)A person's own sign-in only
keys.listList a shop's named agent keys (owner only): label, scopes, audience, when made, last used and revokedAgents can call this
keys.revokeRevoke a named agent key (owner only)Agents can call this
agents.registerauth.md agent registrationAgents can call this
agents.claimauth.md claimAgents can call this
agents.approveHosted claim page only: the shop owner whose email the claim names types the agent's 6 digit code, picks one of their shops and accepts the agent key termsHosted page only
agents.denyHosted claim page only: the person turns the agent downHosted page only
legal.documentsThe legal documents Doing Work asks people to accept, with the current version and a link to the textAgents can call this
legal.statusWhat the signed-in person has accepted: for each document that is accepted here, the current version, the versions accepted and when, and whether the current version still needs acceptingAgents can call this
legal.acceptRecord that the signed-in person accepts the current version of a legal document (clickwrap)A person's own sign-in only

Shop

OperationWhat it doesWho
shops.createCreate a shopAgents can call this
quotes.withdrawWithdraw a draft or sent quote the customer has not signed, with an optional reasonAgents can call this
fees.scheduleDoing Work's fee schedule: one stepped rate on each shop's calendar month of card and bank payments, taken out of the paymentsAgents can call this
fees.previewWhat Doing Work would take on a payment of this size right now, the effective rate on it, the month's volume so far (all locations under the same owner), and how far the shop is from the next, cheaper band (owner or office)Agents can call this
audit.listRead a shop's audit log, newest first (owner only)Agents can call this
customers.getOne customer with contacts, properties, custom fields and open balanceAgents can call this
customers.listCustomers of a shop, newest first, filtered by tag, lead source or archivedAgents can call this
customers.searchFind customers by name, company, email, phone or property addressAgents can call this
customers.updateChange a customer's name, kind, company, email, phone, billing address, lead source, tags or notesAgents can call this
customers.archiveArchive a customer (hidden from lists, history kept) or bring one backAgents can call this
customers.duplicatesLikely duplicate customers in a shop: same email, same phone digits, or same nameAgents can call this
customers.mergeMerge a duplicate customer into another: jobs, requests, contacts, properties and fields move overAgents can call this
customers.contactAddAdd a contact person to a customer (tenant, manager, billing, spouse)Agents can call this
customers.contactUpdateChange or remove one contact of a customerAgents can call this
jobs.setTagsSet the tags and lead source on a jobAgents can call this
customers.timelineEverything that happened with a customer, newest first: requests, jobs, quotes, signatures, invoices and paymentsAgents can call this
customers.statementA customer's account statement: every invoice with total, paid and balance, and the total owedAgents can call this
customers.privacyExportEverything the shop holds about one customer, as one JSON document, for a privacy requestAgents can call this
customers.privacyDeleteErase a customer's personal details for a privacy requestA person's own sign-in only
shops.setInvoiceRemindersTurn the automatic unpaid-invoice reminder on or off for the whole shop (owner only)Agents can call this
shops.setContactSet the phone and email customers see when they open a canceled invoice or quote link (owner only)Agents can call this
shops.setFieldCostsLet field workers in the shop see job costs (labor cost, material cost, expenses others entered, price book cost), or hide them again (owner only)Agents can call this
shops.setHubLinkInEmailsTurn the customer hub link in quote and invoice emails on or off for the whole shop (owner only)Agents can call this
invoices.setReminderTurn the automatic unpaid reminder on or off for one invoice (owner or office)Agents can call this
quotes.respondCustomer declines a quote or asks for changes (hosted page)Hosted page only
quotes.activityWhat the customer has done with a quote: when each version was first opened and how often, and any decline or change request with its noteAgents can call this
shops.setQuoteFollowupSet how many days after a quote is sent the customer gets one friendly follow-up email if they have not answered (owner only)Agents can call this
invoices.createCreate an invoice without a quote, from lines the worker wrote (never filled in by AI)Agents can call this
invoices.createBatchCreate many invoices at once (up to 100), each from a job and the lines the worker wroteAgents can call this
invoices.getOne invoice with its lines, what has been paid, the balance, the due date, and whether a bank payment is still clearingAgents can call this
invoices.pdfThe invoice as a PDF (base64), with shop, customer, lines, paid so far and balanceAgents can call this
invoices.agingAccounts receivable aging: every open invoice's balance by how late it is (current, 1-30, 31-60, 61-90, over 90 days past due), with totals per customer (owner or office)Agents can call this
shops.setTipsTurn tips on or off on this shop's invoice pay page (owner only)Agents can call this
shops.setReviewRequestSet the review link (for example your Google review page, https only) and how many days after an invoice is paid the customer gets one email asking for a review (owner only)Agents can call this
customers.setAutopayTurn auto-pay on or off for a customer (owner or office)Agents can call this
shops.setTaxReportBasisChoose how the sales tax report counts a period (owner only)Agents can call this
quotes.addAttachmentShow an uploaded photo or file of the same job with a quote, with an optional captionAgents can call this
quotes.removeAttachmentTake a photo or file off a quoteAgents can call this
quotes.listAttachmentsPhotos and files shown with a quote, in orderAgents can call this
media.tagAdd or remove tags on a photo (for example: leak, panel, permit)Agents can call this
media.searchFind photos across the shop that carry all the given tagsAgents can call this
jobs.findByTagJobs in the shop that carry all the given tags (set with jobs.setTags), newest first, up to 200Agents can call this
media.saveMarkupSave markup over a photo as a new layer version: arrows, lines, boxes, circles, text and freehand strokes in 0..1 photo coordinates (0,0 is top left)Agents can call this
media.getMarkupA photo's markup: the latest version unless one is named, with an SVG overlay to lay over the original photoAgents can call this
webhooks.deliveriesList deliveries to one webhook endpoint, newest first, with event, status, attempts and last HTTP statusAgents can call this
webhooks.retrySend a failed or dead delivery again from attempt 0 (owner or office)Agents can call this
shops.exportOwner only: everything the shop holds as one ZIP: data/<table>.csv and data/<table>.json for every shop table, files/ with job photos and PDFs, and manifest.jsonAgents can call this
members.permissionsWhat each current worker in a shop may do beyond their role: see_prices, see_costs, take_money, delete and manage_scheduleAgents can call this
members.setPermissionsOwner only, not an agent: turn a worker's permissions on or offA person's own sign-in only
jobs.completeMark a job done (owner or office)Agents can call this
customers.audiencePick a customer audience by filters (tags, last job dates, kind of work, open quotes, money owed, maintenance plans, city or postal code, has email or phone) and get the counts and a page of matching customersAgents can call this
shops.transferStartStart handing the shop to a current worker (owner, on a hosted page)Hosted page only
shops.transferAcceptAccept a hand-off and become the shop's owner (the person asked, on a hosted page)Hosted page only
shops.transferCancelStop an open hand-off: the owner cancels it, or the person asked declines itAgents can call this
shops.transfersHand-offs of a shop, newest firstAgents can call this
shops.closeCheckWhether the shop can close now (owner only)Agents can call this
shops.closeClose the shop for good (owner, on a hosted page, typing the shop name)Hosted page only
shops.reopenReopen a closed shop (only the owner who closed it, on a hosted page, within 90 days of closing)Hosted page only
invoices.voidVoid an invoice nobody has paid yet (owner or office), with a reasonAgents can call this

Team (unlimited workers)

OperationWhat it doesWho
members.inviteInvite a person by email as office or fieldAgents can call this
members.acceptAccept an invite as the signed-in personAgents can call this
members.listCurrent members of a shop with role and start dateAgents can call this
members.endEnd a membership: the owner removes a worker, or a worker leavesAgents can call this
members.changeRoleOwner changes a worker between office and fieldAgents can call this
approvals.setRuleOwner only, not an agent: require owner approval before an agent can run an actionA person's own sign-in only
approvals.removeRuleOwner only, not an agent: stop requiring approval for a ruleA person's own sign-in only
approvals.listRulesThe shop's approval rules: which agent actions wait for the ownerAgents can call this
approvals.listApproval requests for a shop, newest first, optionally by status (pending, approved, denied, failed, expired)Agents can call this
approvals.getOne approval request with its status and, once approved and run, the action's resultAgents can call this
approvals.decideOwner only, not an agent: approve or deny a pending agent actionA person's own sign-in only

Customers

OperationWhat it doesWho
customers.createAdd a customer to a shop, with kind, company, email, phone, billing address, lead source, tags and notes in one callAgents can call this
properties.addAdd a service address to a customer, with optional label and access notesAgents can call this
properties.listService addresses of a customer, or every property of a shopAgents can call this
properties.updateChange a property's label or access notes, or archive itAgents can call this
equipment.addRecord equipment at a property: kind, make, model, serial, install date and warrantyAgents can call this
equipment.listEquipment at a property, or warranties ending soon across a shopAgents can call this
equipment.updateChange or archive an equipment recordAgents can call this

Jobs (unlimited)

OperationWhat it doesWho
jobs.createStart a job at a home (the home is found or created from the address)Agents can call this
jobs.listJobs of a shop, newest firstAgents can call this
jobs.getOne job with its home addressAgents can call this

Job photos

OperationWhat it doesWho
media.requestUploadGet a signed upload URL for a job photoAgents can call this
media.requestCaptureHosted photo capture: a signed upload URL for a worker taking a photo in the browserHosted page only
media.listList the photos on a job that you are allowed to seeAgents can call this
media.getOne photo's detailsAgents can call this
shares.createMake a link to a gallery of a job's photos that anyone with the link can open without signing inAgents can call this
shares.listPhoto share links on a job, newest first, with whether each is still active and how often it was openedAgents can call this
shares.revokeTurn a photo share link off nowAgents can call this

Quotes (unlimited)

OperationWhat it doesWho
quotes.createCreate a quote from lines the worker wroteAgents can call this
quotes.sendLock the quote and get a single-use signing link for the customerAgents can call this
quotes.signSign a quote after accepting electronic signingHosted page only
quotes.reviseReplace an unsigned quote with a new versionAgents can call this
pricebook.saveItemAdd a price book item, or change one when item_id is given (owner or office)Agents can call this
pricebook.listList the shop's price book items, by nameAgents can call this
pricebook.archiveItemArchive a price book item, or bring it back with archived false (owner or office)Agents can call this

Invoices and payments (unlimited)

OperationWhat it doesWho
invoices.createFromQuoteCreate an invoice for a signed quote, for the total of the option and optional lines the customer pickedAgents can call this
invoices.sendSend an invoice (or the next part of it) and get a single-use pay linkAgents can call this
invoices.payStart paying an invoice (hosted page)Hosted page only
invoices.markPaidOutsideRecord that the customer paid an invoice outside Doing Work (check, cash, financing, insurance or other)A person's own sign-in only
invoices.refundRefund part or all of a payment (owner or office)A person's own sign-in only
taxes.saveRateAdd or change a sales tax rate the shop charges in one jurisdiction (owner or office)Agents can call this
taxes.listRatesThe shop's tax ratesAgents can call this
taxes.archiveRateStop using a tax rate (owner or office)Agents can call this
taxes.salesReportSales tax report for a period (owner or office), shop local dates, from and to inclusiveAgents can call this

Stripe connection

OperationWhat it doesWho
payments.connectStartStart payment setup for a shop (owner, hosted page)Hosted page only
cards.setupLinkGet a secure page where the customer saves a card with the shop's payment processor (owner or office)Agents can call this
cards.resaveOpen the card saving page from a save-your-card-again email link (hosted page only)Hosted page only
cards.getThe card a customer has on file (brand, last 4, expiry) and whether auto-pay is on (owner or office)Agents can call this
cards.removeRemove a customer's saved card (owner or office)Agents can call this

Idaho compliance

OperationWhat it doesWho
subcontractors.getThe Idaho 45-525(3) subcontractor and supplier statement for a job: the latest signed one, any prepared draft, and whether final payment needs oneAgents can call this
subcontractors.preparePrepare the Idaho 45-525(3) statement for the shop to sign: a list of subcontractors, materialmen and rental equipment providers over $500, or none_attestation "yes" for "No subcontractors or suppliers over $500 on this job"Agents can call this
subcontractors.signThe shop owner or office signs the Idaho 45-525(3) statement on a hosted page: a list (entries JSON), the "No subcontractors or suppliers over $500 on this job" attestation (none_attestation "yes"), or with neither, the prepared draftHosted page only

Signed job records

OperationWhat it doesWho
jobs.requestConfirmationGet a single-use link the customer opens to confirm the work was done (or flag a problem)Agents can call this
jobs.confirmCustomer confirms the work or flags a problem (hosted page)Hosted page only
records.keysPublic keys that verify signed job recordsAgents can call this
jobs.recordThe latest signed record for a job and its level (logged, paid, verified)Agents can call this
documents.photoReportRender a photo report PDF for a job: a title and the worker's own notes, then the job's photos in time order with stage and tagsAgents can call this
documents.dailyLogRender the daily log for a job as a PDF: each day's entries in the workers' own words with who wrote them, and the photos they attachedAgents can call this
documents.listPDF documents core made for a job (photo reports, daily logs and submitted forms), newest first, with each file's sha256Agents can call this
documents.getOne stored job PDF (base64) with its sha256, byte for byte as it was madeAgents can call this

Plans and fees

OperationWhat it doesWho
fees.statementA month's Doing Work fees for a shop: card and bank volume, fees by kind, the effective rate, each line, and how far the shop is from the next band this month (owner or office)Agents can call this

Developers and platforms

OperationWhat it doesWho
webhooks.createAdd a webhook endpoint for a shop (owner or office)A person's own sign-in only
webhooks.listList a shop's webhook endpoints and their recent delivery countsAgents can call this
webhooks.deleteRemove a webhook endpointAgents can call this
platforms.createCreate a developer platform account (private beta)Agents can call this
platforms.listList the platform accounts you own and the shops each one managesAgents can call this
platforms.grantManageLet a platform manage this shopHosted page only
platforms.revokeManageStop a platform from managing this shopAgents can call this
events.catalogEvery event a webhook can receive, with its payload keys and typesAgents can call this

Scheduling and visits

OperationWhat it doesWho
visits.createRecurringBook a repeating visit (daily, weekly or monthly, every n) for a jobAgents can call this
visits.cancelSeriesCancel the visits of a repeating series that have not started yet, from a time onward (default now)Agents can call this
visits.startMark a visit started (from scheduled, on the way, or arrived)Agents can call this
visits.doneMark a visit done, with an optional noteAgents can call this
visits.createBook a visit to a job at a time, optionally with the workers goingAgents can call this
visits.updateMove a visit or change its title, notes or arrival windowAgents can call this
visits.assignSet who is going on a visitAgents can call this
visits.cancelCancel a visit that is scheduled, on the way, or arrivedAgents can call this
visits.getOne visit with its job and workersAgents can call this
schedule.listA shop's visits that overlap a time window, earliest firstAgents can call this
availability.setHoursSet a worker's weekly hours, replacing what was thereAgents can call this
availability.addTimeOffAdd time off for a worker (vacation, sick, appointment)Agents can call this
availability.removeTimeOffRemove a time-off entryAgents can call this
availability.getA worker's weekly hours, time off, and booked visits in a window (at most 62 days)Agents can call this
schedule.settingsThe shop's scheduling setup: time zone, booking hours (or the default when none are set), arrival window, travel buffer, reminder lead time, and whether on-my-way notices go outAgents can call this
schedule.setShopHoursSet the shop's booking hours, replacing what was there (owner or office)Agents can call this
schedule.setRulesChange the shop's scheduling rules (owner or office; the time zone is owner only)Agents can call this
schedule.findTimeFind open times for a visit of a given lengthAgents can call this
visits.onTheWayMark that the worker is on the way to a visit, with an optional ETA (eta_at, or eta_minutes from now)Agents can call this
visits.arrivedMark that the worker arrived at a visitAgents can call this
visits.noticesCustomer notices planned or handled for a visit (appointment reminder, on my way), with status pending, queued (handed to email), cancelled or skipped and whyAgents can call this
maintenance.createPlanStart a maintenance plan for a job's customer (owner or office)Agents can call this
maintenance.getPlanOne maintenance plan: price per term, current term, renewal date, and each term's invoiceAgents can call this
maintenance.listPlansA shop's maintenance plans, optionally for one customer or by status, soonest renewal firstAgents can call this
maintenance.setPriceReplace a plan's priced lines (owner or office; you write them, never AI), and optionally its tax rateAgents can call this
maintenance.cancelPlanCancel a maintenance plan (owner or office)Agents can call this
visits.changeRequestsCustomers' requests to move or cancel a visit, from the customer hub, newest firstAgents can call this
visits.answerChangeAnswer a customer's request to move or cancel a visitAgents can call this

Field work (checklists, forms, time, notes, change orders, subcontractors)

OperationWhat it doesWho
logs.addWrite a daily log entry on a job: what happened on site that day, in the worker's own wordsAgents can call this
logs.listDaily log entries on a job, oldest first, optionally between two dates (inclusive)Agents can call this
logs.removeTake a daily log entry out of the logAgents can call this
signatures.requestAsk someone to sign a document on a hosted page, and get the signing link to give themAgents can call this
signatures.newLinkA new signing link for an open signature requestAgents can call this
signatures.cancelCancel an open signature requestAgents can call this
signatures.getOne signature request: the document text (or stored PDF id) and its sha256, and the signature when signed (who, typed name, consent text and its sha256, surface, time)Agents can call this
signatures.listSignature requests for a job, a customer or a whole shop, newest first, with status and who signedAgents can call this
signatures.signSign a document after reading it, typing your name and agreeing to sign electronicallyHosted page only
checklists.saveTemplateCreate a checklist template, or replace one (give checklist_template_id)Agents can call this
checklists.listTemplatesThe shop's checklist templates with their itemsAgents can call this
checklists.archiveTemplateArchive a checklist template so it is no longer offeredAgents can call this
checklists.createPut a checklist on a job, or on one visit of the job (visit_id)Agents can call this
checklists.listChecklists on a job (all of them, job-level and per visit) or on one visit, with counts of open required items and sign-off stateAgents can call this
checklists.getOne checklist with every item (removed items included and marked), who ticked what and when, and its sign-offAgents can call this
checklists.checkItemTick (done true) or untick an item, with an optional noteAgents can call this
checklists.addItemsAdd items to the end of a checklist (owner or office)Agents can call this
checklists.removeItemRemove an item from a checklist (it stays in the history, marked removed)Agents can call this
checklists.requestSignOffAsk for a sign-off on a finished checklist and get the signing linkAgents can call this
forms.saveTemplateCreate a form template (an inspection, a safety sheet, a start-up report), or replace one (give form_template_id)Agents can call this
forms.listTemplatesThe shop's form templates with their fieldsAgents can call this
forms.archiveTemplateArchive a form template so it is no longer offeredAgents can call this
forms.startStart a form on a job, or on one visit of the job (visit_id)Agents can call this
forms.fillSave answers on a draft formAgents can call this
forms.submitSubmit a draft form: every required field must be answered (forms.get lists what is missing)Agents can call this
forms.cancelCancel a draft form (kept in history)Agents can call this
forms.getOne form with its fields, answers, the required fields still missing, its stored PDF id and hash once submitted, and its sign-offAgents can call this
forms.listForms on a job (job-level and per visit), or on one visit, newest first, without fields and answersAgents can call this
forms.requestSignOffAsk for a signature on a submitted form and get the signing link (owner or office)Agents can call this
notes.addWrite a note on a job, or on one visit of it (give visit_id; job_id is then optional)Agents can call this
notes.addVoiceMemoSave a voice memo as a note: send the transcript your agent made, the memo's length in seconds, when it was recorded, and what transcribed itAgents can call this
notes.updateChange a noteAgents can call this
notes.removeTake a note off the jobAgents can call this
notes.getOne note you may see, with every earlier wording (history, oldest first)Agents can call this
notes.listNotes you may see on a job (job-level and every visit) or on one visit: pinned first, then newest firstAgents can call this
changes.createWrite a change order on a job: a priced change to its scope, from lines a worker wrote (never filled in by AI)Agents can call this
changes.listA job's change orders and its money picture: signed quotes (contract_minor) + approved change orders = revised_total_minor; pending (sent, not yet signed); invoiced on live invoices; unbilled; and approved change orders not on an invoice yetAgents can call this
changes.getOne change order with its lines, totals, status, signature and invoiceAgents can call this
changes.sendOwner or office: ask the customer to approve a change orderAgents can call this
changes.cancelCancel a draft or sent change order (its open signature request is cancelled too, so the link stops working)Agents can call this
changes.invoiceBill approved change orders on a normal invoice (draft; send it with invoices.send)Agents can call this
timesheets.clockInStart a person's clock: on a job (work), or drive, shop or break timeAgents can call this
timesheets.clockOutStop a person's running clockAgents can call this
timesheets.currentA person's running clock in a shop, or null when they are not clocked inAgents can call this
timesheets.addAdd time after the fact (a manual entry with a start and an end, at most 24 hours)Agents can call this
timesheets.updateFix a time entry that is not approved: its start, end, category, job, visit or notesAgents can call this
timesheets.voidTake back a time entry that was never approved (kept in history, no longer counted)Agents can call this
timesheets.decideOwner or office: approve or reject stopped time entries (up to 200 at once, one shop)Agents can call this
timesheets.reopenOwner only: reopen approved time so it can be fixed (it goes back to waiting for approval)Agents can call this
timesheets.listTime entries in a shop between dates (the shop's time zone), or on one job, with minutes by category and by person, and approved minutesAgents can call this
timesheets.setRateOwner or office: set what an hour of a worker's time costs the shop (wage plus burden), or the shop default when person_id is left outAgents can call this
timesheets.listRatesLabor cost rates in force now: the shop default and each worker's own, plus upcoming onesAgents can call this
materials.addRecord a material used on a job (optionally on one of its visits): from the price book (pricebook_item_id; its name, unit, price, cost and taxable are copied as they are now) or typed in (name, unit, and optionally the price and cost per unit)Agents can call this
materials.updateChange a recorded material's quantity, visit or notesAgents can call this
materials.removeRemove a recorded material (recorded in error or returned)Agents can call this
materials.listMaterials recorded on a job (or one visit), with the price and cost totals of those still countedAgents can call this
subs.addAdd a subcontractor to a job: a company and the one email they will sign in withAgents can call this
subs.listSubcontractors on a job, or on every job in the shop: status invited, joined, expired or removed, when they last opened their pageAgents can call this
subs.updateChange a subcontractor's contact name, trade or scope note (what they see on their page)Agents can call this
subs.removeTake a subcontractor off a job, for good: their link stops working at onceAgents can call this
subs.notesNotes subcontractors left on a job, newest firstAgents can call this
subs.viewThe subcontractor's page for one job: the shop, job summary, work address, scope note, upcoming visit times and their notesHosted page only
subs.addNoteLeave a note for the shop on this job, as the subcontractor (up to 20 a day)Hosted page only

Customer hub, requests and customer emails

OperationWhat it doesWho
requests.createLog a request for work from a customer or a new leadAgents can call this
requests.listRequests of a shop, newest first, filtered by stage, customer or tagAgents can call this
requests.pipelineHow many open requests a shop has in each stage, and how many were won or lost in the last 30 daysAgents can call this
requests.getOne request with its customer and the job it becameAgents can call this
requests.updateMove a request to another stage or change its details, customer or propertyAgents can call this
requests.convertTurn a request into a job at its property or address; the worker then writes the quote or books a visitAgents can call this
requests.formCreateTurn on the shop's public request form and get its keyAgents can call this
requests.submitFormSend a shop a request through its public formAgents can call this
templates.saveSave a quote template: worker-written lines (and good, better, best options) to start quotes fromAgents can call this
templates.listList the shop's saved quote templates with their linesAgents can call this
templates.archiveArchive a quote template, or bring it back with archived false (owner or office)Agents can call this
messages.templatesThe shop's customer message templates, one per kind (invoice_reminder, quote_followup, review_request): the wording in use (custom or built-in), the placeholders each kind takes, and the locked link placeholder that must stay in the bodyAgents can call this
messages.saveTemplateSet the subject and body wording for one kind of automatic customer emailAgents can call this
messages.resetTemplateGo back to the built-in wording for one kind of automatic customer emailAgents can call this
messages.previewTemplateShow how one kind of automatic customer email reads, filled with sample customer details and the shop's nameAgents can call this
hub.createLinkMake a customer hub link: one page where this customer sees their quotes, jobs, invoices, upcoming visits and requests with you, pays, asks to move or cancel a visit, and asks for new workAgents can call this
hub.linksA customer's hub links, newest first: when each was made, when it expires or was revoked, and how often and when it was last openedAgents can call this
hub.revokeLinkStop a customer hub link working, for goodAgents can call this
hub.viewThe customer hub for the signed-in customer: their quotes, jobs, invoices with what is still owed, upcoming visits with any change request, and requests with this shopHosted page only
hub.openOpen a sent quote or an unpaid invoice from the customer hub: returns a fresh page link for that one item, for the signed-in customer only, good for a dayHosted page only
hub.requestVisitChangeFrom the customer hub, ask the shop to move (reschedule, with the times that work better) or cancel an upcoming visitHosted page only
hub.withdrawVisitChangeFrom the customer hub, take back your own open request to move or cancel a visitHosted page only
hub.requestWorkFrom the customer hub, ask the shop for new workHosted page only

Costs, expenses and reports

OperationWhat it doesWho
tips.reportTips customers paid, by invoice and in total, between two dates (owner or office)Agents can call this
expenses.addRecord money a worker spent on a job, with the receipt photoAgents can call this
expenses.updateChange an expense: date, vendor, category, amount, tax, receipt photo or noteAgents can call this
expenses.removeTake an expense off the books (kept in history)Agents can call this
expenses.listExpenses on a job, or across the shop between dates, with totals by categoryAgents can call this
reports.revenueMoney collected between two dates (inclusive, UTC), by month: card and bank payments through Doing Work less refunds, and payments recorded as taken outside Doing Work, shown apartAgents can call this
reports.owedMoney customers still owe on sent invoices, grouped by how long ago each invoice went out: 0 to 30, 31 to 60, 61 to 90 and over 90 daysAgents can call this
reports.quoteWinRateOf the quotes made between two dates (inclusive, UTC) and sent, how many were signed, declined, or are still waitingAgents can call this
costs.jobJob costing for one job: contract, invoiced, collected and revenue against labor (approved and pending time at each entry's cost rate), materials at cost, expenses and Doing Work fees, with profit and marginAgents can call this
costs.jobsJob costing across jobs dated between two days (inclusive, in the shop's time zone), with totalsAgents can call this
reports.todayThe shop's today queues in one call: visits today, visits in the next 7 days with nobody assigned, new requests, quotes and change orders waiting on the customer, overdue and draft invoices, done jobs not invoiced, time waiting for approval and approvals waiting on the ownerAgents can call this
reports.weekHow the shop did in one week (Monday to Sunday in the shop's time zone) against the week before: money collected, refunded, paid outside and invoiced; quotes sent and signed; jobs, visits, customers and requests; time logged and expensesAgents can call this
reports.saveSave a report to run again later: a name, one report operation (reports.revenue, reports.owed, reports.quoteWinRate, reports.today, reports.week, costs.jobs), its settings, and an optional moving date range (today, this_week, last_week, this_month, last_month, last_7_days, last_30_days, last_90_days, this_quarter, last_quarter, this_year, last_year) worked out on the shop's calendar each runAgents can call this
reports.listSavedThe shop's saved reports, by nameAgents can call this
reports.removeSavedRemove a saved report (kept for the record; its name is free to use again)Agents can call this
reports.runRun a saved report now: its date range is worked out on the shop's calendar (or around as_of), and the report operation runs with the caller's own permissionsAgents can call this
OperationWhat it doesWho
fields.defineAdd a custom field to customers, properties, jobs, quotes or invoices for a shopAgents can call this
fields.listCustom fields a shop has defined, optionally for one kind of recordAgents can call this
fields.setSet one custom field value on a customer, property, job, quote or invoiceAgents can call this
fields.getCustom field values on one record, with any required fields still emptyAgents can call this
tags.listEvery tag used in the shop, with how many photos and jobs carry itAgents can call this
search.globalSearch one shop for customers (name, email, phone), properties (address), jobs (summary) and requests (title)Agents can call this
imports.fieldsThe customer import fields and the built-in presets (jobber, housecall_pro, companycam) with the export column each readsAgents can call this
imports.previewDry run of a customer CSV importAgents can call this
imports.runOwner only: import customers (and one service address each) from a CSV with the mapping the owner confirmedAgents can call this
bulk.runRun one safe action on up to 200 records: customers.addTags, customers.removeTags, customers.archive, customers.unarchive, jobs.addTags, jobs.removeTags, visits.assignAgents can call this