Workforce Dental Staffing Solutions

WORKFORCE connector

Last updated

The WORKFORCE connector lets a candidate or a dental office use an AI assistant for dental staffing. A candidate can finish a profile, share availability, and work with shifts. An office can finish its profile, request temporary or permanent staff, and handle the shifts it owns. The assistant acts only on the account that signed in.

How to connect

Add a custom connector in Claude, ChatGPT, Muse, or Grok. The same address works for any assistant that connects to a remote MCP server with OAuth.

Connector icon (512×512 PNG): https://app.workforcedentalstaffing.com/brand/wfds-app-icon-512.png.

Sensitivity

Some assistants hide tools that send a verification text, change a paid plan, or handle a government ID. If a tool below is missing in that assistant, use the WORKFORCE app or another assistant for that step.

Candidate tools

These run only for the signed-in candidate. They cannot search other people or other offices.

Get my setup checklist

get_candidate_setup_pack

Read

Return the WORKFORCE candidate setup pack for this token subject, including status (percent, missing[]) and the scoped pack2 cell auto-scoped from the saved profile.

Inputs

  • profession — string. HYGIENIST, DENTAL_ASSISTANT, EFDA, DENTAL_RECEPTIONIST, ASSOCIATE, or a signup title. Required with region to fetch the one pack2 checklist cell.
  • region — string. Province / state (e.g. British Columbia, BC, CA-BC).
  • country — string
  • city — string

Output

Returns JSON for this account. It does not change the account or contact anyone.

Get Candidate Profile Schema

get_candidate_profile_schema

Read

Return the required fields for a complete WORKFORCE candidate profile, plus the full required + optional JurisdictionProfileRule checklist once profession and region are known (args or this token’s candidate).

Inputs

  • profession — string. HYGIENIST, DENTAL_ASSISTANT, EFDA, DENTAL_RECEPTIONIST, ASSOCIATE, or a signup title.
  • region — string. Province / state (e.g. British Columbia, BC, CA-BC).
  • country — string
  • city — string
  • assistantLevel — string
  • expandedFunctionAssistant — boolean or string
  • foreignTrainedDentist — boolean or string

Output

Returns JSON for this account. It does not change the account or contact anyone.

Get my Candidate Profile

get_my_candidate_profile

Read

Read this token’s WORKFORCE candidate profile only (subject Candidate.id).

Inputs

None.

Output

Returns JSON for this account. It does not change the account or contact anyone.

Create or update my profile

create_or_update_my_candidate_profile

Sensitive-write

Idempotent create/update of this token’s WORKFORCE candidate only (subject Candidate.id).

Inputs

  • firstName — string
  • lastName — string
  • preferredFirstName — string
  • email — string
  • phone — string
  • profession — string
  • expandedFunctionAssistant — boolean or string
  • assistantLevel — string
  • foreignTrainedDentist — boolean or string
  • addressLine1 — string
  • addressLine2 — string
  • city — string
  • region — string
  • postalCode — string
  • country — string
  • latitude — number
  • longitude — number
  • photoUrl — string. avatars public URL from upload_my_candidate_document (kind=photo) or an existing avatars path.
  • bio — string
  • professionStartedYear — integer
  • professionStartedMonth — integer
  • emergencyContact — string
  • emergencyPhone — string
  • familiarDentalSoftware — array
  • resumeUrl — string. candidate-docs public URL from upload_my_candidate_document (kind=resume). Required for every profession.
  • licenseUrl — string. This candidate’s file already in WORKFORCE storage (candidate-docs public/sign URL or candidate-docs/{userId}/… path). Any other URL is refused. Prefer upload_my_candidate_document, which attaches the license itself.
  • licenseNumber — string
  • licenseJurisdiction — string
  • licenseExpiresAt — string
  • certUrl — string. This candidate’s file already in WORKFORCE storage. Any other URL is refused — use upload_my_candidate_document. Requires certCode or requirementKey.
  • certCode — string. Certificate catalog code (cpr, harp, ndaeb_certificate, level_1_education, efda, whmis, ipac, bbp_certificate).
  • requirementKey — string. Checklist id: cert:cpr, ontario_da_doc:l1_canadian:harp, efda:cert:efda, efda:license (use licenseUrl for EFDA license).
  • certificates — array

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else.

