FieldproxyAI-native field service software

CRM to field

Should I use HubSpot deals or tickets to trigger field service jobs?

Use a deal when the visit is the thing you sold (an install, a project, a one-off paid job), and trigger the job when the deal reaches Closed Won, because only deals carry line items that can become the job's scope. Use a ticket when the visit services a customer you already have (a repair call, a warranty issue, a contract callout), and trigger the job from a ticket status in your service pipeline. Most service companies need both, but each job should come from exactly one record, and invoices and customer notifications should come from one system only, usually the field service tool.

  • Deal = a sale with line items; trigger on Closed Won. Ticket = a service request; trigger on a status.
  • Store the HubSpot record ID on the job, so a repeated or late event updates the same job instead of creating a second.
  • In HubSpot, line items attach to deals, quotes, invoices, payment links and subscriptions, not tickets.
  • Issue invoice numbers in one system only. HubSpot numbers can't be changed or reused once finalized.
  • Send customer notifications from the field tool, where the status actually changes, not through a HubSpot workflow.

Book your demo

60 minute video call ยท Step 1 of 2: your details, then pick a time

Number of employees

If you only want technicians to see a contact's details, you may not need any trigger at all. This page is for teams whose HubSpot records need to become scheduled visits.

Facts checked as of November 2026. Sources at the end of the page.

Step by step

How it works, step by step

HubSpot's own definitions point the way. Deals "store the progress, ownership, and other details on a transaction with a customer or company." Tickets "store information about customer support requests."

1. Sort your visits into sold work and service work

List every kind of visit you do. A new install, a site survey you charge for, a fit-out or a multi-site training contract is sold work: it has a price, a quote and someone who signed. A breakdown, a warranty check, a callback or a reactive job under an existing contract is service work: the customer already exists and is asking for help.

2. Sold work: trigger on the deal stage

Use the deal pipeline you already sell from. HubSpot's default Sales Pipeline ends in Closed won and Closed lost, and HubSpot asks you to keep both Won and Lost stages so its reports work. When a deal enters your chosen stage (usually Closed won, sometimes a stage like 'Deposit paid'), the field tool creates the job with the company, contact, site and the deal's line items as the job's scope.

3. Service work: trigger on a ticket status

Create a service pipeline (custom pipelines need a Starter, Professional or Enterprise subscription; the default Support Pipeline has the statuses New, Waiting on contact, Waiting on us and Closed). Add a status such as 'Needs site visit'. When a ticket enters it, the field tool creates a job with the ticket's contact, company and description.

4. Choose how the event leaves HubSpot

Three routes exist. An integration app subscribes to HubSpot webhooks such as deal.propertyChange on dealstage or ticket.propertyChange on hs_pipeline_stage. A HubSpot workflow can use the 'Send a webhook' action, which needs Data Hub Professional or Enterprise. Or Zapier's 'Updated Deal Stage' and 'New Ticket Property Change' triggers start a zap.

5. Make the job idempotent

HubSpot says it does not guarantee webhook order, may send the same notification more than once, and retries a failed delivery up to 10 times over 24 hours if your service takes more than five seconds to respond. So the job stores the deal or ticket ID (e.g. hubspot_deal_id) and every event looks that ID up first. A deal dragged back and forth across Closed won then updates one job instead of creating three.

6. Write the result back to the same record

When the visit is done, the field tool updates the deal or ticket through the CRM API (PATCH /crm/v3/objects/deals/{dealId} or /crm/v3/objects/tickets/{ticketId}): job status, completion date, a note with the visit report, and, for tickets, the move to Closed. Status changes must use the internal ID of the pipeline stage, not its label.

7. Invoice from one place and show the result in HubSpot

Pick one system to issue the invoice. If the field tool invoices (from what was actually done on site) and syncs to QuickBooks or Xero, HubSpot gets a read-only invoice status on the deal or company. If HubSpot invoices (a deal can be converted to an invoice with its line items, and HubSpot invoices can sync to QuickBooks Online on all plans), the field tool must not create its own.

Where it breaks

Why it goes wrong

These problems come from our sales calls: a residential cleaning business that runs its website on HubSpot, an emergency-management training company with 50+ consultants on a field tool synced to HubSpot, and a HubSpot consultancy speaking for a UK racking inspection client.

Jobs come from tickets but the price lives on the deal

If sold work is pushed through tickets, the scope is lost. HubSpot line items can be associated with deals, quotes, invoices, payment links or subscriptions, and its docs list no ticket association, so a ticket-only setup means someone retypes the scope onto the job.

Two triggers for the same visit

