Service Cloud

Field Service

How to integrate IoT data with Salesforce Field Service Lightning

A reading becomes a work order when it crosses a threshold a person set, and when the asset is one you have agreed to service. Every blip is not a job.

A technician using a tablet on a work site.Service Cloud

The phone rang all morning. Each ring was a work order, and each work order was a reading that had twitched. Two technicians were dispatched to the same machine for the same fault. A third was sent to a serial number the company does not service. The sensor was doing what sensors do. The integration had no rule in front of it, so every message became a job.

People still search for Salesforce Field Service Lightning. The help page names the product in full: "Agentforce Field Service and Operations (formerly known as Field Service) gives you a powerful, highly customizable, mobile-friendly field service hub in Salesforce." IoT does not change that hub. A reading is useful when it becomes the right work order, and noise when it becomes all of them.

The work order is the documented object. "Schedule one-time or recurring work orders for customers, and add details about worker preferences, required skills, and parts." Integration means a reading that has earned a work order arrives with those details filled. It does not mean a technician is paged because a value twitched.

A threshold a person set

Pick the condition in words before you pick a pipe. Temperature above a number you can defend, for longer than a wobble. Vibration past a limit more than once in a shift. A fault code your maintainers already treat as "attend this week," not "attend in ten minutes." Write the number down. If you cannot write it, you are not ready to connect anything.

The number has to come from people who have attended the failure, not from the default that shipped with the feed. A default is usually sensitive, because a missed event looks worse in a demo than a noisy one. Your depot will live with the noise. Ask the maintainers what they already ignore, and what they wish they had heard an hour earlier. Those two lists are the threshold. Everything else is a reading you store or discard, not a job.

A person owns the threshold. When it is wrong, that person changes it. Put their name on the rule. An automatic feed with no owner will open work orders forever, and the organisation will blame the sensor. The sensor did not decide that a one-degree move was a visit. Somebody's unset default did, and nobody is allowed to touch it.

Review the rule on a cadence that matches how often the plant lies to you. A new machine family, a seasonal load, a firmware change on the asset: each can make a true threshold false. The owner reads a week of created work orders and asks which ones a dispatcher would have opened without the feed. The ones they would not have opened are the rule being too eager. Tighten it. Do not add another queue to hide them.

Suppress the repeat

The same asset, the same fault, still open, should not create a second work order and a second page. Update the open one, or wait. Two technicians for one fault is how the design announces that nobody designed it.

Say what "the same fault" means before the feed is live. The same code on the same serial number, while a work order is not completed. A related code that your maintainers treat as the same failure. Write that down too. If you leave it to the integration to decide, it will decide that every message is new, because that is the simplest code to write.

Closing the work order has to be real. A technician who cannot complete, and a status that still counts as open, should keep the suppression in force. A status that means "parcel received" or "customer notified" is not a reason to open a twin job. The open work order is the claim on that fault. A new reading is a comment on it, or nothing.

Page a person only for the class of threshold you marked as immediate. Everything else waits for the normal scheduling run. The point of the integration is fewer surprise failures, not a phone that never stops. Immediate means safety, or a stoppage you have contracted to attend now. "The chart looks bad" is not immediate. It can wait for the planner who already builds the day.

The asset under contract

The reading has to point at an asset you service. Serial number, install location, customer: whatever you already trust. If the match fails, do not create a work order for "unknown asset" and hope a dispatcher will sort the pile. Hold the reading for a person. A wrong asset match sends a skilled person to the wrong machine, which is worse than no alert.

The match fails in ordinary ways. A serial number with a space. A replacement unit that inherited the old unit's place in the building and not its identity. A sensor fitted to a machine you sold and no longer cover. A test device that was never removed from the feed. Each of these will look like a confident match or a confident job if you let the feed create first and ask later. Hold first. Create when a person, or a rule a person still owns, can say this is our asset.

Contract matters. If the warranty or the service agreement does not cover that asset, the correct result might be a quote, or nothing. A work order implies you have decided to attend. Do not let a sensor make that commercial decision because the integration was easy. Commercial coverage is a fact you already have on the asset or the account. Read it. A covered asset can become a work order. An uncovered one becomes a task for the person who sells the work, and it stays off the dispatch board.

What the work order must contain

When the rule fires, the work order should already say the required skill, the parts you expect to use, and any customer preference that changes the visit. A bare work order titled with a fault code forces the dispatcher to reconstruct the job. That reconstruction is the delay the sensor was supposed to remove.

The fault code is not a skill. Map the codes you care about to the skill that fault actually needs, the same way you would on a job a customer phoned in. If three codes all need the same ticket and the same kit, they can share a work type. If one code needs a different trade, it needs a different work type. Do not send every code to "technician" because the mapping spreadsheet was unfinished.

Set a duration from similar attended jobs, not from zero, and not from an hour because the field was mandatory. The scheduling optimizer can only be as honest as that duration. A sensor-created job with a fake hour will be slotted into a day that then slips. The optimizer accounts for skill, travel time, and location as well. A job with a blank skill and a fake hour will be offered to whoever is closest. You have automated the wrong offer.