Get my Profile Status

get_my_profile_status

Read

Full checklist for this candidate’s profession + region only (not every jurisdiction): percent, missing required fields, verification, checklist.required and checklist.optional.

Inputs

None.

Output

Returns JSON for this account. It does not change the account or contact anyone.

Create an upload link for my document

create_my_candidate_upload_slot

Write

Create a short-lived upload link for one document on the signed-in candidate’s own WORKFORCE profile (profile photo, resume, dental licence, or course certificate).

Inputs

  • kind (required) — string. Which profile document this is: photo (profile picture), resume, license (dental licence or registration), cert (a course certificate; also pass certCode or requirementKey), or a certificate shortcut (cpr, harp, ndaeb, diploma, efda_license, efda_credential, whmis, ipac, bbp).
  • certCode — string. Certificate code when kind is cert, for example cpr or harp.
  • requirementKey — string. Checklist item this file satisfies, for example cert:cpr or efda:license.
  • filename (required) — string. Original file name, for example resume.pdf.
  • mimeType — string. File type, for example application/pdf or image/jpeg.

Output

Returns JSON after saving a change on this account. It does not message other people.

Upload a document to my profile

upload_my_candidate_document

Sensitive-write

Upload one document to the signed-in candidate’s own WORKFORCE profile and attach it: profile photo, resume, dental licence, or course certificate.

Inputs

  • kind (required) — string. Which profile document this is: photo (profile picture), resume, license (dental licence or registration), cert (a course certificate; also pass certCode or requirementKey), or a certificate shortcut (cpr, harp, ndaeb, diploma, efda_license, efda_credential, whmis, ipac, bbp).
  • certCode — string. Certificate code when kind is cert, for example cpr or harp.
  • requirementKey — string. Checklist item this file satisfies, for example cert:cpr or efda:license.
  • filename (required) — string. Original file name, for example resume.pdf.
  • mimeType — string. File type, for example application/pdf or image/jpeg.
  • attachmentId — string. https URL of the chat attachment. The server downloads the full file.
  • fileUrl — string. https URL of the chat attachment, or a WORKFORCE Storage URL this candidate already owns.
  • storagePath — string. The storagePath returned by create_my_candidate_upload_slot after the file was sent to putUrl.
  • contentBase64 — string. Legacy fallback for very small files only. Prefer fileUrl, attachmentId, or storagePath.

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else.

Draft a bio from the resume

generate_bio_from_resume

Sensitive-write

Draft a first-person bio from this candidate’s latest RESUME (or a resumeUrl that is their Storage object).

Inputs

  • resumeUrl — string. Optional. Must parse to this candidate’s avatars / candidate-docs / documents object.
  • regenerate — boolean or string. If true, ignore the cached draft and re-extract + re-draft from the resume file.
  • force — boolean or string. Alias of regenerate.

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else.

Broadcast temporary availability

broadcast_temp_availability

Sensitive-write

Publish this candidate’s temp availability broadcast (the Availability pin offices and recruiters use for outreach).

Inputs

  • dateKeys — array. INDIVIDUAL_DAYS mode (default): the days, YYYY-MM-DD. Required unless mode is RECURRING or BLOCK, or availabilityKind is PERM.
  • availabilityKind — string. Not for associate dentists. TEMP (default) = temp days only; PERM = a permanent job only (no dateKeys); BOTH = temp dateKeys plus a permanent job. Ask first: temp days only, a permanent job, or both?
  • permNote — string. Required for PERM / BOTH: at least 100 characters (about two sentences) on the schedule, office, culture and type of work they want. Offices read it next to their bio. Phone numbers and emails are removed.
  • mode — string. Associate dentists only for RECURRING / BLOCK. Default INDIVIDUAL_DAYS.
  • weekdays — array. RECURRING (required) / BLOCK (optional, empty = Mon–Fri): Monday…Sunday or 0 (Sun)…6 (Sat).
  • startDateKey — string. RECURRING / BLOCK start, YYYY-MM-DD.
  • endDateKey — string. RECURRING (required) / BLOCK (optional; omit for open-ended) end, YYYY-MM-DD, up to 9 months ahead.
  • exceptionDateKeys — array. Days carved out of a RECURRING / BLOCK broadcast, YYYY-MM-DD.
  • commuteKm — number
  • commuteDistanceKm — number
  • center — object
  • confirm — boolean. false or omitted previews and writes nothing. true publishes.
  • idempotencyKey — string

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.