Some teams create a ticket when a deal closes (a common HubSpot pattern) and also trigger a job from the deal. Both fire, and the technician gets two jobs for one install. Decide which record starts the job and let the other only receive updates.

Sync errors nobody can explain

The training company described random sync errors, a data integrity worry, and exporting to Excel to run VLOOKUPs to find which records disagreed. The usual cause is two systems both allowed to edit the same field. Give every synced field one owner.

Notifications that arrive after the person

The same company routed customer notifications through HubSpot and said staff were sometimes faster than the integration. If the status changes in the field tool, the message should go from the field tool, not wait for a sync and a HubSpot workflow.

Invoice numbers that don't match

The cleaning business asked whether invoice numbers would stay the same in HubSpot, the field tool and Xero. They only do if one system numbers them. HubSpot invoices default to the prefix INV and start at 1001, a finalized number can't be changed or reused, and numbering keeps going even if an invoice is deleted.

A deal or ticket that tells the customer nothing

The cleaning business pointed out that creating a ticket or deal in HubSpot doesn't send the customer anything. The booking confirmation, the visit time and the report have to come from the field side.

The options

Ways to do it

ApproachWhat you getWeak spotGood for
HubSpot workflows onlyA deal or ticket workflow on a Professional or Enterprise hub; 'Create record' can make a ticket from a deal (tickets need Service Hub Professional or Enterprise)No schedule, technician app, checklist or on-site invoice; 'Send a webhook' needs Data Hub Professional or EnterpriseTeams that only need a task list after the sale
Zapier between HubSpot and a field app'Updated Deal Stage' or 'New Ticket Property Change' triggers; 'Update Deal' and 'Update Ticket' actions to write backEach zap is one direction; duplicates and field ownership are yours to manageLow volume, one-way hand-off
An FSM with a HubSpot marketplace app (Zuper, for example)Zuper's docs list Deal to Job, Ticket to Job and Deal to Project modules, notes syncing from deal or ticket to the job, and job cards on HubSpot recordsZuper says module data flow is predefined and it is best on HubSpot Professional or Enterprise; deleting a Zuper job also deletes the linked HubSpot recordTeams happy with that vendor's fixed modules
Your own sync on the HubSpot APIWebhooks in, PATCH back; any object, any ruleYou own retries, ordering and limits (private apps: 100 requests per 10 seconds on Free and Starter, 190 on Professional and Enterprise)Teams with a developer
Configurable FSM set up with the sync (Fieldproxy)Deals at your chosen stage become jobs or projects with their line items; tickets in your chosen pipeline and stage become jobs; notes, report and status go back; invoices sync to QuickBooks or Xero with the status shown in HubSpotPipelines, properties and field owners are mapped with you at setup, so the first week is spent agreeing rulesTeams with both sold and service work in HubSpot

As of November 2026, from each vendor's own documentation and listings (sources below). HubSpot tier rules change; check your own account's Settings before relying on one.

Worked example

A worked example: one month, both triggers

Say a safety training and audit company with 40 consultants runs sales and support in HubSpot. Made-up numbers to show the flow, not results.

StepWhat happensNumbers
Deals wonTraining and audit contracts reach Closed won25 deals
Deals become jobsOne job per site on the deal; line items (courses, audits) become job lines25 deals, 70 site jobs
Tickets needing a visitSupport tickets moved to 'Needs site visit' (re-audits, evacuation diagram corrections)18 of 140 tickets
Duplicate eventsDeals moved back and forth across Closed won by mistake6 repeat events, 0 extra jobs (matched by deal ID)
Written back to HubSpotJob status, completion date and a report note on each deal or ticket; 18 tickets set to Closed88 records updated
InvoicesIssued once from the field tool, synced to Xero, status shown on the dealOne number per invoice, the same in all three places

Before you buy

What to check before you buy

Good signs

  • Triggers on both a deal stage and a ticket status, and you choose which pipelines and stages
  • Stores the deal or ticket ID on the job and ignores repeat events
  • Brings the deal's line items onto the job, and splits a multi-site deal into one job per site
  • Writes status, completion and a visit report note back to the same HubSpot record
  • A written field map: which system owns each field
  • Sends customer confirmations and reports itself, without waiting on a HubSpot workflow
  • Invoices in one place, with the number and paid status visible in HubSpot

Red flags

  • Only one trigger object, so either sold or service work is retyped
  • Both systems can edit the same field
  • Jobs created from HubSpot meetings, which carry no scope or site
  • Invoices created in HubSpot and in the field tool for the same job
  • A sync that needs a Data Hub upgrade you didn't budget for
  • Deleting a job in one system silently deletes the HubSpot record