Preferences belong on the work order even when a machine opened it. Access hours, induction, a contact who must be on site. A feed does not know them. The asset and the account do. Copy them when the work order is created. A perfectly timed alert that arrives when the site is shut, with no note to say so, still wastes the trip.

How a template carries skills, parts, tasks, and a duration that is not a guess is set out in custom work order templates. Point the feed at that template for the fault. Do not point it at a blank work order and hope the dispatcher fills the gap faster than the phone used to ring.

What a reading is allowed to do

ReadingAsset and contractOpen job for the same faultWhat happens
Inside the thresholdEitherEitherNothing. Store it if you must. Do not create a work order
Past the thresholdMatch fails, or not your contractEitherHold for a person. No dispatch
Past the thresholdYour asset, coveredAlready openUpdate the open work order. Do not page a second technician
Past the threshold, not immediateYour asset, coveredNone openCreate the work order from the template, and let ordinary scheduling take it
Past the threshold, and you classed it immediateYour asset, coveredNone openCreate the work order, then page. Skill, parts, and duration are already on it

If you cannot fill this table for a feed you are about to switch on, you are not integrating. You are forwarding mail into the dispatch queue. Switch it on only for the rows you can explain, for one family of assets, and read every work order it creates for a fortnight.

A fortnight on one family

Choose the asset family whose failures you already understand. Write the thresholds, the owner, the same-fault rule, and the template. Connect that family only. Count three things. Work orders a person would not have opened. Second work orders for a fault that was already open. Jobs whose asset or contract was wrong.

Those three counts are the design. If the first is high, the threshold is eager. If the second is not zero, suppression is missing. If the third is not zero, the match is not safe and the feed should hold, not create. Fix the rule. Then add the next family. A national switch-on, with a default of create-on-message, will fail in every depot at once, and the depots will be right to switch it off.

Keep the feed out of the scheduling optimizer's inputs except through the work order. A reading is not a skill, a territory, or a duration. Once it has created a proper work order, the optimizer can account for skill, travel time, and location the way it does for a job a person raised. Until then, the reading stays off the board. A live pin from a sensor is not a reason to drag a technician across a territory the membership does not allow.

Do not page anyone for a blip. Do not name a platform in the design until you have bought one, and do not let the purchase rewrite the table. The hub is still Agentforce Field Service and Operations. Field Service Lightning is only the name on the search. The work order is still the job. The reading earns one when a person-sized rule says so, and not before.

Sources

  1. Agentforce Field Service and Operations

Common questions

Answered, directly.

The questions this piece settles about Service Cloud, answered in full on this page.

When it crosses a threshold a person has written down, the asset is one you have agreed to service, and there is not already an open work order for the same fault. A normal reading, or a repeat of an open fault, should not create another job. If the asset match fails, hold the reading for a person. Do not create a work order titled unknown and hope the queue will sort it. A work order means you have decided to attend. A sensor must not make that commercial decision for an asset outside the contract.

This design does not pick one. Use the pipe you already have. The part that has to be right is the rule that decides a work order is justified, and the asset match that decides it is your machine. Naming a platform before those rules exist usually means you inherit its default, which is to create something on every message. Swap the pipe later if you must. Do not swap the rule for that default; this page will not name an IoT product, because the product is not the design.

Required skills, parts you expect to need, customer preferences that change the visit, and a duration taken from similar jobs you have watched. Salesforce documents those details on work orders. A fault code alone is not a job, and it is not a skill. Map the codes you care about onto a work type that already carries the ticket and the kit. A sensor-created job with a blank skill and a fake hour will be offered to whoever is closest, and the day will slip.

No. Page only the threshold you have classed as immediate, such as a safety issue or a stoppage you have contracted to attend now. Other crossings can wait for ordinary scheduling, on a work order that already has skill, parts, and duration. Paging on every blip trains people to ignore the phone. The same asset and the same open fault should update the open work order, not dispatch a second technician. Immediate is a class you mark; it is not a synonym for any value that moved.

Agentforce Field Service and Operations, formerly known as Field Service. The help page describes it as a customisable, mobile-friendly field service hub. Field Service Lightning is the older search name. The hub still schedules work orders. A reading becomes useful when it creates the right one, with the details a dispatcher would have typed, and stays noise when it creates all of them. The rename does not add a threshold; you still have to write the threshold down and name the person who may change it.

Free architect conversation

Talk to an architect, not a sales rep.

Service Cloud review. 60 seconds to brief us, and a certified architect replies within one business day.

What is the pressure in service right now?

Pick the closest fit. The review is free, and we will tell you plainly if automation is not the answer.

What is in scope on the service side?

Optional. Choose any that apply, or skip ahead.

Where does your org stand today?

Optional. A few sentences is plenty: what is working, what is stuck, and what you want to be true. Or skip ahead and tell us on the call.

Who should the architect reach?

A certified architect will reply to these details.

Takes about 30–60 seconds · No obligation · Architect replies within one business day

Protected by reCAPTCHA. Google's Privacy Policy and Terms apply.

More from Insights

Read by desk

Ten desks, one delivery team. Every piece is written by the people who do the work.