Client portals
How do I manage ServiceChannel and Corrigo work orders in my own field service software?
Treat the client's platform as the place the work order comes from and the place the proof and the invoice go back to, and run everything in between in your own system. Pull each new work order in through the platform's API (ServiceChannel's REST API, or CorrigoPro Direct by polling or webhook) or from the dispatch email, keep the client's work order number and NTE on your job, and dispatch it to your own tech or a vendor. Then push check-in and check-out with GPS, status changes, notes and the invoice back to the platform, because the client checks and pays inside its own system, not yours.
- Keep the client's work order number as the key. Every push back to the portal needs it.
- Check-in rules are set by each client: IVR, GPS inside a radius, or the provider app. Ask before you go live.
- The NTE is a hard ceiling. ServiceChannel rejects an invoice above it; on Corrigo the NTE only rises after the customer approves your quote.
- Invoice only when the work order is in a billable status (ServiceChannel: Completed or Completed/Confirmed).
- API access is switched on by the client and the platform, not by your software vendor. Start that paperwork early.
This page is for providers who receive work from ServiceChannel or Corrigo. If you are the facility owner issuing work orders, you need the client side of these platforms instead.
Facts checked as of November 2026. Sources at the end of the page.
Step by step
How it works, step by step
The same eight steps apply on both platforms. What changes is the API call at each step and which steps each client makes mandatory.
1. Get API access switched on
On ServiceChannel, providers report check-ins and most other activity only after permissions are enabled. GPS check-in is turned on by the subscriber's ServiceChannel representative, and the provider check-in permission is enabled between one subscriber and one provider after the subscriber signs a Contractor Request Form. On CorrigoPro, an admin turns on Integration in CorrigoPro Desktop and generates OAuth client credentials; the page notes that integration mode needs an upgraded membership level.
2. Pull new work orders in
CorrigoPro says your system must poll, or listen by webhook, for work orders a Corrigo customer sends you, and create a matching work order on your side. For ServiceChannel, a provider integration reads new work orders through the API; ServiceTitan's documented integration shows new ones arriving within about two minutes. Clients that are not connected yet still send a dispatch email with the work order number, which can be read into a job instead.
3. Create the job with the client's fields
Store the client's work order number, store or location ID, trade, priority, NTE, call date and due-by time on the job, and match the store to a site you already have. Use the client's number as the reference on every message and invoice.
4. Accept or decline
Corrigo makes accept or reject a required step for every customer. On ServiceChannel, accepting is reflected as In Progress / Dispatch Confirmed and declining as Open / Declined in ServiceTitan's integration.
5. Dispatch to your tech or a vendor
This part lives only in your system. The portal does not know or care whether your own technician or a subcontractor goes. Send the vendor a cost NTE below the client's NTE so your margin is protected.
6. Push check-in and check-out
ServiceChannel has universal endpoints, POST /workorders/{workorderId}/universalCheckIn and universalCheckOut. GPS check-in needs latitude and longitude inside the radius the subscriber sets (their example is 0.5 miles), and check-in moves the work order to IN PROGRESS / ON SITE. Check-out needs a PrimaryStatus such as Completed, Incomplete, PartsOnOrder or WaitingForQuote. CorrigoPro uses PUT /api/workOrder/checkIn (allowed from Accepted or Paused, result CheckedIn) and PUT /api/workorder/checkout, where some customers also require a repair category and code, custom fields, a checklist or the equipment worked on.
7. Sync status, notes and attachments
ServiceChannel status changes use PUT /workorders/{workorderId}/status with a primary status and an optional note. CorrigoPro supports messages and documents at any point, and says your system must listen for status changes, including cancellations by the customer.
8. Invoice back into the portal
ServiceChannel accepts an invoice only when the work order is Completed or Completed/Confirmed, as a Standard or Line Item invoice depending on what the subscriber requires. Submitted invoices cannot be edited; you void in the UI and resubmit. CorrigoPro added invoice endpoints in version 4.1, including PUT /api/invoice/submit and invoice attachments.
Where it breaks
Why it goes wrong
These are the problems commercial facility maintenance companies and contractors described on our sales calls.
Two people retyping dispatch emails
A facility maintenance company with in-house technicians and hundreds of vendors had two staff whose job was to read dispatch emails and fill in the missing pieces by hand. Their old system's integrations pulled some fields and not others, so every work order was touched twice.
Check-ins that only count if done the client's way
The same company asked whether a geotagged check-in from the field app could be pushed to ServiceChannel and Corrigo, and what happens when someone checks in from the office. ServiceChannel only accepts GPS check-ins inside the subscriber's radius, so an office check-in with office coordinates fails or is flagged.
Invoices rejected over the NTE
ServiceChannel rejects an invoice above the subscriber's NTE, and the fix is manual inside ServiceChannel. A tech who finds more work and does it before the increase is approved creates an invoice that cannot be paid as written.
Hybrid crews, one portal
Commercial owners with both employees and subcontractors said vendors are scheduled differently from staff and mostly work by email. The portal still expects one check-in, one status trail and one invoice per work order, whoever went.
Work orders started before the integration
ServiceTitan's docs warn that work orders already started in ServiceChannel before setup do not sync and must be finished there. Plan a cutover date, not a big-bang switch.
Notes the client can read
Notes sync to the subscriber. An internal note about vendor cost or a difficult store manager should never sit in a field that syncs.
The options
Ways to do it
| Approach | How work orders move | Weak spot | Good for |
|---|---|---|---|
| Work inside each portal (ServiceChannel Provider, CorrigoPro app) | Techs check in by IVR or the provider app; the office updates status and invoices in each portal | Your own scheduling, vendor costs and margins live in a spreadsheet; one login per client portal | One or two portal clients, small crew |
| Dispatch email into your FSM, portal by hand | The email or PDF becomes a job; check-in, status and invoice are still entered in the portal | Double entry at the end of every job; check-in depends on the tech remembering the IVR | Clients that have not approved API access yet |
| FSM with a built-in ServiceChannel connector (ServiceTitan, BuildOps) | ServiceTitan via WorkConnect: work orders arrive as bookings, statuses and check-in sync, notes sync both ways, invoice status hourly. BuildOps lists ServiceChannel as an integrated partner with updates, photos and invoices syncing back | ServiceTitan sends an invoice once and no later changes, sends attachments once at job completion, and puts work order details in the job Summary field. Neither page mentions Corrigo | Contractors already on that FSM with mostly ServiceChannel clients |
| Your own code on the platform APIs | Your developers call ServiceChannel's REST API and CorrigoPro Direct, and map fields to your system | You maintain it per client and per API change; per-client check-in and completion rules add up | Large providers with in-house developers |
| Configurable FSM set up per client (Fieldproxy) | Dispatch emails and PDFs become jobs with the client's WO number and NTE; pushes to each portal are set up per client during onboarding | Each client's API permissions still have to be approved by the client and the platform | Best for processes that don't fit a template, set up for you: hybrid in-house and vendor teams with several portal clients |
As of November 2026, from each vendor's documentation (sources below). Integration details change; check the current docs for each client you serve.
Worked example
A worked example: one ServiceChannel work order, start to paid
Say a retail client sends a P2 plumbing work order with an NTE of $600 to a provider that uses its own techs in two states and vendors elsewhere. Made-up numbers to show where each step happens.
| Time | In your system | Pushed to the portal |
|---|---|---|
| 9:02 | Job created from the new work order: client WO number, store 0418, P2, NTE $600, due in 24 hours | Nothing yet |
| 9:05 | No in-house plumber within the store's area, so a vendor is offered the job with a cost NTE of $450 | Accepted; status In Progress / Dispatch Confirmed |
| 14:40 | Vendor opens the job link at the store; GPS is 0.1 miles from the site | GPS check-in; status IN PROGRESS / ON SITE |
| 15:30 | Vendor finds a cracked supply line beyond the scope; photos and a $380 add-on quote | Check-out as WaitingForQuote, note with the reason; quote submitted against the NTE |
| Next day | Client raises the NTE to $980; vendor's cost NTE raised to $730; vendor returns | Second check-in and check-out as Completed |
| Day 3 | Invoice of $940 built from labor and parts, under the new NTE | Line Item invoice submitted against the Completed work order |
Without the quote step, the $940 invoice is over the original $600 NTE and is rejected. Every number here is an example, not a benchmark.
Before you buy
What to check before you buy
Good signs
- Handles both ServiceChannel and Corrigo, plus email for clients that are not connected
- Keeps the client's work order number, NTE and priority as real fields, not text in a summary box
- Pushes check-in and check-out with GPS coordinates, and shows when a check-in failed
- Blocks or warns before work or an invoice goes over the NTE
- Lets you dispatch the same work order to an employee or a vendor and still sync one status trail
- Separates internal notes from notes that sync to the client
- Shows a log of every call to the portal and its response
Red flags
- A demo with a sample work order, not one from your own client
- Invoices sent once with no way to correct and resend
- Corrigo support that turns out to mean email parsing only
- No answer on who requests API access from each client
- Vendors must buy a seat or install an app to check in
In Fieldproxy
Setting it up in Fieldproxy
Fieldproxy is set up around your process, so the fields, statuses and rules below are configured with you. Names marked e.g. are examples.
Work orders in
The Document intelligence agent (/agents/document-intelligence-agent) reads ServiceChannel and Corrigo dispatch emails and work order PDFs and fills the job: client WO number (e.g. client_wo), store number, priority, NTE and due-by time, matched to the right site. Where a client has approved API access, intake can come from the platform instead.
Your own dispatch rules
The Dispatch agent (/agents/dispatch-agent) offers the job to an in-house technician by area, skills and distance, and falls back to a vendor when none is free. Vendors can work from a job link without buying a seat.
NTE on the tech's screen
The job shows a running total of labor and parts against the NTE. Going over is blocked until an increase or a quote is approved, with a status such as e.g. needs_authorization. The Watcher agent (/agents/watcher-agent) flags a job at 90% of its NTE.
Check-in and back to the portal
The technician app records GPS check-in and check-out. For clients with API access, an automation sends check-in, status changes, client-facing notes and the invoice to the portal using your provider credentials, and keeps each response on the job. Which calls are possible depends on the permissions each client grants.
Chasing vendors
Autopilot (/agents/autopilot) drafts the follow-up to a vendor that has not checked in, sent photos or sent a quote, and a person approves it before it goes.
One price per company
Office staff, technicians and vendors all work in one system. 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.
List your portal clients
For each client: ServiceChannel or Corrigo, check-in method, invoice type, completion fields they require, and whether API access is already approved.Send us real work orders
A recent work order and dispatch email from each client. We map the fields to your jobs and agree statuses on both sides.Request API access in parallel
We give you the wording for each client's permission request. Clients without access stay on email intake until it is approved.Cut over by date
New work orders go through Fieldproxy from an agreed date. Work orders already open in the portal are finished there.
FAQ
Questions people ask
- Can field service software pull work orders from ServiceChannel and Corrigo automatically?
- Yes, through each platform's API once the client and the platform enable access. CorrigoPro supports polling or webhooks; ServiceChannel has a REST API with OAuth. Until access is approved, the dispatch email can be read into a job instead.
- Can a geotagged check-in from our own app count in ServiceChannel?
- Yes, if the subscriber has GPS check-in enabled and the coordinates are inside its radius. ServiceChannel's universal check-in endpoint takes latitude and longitude and sets the work order to IN PROGRESS / ON SITE.
- What if our tech checks in from the office or has no signal?
- A GPS check-in from the wrong place is outside the radius. Use the client's IVR as the backup, and record the real arrival time; CorrigoPro allows back-dated check-ins only where the customer's settings permit it.
- How do NTE increases work on Corrigo?
- You submit a quote with PUT /api/workOrder/quoteSubmit. The NTE does not change until the customer approves, then it is set to the quote amount. A quote can be submitted once; the customer must reject it before you resubmit.
- Can we use the client's work order number as our job number?
- You should keep it on the job as its own field and search by it. Whether it is also your internal job number is your choice; every push to the portal needs the client's number either way.
- Can vendors check in without our app?
- They can use the client's IVR or provider app, which updates the portal but not your system. A job link that records GPS on arrival keeps both in step.
- Does the invoice have to match the portal's format?
- Yes. Some ServiceChannel subscribers require Line Item invoices for certain trades, and some require resolution text. Ask each client for its invoice rules before go-live.
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.
- ServiceChannel Developer: about check-in/out: https://developer.servicechannel.com/guides/checkin/about-check-in-out/
- ServiceChannel Developer: GPS check-in/out: https://developer.servicechannel.com/guides/checkin/gps-check-in-out/
- ServiceChannel Developer: check-in/out, before you start: https://developer.servicechannel.com/guides/checkin/before-you-start/
- ServiceChannel Developer: update a work order status: https://developer.servicechannel.com/guides/wo/update-wo/
- ServiceChannel Developer: about invoices: https://developer.servicechannel.com/guides/invoices/about-invoices/
- ServiceChannel Developer: invoices, before you start: https://developer.servicechannel.com/guides/invoices/before-you-start/
- ServiceChannel SCUniversity: understanding work order NTEs: https://servicechannel.atlassian.net/wiki/spaces/SCUCP/pages/622364017/Understanding+Work+Order+NTEs
- ServiceChannel SCUniversity: using the telephone (IVR) to check in and out: https://servicechannel.atlassian.net/wiki/spaces/SCUCP/pages/579764555/Using+the+Telephone+IVR+System+to+Check+In+and+Out+of+Work+Orders
- CorrigoPro Direct: scope your integration: https://developer.corrigopro.com/docs/scope-your-integration
- CorrigoPro Direct: configuration: https://developer.corrigopro.com/docs/configuration.md
- CorrigoPro Direct: starting work orders (check-in): https://developer.corrigopro.com/docs/checking-in
- CorrigoPro Direct: completing work orders: https://developer.corrigopro.com/docs/completing-work-orders
- CorrigoPro Direct: submitting quotes: https://developer.corrigopro.com/docs/submitting-a-quote.md
- CorrigoPro Direct: NTE changed webhook: https://developer.corrigopro.com/docs/nte-changed
- CorrigoPro Direct changelog: v4.1 adds invoicing support: https://developer.corrigopro.com/changelog/corrigopro-v41-adds-invoicing-support-and-more.md
- CorrigoPro app listing (App Store): https://apps.apple.com/us/app/corrigopro/id995080706
- ServiceTitan Help: integration with ServiceChannel: https://help.servicetitan.com/docs/servicetitan-integration-with-servicechannel-1
- ServiceTitan Help: manage ServiceChannel integration: https://help.servicetitan.com/docs/manage-servicechannel-integration-1
- BuildOps partner library: https://buildops.com/partner-library
Related
Keep reading
- How do facility maintenance companies dispatch in-house technicians first and fall back to vendors?
- How do I turn emailed work orders into jobs automatically?
- Can AI read a PDF work order and create the customer and job?
- Commercial HVAC service software
- What is the best field service software for a 5-10 person HVAC team?
- Cheaper ServiceTitan alternatives for small plumbing and HVAC companies, without payment processor lock-in