Set my Commute

set_my_commute

Sensitive-write

Set this candidate’s commute distance.

Inputs

  • commuteDistanceKm — number
  • commuteKm — number
  • serviceAreaMode — string
  • licensedRegions — array

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else.

Set my Weekly Availability

set_my_weekly_availability

Sensitive-write

Set this candidate’s recurring weekly availability (CandidateWeeklyAvailability).

Inputs

  • days (required) — array

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else.

Get my Weekly Availability

get_my_weekly_availability

Read

Read this candidate’s recurring weekly availability.

Inputs

None.

Output

Returns JSON for this account. It does not change the account or contact anyone.

Flag permanent-job interest

flag_perm_interest

Sensitive-write

Turn permanent-role interest on or off for this candidate (jobVisibility).

Inputs

  • interested (required) — boolean or string

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else.

Get my Broadcast Status

get_my_broadcast_status

Read

Read this candidate’s current availability broadcast.

Inputs

None.

Output

Returns JSON for this account. It does not change the account or contact anyone.

Search Available Shifts

search_available_shifts

Read

Search open shifts for this candidate.

Inputs

  • date — string
  • from — string
  • to — string
  • kind — string
  • filter — string
  • limit — integer

Output

Returns JSON for this account. It does not change the account or contact anyone.

Get Job Details

get_job_details

Read

Details for one open shift this candidate can see.

Inputs

  • jobRef (required) — string

Output

Returns JSON for this account. It does not change the account or contact anyone.

List my Assignments

list_my_assignments

Read

This candidate’s booked shifts.

Inputs

  • date — string
  • from — string
  • to — string
  • status — string

Output

Returns JSON for this account. It does not change the account or contact anyone.

Get Assignment Details

get_assignment_details

Read

One booked shift, including office name, street address, entrance, and parking.

Inputs

  • assignmentRef (required) — string

Output

Returns JSON for this account. It does not change the account or contact anyone.

Apply to a shift

apply_to_job

Sensitive-write

Apply the signed-in candidate to one open WORKFORCE shift.

Inputs

  • jobRef (required) — string
  • acknowledgeNewGradRate — boolean
  • acknowledgeSameWorkerDays — boolean
  • confirm — boolean. False previews and writes nothing. True commits.
  • idempotencyKey — string

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.

List my Applications

list_my_applications

Read

List this candidate’s WORKFORCE applications.

Inputs

  • status — string
  • limit — integer

Output

Returns JSON for this account. It does not change the account or contact anyone.

Get my Application

get_my_application

Read

One application for this candidate.

Inputs

  • applicationRef (required) — string

Output

Returns JSON for this account. It does not change the account or contact anyone.

Withdraw my Application

withdraw_my_application

Sensitive-write

Withdraw this candidate’s pending application.

Inputs

  • applicationRef (required) — string
  • confirm — boolean. False previews and writes nothing. True commits.
  • idempotencyKey — string

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.

Confirm my Shift

confirm_my_shift

Sensitive-write

Confirm a booked WORKFORCE shift.

Inputs

  • assignmentRef (required) — string
  • confirm — boolean. False previews and writes nothing. True commits.
  • idempotencyKey — string

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.

Set my Availability Status

set_my_availability_status

Sensitive-write

Mark this candidate open or unavailable for temp shifts.

Inputs

  • available (required) — boolean
  • confirm — boolean. False previews and writes nothing. True commits.
  • idempotencyKey — string

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.

Set my Date Availability

set_my_date_availability

Sensitive-write

Set specific dates on or off for this candidate.

Inputs

  • dates (required) — array
  • available (required) — boolean
  • startTime — string
  • endTime — string
  • confirm — boolean. False previews and writes nothing. True commits.
  • idempotencyKey — string

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.

Get my Availability Calendar

get_my_availability_calendar

Read

Read this candidate’s date windows and blocked dates between from and to (YYYY-MM-DD).

Inputs

  • from — string
  • to — string

Output

Returns JSON for this account. It does not change the account or contact anyone.

Stop Availability Broadcast

stop_availability_broadcast

Sensitive-write