In Fieldproxy

Setting it up in Fieldproxy

Fieldproxy keeps HubSpot as your CRM, marketing tool and website and runs the work after the sale. The pipelines, stages and field owners below are mapped with you; names marked e.g. are examples.

Deals start sold work

A deal reaching your chosen stage creates a job, or a project for bigger work, with the company, contact, site and line items (see /integrations/hubspot/deal-stage-triggers). A deal that covers several sites creates one job per site under the same customer, each with its own checklist and report.

Tickets start service work

Tickets in the pipeline and status you choose (e.g. Service Pipeline, 'Needs site visit') become jobs with the ticket's contact, company and description. Technician notes, the visit report and completion go back to the ticket.

One owner per field

Contacts and companies sync both ways (/integrations/hubspot/contact-sync), and each field has one owner, so the two systems never fight over a value. For example, HubSpot owns the contact's email; Fieldproxy owns the job status and visit date.

Dispatch and the technician app

New jobs land on the dispatch board (/ai-scheduling-dispatch-software). The Dispatch agent (/agents/dispatch-agent) suggests a technician by distance and skills, and a person approves. Technicians work from the Android or iOS app with checklists, photos, signatures and GPS check-in.

Customer messages from where the work happens

Booking confirmations, visit reminders and the finished report go to the customer from Fieldproxy (/solutions/customer-communications) as the job moves, instead of waiting for a HubSpot workflow. Autopilot (/agents/autopilot) drafts follow-ups such as unsigned quotes or unpaid invoices for a person to approve.

One invoice, one number

Technicians quote and invoice from the phone with a payment link. Invoices sync to QuickBooks (/integrations/quickbooks) or Xero (/integrations/xero), and the paid status can be shown in HubSpot. Fieldproxy is one price per company with unlimited users; see /pricing.

How switching works

How switching to Fieldproxy works

We move your data over and set the system up to the way you already work. Fieldproxy replaces the old tool; it does not run alongside it.

  1. Show us your HubSpot pipelines

    Your deal and ticket pipelines, stages and custom properties, and which kinds of visit come from each. We agree the stage that starts a job.
  2. We write the field map

    Every synced field gets one owner. We decide where invoices are numbered and which customer messages Fieldproxy sends.
  3. We connect and test on real records

    We run copies of real deals and tickets through, including a deal moved back across Closed won, and check one job and one write-back each time.
  4. Go live

    Technicians get the app, the office gets the dispatch board, and HubSpot keeps the sales and marketing side.

FAQ

Questions people ask

Should I use HubSpot deals or tickets for field service jobs?
Deals for work you sold, triggered at Closed Won, because the line items carry the scope. Tickets for service on existing customers, triggered at a status such as 'Needs site visit'. Most companies use both, with each job coming from one record only.
Can I use HubSpot meetings to trigger jobs?
You can, but a meeting carries a time and attendees, not a scope, a site or a price. It works for a one-person business booking quick visits; once a scope or a technician other than the salesperson is involved, start the job from a deal or ticket.
Do I need HubSpot Professional for this?
Not always: an integration app can subscribe to HubSpot webhooks without any workflow. Workflows themselves come with Professional or Enterprise hubs, and the workflow 'Send a webhook' action needs Data Hub Professional or Enterprise. Custom pipelines need Starter or above.
Should invoices be created in HubSpot or in the field service software?
Usually in the field service software, because it knows what was actually done on site (extra parts, extra hours, a changed scope). It then syncs to QuickBooks or Xero and shows the status in HubSpot. If your quoting and invoicing must stay in HubSpot, turn invoicing off in the field tool; for Xero, marketplace apps such as Cloudify's create a Xero invoice when a deal hits a set stage and sync the status back to the deal.
Will invoice numbers stay in sync across HubSpot, the field tool and Xero?
Only if one system issues the number and the others copy it. HubSpot's own invoices use the prefix INV from 1001 by default, and a finalized number can't be changed or reused, so two systems numbering independently will drift.
Can notifications go from the field tool instead of HubSpot?
Yes, and they should for anything tied to the visit: confirmation, on-the-day reminder, completion report. Marketing emails and nurture sequences stay in HubSpot.
What happens if a deal is moved back out of Closed Won?
Agree the rule at setup. A safe default is that the job stays but is flagged for the office, rather than deleted, because a technician may already be booked.

Sources

Competitor details on this page come from the vendors' own pages and documentation, checked as of November 2026. Plans and prices change, so check the vendor's current page before you decide.

See it built on your workflow

Tell us how your jobs run today. We build a demo on your stages, forms and pricing before the call.