Common workflows
Each workflow lists the calls in order, with the permissions the connection needs. Every create in these workflows should use its own idempotency key.
Schedule a job for a new customer
Permissions: customers:create, customer_locations:create, jobs:create, members:read (their read dependencies are selected automatically).
- Check whether the customer exists: List customers, filtering by
external_referenceif your system stored one when it created them. - If not, create the customer. Save
data.id. - Create a location for the job site. Save
data.id. Its address is geocoded afterwards; you don't need to wait. - Find the technician's member ID with List members.
- Create the job with
customer_id,location_id, a timedscheduleandassignee_member_ids.
Through MCP, the same request can be a single sentence: "Create Example Property Services at 100 Example Avenue, Springfield, and schedule an inspection there on 10 November, 9:00–11:00 New York time, assigned to Alex." The client performs these steps with the matching tools.
Add catalog items to a job
Permissions: job_items:create and its dependencies (job_items:read, jobs:read, products:read).
- Find the product and, if it has several prices, the price ID: List products.
- Either include the items in
itemswhen you create the job, or add them to an existing job. - Read the job again to see the updated
job_value.
Draft a quote or invoice
Permissions: quotes:create or invoices:create and their dependencies.
- Find the customer and the products to include.
- Create the draft: Create a quote or Create an invoice.
- Review and send it from the FieldTask app. The API creates drafts only; it never sends them, collects payment or accepts quotes.
Invite a team member
Permissions: members:invite and members:read, on a connection whose owner or admin is still eligible to invite.
- Create an invitation with the person's email address.
- FieldTask emails the invitation. Track it with Get a member invitation.
- Once accepted, the person appears in List members and can be assigned to jobs.
Report a member's hours
Permissions: timesheets:read and members:read.
- Find the member with List members.
- Read their totals for a date range with Get timesheet totals, or the individual entries with List timesheet entries.
Keep another system in sync
- Choose webhooks, the event feed, or both.
- Get a starting cursor, then copy current records with the list endpoints.
- Apply each change as it arrives by reading the current record. See Event feed.