Stop this candidate’s live availability broadcast.

Inputs

  • confirm — boolean. False previews and writes nothing. True commits.
  • idempotencyKey — string

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.

List my Timesheets

list_my_timesheets

Read

List this candidate’s timesheets.

Inputs

  • status — string
  • from — string
  • to — string

Output

Returns JSON for this account. It does not change the account or contact anyone.

Get my Timesheet

get_my_timesheet

Read

One timesheet for this candidate.

Inputs

  • timesheetRef (required) — string

Output

Returns JSON for this account. It does not change the account or contact anyone.

Office tools

These run only for the signed-in dental office. They cannot search other offices or list the candidate directory.

Get Office Profile Schema

get_office_profile_schema

Read

Return the required fields for a complete WORKFORCE office profile, plus pickLists for parking (free text), imagingTypes[] and dentistryTypes[] (multi-select Settings lookup labels), dentalSoftware, and lunchDurationMins.

Inputs

None.

Output

Returns JSON for this account. It does not change the account or contact anyone.

Get Available Plans for my Region

get_available_plans_for_my_region

Read

Structured WORKFORCE staffing plans for the token office’s region only.

Inputs

None.

Output

Returns JSON for this account. It does not change the account or contact anyone.

Get Agreement Status

get_agreement_status

Read

Whether this office has signed the WORKFORCE rate agreement and accepted a staffing plan.

Inputs

None.

Output

Returns JSON for this account. It does not change the account or contact anyone.

Get my office readiness

get_my_office_readiness

Read

FIRST tool call after auth.

Inputs

None.

Output

Returns JSON for this account. It does not change the account or contact anyone.

Create or update my office

create_or_update_my_office_profile

Sensitive-write

Idempotent create/update of this token’s WORKFORCE office only (subject Client.id).

Inputs

  • officeName — string
  • website — string
  • logoUrl — string
  • addressLine1 — string
  • addressLine2 — string
  • city — string
  • region — string
  • postalCode — string
  • country — string
  • latitude — number
  • longitude — number
  • timezone — string
  • officePhone — string
  • phoneReceivesSms — boolean or string
  • emergencyPhone — string
  • officeEmail — string
  • serviceRegion — string
  • primaryContactFirstName — string
  • primaryContactLastName — string
  • primaryContactEmail — string
  • primaryContactPhone — string. Officer cell. Required for SMS OTP verification.
  • primaryContactTitle — string
  • officeHours — array
  • dentalSoftware — string
  • parkingCost — string. Free-text parking cost (e.g. Free, $15/day). Not an enum.
  • parkingDescription — string. Optional free-text parking details. Not an enum.
  • entranceDetails — string
  • lunchDurationMins — integer. Typical lunch minutes from get_office_profile_schema pickLists (0, 15, 30, 45, 60, 90).
  • imagingTypes — array. Multi-select. Values must be Settings IMAGING labels from get_office_profile_schema.
  • dentistryTypes — array. Multi-select. Values must be Settings DENTISTRY labels from get_office_profile_schema.
  • additionalDetails — string
  • officeManagerName — string
  • officeManagerEmail — string
  • billingContactName — string
  • billingContactEmail — string
  • overrideBouncedEmail — boolean. Set true only after the office explicitly confirms a previously bounced address. Otherwise a flagged address is rejected.

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else.

Enrich my Office From Website

enrich_my_office_from_website

Sensitive-write

Scrape the office website with the same portal enrichment as web signup (hours, logo URL, about-office blurb, name/address).

Inputs

  • website — string. Public office website URL. Optional when this office already has website saved.
  • persist — boolean or string. Default true. When true, write empty profile gaps only (never overwrite filled fields; never invent on scrape failure).

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else.

Send Office Verification OTP

send_office_verification_otp

Sensitive-write

SMS a one-time 6-digit code to this office’s primaryContactPhone (officer cell).

Inputs

None.

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else.

Confirm Office Verification OTP

confirm_office_verification_otp

Write

Confirm the SMS one-time code sent to primaryContactPhone.

Inputs

  • code (required) — string. 6-digit SMS code sent to the officer cell.

Output

Returns JSON after saving a change on this account. It does not message other people.

Select Plan

select_plan

Sensitive-write

Lock a LIVE WORKFORCE staffing plan on this office only.

Inputs

  • planId (required) — string. Plan id from get_available_plans_for_my_region (this office only).

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else.

Send Rate Agreement

send_rate_agreement

Sensitive-write

Email the existing WORKFORCE agreement-invite magic link to this office’s primary contact.

Inputs

None.

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else.

Get Job Request Options

get_job_request_options

Read

Read what this office can post.

Inputs

None.

Output

Returns JSON for this account. It does not change the account or contact anyone.

Create temporary Job Request

create_temp_job_request

Sensitive-write

Post a temp shift for this office.

Inputs

  • profession (required) — string. Role name or enum, case-insensitive. Hygienist (HYGIENIST), Dental Assistant (DENTAL_ASSISTANT), Dental Receptionist (DENTAL_RECEPTIONIST), Associate (ASSOCIATE), EFDA (EFDA).
  • shifts (required) — array
  • payRateWeekday — number
  • payRateWeekend — number
  • sameWorkerRequired — boolean. Default false. One order per day.
  • cutoffHours — number
  • assistantLevelRequirement — string
  • description — string. Special requirements. Do not include the office name.
  • notifyContactRefs — array
  • confirm — boolean
  • idempotencyKey — string

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.

Copy a job request

copy_job_request

Sensitive-write

Re-post an existing temp request on new date(s) for this office.

Inputs

  • jobRequestRef (required) — string
  • dates (required) — array
  • startTime — string
  • endTime — string
  • sameWorkerRequired — boolean
  • cutoffHours — number
  • confirm — boolean
  • idempotencyKey — string

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.

List my Job Requests

list_my_job_requests

Read

List this office’s job requests.

Inputs

  • kind — string
  • date — string
  • from — string
  • to — string
  • status — string
  • limit — integer

Output

Returns JSON for this account. It does not change the account or contact anyone.

Get Job Request

get_job_request

Read

Read one of this office’s job requests, including shift times and assigned worker first name, profession, rating, and reliability.

Inputs

  • jobRequestRef (required) — string

Output

Returns JSON for this account. It does not change the account or contact anyone.

Update temporary Job Request

update_temp_job_request

Sensitive-write

Change shift times and cut-off only.

Inputs

  • jobRequestRef (required) — string
  • shifts (required) — array
  • cutoffHours — number
  • confirm — boolean
  • idempotencyKey — string

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.

Cancel temporary Job Request

cancel_temp_job_request

Sensitive-write

Cancel a temp request.

Inputs

  • jobRequestRef (required) — string
  • date — string. YYYY-MM-DD day to cancel when the request is not Same Worker Required.
  • cancelReason — string
  • confirmCancellationFee — boolean
  • confirm — boolean
  • idempotencyKey — string

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.

Search the availability map

search_availability_map

Read

Who is showing on this office’s availability map.

Inputs

  • profession — string. Optional profession filter. Case-insensitive codes: HYGIENIST, DENTAL_ASSISTANT, DENTAL_RECEPTIONIST, ASSOCIATE, EFDA. Aliases include Hygienist, Dental Hygienist, RDH, Dental Assistant, CDA, RDA, assistant, DA, receptionist, admin, and front desk. An unknown value is a validation error that lists the allowed codes.
  • kind — string. TEMP = temp days, PERM = open to a permanent job, ALL (default) = both. Same filter as the Temp / Perm toggle on the office availability map.
  • minRating — number
  • dates — array
  • limit — integer

Output

Returns JSON for this account. It does not change the account or contact anyone.

Say we are interested in a perm candidate

say_interested_in_perm_candidate

Sensitive-write

Tell WORKFORCE this office is interested in a candidate who is open to a permanent job (a PERM or BOTH row from search_availability_map).

Inputs

  • workerRef (required) — string. workerRef from a search_availability_map row that is open to perm.
  • confirm — boolean

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.

Set held job pay rates

set_held_job_pay_rates

Sensitive-write

Set weekday and weekend pay on a held Paid-by-Office temp request so it can open.

Inputs

  • jobRequestRef (required) — string
  • payRateWeekday (required) — number
  • payRateWeekend — number
  • confirm — boolean. False previews and writes nothing. True commits.
  • idempotencyKey — string

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.

List Job Applications

list_job_applications

Read

Self-Service temp applicants for this office.

Inputs

  • jobRequestRef — string
  • status — string
  • limit — integer

Output

Returns JSON for this account. It does not change the account or contact anyone.

Accept Job Application

accept_job_application

Sensitive-write

Self-Service only.

Inputs

  • applicationRef (required) — string
  • confirm — boolean. False previews and writes nothing. True commits.
  • idempotencyKey — string

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.

Decline Job Application

decline_job_application

Sensitive-write

Self-Service only.

Inputs

  • applicationRef (required) — string
  • note — string
  • confirm — boolean. False previews and writes nothing. True commits.
  • idempotencyKey — string

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.

Create permanent Job Request

create_perm_job_request

Sensitive-write

Create a permanent hire request for this office.

Inputs

  • position — string
  • contactPhone — string. Optional North American phone. Used when the office profile has none.
  • startDate — string
  • scheduleDays — array
  • scheduleFlexibility — string
  • payRateMin — number
  • payRateMax — number
  • payType — string
  • benefits — string
  • jobDescription — string
  • requirements — string
  • softwareUsed — string
  • softSkills — string
  • considerNewGraduate — boolean or string
  • teamSize — string
  • operatoryCount — string
  • officeCulture — string
  • interviewProcess — string
  • imagingTypes — array
  • dentistryTypes — array
  • visibilityMode — string
  • visibleContactRefs — array
  • otherComments — string
  • associateDentistCount — string
  • associateOfficeRevenue — string
  • associateActivePatients — string
  • associateNewPatientsPerMonth — string
  • associateCeHoursAnnually — string
  • associateDigitalEquipment — array
  • associateDaysOpenPerWeek — string
  • associateExperienceRequired — string
  • associateConsiderForeignTrained — boolean or string
  • associateLookingFor — string
  • confirm — boolean. False previews and writes nothing. True commits.
  • idempotencyKey — string

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.

Request permanent Job Close

request_perm_job_close

Sensitive-write

Close a permanent request for this office.

Inputs

  • jobRequestRef (required) — string
  • reason (required) — string. Why the office is closing it.
  • confirm — boolean. False previews and writes nothing. True commits.
  • idempotencyKey — string

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.

List Timesheets

list_timesheets

Read

Timesheets for this office.

Inputs

  • status — string
  • from — string
  • to — string
  • limit — integer

Output

Returns JSON for this account. It does not change the account or contact anyone.

Get Office Timesheet

get_office_timesheet

Read

One timesheet for this office.

Inputs

  • timesheetRef (required) — string

Output

Returns JSON for this account. It does not change the account or contact anyone.

Approve Timesheet

approve_timesheet

Sensitive-write

Approve a SUBMITTED or RESUBMITTED timesheet.

Inputs

  • timesheetRef (required) — string
  • confirm — boolean. False previews and writes nothing. True commits.
  • idempotencyKey — string

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.

Dispute Timesheet

dispute_timesheet

Sensitive-write

Dispute a SUBMITTED or RESUBMITTED timesheet.

Inputs

  • timesheetRef (required) — string
  • reason (required) — string
  • confirm — boolean. False previews and writes nothing. True commits.
  • idempotencyKey — string

Output

Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.

Get Office Dashboard

get_office_dashboard

Read

Counts for this office: open temp requests, unconfirmed shifts, timesheets waiting for approval, and pending Self-Service applications.

Inputs

None.

Output

Returns JSON for this account. It does not change the account or contact anyone.

List my Offices

list_my_offices

Read

Offices this signed-in contact already belongs to.

Inputs

None.

Output

Returns JSON for this account. It does not change the account or contact anyone.

Common errors

Rate limits

The connector does not publish a fixed calls-per-minute cap. Use it for the requests the person asked for. Claude, ChatGPT, Muse, and Grok may add their own limits.

Office verification texts are limited in the product: one new code per minute, each code lasts 10 minutes, and five wrong entries require a new code. If a call fails as temporary, or the assistant says to slow down, wait a few seconds and retry once. If it keeps failing, contact support. Do not retry in a tight loop.

Support

Email dentalteam@workforcedentalstaffing.com or use the support page. Hours are Monday to Friday, 8 AM to 5 PM Pacific Time. Phone: 1-833-336-8250.

How we handle information is in the Privacy Policy. The rules for the app are in the Terms of Service.