US20200210919A1 - Systems and methods for assigning tasks based on real-time conditions - Google Patents
Systems and methods for assigning tasks based on real-time conditions Download PDFInfo
- Publication number
- US20200210919A1 US20200210919A1 US16/725,904 US201916725904A US2020210919A1 US 20200210919 A1 US20200210919 A1 US 20200210919A1 US 201916725904 A US201916725904 A US 201916725904A US 2020210919 A1 US2020210919 A1 US 2020210919A1
- Authority
- US
- United States
- Prior art keywords
- task
- request
- service
- location
- processing device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims abstract description 329
- 238000012790 confirmation Methods 0.000 claims abstract description 12
- 230000008859 change Effects 0.000 claims description 39
- 230000008439 repair process Effects 0.000 claims description 33
- 238000012545 processing Methods 0.000 description 558
- 230000008569 process Effects 0.000 description 222
- 238000004891 communication Methods 0.000 description 131
- 230000015654 memory Effects 0.000 description 104
- 230000004044 response Effects 0.000 description 78
- 238000013439 planning Methods 0.000 description 50
- 238000003860 storage Methods 0.000 description 48
- 238000004458 analytical method Methods 0.000 description 43
- 238000004422 calculation algorithm Methods 0.000 description 43
- 238000005457 optimization Methods 0.000 description 34
- 230000000875 corresponding effect Effects 0.000 description 32
- 230000007613 environmental effect Effects 0.000 description 32
- 238000012384 transportation and delivery Methods 0.000 description 26
- 230000009471 action Effects 0.000 description 23
- 238000009434 installation Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 22
- 238000012423 maintenance Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 18
- 238000010801 machine learning Methods 0.000 description 17
- 238000007726 management method Methods 0.000 description 17
- 230000008520 organization Effects 0.000 description 16
- 238000013473 artificial intelligence Methods 0.000 description 13
- 238000012549 training Methods 0.000 description 12
- 238000012797 qualification Methods 0.000 description 11
- 230000003993 interaction Effects 0.000 description 10
- 230000003287 optical effect Effects 0.000 description 10
- 238000012552 review Methods 0.000 description 10
- 230000001934 delay Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 9
- 230000002776 aggregation Effects 0.000 description 8
- 238000004220 aggregation Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 8
- 238000013479 data entry Methods 0.000 description 8
- 238000010276 construction Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 7
- 230000001788 irregular Effects 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 7
- 238000013468 resource allocation Methods 0.000 description 7
- 230000005611 electricity Effects 0.000 description 6
- 238000012946 outsourcing Methods 0.000 description 6
- 230000002123 temporal effect Effects 0.000 description 6
- 230000001419 dependent effect Effects 0.000 description 5
- 238000000502 dialysis Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 230000007257 malfunction Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 5
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 241000196324 Embryophyta Species 0.000 description 3
- 244000141359 Malus pumila Species 0.000 description 3
- 235000011430 Malus pumila Nutrition 0.000 description 3
- 235000015103 Malus silvestris Nutrition 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 3
- 238000007418 data mining Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- -1 electricity Substances 0.000 description 3
- 230000036541 health Effects 0.000 description 3
- 230000009474 immediate action Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 238000003062 neural network model Methods 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 230000001902 propagating effect Effects 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 239000010865 sewage Substances 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 241000283690 Bos taurus Species 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 239000008280 blood Substances 0.000 description 2
- 210000004369 blood Anatomy 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000004567 concrete Substances 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005553 drilling Methods 0.000 description 2
- 239000003814 drug Substances 0.000 description 2
- 230000008451 emotion Effects 0.000 description 2
- 230000001976 improved effect Effects 0.000 description 2
- 238000002329 infrared spectrum Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000008093 supporting effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000002211 ultraviolet spectrum Methods 0.000 description 2
- 238000001429 visible spectrum Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- WQZGKKKJIJFFOK-GASJEMHNSA-N Glucose Natural products OC[C@H]1OC(O)[C@H](O)[C@@H](O)[C@@H]1O WQZGKKKJIJFFOK-GASJEMHNSA-N 0.000 description 1
- 208000027418 Wounds and injury Diseases 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 239000000853 adhesive Substances 0.000 description 1
- 230000001070 adhesive effect Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 208000006673 asthma Diseases 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 244000309466 calf Species 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000005345 coagulation Methods 0.000 description 1
- 230000015271 coagulation Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 229940079593 drug Drugs 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000013213 extrapolation Methods 0.000 description 1
- 239000008103 glucose Substances 0.000 description 1
- 239000003292 glue Substances 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 208000014674 injury Diseases 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000002262 irrigation Effects 0.000 description 1
- 238000003973 irrigation Methods 0.000 description 1
- 244000144972 livestock Species 0.000 description 1
- 238000011068 loading method Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 229940127554 medical product Drugs 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 238000009428 plumbing Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 239000003507 refrigerant Substances 0.000 description 1
- 239000011150 reinforced concrete Substances 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000002689 soil Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 238000002255 vaccination Methods 0.000 description 1
- 229960005486 vaccine Drugs 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0201—Market modelling; Market analysis; Collecting market data
- G06Q30/0204—Market segmentation
- G06Q30/0205—Location or geographical consideration
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3407—Route searching; Route guidance specially adapted for specific applications
- G01C21/343—Calculating itineraries, i.e. routes leading from a starting point to a series of categorical destinations using a global route restraint, round trips, touristic trips
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/045—Explanation of inference; Explainable artificial intelligence [XAI]; Interpretable artificial intelligence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/02—Reservations, e.g. for tickets, services or events
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06311—Scheduling, planning or task assignment for a person or group
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06311—Scheduling, planning or task assignment for a person or group
- G06Q10/063112—Skill-based matching of a person or a group to a task
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06311—Scheduling, planning or task assignment for a person or group
- G06Q10/063114—Status monitoring or status determination for a person or group
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06311—Scheduling, planning or task assignment for a person or group
- G06Q10/063116—Schedule adjustment for a person or group
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06311—Scheduling, planning or task assignment for a person or group
- G06Q10/063118—Staff planning in a project environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06312—Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06315—Needs-based resource requirements planning or analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06316—Sequencing of tasks or work
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/083—Shipping
- G06Q10/0835—Relationships between shipper or supplier and carriers
- G06Q10/08355—Routing methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/083—Shipping
- G06Q10/0836—Recipient pick-ups
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/087—Inventory or stock management, e.g. order filling, procurement or balancing against orders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/109—Time management, e.g. calendars, reminders, meetings or time accounting
- G06Q10/1093—Calendar-based scheduling for persons or groups
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/109—Time management, e.g. calendars, reminders, meetings or time accounting
- G06Q10/1093—Calendar-based scheduling for persons or groups
- G06Q10/1095—Meeting or appointment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/109—Time management, e.g. calendars, reminders, meetings or time accounting
- G06Q10/1093—Calendar-based scheduling for persons or groups
- G06Q10/1097—Task assignment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/20—Administration of product repair or maintenance
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3453—Special cost functions, i.e. other than distance or default speed limit of road segments
- G01C21/3492—Special cost functions, i.e. other than distance or default speed limit of road segments employing speed data or traffic data, e.g. real-time or historical
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/042—Knowledge-based neural networks; Logical representations of neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
Definitions
- the present disclosure relates generally to the field of managing service organizations. More specifically, the present disclosure relates to systems, methods, and devices for providing services such as services provided by professionals or experts in the field.
- One aspect of process management involves matching available resources to the tasks to be performed by or within an organization.
- the main resources are the service professionals (such as field technicians, help desk or customer service operators, insurance assessors, business consultants, etc.) and their available work hours.
- Other resources may include vehicles, tools and equipment, spare parts, office space (e.g., meeting rooms), etc.
- the service tasks are usually initiated by customer requests, and typically cannot be precisely predicted on the micro-level, as there is no way to know when a customer will call and request assistance.
- Service providers thus face the challenge of accurately managing the size, mix of skills, and regional allocation of their resources. Erring by allocating too few resources results in failing to meet customer expectations, risking losing customers, and sometimes requiring the service organization to pay contract-specified penalties. Erring by allocating too many resources results in spending excessive money on resources that are not fully utilized. Optimizing the schedule of tasks can increase productivity and revenue for the service provider.
- the disclosed embodiments are directed to providing new and improved ways for scheduling tasks to field professionals that overcome problems and inefficiencies in existing systems.
- a disclosed system includes a network interface and a processor connectable to the network interface.
- the processor determines real-time schedule information for a set of field professionals independent from any schedule update received from the field professionals via the network interface.
- the processor also determines, from the real-time schedule information associated with a first field professional, existence of a delay associated with one or more tasks assigned to the first field professional.
- the processor further determines a likelihood that the delay will interfere with the first field professional arriving to an identified location associated with an assigned task at a scheduled time, and determines from real-time schedule information associated with a second field professional whether the second field professional can arrive to the identified location associated with the task assigned to the first field professional at the scheduled time. Thereafter, the processor reassigns the task assigned to the first field professional based on the real-time schedule information associated with the first field professional and the real-time schedule information associated with the second field professional. The processor also provides to at least one of the first field professional and the second field professional, using the network interface, information reflecting the reassignment of the task.
- an additional system for scheduling tasks to field professionals based on real-time conditions includes a network interface and a processor connectable to the network interface.
- the processor is configured to: receive, from the network interface, progress information for a set of field professionals; determine a delay associated with one or more tasks assigned to a first field professional; determine a likelihood that the delay will interfere with the first field professional arriving to an identified location associated with an assigned task at a scheduled time; reassign the assigned task to a second field professional based on the determined likelihood that the delay will interfere with the first field professional arriving to the identified location associated with the assigned task at the scheduled time; and provide the second field professional, using the network interface, information reflecting the reassignment.
- a disclosed system includes a network interface and a processor connectable to the network interface.
- the processor receives a set of requests reflecting demand for on-site services, wherein the set of requests is associated with a number of task types.
- the processor also receives availability data indicative of an availability of a plurality of field professionals to perform on-site services and skills data indicative of capabilities of each of the plurality of field professionals with respect to the task types.
- the processor further obtains at least one desired scheduling weight for the number of task types, and generates a schedule for the plurality of field professionals based on the demand for on-site services, the availability data, and the skills data.
- generating the schedule for the plurality of field professionals comprises including a first task in the schedule when the first task conforms with the at least one desired scheduling weight and excluding a second task from the schedule when the second task does not conform with the at least one desired scheduling weight.
- a method for scheduling tasks to field professionals includes: receiving a set of requests reflecting demand for on-site services, wherein the set of requests is associated with a number of task types; receiving availability data indicative of an availability of a plurality of field professionals to perform on-site services; receiving skills data indicative of capabilities of each of the plurality of field professionals with respect to the task types; obtaining at least one desired scheduling weight for the number of task types; generating a schedule for the plurality of field professionals based on the demand for on-site services, the availability data, and the skills data; and wherein generating the schedule for the plurality of field professionals comprises including a first task in the schedule when the first task conforms with the at least one desired scheduling weight and excluding a second task from the schedule when the second task does not conform with the at least one desired scheduling weight.
- a disclosed system includes a memory configured to store historical data associated with past demand for field professionals, a network interface, and a processor connectable to the network interface.
- the processor is receives a set of requests reflecting a current demand for on-site services, predicts imminent demand for on-site services based on the historical data, generates a schedule for a set of field professionals based on the current demand for on-site services, and reserves in the schedule availability based on the predicted imminent demand for on-site services.
- an additional system for using predicted demand to optimize task scheduling includes a memory configured to store historical data associated with past demand for field professionals, a network interface, and a processor connectable to the network interface.
- the processor receives a set of requests for on-site service, wherein the set of requests are associated with a number of task types and each request is associated with a different location.
- the processor also uses the historical data to identify service zones in the geographical area associated with predicted demand for specific task types.
- the processor further determines, based on the requests, a set of daily schedules of tasks for a set of field professionals, and, for a certain daily schedule with a task associated with a location in proximity to an identified service zone, reserve capacity to account for predicted demand. Thereafter, the processor provides, using the network interface, directional instructions to a field professional assigned to the certain daily schedule to a location in proximity to a service zone.
- a method includes: storing in a database a plurality of records reflecting characteristics associated with completing a set of technical services, wherein information in each record is derived from historical experience of completing each of the technical services; receiving a request for a new technical service associated with a location; and assigning a field professional to perform the new service having determined from information in the database a likelihood that the field professional will complete the new technical service in a single on-site visit at the location.
- an additional system for scheduling technical services to be completed in a single visit includes a memory configured to store information including details of previously completed tasks, a network interface, and a processor connectable to the network interface.
- the processor receives a request for an on-site service at a selected location.
- the processor also identifies a set of attributes associated with the requested on-site service; and uses the stored information and the set of attributes to identify at least one requirement for completing the on-site service in a single visit.
- the processor further assigns a field professional to a task of providing the on-site service, wherein the assignment satisfies the identified at least one requirement. Thereafter, the processor may provide, using the network interface, information for directing the field professional to the selected location.
- a disclosed system includes a network interface, a memory, and a processor connectable to the network interface.
- the memory is configured to store details of previously received requests for services.
- the processor receives, from the network interface, a set of requests for services; and schedule a set of tasks based on scheduling constraints, wherein each task is expected to be completed within a period of time from when a corresponding request was received.
- the processor also determines a common cause why at least two requests were not scheduled with tasks expected to be completed within the period of time, wherein the common cause is associated with at least one of the scheduling constraints; and enable reducing the number of future unscheduled tasks based on the determination.
- an additional system for identifying causes for unscheduled tasks includes system that may include a network interface, a memory, and a processor connectable to the network interface.
- the memory is configured to store details of previously received requests for services.
- the processor may be configured to access the memory and to receive, from the network interface, a set of requests for services; schedule a set of tasks based on scheduling constraints. If the number of requests that were not scheduled with tasks expected to be completed within the period of time is greater than a predetermined threshold, the system may initiate an action, such as issuing a warning or automatically changing a scheduling constraint.
- a disclosed system includes a memory, network interface, and a processor connectable to the network interface.
- the processor receives a set of first requests for on-site assistance from a first set of users and receives a set of second requests for remote assistance from a second set of users. After receiving the first and second sets of requests, the processor assigns a plurality of location-based tasks associated with first requests to one or more field professional.
- the processor may then receive real-time information associated with the one or more field professional including current location and determine based on the real-time information whether the one or more field professional can complete a location-agnostic task associated with a second request after completing a first location-based task and before starting a second location-based task. Subsequently, the processor assigns the location-agnostic task to the one or more field professional.
- an additional system for scheduling for location-based and location-agnostic tasks includes a memory, network interface, and a processor connectable to the network interface.
- the processor receives an urgency level of a location-agnostic task associated with a second request and to obtain information identifying one or more field professional as more suitable to provide the location-agnostic task than one or more second field professional.
- the information may consist of skills data, past experience, and ranking.
- the processor instructs the one or more field professional to initiate the location-agnostic task before or after driving to a location associated with a location-based task.
- a disclosed system includes a memory, network interface, and a processor connectable to the network interface.
- the processor receives a request to book a new appointment for a service.
- the processor outputs a first booking response for the request, wherein the first booking response is determined using a multi-route model.
- the multi-route model is configured to determine booking responses in different ways.
- the processor verifies the first booking response based on a second booking response determined using the multi-route model.
- an additional system for enabling a multi-route process for appointment booking includes a memory, network interface, and a processor connectable to the network interface.
- the processor receives a user refusal of a first offered appointment time.
- the processor then contacts the user and offers a first alternative appointment time determined by a first scheduling model, or a second alternative appointment time determined by a second schedule model.
- the processor may also be configured to attempt to change an existing assignment of a field professional to meet the first proposed time.
- a disclosed method includes receiving a request to book a new appointment for a service, the service being expected to be completed within a time period; identifying a first possible time slot and a subsequent second possible time slot for the new appointment within the time period; calculating a first scheduling cost associated with the first possible time slot and a second scheduling cost associated with the second possible time slot and enabling selection of the second possible time slot when it is determined that both the first scheduling cost and the second scheduling cost are below a scheduling cost threshold; and outputting a no-available-time-slot notification when is determined that both the first scheduling cost and the second scheduling cost are above the scheduling cost threshold.
- a system for scheduling of tasks to field professionals includes a network interface, a memory, and a processor connectable to the network interface.
- the processor estimates driving durations necessary to conduct an appointment.
- the processor also offers a proposed time associated with a second possible time slot later than the first possible time slot if the second driving duration is smaller than the first driving duration.
- the processor may also be configured to output a no-available-time-slot notification if the first driving duration and the second driving duration are greater than a driving duration threshold.
- a disclosed system includes a network interface, a memory, and a processor connectable to the network interface.
- the processor receives a request from a user for an on-site service.
- the processor also identifies a set of possible time slots for providing the on-site service based on a schedule of a set of field professionals.
- the processor retrieves information indicative of an availability of the user to accept the on-site service.
- the processor also determines a subset of possible time slots for providing the on-site service based on the retrieved information indicative of an availability of the user. Further, the processor may propose a time for providing the on-site service based on a time slot selected form the subset of possible time slots.
- an additional system for scheduling of tasks for field professionals based on users' profile includes a network interface, a memory, and a processor connectable to the network interface.
- the processor receives from a user a request for a service.
- the processor also identifies a first possible time slot for providing the service associated with a first field professional and a second possible time slot later than the first possible time slot, wherein the second possible time slot is associated with a second field professional.
- the processor may also retrieve information indicative of the availability of the user to accept the service, Finally, the processor proposes a time associated with the second possible time slot later than the first possible time slot when the retrieved information suggests that the user will not be able to accept the service during the first time slot.
- a disclosed system includes a network interface, a memory, and a processor connectable to the network interface.
- the processor receives a request from a user for an on-site service associated with a location.
- Information reflecting an assignment is transmitted to a field professional. While the field professional is at the location, the field professional may, using a mobile device for example, send an indication that an additional visit is required to complete the on-site service.
- a schedule of the field professional is accessed to identify an available time slot in the future. A proposed time for the additional visit associated with the identified time slot is then provided.
- a system for scheduling of additional appointments when a user declines a first time slot includes a network interface, a memory, and a processor connectable to the network interface.
- the processor receives a request from a user for an on-site service associated with a location and identify a plurality of available time slots. If, after the plurality of available time slots are provided to the user, the user does not select one of the plurality of available time slots, additional information is retrieved indicative of an availability of the user. A subset of the plurality of time slots is determined based on the availability of the user. This subset is then provided to the user.
- a disclosed system includes a network interface, a memory, and a processor connectable to the network interface.
- the processor receives a request from a user for an on-site service associated with a location.
- At least one field professional is assigned to at least one task of providing the at least one on-site service at the location.
- data is obtained associated with the service, including user feedback.
- the processor retrieves information including data associated with the earlier service from memory.
- a field professional is then assigned to perform the additional service based on the retrieved information.
- a system for assigning a field professional to perform additional service based on data associated with a prior service includes a network interface, a memory, and a processor connectable to the network interface.
- the processor is configured to receive data associated with a service.
- the data may include recorded interactions between an employee and a user, feedback from a user after service is performed, metadata indicating service time associated with a field professional, social network posts by a user, and data from field professionals. The data may then be evaluated to determine a level of satisfaction.
- a disclosed system includes at least one memory configured to store data associated with an optimization engine, a network interface, and a processor.
- the processor periodically receives from a remote server data associated with a native scheduling engine. Then, the processor processes in a stateless manner the data received periodically from the remote server using the optimization engine to update a prediction model. Thereafter, the processor transmits information associated with the updated prediction model to the remote server for enabling improvement of the native scheduling engine.
- a disclosed system includes at least one memory configured to store data associated with scheduled tasks, a network interface, and a processor.
- the processor receives a plurality of requests for on-site service from a plurality of users, wherein the requests are associated with a plurality of locations.
- the processor also schedules a set of tasks from the plurality of requests using a native scheduling engine.
- the processor updates the native scheduling engine based on information received from a remote server, and uses the native scheduling engine on the previously scheduled set of tasks to identify a task scheduled in an unoptimized manner. Thereafter, the processor causes a schedule change associated with the identified task.
- a disclosed system includes a network interface and a processor.
- the processor provides a field professional with information about a daily schedule of assigned tasks associated with a set of requests for on-site services.
- the processor also receives real-time information reflecting a likelihood the field professional will complete the daily schedule of assigned tasks.
- the processor may determine, from the real-time information, existence of an unplanned event likely to interfere with the field professional completing at least one task from the daily schedule. Thereafter, the processor also presents a plurality of optional tasks to the field professional based on the determination. Upon detecting a selection of one of the plurality of optional tasks, the processor assigns the field professional to the selected task and unassign the at least one task.
- a disclosed system includes memory configured to store historical data associated with assignments of tasks for a plurality of field professionals when windows of opportunity are identified, a network interface, and a processor.
- the processor receives a set of requests for on-site service from a plurality of users, wherein each request is associated with a different location.
- the processor also receives real-time information about a progress of a field professional assigned to a set of tasks associated with a subset of requests.
- the processor may dynamically determine a window of opportunity to assign an additional task to the field professional and may identify a plurality of optional tasks that the field professional is determined to be able to complete during the window of opportunity. Thereafter, the processor automatically selects one of the optional tasks for assignment to the field professional based on the historical data; and assigns the field professional to the selected task.
- a disclosed system includes a processor connectable to a network interface.
- the processor receives a first request for an on-site service; the first request includes information identifying a location associated with a customer.
- the processor also schedules a task associated with the first request to be performed by a field professional on a first scheduled date.
- the processor may receive a second request from a connected device for an on-site service.
- the second request may have an associated urgency level determined from information received from the connected device.
- the processor may further determine a time period that corresponds with the associated urgency level of the on-site service for the connected device and schedule a task associated with the second request to be performed by the field professional or another field profession on a second scheduled date based on the associated urgency level.
- the first scheduled date and the second scheduled date may be the same date or different dates.
- the processor may also receive confirmation that the task associated with the first request and the task associated with the second request have been completed.
- an additional system for scheduling services to customers and connected devices includes a network interface and a processor connectable to the network interface.
- the processor receives a first request for an on-site service; the first request includes information identifying a location associated with a customer.
- the processor schedules a task associated with the first request to be performed by a field professional on a first scheduled date.
- the processor may also receive a second request from a connected device for an on-site service at a second location in proximity to the first location.
- the on-site service for the connected device may have an associated urgency level.
- the processor may determine a time period that corresponds with the associated urgency level of the on-site service for the connected device, and determine, based on the time period, that the on-site service for the connected device can be scheduled at the certain date. Thereafter, the processor assigns a single field professional to provide the on-site services in the first location and in the second location at the certain date.
- a disclosed system includes a network interface and a processor connectable to the network interface.
- the processor receives a set of requests for on-site services, wherein the on-site services of at least some of the requests require parts, for example replacement parts.
- the processor also assigns a set of tasks corresponding with the set of requests to a field professional.
- the processor determines a set of parts the field professional is likely to require to complete the assigned set of tasks, and determines that the field professional needs an additional part not currently in the field professional's inventory to complete the set of tasks. Thereafter, the processor may schedule a task for delivery in the field of the at least one additional part to the field professional.
- an additional system for scheduling parts delivery includes a network interface and a processor connectable to the network interface.
- the processor receives a set of requests for on-site services, wherein the on-site services of at least some of the requests require parts.
- the processor further schedules a set of tasks corresponding with the set of requests to a field professional.
- the processor may also provide data indicative of expected parts that the field professional would need for completion of the set of tasks.
- the processor receives from the field professional, while the field professional is at a location associated with a current task, a request for at least one additional part. Thereafter, the processor schedules a task for delivery in the field of the requested at least one additional part to the field professional.
- non-transitory computer-readable storage media may store program instructions, which are executed by at least one processing device and perform any of the methods described herein.
- FIG. 1 is a schematic illustration of an example system for scheduling tasks to field professionals, consistent with the present disclosure
- FIG. 2 is a block diagram that illustrates some of the components the system of FIG. 1 , consistent with the present disclosure
- FIG. 3A and FIG. 3B are schematic maps used to illustrate an example of the daily schedule of tasks of two field professionals, consistent with the present disclosure
- FIG. 4 is a schematic illustration of an example system, consistent with the present disclosure.
- FIG. 5 is a schematic illustration of an example logical architectural model for implementing embodiments of the present disclosure
- FIG. 6A is a flowchart of an example process for task scheduling based on real-time conditions, consistent with the present disclosure
- FIG. 6B is a diagram of example planned and actual schedules of field professionals, consistent with the present disclosure.
- FIG. 7A is a flowchart of an example process for scheduling tasks to field professionals according to desired scheduling weights, consistent with the present disclosure
- FIG. 7B is a flowchart of another example process for scheduling tasks to field professionals according to desired scheduling weights, consistent with the present disclosure
- FIG. 7C is a diagram of an example schedule for several field professionals, consistent with the present disclosure.
- FIG. 8A is a flowchart of an example process for scheduling tasks to field professionals based on predicted demand, consistent with the present disclosure
- FIG. 8B is a diagram of a timeline reflecting an example schedule associated with tasks, consistent with the present disclosure.
- FIG. 8C is a diagram of a map showing example service zones associated with on-site services, consistent with the present disclosure.
- FIG. 8D and FIG. 8E are flowcharts of another example processes for scheduling tasks to field professionals based on predicted demand, consistent with the present disclosure
- FIG. 9A is a flowchart of an example process for scheduling technical services to field professionals to be completed in a single visit, consistent with the present disclosure
- FIG. 9B is a flowchart of another example process for scheduling technical services to field professionals to be completed in a single visit, consistent with the present disclosure
- FIG. 10 is a diagram that illustrates a scheduling engine that receives requests, applies constraints, and schedules tasks, consistent with the present disclosure
- FIG. 11 is a flowchart showing an exemplary process for reducing the number of future unscheduled tasks, consistent with the present disclosure
- FIG. 12 is a flowchart showing a process for scheduling tasks and initiating an action based on the number of unscheduled tasks, consistent with the present disclosure
- FIG. 13 is a flowchart showing an exemplary process for assigning location-agnostic task to one or more field professionals, consistent with the present disclosure
- FIG. 14 is a diagram showing a planned field professional schedule modified by observed traffic delays, consistent with the present disclosure.
- FIG. 15A and FIG. 15B are diagrams showing assignment of a location-agnostic task and reassignment of an additional location-based task between field professionals, consistent with the present disclosure
- FIG. 16 is a flowchart showing an exemplary process for a multi-route model for appointment booking, consistent with the present disclosure
- FIG. 17A and FIG. 17B show an example flowchart for determining booking responses and initiating actions in response, consistent with the present disclosure
- FIG. 18 is a flowchart showing another exemplary process for a multi-route model for appointment booking, consistent with the present disclosure
- FIG. 19A and FIG. 19B show an example flowchart for offering appointment times to a user, consistent with the present disclosure
- FIG. 20 is a flowchart showing an exemplary process for offering times for service based on system considerations, consistent with the present disclosure
- FIG. 21 is a flowchart showing an exemplary process for offering times for service based on driving duration, consistent with the present disclosure
- FIG. 22 is a flowchart showing an exemplary process for providing a user a proposed time associated with the second possible time slot or a first possible time slot, consistent with the present disclosure
- FIG. 23 is a flowchart showing an exemplary process for offering times for service based on user availability, consistent with the present disclosure
- FIG. 24 is a flowchart for checking user availability information and updating a proposed time, consistent with the present disclosure
- FIG. 25 is a flowchart showing an exemplary process for providing a user alternative possible time slot, consistent with the present disclosure
- FIG. 26 is a flowchart showing an exemplary process for offering times for an additional visit to a location, consistent with the present disclosure
- FIG. 27 is a flowchart for providing proposed time slots based on information indicative of an availability of a user, consistent with the present disclosure
- FIG. 28 is a flowchart showing an exemplary process for assigning a field professional to perform additional services after performing at least one on-site service, consistent with the present disclosure
- FIG. 29 is a diagram showing types of data associated with a service provided by a field professional, consistent with the present disclosure.
- FIG. 30 is a flowchart for assigning a field professional based on satisfaction level and availability of the user, consistent with the present disclosure
- FIG. 31 is a flowchart for suggesting and accepting a suggestion for a field professional, consistent with the present disclosure
- FIG. 32 is a bar graph showing a typical task duration distribution, consistent with the present disclosure.
- FIG. 33 is a schematic illustration of a scheduling system that includes a central server and local servers, consistent with the present disclosure
- FIG. 34 is a message flow diagram showing example messages exchanged between different elements of the scheduling system of FIG. 33 ;
- FIG. 35 is a diagram showing two schedules of field professionals scheduled using different versions of scheduling engines, consistent with the present disclosure.
- FIG. 36 is a flowchart showing an exemplary process for changing the schedule, consistent with the present disclosure
- FIG. 37 is a flowchart showing an exemplary process for updating a native scheduling engine of a local server, consistent with the present disclosure
- FIG. 38 is a flowchart showing an exemplary process for scheduling tasks using a data from a central server, consistent with the present disclosure
- FIG. 39A and FIG. 39B are diagrams showing of planned timelines of a field professional and actual timelines of the field professional, consistent with the present disclosure
- FIG. 40A and FIG. 40B are schematic diagram showing two graphical user interfaces for a field professional, consistent with the present disclosure
- FIG. 41 is a is a block chart illustrating an exemplary embodiment of a memory containing software modules, consistent with the present disclosure
- FIG. 42 is a flowchart showing a first exemplary process for assigning tasks based on real-time information, consistent with the present disclosure
- FIG. 43 is a flowchart showing a second exemplary process for assigning tasks based on real-time information, consistent with the present disclosure
- FIG. 44 is a timeline showing an exemplary process for scheduling on-site services to connected devices, consistent with the present disclosure
- FIG. 45 is a schematic map showing locations of scheduled on-site services for connected devices and locations of scheduled on-site services for human customers, consistent with the present disclosure
- FIG. 46 is a flowchart showing an exemplary process for scheduling on-site services for connected devices and human customers, consistent with the present disclosure
- FIG. 47 is a diagram showing a field professional's usage of parts throughout a workday, consistent with the present disclosure.
- FIG. 48 is a schematic map showing possible parts delivery points along a travel path of a field professional, consistent with the present disclosure
- FIG. 49A is a flowchart showing an exemplary process for scheduling parts delivery, consistent with a disclosed embodiment.
- FIG. 49B is a flowchart showing another exemplary process for scheduling parts delivery, consistent with a disclosed embodiment.
- the present disclosure is directed to systems and methods for distributing resources in the field, including professionals, engineers, agents, and the like.
- field professional refers, for example, to a trained and/or qualified individual who provides services (often, expert) at a location or worksite.
- field professionals may be certified technicians who are trained to install, replace, or repair electrical equipment.
- field professionals may be individuals who install cable or run telephone lines into residences or business establishments.
- field professionals may be individuals who are dispatched for preventative maintenance and repair.
- property maintenance field professionals may be individuals who are dispatched for landscaping, irrigation, and home and office cleaning.
- field professionals may be individuals who have the expertise and equipment to investigate units in residential, commercial and industrial environments.
- field professionals may be individuals who provide in-home care for elderly or disabled.
- field professionals may be individuals who are dispatched to investigate and repair suspected leaks.
- the term “and/or” refers to and encompasses any and all possible combinations of one or more of the associated listed items, as well as the lack of combinations when interpreted in the alternative (“or”).
- systems and methods are used to schedule tasks to one or more field professionals.
- the term “scheduling tasks” is used herein to refer, for example, to a process for determining an order (e.g., chronological order) for a set of tasks a field professional performs.
- the tasks may be associated with requested services and require a field professional to travel to different locations.
- There are different types of scheduled tasks for example, installing, replacing, or repairing objects, and each task type may require a different skill set.
- some scheduled tasks may be location-based tasks that require the field professional to visit a customer's location, for example, business or residence, and some tasks may be location-agnostic tasks that do not require the field professional to visit a customer's location. Location-agnostic tasks may be viewed as support sessions that a technician can perform remote from the customer place.
- a system consistent with the present disclosure is configured to manage a number of field professionals (e.g., more than 50 field professionals, more than 250 field professionals, more than 750 field professionals), and the term “scheduling tasks” may also include selecting which field professional will be assigned to each task. In some embodiments, scheduling tasks may include generating a daily schedule for each field professional.
- the system may receive one or more requests for technical services.
- the term “request” includes, for example, an indication that a service (for example, a technical service) is needed.
- the request may be initiated by a customer and received via a telephone call, an email, a support chat, a text message, or any form of communication.
- the request may be initiated by device (for example, a connected device that can sense the need for a service and communicate that need to a service provider, sometimes referred to as an “IoT device”).
- the request may include information identifying the location where the technical service is requested (e.g., an address).
- system 100 may represent a computer-based system that may include computer system components, desktop computers, workstations, tablets, handheld computing devices, memory devices, and/or internal network(s) connecting the components.
- System 100 may include or be connected to various network computing resources (e.g., servers, routers, switches, network connections, storage devices, etc.) necessary to support the services provided by system 100 .
- system 100 may include a customer service unit 120 configured to receive a set of requests for on-site technical assistance from users 130 and/or directly from IoT devices 140 .
- Customer service unit 120 may also schedule appointments with field professionals 110 for providing the on-site service based on the availability of with field professionals 110 and system constraints.
- system 100 may include a task scheduling unit 150 for processing the received requests in view of the existing schedule of tasks and provide recommendations for appointments that enable greater optimization of scheduling all the field professionals as a whole.
- system 100 may provide service provider 160 statistics based on an analysis of information reflective of the service performances.
- Network 170 may facilitate communications and data exchange between different system components and the different entities associated with system 100 .
- task scheduling unit 150 may include a server 152 and a database 154 .
- server 152 may be a cloud server that processes request received directly (or indirectly) from one or more users 130 and determine, based on the requests, a set of daily schedules of tasks for field professionals 110 .
- the term “cloud server” refers to a computer platform that provides services via a network, such as the Internet.
- server 152 may use virtual machines that may not correspond to individual hardware. For example, computational and/or storage capabilities may be implemented by allocating appropriate portions of desirable computation/storage power from a scalable repository, such as a data center or a distributed computing environment.
- server 152 may implement the methods described herein using customized hard-wired logic, one or more Application Specific Integrated Circuits (ASICs) or Field Programmable Gate Arrays (FPGAs), firmware, and/or program logic which, in combination with the computer system, cause server 152 to be a special-purpose machine.
- ASICs Application Specific Integrated Circuits
- FPGAs Field Programmable Gate Arrays
- server 152 may be coupled to one or more physical or virtual storage devices such as database 154 .
- Server 152 may access database 154 to determine, for example, the availability of field professionals 110 and to use historical data to predict factors that may affect the completion of tasks.
- Database 154 may utilize a volatile or non-volatile, magnetic, semiconductor, tape, optical, removable, non-removable, or other type of storage device or tangible or non-transitory computer-readable medium.
- Database 154 may also be part of server 152 or separate from server 152 as shown. When database 154 is not part of server 152 , for example, server 152 may exchange data with database 154 via a communication link as shown.
- Database 154 may include one or more memory devices that store data and instructions used to perform one or more features of the disclosed embodiments.
- database 154 may include any suitable databases, ranging from small databases hosted on a workstation to large databases distributed among data centers.
- Database 154 may also include any combination of one or more databases controlled by memory controller devices (e.g., server(s), etc.) or software.
- database 154 may include document management systems, Microsoft SQL databases, Share Point databases, OracleTM databases, SybaseTM databases, other relational databases, or non-relational databases, such as mongoDBTM and others.
- task scheduling unit 150 may exchange data with a variety of communication devices 180 associated with the different entities associated with system 100 .
- the term “communication device” is intended to include all possible types of devices capable of exchanging data using communications network 170 .
- the communication device may include a smartphone, a tablet, a mobile station, a personal digital assistant, a desktop, a laptop, an IoT device (e.g., IoT device 140 ), a dedicated terminal, and any other device that enables data communication.
- task scheduling unit 150 may provide to a field professional communication device 180 A information reflecting the assignment of tasks and receive progress information derived at least partially from a location circuit of communication device 180 A.
- task scheduling unit 150 may present to a customer service communication device 1808 possible time slots for scheduling new technical services and receive a selection of appointments.
- task scheduling unit 150 may transmit to a user communication device 180 C updates about an oncoming technical service and receive feedback about previously completed tasks.
- task scheduling unit 150 may present a service provider communication device 180 D a recommendation for reducing the number of future unscheduled tasks and receive a desired scheduling weight for different task types.
- communications network 170 may be any type of network (including infrastructure) that supports communications, exchanges information, and/or facilitates the exchange of information between the components of system 100 .
- communications network 170 may include or be part of the Internet, a Local Area Network, wireless network (e.g., a Wi-Fi/302.11 network), or other suitable connections.
- one or more components of system 100 may communicate directly through dedicated communication links, such as, for example, a telephone network, an extranet, an intranet, the Internet, satellite communications, off-line communications, wireless communications, transponder communications, a local area network (LAN), a wide area network (WAN), a virtual private network (VPN), and so forth.
- LAN local area network
- WAN wide area network
- VPN virtual private network
- task scheduling unit 150 may include a set of servers 152 , with each server 152 hosting a certain type of service.
- a first server may host a native scheduling engine for scheduling, and a second server may compare in a stateless manner the data associated with the scheduled tasks using an optimization engine to detect if the native scheduling engine scheduled tasks in an unoptimized manner.
- FIG. 2 is a block diagram of example configurations of server 152 and communication device 180 .
- both server 152 and communication device 180 includes a bus 200 (or other communication mechanism) that interconnects subsystems and components for transferring information within server 152 and/or communication device 180 .
- bus 200 may interconnect a processing device 202 , a memory interface 204 , a network interface 206 , and a peripherals interface 208 connected to I/O system 210 .
- Processing device 202 may include at least one processor configured to execute computer programs, applications, methods, processes, or other software to perform embodiments described in the present disclosure.
- the processing device may include one or more integrated circuits, microchips, microcontrollers, microprocessors, all or part of a central processing unit (CPU), graphics processing unit (GPU), digital signal processor (DSP), field programmable gate array (FPGA), or other circuits suitable for executing instructions or performing logic operations.
- the processing device may include at least one processor configured to perform functions of the disclosed methods such as a microprocessor manufactured by IntelTM.
- the processing device may include a single core or multiple core processors executing parallel processes simultaneously.
- the processing device may be a single core processor configured with virtual processing technologies.
- the processing device may implement virtual machine technologies or other technologies to provide the ability to execute, control, run, manipulate, store, etc., multiple software processes, applications, programs, etc.
- the processing device may include a multiple-core processor arrangement (e.g., dual, quad core, etc.) configured to provide parallel processing functionalities to allow a device associated with the processing device to execute multiple processes simultaneously. It is appreciated that other types of processor arrangements could be implemented to provide the capabilities disclosed herein.
- processing device 202 may use memory interface 204 to access data and a software product stored on a memory device or a non-transitory computer-readable medium.
- server 152 may use memory interface 204 to access database 154 .
- a non-transitory computer-readable storage medium refers to any type of physical memory on which information or data readable by at least one processor can be stored.
- RAM random access memory
- ROM read-only memory
- volatile memory nonvolatile memory
- hard drives CD ROMs, DVDs, flash drives, disks, any other optical data storage medium, any physical medium with patterns of holes
- RAM random access memory
- PROM read-only memory
- EPROM EPROM
- FLASH-EPROM FLASH-EPROM or any other flash memory
- NVRAM NVRAM
- cache a register, any other memory chip or cartridge, and networked versions of the same.
- memory and “computer-readable storage medium” may refer to multiple structures, such as a plurality of memories or computer-readable storage mediums located within communication device 180 , server 152 , or at a remote location. Additionally, one or more computer-readable storage mediums can be utilized in implementing a computer-implemented method.
- computer-readable storage medium should be understood to include tangible items and exclude carrier waves and transient signals.
- Both communication device 180 and server 152 may include network interface 206 coupled to bus 200 .
- Network interface 206 may provide a two-way data communication to a network, such as network 170 .
- network interface 206 may include an integrated services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line.
- ISDN integrated services digital network
- network interface 206 may include a local area network (LAN) card to provide a data communication connection to a compatible LAN.
- LAN local area network
- network interface 206 may include an Ethernet port connected to radio frequency receivers and transmitters and/or optical (e.g., infrared) receivers and transmitters.
- the specific design and implementation of network interface 206 depends on the communications network(s) over which communication device 180 and server 152 are intended to operate.
- communication device 180 may include network interface 206 designed to operate over a GSM network, a GPRS network, an EDGE network, a Wi-Fi or WiMax network, and a Bluetooth® network.
- network interface 206 may be configured to send and receive electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
- Both communication device 180 and server 152 may also include peripherals interface 208 coupled to bus 200 .
- Peripherals interface 208 be connected to sensors, devices, and subsystems to facilitate multiple functionalities.
- peripherals interface 208 may be connected to I/O system 210 configured to receive signals or input from devices and providing signals or output to one or more devices that allow data to be received and/or transmitted by communication device 180 and server 152 .
- I/O system 210 may include a touch screen controller 212 , audio controller 214 , and/or other input controller(s) 216 .
- Touch screen controller 212 may be coupled to a touch screen 218 .
- Touch screen 218 and touch screen controller 212 can, for example, detect contact, movement or break thereof using any of a plurality of touch sensitivity technologies, including but not limited to capacitive, resistive, infrared, and surface acoustic wave technologies as well as other proximity sensor arrays or other elements for determining one or more points of contact with the touch screen 218 .
- Touch screen 218 can also, for example, be used to implement virtual or soft buttons and/or a keyboard. While a touch screen 218 is shown in FIG. 2 , I/O system 210 may include a display screen (e.g., CRT or LCD) in place of touch screen 218 .
- a display screen e.g., CRT or LCD
- Audio controller 214 may be coupled to a microphone 220 and a speaker 222 to facilitate voice-enabled functions, such as voice recognition, voice replication, digital recording, and telephony functions.
- the other input controller(s) 216 may be coupled to other input/control devices 224 , such as one or more buttons, rocker switches, thumbwheel, infrared port, USB port, and/or a pointer device such as a stylus.
- peripherals interface 208 may also be connected to an image sensor 226 for capturing image data.
- image sensor refers to a device capable of detecting and converting optical signals in the near-infrared, infrared, visible, and ultraviolet spectrums into electrical signals. The electrical signals may be used to form an image or a video stream (i.e., image data) based on the detected signal.
- image data includes any form of data retrieved from optical signals in the near-infrared, infrared, visible, and ultraviolet spectrums.
- image sensors may include semiconductor charge-coupled devices (CCD), active pixel sensors in complementary metal-oxide-semiconductor (CMOS), or N-type metal-oxide-semiconductor (NMOS, Live MOS).
- CCD semiconductor charge-coupled devices
- CMOS complementary metal-oxide-semiconductor
- NMOS N-type metal-oxide-semiconductor
- image sensor 226 may be part of a camera included in communication device 180 .
- peripherals interface 208 may also be connected to a motion sensor 228 , a light sensor 230 , and a proximity sensor 232 to facilitate orientation, lighting, and proximity functions.
- Other sensors can also be connected to the peripherals interface 208 , such as a temperature sensor, a biometric sensor, or other sensing devices to facilitate related functionalities.
- a GPS receiver can also be integrated with, or connected to, communication device 180 .
- a GPS receiver can be built into mobile telephones, such as smartphone devices. GPS software allows mobile telephones to use an internal or external GPS receiver (e.g., connecting via a serial port or Bluetooth).
- communication device 180 may use memory interface 204 to access memory device 234 .
- Memory device 234 may include high-speed random-access memory and/or non-volatile memory such as one or more magnetic disk storage devices, one or more optical storage devices, and/or flash memory (e.g., NAND, NOR).
- Memory device 234 may store an operating system 236 , such as DARWIN, RTXC, LINUX, iOS, UNIX, OSX, WINDOWS, or an embedded operating system such as VXWorkS.
- the operating system 236 can include instructions for handling basic system services and for performing hardware-dependent tasks.
- the operating system 236 can be a kernel (e.g., UNIX kernel).
- Memory device 234 may also store communication instructions 238 to facilitate communicating with one or more additional devices, one or more computers and/or one or more servers.
- Memory device 234 can include graphical user interface instructions 240 to facilitate graphic user interface processing; sensor processing instructions 242 to facilitate sensor-related processing and functions; phone instructions 244 to facilitate phone-related processes and functions; electronic messaging instructions 246 to facilitate electronic-messaging related processes and functions; web browsing instructions 248 to facilitate web browsing-related processes and functions; media processing instructions 250 to facilitate media processing-related processes and functions; GPS/navigation instructions 252 to facilitate GPS and navigation-related processes and instructions; capturing instructions 254 to facilitate processes and functions related to image sensor 226 ; and/or other software instructions 258 to facilitate other processes and functions.
- Memory device 234 may also include application specific instructions 260 to facilitate a process for providing real-time information about a progress of a field professional assigned to a number of tasks associated with a subset of requests.
- Each of the above identified instructions and applications may correspond to a set of instructions for performing one or more functions described above. These instructions need not be implemented as separate software programs, procedures, or modules.
- Memory device 234 may include additional instructions or fewer instructions.
- various functions of communication device 180 may be implemented in hardware and/or in software, including in one or more signal processing and/or application specific integrated circuits. For example, communication device 180 may execute an image processing algorithm to identify objects in a received image.
- the components and arrangements shown in FIG. 2 are not intended to limit the disclosed embodiments. As will be appreciated by a person skilled in the art having the benefit of this disclosure, numerous variations and/or modifications may be made to the depicted configuration of server 152 . For example, not all components may be essential for the operation of server 152 in all cases. Any component may be located in any appropriate part of server 152 , and the components may be rearranged into a variety of configurations while providing the functionality of the disclosed embodiments. For example, some servers may not include some of the elements shown in I/O system 210
- FIGS. 3A and 3B depict two schematic maps illustrating the planned daily schedule of two field professionals and the updated daily schedule of the two field professionals.
- the first field professional was assigned to tasks for providing technical service at locations A, B, C, D; and the second field professional was assigned to tasks for providing technical service at locations E, F, G, H.
- the planned route of the first field professional is illustrated in a dashed line and the planned route of the second field professional is illustrated in a solid line. Assuming that the first field professional was scheduled to be at location “A” at 10:36 and at location “B” at 11:39; and the second field professional was scheduled to be at location “E” at 10:15 and at location “F” at 11:09.
- server 152 received at 9:15, from network interface 206 , real-time information for the first and second field professionals.
- the real-time information may include current location information derived at least partially from location circuits of field professionals' communication devices 180 A.
- the real-time information may indicate that first field professional is stuck on the road to location “A.”
- the real-time information may include task status updates transmitted from field professionals' communication devices 180 A.
- the real-time information may indicate that the second field professional had finished the assignment earlier than the estimated time for the completion of the task associated with location “E.” Based on the real-time progress information, and as shown in FIG.
- server 152 may reassign the first field professional to a task associated location “F,” and reassign the second field professional to a task associated location “A.”
- the updated schedule of first field professional includes tasks associated with locations F, B, C, and D and the updated schedule of second field professional includes tasks associated with locations E, A, G, H.
- server 152 may determine from real-time information a delay associated with one or more tasks assigned to a first field professional, and that there is a likelihood that the delay will interfere with the first field professional arriving at an identified location associated with an assigned task at a scheduled time. For example, at 9:15, server 152 may determine that the first field professional cannot make it to location “A” before 9:40. Therefore, server 152 may reassign the assigned task to a second field professional based on the real-time information and the determined likelihood that the delay will interfere with the first field professional arriving at location “A” at 10:36.
- Server 152 may provide the second field professional, using network interface 206 , information reflecting the assignment of the task associated with location “A.”
- the information reflecting the assignment of the first task includes directional instructions to location “A” (e.g., a location, an address, a driving route).
- the information reflecting the assignment of the first task includes details about a customer associated location “A” (e.g., a name, a phone number).
- the information reflecting the assignment of the first task includes a description of the first task (e.g., tools, spare parts, existing infrastructure).
- FIG. 4 provides a high-level illustration of system 100 , according to embodiments of the disclosure. It illustrates the integrated access, management and analysis to service operations data within one organization, and the interaction with other organizations. Also shown is the interaction with other corporate Management Information Systems (MIS).
- MIS corporate Management Information Systems
- the figure shows server 152 , using database 154 (which may be a set of synchronized databases) to support a client software operated by users concerned with some combination of the basic service management tasks.
- System 100 may include an analysis module 441 , a forecasting module 442 , a planning module 443 , a scheduling module 444 , and a database access module (not shown).
- Modules 441 , 442 , 443 , and 444 may contain software instructions for execution by at least one processing device, e.g., processing device 202 . The function of the modules is described in detail below.
- server 152 may extract information, and convey management decisions, to other units, including: human resources 431 for interacting with information about available staff, their calendars (i.e., vacation, training, overtime, etc.) and their mix of skills (which may be affected by changes in training plans); finance 432 for examining, and reporting, the implications of decisions such as authorizing overtime or subcontracting some work; and customer relationship management 433 for interacting with past and current data of detailed and aggregated customer demands.
- FIG. 4 also shows how two or more organizations using the same system may make their operations and cooperation much more effective by automatically transmitting relevant information between their servers.
- One example is outsourcing, in which a planning decision in organization A (marked as 410 ) to outsource work to organization B (marked as 420 ) may be conveyed to organization B, and appears there as a change in forecast demand, requiring re-iteration of the planning process.
- Such an arrangement may enable a large service organization to form customer-facing portals and subcontractor-facing portals to streamline and optimize its operations.
- This subcontractor-facing portal is also known as B2B (Business-to-Business) application, as well as “private marketplace” or “public marketplace” depending on their openness.
- analysis module 441 , forecasting module 442 , planning module 443 , scheduling module 444 , database access module, and database 154 may cooperate to perform multiple operations associated with the assignment of field professionals.
- forecasting module 442 may include macro-level forecasting software, which analyzes past demand and actual service operations performance, together with expected future events (e.g., new product launch) to predict demands aggregated or separated along the different types of decisions that characterize customer demand and the decision inherent in answering a customer demand. While some of the data used comes from analysis module 441 , forecasting module 442 may be used as a decision-making tool letting managers define their expectations (out of the different possible predictions and scenarios) and commit to the decision that planning should proceed in a manner consistent with these decisions.
- Planning module 443 may include macro-level planning software for analyzing demands at various aggregation levels and rough allocation of resources to meet these demands. This module supports the analysis of expected demands side-by-side with allocated resources, checking the impact of various resource-management decisions on the organization's capability to meet demands (including “what-if” analysis” and managing different alternative scenarios concurrently), and communicating the planning decisions so that they are used in further operations—scheduling, workforce management, training etc.
- Scheduling module 444 may include micro-level planning software for assigning specific values to the different characteristic of each task, including resource assignments, time scheduling and geographic routing.
- Analysis module 441 may include reporting and querying tool for data analysis and datamining at all levels, from most general to most specific, across any dimension.
- the analysis may support both human-initiated drill-down and ad-hoc querying and comparison operations, as well as intelligent software-directed data mining tools. This module may be concerned mostly with analysis of existing data, and not with any decision-making.
- server 152 may distinguish between three types of aggregated demands: group A: aggregated demands originating from a projected forecast; group B: aggregated demand originating from customers who present their demand in an aggregated way only, for example “I need 5000 hours of telephone installation in August”; and group C: individualized, itemized known demand that is aggregated into a group B demand, because a temporary concern is made only to a rough capacity assessment question, or to a rough resource allocation.
- group A aggregated demands originating from a projected forecast
- group B aggregated demand originating from customers who present their demand in an aggregated way only, for example “I need 5000 hours of telephone installation in August”
- group C individualized, itemized known demand that is aggregated into a group B demand, because a temporary concern is made only to a rough capacity assessment question, or to a rough resource allocation.
- a manager of service provider 160 may be interested in the aggregated answers for the entire demand (A+B+C) for that time duration. Yet for the more immediate horizon, and for the part of group C
- server 152 may use the forecasting module 442 to collect historical information as well as future-event information (e.g., new product launch) in order to generate and refine group A demands; use planning module 443 for macro-level planning on group A+B+C; run scheduling module 444 on itemized group C; run analysis module 441 on the schedule of itemized group C to obtain information.
- future-event information e.g., new product launch
- the obtained information may include: for a user-specified time period, what are the total number of service calls delivered in each of the geographic regions; for any given service professional, for a user-specified time period, what customers did he work for, how many hours for each one, and the total for that professional; for any given customer, for a user-specified time period, which field professionals worked for him, and the total work and costs; division of work time between actual on-site work, travel, region, service field professional's seniority or skills, and other general or specific data associated with a time of year, etc. (e.g., training, vacation, and absences).
- server 152 may use the information from analysis module 441 to modify and refine forecasting module 442 and planning module 443 decisions. For instance, the average time duration of tasks.
- server 152 may exploit the capabilities of supporting multiple hierarchies, aggregations, and discrepancy detection, to support the process of conciliating downward-flowing management decisions with upward-flowing information from the workforce as well as from existing and potential customers.
- server 152 may use forecasting module 442 (assisted by analysis module 441 ) to generate demand predictions on a detailed level (e.g., per each region and/or per each demand type) and propagate the sums upwards to present higher-level aggregations (also referred to herewith as “bottom-up” forecasting).
- server 152 may use forecasting module 442 (assisted by analysis module 441 ) to generate high-level aggregated demand predictions, combine them with management guidelines (e.g., ratios between demand types, training quotas, ratio of travel time to on-site time) and propagate these forecasts downwards (also referred to herewith as “top-down” forecasting).
- server 152 may use forecasting module 442 to detect and resolve discrepancies between high-level and low-level forecast numbers, and between divisions across different dimensions (e.g., size of demand isolated across regional, temporal, and demand-type dimensions).
- server 152 may use planning module 443 to allocate resources on a detailed level (e.g., per each region and/or per each demand type) and propagate the sums upwards to present higher-level aggregations (also referred to herewith as “bottom-up” planning).
- server 152 may use planning module 443 to generate higher-level aggregated resource allocations, combined with management guidelines (e.g., budget, overtime policies) and propagate these plans downwards (also referred to herewith as “top-down” planning).
- server 152 may use planning module 443 to detect and resolve discrepancies between high-level and low-level resource allocation numbers, and between divisions across different dimensions (e.g., size of demand separated across regional, temporal and demand-type dimensions).
- server 152 may have the capability to iteratively go back to decisions and commitments made in any prior step and change them. When such a change is made, system 100 may propagate the effects of the change across all the affected data, hierarchies, and decisions. When such a propagation results in a discrepancy, the problem may be automatically highlighted and service provider 160 may be optionally presented with a list of possible decisions that may resolve the problem.
- a specific task type e.g., not enough service engineers are qualified for network installation.
- planning module 443 may suggest several possible resolutions, such as outsourcing, transferring resources from another region, and allowing more overtime. David chooses to resolve the discrepancy by transferring resources from another region. He contacts Joe, a manager of neighboring region B, to check whether Joe has a surplus of resources for network installation. If so, David and Joe need to check the extra costs and mileage involved in the additional travel (optionally this may be another feature of planning module 443 ), and record their agreement using planning module 443 so that Jane can see it in detail and in aggregation. If Joe cannot help David, and after David has tried some other solutions (e.g., outsourcing, adding overtime), David will need to ask Jane for additional resources to be allocated in the plan for region A.
- some other solutions e.g., outsourcing, adding overtime
- John then records the extra allocation, and David's planning module view shows that his region should be ready to meet the demands.
- This is an example of modifying an earlier message made in the same module (Planning), with automatic propagation which removes the discrepancy-report for region A, and optionally also updates information in the human resources, finance, and other systems.
- Mary who is in charge of training in the human resources department, uses her own views of analysis module 441 , forecasting module 442 and planning module 443 to identify the problem in region A. If the analysis module 441 and forecasting module 442 show that this problem is expected to persist, she modifies training plans and quotas to ensure that the skill distribution—at least in region A—would have a better fit to the demand distribution.
- region C's manager has solved that region's lack of resources by negotiating an outsourcing agreement with Alice, who owns a smaller local service business. Alice enters this as a demand in her own forecasts and uses planning module 443 to make sure that she has enough resources to fulfill the expected demands, together with this new obligation. This is an example of supporting the coordination of planning and decision-making across organizational boundaries.
- Scheduling module 444 automatically takes into account the rough allocations made in planning module 443 , including decisions such as “reserve engineers with network-installation skills, as many as possible for network-installation demands”; and “if possible, keep spare time for service professionals who are based near the boundary with region B, since the plan lets region B's manager handle expected demands by requesting assignment of region A resources.” After more time has passed, in the middle of Q4, it turned out that some of the predictions were not substantially accurate.
- Joe, the manager of region B uses analysis module 441 to determine why he experienced difficulties in scheduling day-to-day calls, and discovers that the distribution between the north part of his region and the south part has somewhat deviated from expectations, with the south region having large demands and necessitating too much travel in the north.
- forecasting module 442 Using forecasting module 442 , he updates the aggregate intra-regional demand expectations which automatically highlights a discrepancy in planning module 443 versus the existing resource allocation. Joe can now resolve this discrepancy using his own resources, using outsourcing; or by using analysis module 441 to check whether any for the neighboring regions to his south has unexpected surplus resources, and then negotiate with that region's manager; or by addressing the problem to the manager for the whole organization. These interactions are supported by a shared access to the data, features, and views provided by analysis module 441 , forecasting module 442 , planning module 443 and scheduling module 444 .
- server 152 may have the capability to bring in simulation tools as a well-integrated part of the performance tracking process to predict problems and check possible solutions as soon as possible. Allocating enough resources to meet the expected demand may be not enough, even after taking account of various times not used for actual service—e.g., training, vacations, health problems—and for time spent in travel between tasks. To achieve more accurate predictions, a following simulation may be made, according to the present disclosure.
- a statistical demand characteristic obtained from historical data collected by scheduling module 444 and aggregated using analysis module 441 . These characteristics will describe demand as divided along the different dimensions and their related hierarchies, e.g., region and type of demand. Forecasting module 442 may be used to project these characteristics into the future period of interest.
- Planning module 443 may be used to allocate resources matching the forecasted demands.
- a stochastic method may be used to generate a number of hypothetical samples of a typical day's demands, randomly drawn according to the statistical distributions generated in the previous step.
- Scheduling module 444 may be used to schedule each of these sets of demands, using the resources assigned by the planning module 443 .
- Analysis module 441 may be used to aggregate the detailed results obtained by scheduling module 444 , and to check whether the resources indeed matched the demand under simulated fully detailed operation.
- a resource allocation utility at planning module 443 may be used to modify resource allocation at the appropriate level (e.g., it may be revealed that the only need may be to change allocation between sub-divisions of one region). The simulation may be repeated if necessary, to reveal conditions that may create problems in the future.
- server 152 may have the capability to facilitate the integration of decision processes and management levels, different users (or the same users in different steps of their work). To do so, server 152 may use different ways of analyzing, viewing, aggregating, or dis-aggregating (“drilling down”) data. For example, server 152 may have access to data with at least one field that includes work hours, tools, spare parts, overtime allotments. The source for each field may come from the forecasting (prediction of required resources), allocation (decisions on resources made available to operations), or actual data (for times prior to present).
- each source there may be different subtypes of each source, as when there are several forecasts for August—one from the forecast made in January, one from the forecast made in April, etc., the system is set to display one or more sources for the same field, each with its own values, and optionally highlight discrepancies between the sources.
- some values may propagate from a previous stage, as when the expected work hours across the whole organization are derived by summing of the expected work hours as reported by each division manager.
- Other values are propagated from a later stage, as when an Operations Manager has set the work-hour budget for the whole organization, which needs to be divided between the regions. Both directions may—and often do—coexist, and the system may be set to display either of them, or both, and optionally highlight discrepancies between the directions.
- server 152 may have the capability to support scenarios for decision-support and “what if” tools.
- a scenario comprises a set of data, which is inserted into the system (e.g., forecasts, staff size) and a set of decisions (e.g., extended overtime, outsourcing, constraining the allocation of some resources so that they may be used only—or preferentially—for demands of specific type or region).
- Each scenario may generate its own set of data, viewable and editable through the system.
- some scenarios are modified, some are split to compare different “decision forks,” and some are deleted, until a preferred scenario remains and becomes the basis for an actual decision.
- the system automatically monitors for discrepancies.
- the discrepancies may include: (1) Discrepancies between a forecast demand and allocated resources. (2) Discrepancies between different sources of the same information (e.g., forward-looking simulation vs. extrapolation of data using statistical trends analysis).
- the system may provide alerts to draw the user's attention to discrepancies.
- the alerts consist of color-coding of areas in the view (e.g., cells in a displayed table) according to the presence and severity of discrepancies.
- the alerts may include presenting to the user a list of alerts, possibly ranked and color-coded by their severity.
- the alerts may include messages transmitted to users defined as being in charge of reacting and/or resolving each type of alert. Messages may be transmitted by phone, cellular messaging, e-mail, fax, and instant messaging.
- the alerts may include of any combination of the above mechanisms, configurable according to the user's personal preferences, user type, alert type, and organizational procedures.
- FIG. 5 is a conceptual illustration of a three-tier architectural model 500 for managing data retrieval within an information system is shown in accordance with embodiments of the present disclosure.
- the three-tier architectural model 500 includes a presentation layer 502 , an application layer 504 , and a data layer.
- Each of these layers ( 502 , 504 , and 506 ) may be software modules designed to interact with one another to provide a logical framework for managing retrieval of stored data for various other software modules in the information system.
- any of the computer-implemented operations performed by these layers ( 502 , 504 , and 506 ) may also include interaction with one or more hardware modules in the information system.
- presentation layer 502 may be responsible for manipulating data for the performance of an action. Such an action may include, for example, rendering the data for display on a graphical user interface (GUI).
- Data layer 506 stores the data that is to be manipulated by presentation layer 502 .
- Application layer 504 may be an “intermediate” layer that serves as a communication liaison between presentation layer 502 and data layer 506 . That is, presentation layer 502 may issue requests for retrieval of specified data stored in data layer 506 to application layer 504 rather than communicating directly with data layer 506 . In response to such a request, application layer 504 may retrieve the specified data from data layer 506 and provide a view of the retrieved data to presentation layer 502 .
- the view presents the specified data to presentation layer 502 in a manner such that presentation layer 502 may manipulate the data to perform a specific task.
- presentation layer 502 may display data presented through a view on a display element of a graphical user interface.
- application layer 504 may apply one or more rules to the request in furtherance of managing retrieval of the data for presentation layer 502 . As described in more detail below, these rules relate to conditions that are designed to effectuate the transfer of data between data layer 506 and presentation layer 502 .
- each of these layers may reside on a single computing system. In another embodiment, at least one of these layers may reside on a computing system separate from the other two layers. For example, presentation layer 502 may reside on a client computer system and application 504 and data layer 506 may both reside on a server computer system. Even further, each layer may reside on a separate computing system from the other. In either of these latter embodiments, a communications network may be employed for communications between the layers residing on separate computer systems. It should be appreciated that each of the layers operate regardless of whether the layers reside on a single computing system or multiple computing systems.
- Presentation layer 502 may include software modules and processes (collectively, “components”) of application programs that use data stored in data layer 506 to perform actions.
- Example actions may include, without limitation, rendering information for display on a GUI presented to users through a display monitor. It should be appreciated that these actions may relate to any form of data manipulation or processing, and therefore are not limited to rendering data for display on a GUI. Indeed, many components of application programs manipulate data during “background” operations that are not noticeable to users of the computing system. These types of actions may be performed either randomly or following scheduled, periodic time periods.
- presentation layer 502 may be described as a component requesting data from data layer 506 for use in manipulating the data to render a display for a GUI.
- presentation layer 502 may be built on top of AngularJS framework and utilize single page application (SPA) architecture. Using modular approach, presentation layer 502 may provide unified visual design language and user experience. The different services described in the disclosure may be implemented as modules within this layer. For mobile access, the presentation layer may include applications for most popular mobile operating systems, such as iOS, Android, and Windows, and deployed from corresponding application stores.
- SPA single page application
- Data layer 506 is configured to store data in the form of file structures, each having a standard identifier, e.g., path and file name, recognizable to application layer 504 and data layer 506 .
- a request by a component of presentation layer 502 includes, i.e., specifies, the standard identifier for the data.
- application layer 504 manages retrieval of the specified data from data layer 506 based on the standard identifier and thereafter provides a view of the retrieved data to the requesting component. The view presents the specified data to the presentation layer in a manner such that the data may be manipulated to perform a specific action.
- data layer 506 may have a pure multi-tenant architecture, providing both security and privacy to customers and unity to the system development and deployment.
- the infrastructure may include a relational database, which may be used dynamically to obtain high integrity control while maintaining a customizable schema for each customer.
- a plurality of customers may share the same type of database, as well as the same type of tables.
- Each table may be partitioned according to the customer identity which enables the system to protect the security and privacy of the customer data.
- the system includes a mechanism which enables providing different schema per customer, without the need to execute Data Definition Language (DDL) commands and simply using references to the relevant column as the customer defined.
- DDL Data Definition Language
- This ability enables us to perform online schema changes efficiently and safely without any downtime to the customers, and without any code change.
- This flexibility allows each customer to customize the product according to their specific business needs, while using a software product on the cloud. This flexibility also enables the system to provide fully localizable product to the customers, which enables international companies to use the same product in multiple languages.
- updating objects may be performed using optimistic locking which ensures that, if parallel requests arrive, isolation of the transaction may be kept while still keeping data integrity.
- application layer 504 may be responsible for receiving requests from components of presentation layer 502 for data stored in data layer 506 and providing the requesting components with a view of the specified data. In another embodiment, application layer 504 may be responsible for the actual retrieval, and subsequent caching, of the specified data. Consistent with the present disclosure, application layer 504 may include implementation for a highly customizable object manipulation framework allowing it to utilize all of the benefits of data layer 506 and provide for the developer's generic ability to work with business data objects.
- application layer 504 may enable object definition, CRUD operations, advanced search capabilities, and object serialization for web access, including RESTful, SOA, and XML over HTTP methods.
- this layer provides memory caching mechanism, which allows high performance for infrequently updated objects and dramatically reduces the number of queries for the data layer.
- application layer 504 may have search capabilities for objects included in memory by indexing and grouping mechanisms implementing proprietary object query language allowing a sophisticated mix of SQL executed queries within memory validated conditions.
- application layer 504 may utilize a stateless architectural approach and may not maintain any state data between sequential calls.
- all state data may be serializing in the database by the end of each call, and during a next call requesting some data, the most updated state data is then obtained from the database.
- application layer 504 may ensure high data and access isolation on the tenant and user level and allow a highly configurable ability to define, set data, and access controls on a user, group of users, role, and tenant level.
- the services on the cloud environment architectural model 500 may be highly available and may simultaneously work on multiple availability zones. Production and staging environments are isolated on virtual cloud network level. As a scalability model, the system may utilize POD approach when multi-tenant deployments segmented and isolated in completely independent parts. In order to reduce latency and comply with laws of different countries, such as the General Data Protection Regulation (GDPR) in Europe and more.
- GDPR General Data Protection Regulation
- Disclosed and claimed is a system that receives real-time reports (e.g., traffic updates, weather conditions), predicts that a field professional will not be able reach the customer at the scheduled time, and reassigns the customer to a different field professional.
- the system predicts that the field professional will miss a future task in his daily schedule.
- the system predicts that a delay would cause one or more tasks to be completed after a shift of a field professional is about to end.
- FIG. 6A is a flowchart of an example process 600 for task scheduling based on real-time conditions, consistent with the present disclosure.
- server 152 may implement process 600 .
- processing device 202 may receive data from I/O system 210 or network interface 206 , and then execute instructions or program codes stored in memory interface 204 or database 154 , in which the instructions or program codes implement algorithms of process 600 .
- the algorithms of process 600 may be implemented as one or more of analysis module 441 , forecasting module 442 , planning module 443 , or scheduling module 444 .
- Process 600 includes the following steps or operations.
- processing device 202 determines real-time schedule information for field professionals 110 independent from any schedule update received from field professionals 110 via network interface 206 .
- the real-time schedule information may include any information or data associated with task schedules of the field professionals 110 updated or received in real time.
- processing device 202 may determine real-time schedule information from communication device 180 A.
- the real-time information may be determined by processing device 202 without intervention of field professionals 110 , such as in predetermined intervals or triggered by predetermined events.
- the real-time schedule information may reflect a field professional's progress in attending, performing or completing tasks.
- the real-time schedule information may reflect location information associated with the professional. Based on the location information, system 100 (alone or with reference to other internal or external systems) may determine if a field professional is at a location associated with one of the tasks in the schedule or en route to a scheduled task.
- the real-time schedule information may reflect task updates (e.g., field professionals 110 may use a dedicated communication device or a dedicated application to provides real-time updates, such as, “arrived at destination,” “task completed,” “set out for next destination,” etc.).
- the real-time schedule information may include updates from different data sources outside system 100 that may affect the progress of field professionals 110 (e.g., traffic updates, weather updates, user's social profiles, etc.).
- the real-time schedule information may reflect required changes to a schedule of a field professional.
- system 100 may determine that a schedule of field professionals 110 needs to be changed and provide real-time schedule information reflecting the schedule change with optionally varying degrees of specificity (e.g., as in FIGS. 3A-3B , after completing the task at point A, go to point F and not to point B).
- a client may directly inform a field professional that he/she is running late for a location of a scheduled task.
- the real-time schedule information may include current location information derived at least partially from location circuits of communication devices of field professionals 110 without intervention of field professionals 110 .
- the communication devices may include mobile devices (e.g., a smartphone) or vehicles that is associated with field professionals 110 .
- the communication devices may include communication device 180 A.
- the location circuit may be, for example, a global positioning system (GPS) circuit module.
- GPS global positioning system
- the current location information may be derived from the location circuits without intervention of field professionals 110 , such as in predetermined intervals.
- the real-time information may include real-time weather conditions associated with field professionals 110 .
- the weather conditions may be associated with regions that covers current locations of field professionals 110 .
- the weather conditions may be received from a third-party service provider, such as an Internet server of a weather forecast service provider.
- the weather conditions may be received from the third-party service provider without intervention of field professionals 110 , such as in predetermined intervals.
- the real-time schedule information may be received from communications network 170 .
- field professionals 110 may initiate sending schedule update via communication device 180 , but such schedule update is independent from the real-time schedule information determined by processing device 202 .
- processing device 202 may receive the real-time schedule information automatically without affirmatively reporting of field professionals 110 .
- processing device 202 may send a request at a predetermined time interval to communication device 180 A to obtain the real-time schedule information.
- processing device 202 may receive progress information for field professionals 110 from network interface 206 .
- the progress information may include any number of any combination of the real-time schedule information that is determined by processing device 202 without intervention of field professionals 110 and the schedule update sent by field professionals 110 .
- the schedule update may include task updates initiated by field professionals 110 (e.g., field professionals 110 may use a dedicated communication device or a dedicated application to provides updates, such as, “arrived at destination,” “task completed,” “set out for next destination,” etc.) or shift updates initiated by field professionals 110 (e.g., field professionals 110 may use a dedicated communication device or a dedicated application to provides real-time updates, such as, “shift stated,” “shift completed,” “shift interrupted,” etc.).
- the progress information may include task status updates transmitted from communication devices of field professionals 110 .
- the task status updates may be transmitted in a form of text messages.
- the task status updates may be transmitted in a form of application data inputted by field professionals 110 through a user interface to a dedicated application installed in the communication devices (e.g., a smartphone).
- processing device 202 determines, from the real-time schedule information associated with a first field professional, existence of a delay associated with one or more tasks assigned to the first field professional.
- the first field professional may be one of field professionals 110 .
- the first field professional may have one of more tasks assigned thereto. For example, as shown in FIGS. 3A-3B , the first field professional was assigned to tasks for providing technical service at locations A, B, C, D.
- the delay may be represented as a time difference between a current time and the scheduled arrival time of a location associated with a task assigned to the first field professional to perform at the location.
- the delay may be associated with a difficulty for completing a scheduled task, no matter the cause of the difficulty.
- the delay may result from traffic conditions due severe weather conditions.
- the delay may result from a failure of the field professional to complete an earlier task within an allocated time frame.
- the delay may result from a customer not being present at the location.
- FIG. 6B is a diagram of example planned and actual schedules of field professionals, consistent with the present disclosure.
- the first field professional P1 corresponds to the first field professional in FIG. 3A
- each of locations A-D may have a specified or scheduled arrival time for P1.
- Each row of blocks represents a schedule associated with a field professional in FIG. 6B .
- White blocks represent the field professional's time durations when performing a task at a specified location or when the field professional is available. Dotted blocks represent the field professional's time durations when driving between the specified locations.
- a timeline is shown below the blocks, and dash lines are shown to indicate aligned time points of the schedules in the timeline.
- P1's planned schedule P1's scheduled arrival times for locations A-D are 10:36, 11:39, 12:20, and 13:15.
- the delay associated with the one or more tasks may occur when the first field professional arrives at the locations later than the scheduled times.
- P1's actual schedule P1 misses the scheduled arrival time of 10:36 for location A.
- the delay may be represented as a time difference between a current time and the scheduled arrival time 10:36.
- the real-time schedule information may include a current time and a current location of the first field professional.
- processing device 202 may determine the existence of the delay. For example, assuming the scheduled arrival time is 10:36 for location A and the first field professional leaves the starting point ( FIG. 3A ) at 10:00, if the current time is 10:18 but the current location of the field professional is at 1 ⁇ 4 of the total distance from the starting point to location A, processing device 202 may determine the existence of the delay.
- the real-time schedule information may include the real-time weather conditions.
- the scheduled arrival times at task locations may be determined based on a first assumed weather condition, such as a sunny weather.
- a first assumed weather condition such as a sunny weather.
- the arrival times may be delayed. For example, if the real-time weather condition is raining, the road conditions may become worse and the traffic may become slower, by which the first field professional may delay arriving at schedule times. If that is the case, processing device 202 may determine the existence of the delay.
- processing device 202 may determine a delay associated with one or more tasks assigned to the first field professional. In some embodiments, processing device 202 may determine the delay from the progress information.
- processing device 202 determines a likelihood that the delay will interfere with the first field professional arriving at an identified location associated with an assigned task at a scheduled time.
- the scheduled time may be a time specified by processing device 202 for the first field professional to arrive at the identified location.
- the identified location may be any of locations A-D in FIG. 3A .
- processing device 202 determines the existence of the delay at step 604 , the delay may not necessarily cause an actual delay of the arrival time at the identified location.
- the first field professional may find means (e.g., find a shorter route or increase moving speed) to make up for the delay.
- processing device 202 may apply a traffic route model reflecting one or more possible routes for the first field professional to travel to the identified location for determining the likelihood that the delay will interfere with the first field professional arriving at the identified location at the scheduled time. Traffic conditions may affect driving durations between locations assigned to the first field professional.
- the traffic route model may include a model that assigns different weights to different segments of routes.
- a weight may have a value proportional to a likelihood that a delay would occur when a field professional travels through it.
- the weight may be assigned in accordance to historical data, such as statistics of traffic conditions and speed limits.
- the total weight of a route may be a sum of the weights of its segments.
- processing device 202 may select the one or more possible routes for the first field professional from all routes to travel to the identified location. Processing device 202 may then determine the total weights for each of the possible routes.
- processing device 202 may determine that the delay will interfere with the first field professional arriving at the identified location at the scheduled time.
- a predetermined threshold e.g. 50%
- processing device 202 may apply a task performance model for determining the likelihood that the delay will interfere with the first field professional arriving at the identified location at the scheduled time.
- the task performance model may include a model that assigns different weights to different tasks.
- a weight may have a value proportional to a likelihood that a delay would occur when a field professional performs a specific task.
- the weight may be assigned in accordance to historical data, such as statistics of task performances.
- the weight may also be assigned in accordance to difficulty level of the tasks, such as complexity and time duration to perform it.
- processing device 202 may determine the type of task the first field professional is performing, such as from task information. Processing device 202 may then determine the weight for the task.
- processing device 202 may determine that the delay will interfere with the first field professional arriving at the identified location (e.g., the next location for a future task) at the scheduled time.
- a predetermined threshold e.g. 50%
- processing device 202 may determine a likelihood that the delay will interfere with a future assigned task.
- the future assigned task may be a task scheduled later than the current task. For example, in FIG. 3A , if the first field professional is currently working at location A for a first task, a second task at location B is the future assigned task.
- processing device 202 may determine a likelihood that the delay in the current task will interfere with the future assigned task using a delay-statistics model.
- the delay-statistics model may collect and compile historical delay data and generate correlations between a time duration of the delay at the current task and a likelihood of such delay causing a time duration of a delay at the future task.
- statistics may show that that a five-minute delay at 10:00 for a first task will cause an 80% likelihood that the first field professional will be 30 minutes late to a second task scheduled at 15:00.
- the delay-statistics model may establish a corresponding relationship between the 5-minute delay and the 30-minute delay for the two tasks.
- processing device 202 may determine that the likelihood is 80% for the first field professional to arrive 30 minutes late for the second task.
- processing device 202 may obtain weather conditions associated with locations of tasks assigned to the first field professional and adjusting time estimations for completion of the tasks based on the weather conditions.
- the weather condition may affect the task completion time.
- the weather condition may also affect travel durations between locations assigned to the first field professional.
- processing device 202 may obtain the weather conditions from a third-party service provider.
- processing device 202 may also use a weather-statistics model.
- the weather-statistics model may collect and compile historical weather condition data and generate correlations between a weather condition at a location of a task and a likelihood of such weather condition causing a delay for the completion time.
- processing device 202 may determine that there is a specific likelihood for the first field professional to delay the completion time of the current task. Based on the likelihood, processing device 200 may adjust time estimation for completion of the current task.
- processing device 202 may obtain traffic conditions associated with locations of tasks assigned to the first field professional and predicting times that the first field professional would arrive these locations based on the traffic conditions. In some embodiments, processing device 202 may predict the arrival times of the first field professional use the traffic route model and the delay-statistics model. For example, by obtaining the traffic conditions and inputting it into the traffic route model and the delay-statistics model, processing device 202 may determine likelihoods that the traffic conditions will cause the first field professional to delay for different time durations to arrive the different locations. Based on those likelihoods, processing device 202 may determine the predicted arrival times. As an example, Table 1 shows originally estimated driving duration between the starting point and location A in FIG. 3 and corresponding predicted driving durations updated using real-time traffic conditions at different times of a day. In Table 1, each row represents a time of the day.
- processing device 202 may determine a likelihood that the delay will interfere with the first field professional completing all assigned tasks prior to a predesignated shift completion time.
- processing device may use a statistics model that is modified based on any combination of the traffic route model, the task performance model, the delay-statistics model, and the weather-statistics model.
- the statistics model may collect and compile historical data and generate correlations between a time duration of the delay and a likelihood of such delay causing an overtime for the first field professional. For example, statistics may show that that a one-hour delay at 10:00 for a first task will cause an 90% likelihood that the first field professional will be unable to completing all assigned tasks prior to a predesignated shift completion time at 18:00.
- the statistics model may establish a corresponding relationship between the one-hour delay and the 90% of overtime likelihood.
- processing device 202 may determine that the likelihood is 90% that the first field professional will be unable to completing all assigned tasks prior to the predesignated shift completion time.
- processing device 202 determines from real-time schedule information associated with a second field professional whether the second field professional can arrive to the identified location associated with the task assigned to the first field professional at the scheduled time.
- the second field professional may be one of field professionals 110 .
- the second field professional may be the field professional assigned to tasks for providing technical service at locations E, F, G, H in FIGS. 3A-3B .
- processing device 202 may determine whether the second field professional can arrive at the identified location at the schedule time based on any combination of the traffic conditions, weather conditions, or task performances associated with the second field professional.
- processing device 202 may determine from real-time schedule information that the first field professional P1 will delay arriving at location A at scheduled time 10:36, and the second field professional P2 has finished a task at location E at 10:12, sooner than expected completion time at 10:39. Based on the traffic condition from location E to location A, weather conditions at locations E and A, or the type of the task to be performed at location A, processing device 202 may determine that the second field professional can arrive to location A at 10:36.
- processing device 202 reassigns the task assigned to the first field professional based on the real-time schedule information associated with the first field professional and the real-time schedule information associated with the second field professional.
- processing device 202 may reassign the task assigned to the first field professional by assigning it to the second field professional. For example, as shown in FIG. 6B , processing device 202 may reassign the task associated with P1 at location A to P2. In other words, P2 will go to location A after finishing task at location E rather than location F as originally scheduled. In some embodiments, processing device 202 may reassign the task associated with P2 at location F to P1. In other words, P1 will go to location F rather than location A as originally scheduled.
- processing device 202 may determine whether the second field professional has required skills and parts to complete the task. If the second field professional has the required skills and parts to complete the task, processing device 202 may reassign it to the second field professional. For example, as shown in FIG. 6B , processing device 202 may determine whether P2 has required skills and parts to complete the task at location A before reassigning the task associated with P1 at location A to P2.
- processing device 202 may reassign the assigned task to the second field professional based on the determined likelihood that the delay will interfere with the first field professional arriving at the identified location associated with the assigned task at the scheduled time. For example, if the determined likelihood exceeds a predetermined threshold (e.g., 50%), processing device 202 may reassign the task to the second field professional.
- a predetermined threshold e.g. 50%
- processing device 202 may identify a number of second field professionals who can complete the task assigned to the first field professional, and select the second field professional based on current location information of the number of second field professionals and traffic conditions. In some embodiments, at step 608 , processing device 202 may determine that there are multiple second field professionals who can arrive to the identified location associated with the task assigned to the first field professional at the scheduled time. Further, processing device 202 may select the second field professional based on the current location information of the second field professionals and the traffic conditions. For example, processing device 202 may determine the second field professional as the field professional having the shortest arrival time from the multiple second field professionals.
- processing device 202 may determine the second field professional based on other criteria, such as skill levels, workload of the day, completed work of the day, future work scheduled, and so forth. For example, processing device 202 may assigned a weight and a score to each of the criteria. The weight represents the level of importance of that criterion in the determination of the second field professional. The score represents the degree, extent, or scale of the criterion. Processing device 202 may determine a weighted score for each of the multiple second field professionals and select one with its weighted score in a predetermined range.
- the second field professional may be selected based on estimated costs.
- the costs may include travel distances, wages, overtime pay, or the like.
- processing device 202 may estimate a cost for each of the number of second field professionals who can complete the task assigned to the first field professional, and select the second field professional further based on estimated costs.
- processing device 202 may select the second field professional as the one having the lowest cost among the multiple second field professionals.
- processing device 202 may also assign a weight and a score to each of the factors of the costs. The weight represents the level of importance of that cost factor in the determination of the second field professional. The score represents the value of the cost.
- Processing device 202 may determine a weighted score for each of the multiple second field professionals and select one with its weighted score in a predetermined range.
- processing device 202 may reassign one or more tasks to the second field professional, thereby avoiding causing the first field professional to work overtime.
- the second field professional may be associated with the same predesignated shift completion time.
- the second field professional may be associated with a later predesignated shift completion time.
- selecting the second field professional includes reassigning a task currently assigned to the second field professional to a third field professional.
- the third field professional may actually be the best candidate for such reassignment (e.g., having the shortest traveling time or the lowest cost), but his or her availability may be unclear because he or she is in the middle of a task. If the likelihood is high that the third field professional can complete his or her current task soon, processing device 202 may conditionally reassign the task of the first field professional to the second field professional, on condition that the third field professional does not complete his or her current task in time. If the third field professional does complete his or her current task in time, processing device may reassign the task conditionally reassigned to the second field professional to the third field professional.
- processing device 202 may receive an indication from the first field professional about inability to complete all pending tasks in a daily schedule. Processing device 202 may then identify a plurality of second field professionals who can complete pending tasks in the daily schedule of the first field professional, and reassign the pending tasks to at least two second field professionals. Processing device 202 may further provide the at least two second field professionals, using network interface 206 , information reflecting the reassignment.
- the indication about inability to complete all pending tasks in a daily schedule may include an injury, a family emergency, or a sudden, personal event.
- the information reflecting the reassignment may be any information for indicating at least some contents of the reassignment.
- the information reflecting the reassignment may include information about a plan of the reassignment, such as rescheduling the task to a new data and time for the first field professional, or reassigning the task to a second field professional to complete.
- the information about the plan may include the new data and time if the task is rescheduled, or a name of the second field professional if the task is reassigned thereto.
- the information reflecting the reassignment may include directional instructions to accessing task locations, such as an address or a driving route.
- processing device 202 may reassign the task by rescheduling the task to a date and time where the first field professional is available. In some embodiments, processing device 202 may reassign the task in accordance with company policies.
- the company policies may include different rules that specifies the way of reassignment under different conditions. For example, the company policies may specify that when the first field professional delay more than 10 minutes, the task assigned to the first field professional must be reassigned to the second field professional.
- the company policies may also specify that if the task is reassigned to the second field professional and would cause the second field professional to detour for a time longer than a predetermined threshold (e.g., 30 minutes), the task must be rescheduled to a date and time where the first field professional is available.
- a predetermined threshold e.g. 30 minutes
- the company policies may be implemented as computer-readable instructions as conditions in algorithms, which may be stored in database 154 accessible via memory interface 204 and executed by processing device 202 .
- processing device 202 provides to at least one of the first field professional and the second field professional, using network interface 206 , information reflecting the reassignment of the task.
- processing device 202 may send the information to the communication devices associated with the first field professional and the second field professional, such as communication device 180 A.
- processing device 202 may provide a customer associated with the assign task, using network interface 206 , information indicative of the reassignment.
- the customer may be one of users 130 .
- processing device 202 may send the information to the communication device associated with the customer, such as communication device 180 C.
- the information indicative of the reassignment may include a name, an expected arrival time, and contact information (e.g., a phone number) of the second field professional.
- the system may be implemented as task scheduling unit 150 .
- the types of tasks may include product installation, product repair, product maintenance, product replacement, product diagnostics, customer consulting, or the like.
- the real-time conditions may be associated with specific demand categories, such that the system may change a ratio between the types of scheduled tasks by limiting the time windows that can be scheduled for a specific demand category.
- the system may limit the tasks for installing a first product to 70% of the available time windows (also known as time slots). This means that only 30% of the available time windows may be assigned to tasks associated with other products.
- the system may optimize work capacity for task scheduling and increase throughput of task scheduling.
- FIG. 7A is a flowchart of an example process 700 A for scheduling tasks to field professionals, consistent with the present disclosure.
- server 152 may implement process 700 A.
- processing device 202 may receive data from I/O system 210 or network interface 206 , and then execute instructions or program codes stored in memory interface 204 or database 154 , in which the instructions or program codes implement algorithms of process 700 A.
- the algorithms of process 700 A may be implemented as one or more of analysis module 441 , forecasting module 442 , planning module 443 , or scheduling module 444 .
- Process 700 A includes the following steps or operations.
- processing device 202 receives a set of requests reflecting demand for services.
- the set of requests may be associated with a number of task types.
- the requests reflecting the demand for services may be data including instructions to request remote services.
- the remote services may include marketing, surveys, business development, searches and other services that does not require the presence of the service providers.
- the requests reflecting the demand for services may be data including instructions to request on-site services.
- the on-site services may include installing Internet services, setting up utility services, repairing a telephonic device, replacing plumbing devices, or the like.
- the set of requests may be sent by any of the customer service unit 120 (e.g., via communication device 180 B), users 130 (e.g., via communication device 180 C), or IoT devices 140 .
- the services may be services requested to be performed by professionals on-site or by remote service providers.
- the number of task types may include different types of service.
- the task types may include product installation, product repair, product maintenance, product replacement, product diagnostics, customer consulting, or the like.
- the number of task types may include different types of products.
- the task types may correspond to different product categories, product models, product manufacturers, or the like. It is noted that the terms “task type,” “task classification,” and “demand category” may be used interchangeably herein and may refer to any distinguishable characteristic of a task for field professionals.
- processing device 202 receives availability data indicative of an availability of field professionals 110 or the remote service providers to perform the services. Available field professionals or remote service providers may be scheduled to perform the services.
- the availability data may be any data that indicates or represents the availability of field professionals 110 .
- the availability data may include any symbolic or numeric value that indicates a field professional is available or unavailable for a new task.
- processing device 202 may receive the availability data from field professionals 110 (e.g., via communication device 180 A).
- processing device 202 may receive the availability data from database 154 .
- processing device 202 may determine the availability data from inputs from field professionals 110 associated with a period time.
- a field professional may submit his or her personal schedule conflicts to server 152 via network interface 206 .
- the submission may be performed daily, weekly, monthly, or in any appropriate interval.
- processing device 202 may determine the availability data from personal records of field professionals 110 .
- the personal records may include scheduled holidays, vacations, leaves, or any off-duty time periods.
- the personal records may be stored in database 154 .
- processing device 202 receives skills data indicative of capabilities of each of field professionals 110 or remote service providers with respect to the task types.
- the skill data may include any classification of resource that indicates the capabilities of each of field professionals 110 or remote service providers to perform a work associated with a demand category. Field professionals capable of performing the task types may be scheduled to perform the on-site services.
- the skills data may be any form of data associated with a field professional or a remote service provider and indicative of the capabilities of the field professional.
- the skills data may be stored as a database record.
- the skills data may include data indicative of years of experience, categories of capabilities, certificates of the capabilities, levels of skills, past performance records, titles, team roles, or the like.
- processing device 202 may receive the skills data from field professionals 110 (e.g., via communication device 180 A). In some embodiments, processing device 202 may receive the skills data from database 154 . In some embodiments, processing device 202 may determine the skills data from personal records of field professionals 110 . For example, the personal records may include information representing qualifications, seniority, skill levels, years of affiliation, or the like. In some embodiments, the personal records may be stored in database 154 .
- processing device 202 may determine the skills data based on ranking associated with customers' feedback of field professionals 110 .
- the customers' feedback may include scores, stars, comments, answers to multiple-choice questions, emails, phone calls, letters, or the like.
- the ranking may be determined based on a number-based process (e.g., by ranking the scores) or an opinion-based process (e.g., by evaluating the comments).
- the opinion-based process may be implemented using a machine learning model capable of natural language processing.
- the ranking of a field professional may be performed for each of the task types the field professional is capable of performing.
- processing device 202 obtains at least one desired scheduling weight for the number of task types. For example, for each of the task types, processing device 202 may obtain a desired scheduling weight.
- the desired scheduling weight may be a value (e.g., a numeric, textual, alphabetic, or symbolic value) that indicates a level of desirability of the task type by a customer. For example, if the desired scheduling weight is a numeric value, the numeric value may indicate the level of the desirability.
- high desired scheduling weight may indicate high desirability of the task type, and processing device 202 may prioritize to schedule field professionals for such task type.
- a task of installing devices may have a lower desirability than a task of repairing devices, and the desired scheduling weight for the task of installing devices may have lower values (e.g., a value of 0.3) than the task of repairing devices (e.g., a value of 0.8).
- the values of the desired scheduling weight may be set to be within any range and not limited to the examples described herein.
- processing device 202 may receive an input indicative of the at least one desired scheduling weight.
- the input may be adjusted according to circumstances. For example, processing device 202 may receive the input in real time. For another example, processing device 202 may receive the input in a predetermined interval. For another example, processing device 202 may receive the input on demand by a user of customer service unit 120 . In some embodiments, the input may be received from a member of customer service unit 120 (e.g., a manager).
- processing device 202 may receive a desired scheduling weight for repair as 0.4 (e.g., representing that the repair tasks take 40% of the available time slots for task scheduling), and a desired scheduling weight for installation as 0.6 (e.g., representing that the installation tasks take 60% of the total scheduled tasks). Processing device 202 may assign each task of repair with the weight 40% and each task of installation with the weight 60%.
- the member of customer service unit 120 may desire to allocate more resources to support a new product than to an old product.
- the input may include a first weight (e.g., 0.8) for the new product and a second weight (e.g., 0.2) for the old product, in which the first weight may be greater than the second weight.
- the desired scheduling weight may correspond with a scheduling limit, such that a scheduling restriction may be placed on a first task type without placing a restriction on a second task type.
- the scheduling limit may be indicative of the percentage of the available time windows that can be scheduled for the first task type. For example, the system may avoid from scheduling more than 10% of the available time windows to tasks for repairing a certain product.
- the scheduling weight may be set as correlated with a period of time, such as a month, a season, a year, or any length of any period of time.
- a task of installing Internet devices may be highly demanded in a summer, and the scheduling weight for such a task may be set as higher than the scheduling weights in other times of the year.
- a task of repairing electrical apparatuses may be highly demanded after a heavy snowstorm, and the scheduling weight for such a task may be set as higher than the scheduling weights after normal weather conditions.
- the scheduling weight may be set as correlated with a geographic region, such as a city, a county, a community, or any size of any geographic region.
- a geographic region such as a city, a county, a community, or any size of any geographic region.
- a task of installing telephonic devices may be highly demanded in an urban area, and the scheduling weight for such a task may be set as higher than the scheduling weights in other geographic regions.
- a task of maintaining electrical apparatuses may be highly demanded in a rural region, and the scheduling weight for such a task may be set as higher than the scheduling weights in other geographic regions.
- processing device 202 may use artificial intelligence (AI) to determine the at least one desired scheduling weight for increasing throughput.
- AI may be implemented as a software module in task scheduling unit 150 .
- the AI may receive a marketing goal as input, and based on market data (e.g., stored in database 154 ), determine the desired scheduling weight to meet the marketing goals.
- the marketing goal may be, for example, increasing customer satisfaction on product maintenance in September. Based on such a marketing goal, the AI may increase the desired scheduling weight of the task type of product maintenance in September.
- processing device 202 generates a schedule for field professionals 110 based on the demand for services, the availability data, and the skills data. Consistent with the present disclosure, processing device 202 may determine scheduling policies based on available resources and wherein generating the schedule is based on the scheduling policies. For example, when a certain tool is temporary disable, avoid scheduling certain tasks.
- the available resources may include the field professionals themselves, working hours, vehicles, tools, equipment, spare parts, office space, and more.
- the schedule may be generated as any data that includes instructions for field professionals 110 to complete work at specified locations and time.
- the schedule may include a promised arrival time communicated to a customer, a destination of the customer, a route to the destination, or an expected arrival time determined based on real-time information.
- Generating the schedule for field professionals 110 may include including a first task in the schedule when the first task conforms with the at least one desired scheduling weight and excluding a second task from the schedule when the second task does not conform with the at least one desired scheduling weight.
- the first task may be installing a first product
- the second task may be repairing a second product.
- conforming with the at least one desired scheduling weight may be implemented as requiring a scheduling weight associated with a task exceeding the desired scheduling weight.
- the first and second tasks may be associated with a first and second scheduling weights, respectively.
- the first scheduling weight When the first scheduling weight is greater than or equal to the desired scheduling weight, the first task may conform with the at least one desired scheduling weight.
- the second scheduling weight When the second scheduling weight is smaller than the desired scheduling weight, the second task may not conform with the at least one desired scheduling weight. In some embodiments, the first scheduling weight may be higher than the second scheduling weight.
- the receipt order of the requests may be uncorrelated with generation of the schedule for field professionals 110 .
- processing device 202 may receive a first request associated with the first task may and a second request associated with the second task.
- the first request may be received after the second request.
- the first and second requests may reflect demand for services of the first and second tasks.
- processing device 202 may receive historical data associated with past demand for the task types.
- the historical data may be data associated with past performed services and may include statistics of numbers and types of demanded services (e.g., on-site services).
- the historical data may be zone-specific, such as grouped by different geographic regions. Different regions may have different statistics of demanded services. For example, an urban zone may be dominated by requests of Internet installing or repair services, and a rural zone may be dominated by requests of electrical equipment maintenance services.
- the historical data may be event-related, such as relating to an inclement weather condition (e.g., a storm). For example, demanded services of restoring utilities may spike after a big storm.
- the historical data may be time-specific, such as grouped by certain days of a week, a month, or a year. Different days may have different statistics of demanded services. For example, Mondays may be dominated by requests of Internet repair services, and Tuesdays may be dominated by requests of installing Internet services.
- processing device 202 may generate the schedule for field professionals 110 based on a prediction of demand associated with the received historical data.
- the prediction of the demand may be generated based on the statistics of the numbers and types of the demanded on-site services. For example, a frequency of an on-site service may be used as a probability to predict the likelihood of its demand.
- a scheduling weight of the on-site service may be determined based on the its frequency in the historical data. Processing device 202 may then generate the schedule using its scheduling weight. For example, based on historical data, processing device 202 may predict a demand of installing new Internet services is low in March. Based on such prediction, processing device 202 may generate the March schedule with lower priority for field professionals 110 associated with Internet service installation.
- the prediction of the demand may be determined using a machine learning model (e.g., implemented as a software model executable by processing device 202 ).
- processing device 202 may receive environmental data indicative of future events that affect completion of tasks.
- the environmental data may include information reflecting a known future event, such as a scheduled power blackout, infrastructure maintenance (e.g., a road construction work), an atypical weather condition, a public event (e.g., a parade), or the like.
- a known future event such as a scheduled power blackout, infrastructure maintenance (e.g., a road construction work), an atypical weather condition, a public event (e.g., a parade), or the like.
- processing device 202 may generate the schedule for field professionals 110 based on the environmental data.
- processing device 202 may receive environmental data indicative of a schedule blackout in a zone. Based on such environmental data, processing device 202 may generate the schedule for field professionals 110 to avoid working in the zone during the scheduled blackout.
- task scheduling unit 150 may reserve schedule availability associated with the desired scheduling weight.
- processing device 202 may further schedule tasks that do not conform with the desired scheduling weight when a daily schedule of field professionals 110 is not full.
- the desired scheduling weights for repair and installation may be 40% and 60%, respectively. Percentages of the actual schedules of repair and installation in the daily schedules may be 20% and 60%, respectively. In other words, the daily schedule of field professionals 110 is not full.
- processing device 202 may schedule up to 60% of the tasks to installations and leaves only 40% room for repairs.
- processing device 202 may further provide, using network interface 206 , to a field technician information reflecting an assignment of the first task.
- the field technician may be one of field professionals 110 .
- the information reflecting the assignment of the first task may be provided as a text message, a website hyperlink, a push notification of a phone application, or the like.
- processing device 202 may provide the information via network interface 206 to communication device 180 A.
- the information reflecting the assignment of the first task may include details about a customer associated with the first task.
- the details may include a name, an account number, or a phone number of the customer.
- the information reflecting the assignment of the first task may include description of the first task.
- the description may include a tool, a spare part, or an existing infrastructure, which may be needed by the first task.
- the information reflecting the assignment of the first task may include directional instructions to an identified location associated with the first task.
- the directional instructions may include a location, an address, or a driving route of the customer.
- FIG. 7B is a flowchart of another example process 700 B for scheduling tasks to field professionals, consistent with the present disclosure.
- server 152 may implement process 700 B.
- processing device 202 may receive data from I/O system 210 or network interface 206 , and then execute instructions or program codes stored in memory interface 204 or database 154 , in which the instructions or program codes implement algorithms of process 700 B.
- the algorithms of process 700 B may be implemented as one or more of analysis module 441 , forecasting module 442 , planning module 443 , or scheduling module 444 .
- Process 700 B includes the following steps or operations.
- processing device 202 receives a request for on-site service.
- Step 712 may be implemented in a way similar to step 702 in process 700 A.
- processing device 202 may determine a task type for the request. In some embodiments, corresponding relationships between task types and on-site services may be stored in database 154 , such as database record entries. Processing device 202 may inquire the database record entries to determine the task type for the received request.
- processing device 202 selects a date for scheduling the task. In some embodiments, processing device 202 may select the date based on various factors, such as demand of the on-site service.
- processing device 202 may select a date not conflicting with the demand.
- FIG. 7C shows an example of selecting the date for scheduling the task.
- FIG. 7C is a diagram of an example schedule for several field professionals, consistent with the present disclosure.
- the field professionals are Arnold, Bruce, Chuck, and Donald.
- the schedule shows assigned tasks and availability of each of the field professionals between 8:00 and 16:00 of a workday.
- the assigned tasks have two types, a first type of task (e.g., installing services) shown as dense-dotted blocks, and a second type of task (e.g., repairing services) shown as sparse-dotted blocks.
- Each of the field professionals are assigned with different numbers of the two types of tasks in different times of day. For example, Arnold is assigned with 5 tasks in the workday, with the first, third, and fifth tasks of the first type and the second and fourth tasks of the second type.
- Arnold, Bruce, and Chuck have a full schedule for the workday, and Donald has an empty time slot after his third task.
- Processing device 202 may select this workday for scheduling the received task based on the demand of the on-site service.
- the demand may include a time requirement of completion within five business days.
- the on-site service may be of the second type, and scheduling the on-site service does not conflict with the time requirement of the demand of the on-site service (e.g., the workday in FIG. 7C is within the five-business day after receiving the request). Accordingly, processing device 202 may select the workday in FIG. 7C as the selected date.
- processing device 202 determines whether scheduling the task in the selected date conforms with a scheduling limit associated with the task type. If scheduling the task in the selected date conforms with the scheduling limit associated with the task type, process 700 B proceeds to step 720 . Otherwise, process 700 B goes back to step 716 , at which processing device 202 may select another date for scheduling the task. Consistent with the present disclosure, process 700 B may be adapted to be used in other implementations of system 100 . For example, process 700 B may be adapted to be used when optimizing task schedules. As discussed below, system 100 may review the schedule and provided schedule change recommendations to enable greater optimization of scheduling all the field professionals as a whole.
- system 100 may determine whether scheduling the task in a recommended date conforms with the scheduling limit associated with the task type.
- system 100 may use a multi-route model to determine appointment availability.
- part of the routes may use a version of process 700 B to confirm that the scheduling limit associated with the task type is met.
- the first type of task has a desired scheduling limit of 0.3
- the second type of task has a desired scheduling limit of 0.7.
- the desired scheduling limits of the first and second types of tasks may be obtained in a way similar to step 708 of process 700 A.
- Such desired scheduling limit may reflect that the second type of tasks has higher desirability higher than the first type of tasks.
- the condition of conforming with the scheduling limit associated with the task type may be that, if a desired scheduling limit is smaller than 0.6, processing device 202 may schedule the first type of tasks to the workday in FIG. 7C . That is, the received request of on-site service will not be scheduled to the workday in FIG. 7C . Otherwise, if the desired scheduling limit is greater than or equal to 0.6, processing device 202 may schedule the second type of tasks to the workday in FIG. 7C . That is, the received request of on-site service will be scheduled to the workday in FIG. 7C .
- the description of the desired scheduling limit has been set forth in descriptions corresponding to step 708 of process 700 A and will not be detailed hereinafter.
- processing device 202 may determine that scheduling the task in the selected date conforms with the scheduling limit associated with the task type because the task is of the second type and has a desired scheduling limit of 0.7, such that the received request of on-site service may be scheduled on the work day in FIG. 7C .
- processing device 202 selects a field professional for completing the task.
- the workday of FIG. 7C is the selected date, and processing device 202 may select any of Arnold, Bruce, Chuck, and Donald as the selected field professional for completing the task.
- Processing device 202 may select the date based on various factors, such as availability of the field professional and skills data of the field professional.
- processing device 202 determines whether the selected field processional has availability on the selected date. If the selected field processional has availability on the selected date, process 700 B proceeds to step 724 . Otherwise, process 700 B goes back to step 720 , in which processing device 202 may select another field professional. As shown in FIG. 7C , only Donald has availability (i.e., the empty time slot) on the selected date. Processing device 202 may select Donald as the selected field professional. In some other embodiments, if no field professional is available on the selected date, process 700 B may goes back to step 720 .
- processing device 202 determines whether skills of the selected field professional comply with the task. If the skills of the selected field professional comply with the task, process 700 B proceeds to step 726 . Otherwise, process 700 B goes back to step 720 , in which processing device 202 may select another field professional.
- the skills required for completing the on-site service may involve certifications, past experience, past performance, customer satisfaction levels, years of experience, or any other indicators reflecting likelihood of successfully completing the requested on-site service of the selected field professional. Such skills may be stored as data entries associated with the field professional in database 154 , for example.
- processing device 202 may retrieve such data entries after selecting the field professional at step 722 , and determine whether the field professional has required skills for completing the on-site service by comparing values of the data entries to predetermined criteria. For example, if the requested on-site service involves repairing a device, processing device 202 may determine whether Donald has a certificate to repair the device. At step 726 , processing device 202 may schedule the task on the selected date to the selected field professional. For example, in FIG. 7C , processing device 202 may schedule the task to Donald's empty time slot.
- Disclosed and claimed is a system that implements predictive task scheduling for field professionals by predicting service demand based on historical data and schedule field professionals under full availability thereof based on the predicted service demand.
- the system may reserve some availability of field professionals as redundancy for a time period in a service schedule in case of emergencies that is likely to occur (but not yet occur when scheduling the field professionals) predicted by historical data.
- the predicated demand may include certain locations or certain types of task.
- the system may also determine where to send specific field professionals with specific skill sets.
- the system may be implemented as task scheduling unit 150 .
- FIG. 8A is a flowchart of an example process 800 A for scheduling tasks to field professionals, consistent with the present disclosure.
- server 152 may implement process 800 A.
- processing device 202 may receive data from I/O system 210 or network interface 206 , and then execute instructions or program codes stored in memory interface 204 or database 154 , in which the instructions or program codes implement algorithms of process 800 A.
- the algorithms of process 800 A may be implemented as one or more of analysis module 441 , forecasting module 442 , planning module 443 , or scheduling module 444 .
- Process 800 A includes the following steps or operations.
- processing device 202 receives a set of requests reflecting a current demand for on-site services.
- Database 154 may be configured to store historical data associated with past demand for field professionals.
- Processing device 202 is connectable to network interface 206 for access database 154 .
- the current demand may be a demand for on-site services that occur at a current time. In some embodiments, the current demand may be an actual demand occurring at the current time, rather than a predicted demand.
- the set of requests may be in a form of network data messages that may be received by processing device 202 via network interface 206 .
- the historical data may include any data reflecting statistics, attributes, environments, or circumstances associated with past demands of on-site services.
- the historical data may include statistical data reflecting frequencies and number of times of past demands for each of the on-site services.
- the statistical data may be associated with attributes of the past demands, such as a time period when such past demands were made, a location where such past demands were performed, a traffic condition when a field professional was reaching the location, a weather condition when the field professional was reaching the location, a number of dispatched field professionals, availability of field professionals during the time period, or any other related information.
- processing device 202 may further receive other data, such as traffic data indicative of current traffic conditions and historical traffic conditions, or weather data indicative of a current weather condition.
- traffic data may include data reflecting road conditions and level of traffic congestions of a region near the location of the on-site service or a route along with which a field professional may travel to reach the location of the on-site service.
- the traffic data may further include data reflecting past road conditions and level of traffic congestions of the region near the location of the on-site service around the time when the on-site service is scheduled.
- processing device 202 predicts imminent demand for on-site services based on the historical data.
- the imminent demand may be any demand that is likely to occur at a time close to a candidate schedule time for the requests reflecting the current demand.
- the imminent demand may be any sudden, improvised, urgent, emergent, or last-minute demand made by customers (e.g., out of plan).
- Processing device 202 may predict the imminent demand using the historical data. For example, for a candidate schedule time for the requests reflecting the current demand, processing device 202 may select a time period before the candidate schedule time and retrieve statistical data reflecting frequencies and number of times of occurrence of such imminent demands. Based on the statistical data, processing device 202 may determine a likelihood reflecting a probability that a certain number of requests reflecting the imminent demands would be made within the time period before the candidate schedule time.
- processing device 202 may predict imminent traffic conditions based on the received traffic data. For example, based on the historical traffic conditions, processing device 202 may determine an average traffic condition (e.g., an average road condition or an average level of traffic congestion) within the time period before the candidate schedule time as the predicted imminent traffic conditions.
- an average traffic condition e.g., an average road condition or an average level of traffic congestion
- processing device 202 may predict the imminent traffic conditions based on the weather data and the traffic data. For example, based on the weather data and average traffic condition as determined using the traffic data in the aforementioned embodiments, processing device 202 may adjust the average traffic condition in accordance with corresponding relationships between weather conditions and effects on traffic conditions (e.g., a raining condition may delay traffic speed for 20%, while a snow storm may delay traffic speed for 50%) to predict the imminent traffic conditions.
- a raining condition may delay traffic speed for 20%, while a snow storm may delay traffic speed for 50%
- processing device 202 generates a schedule for a set of field professionals based on the current demand for on-site services.
- the field professionals may be assigned with tasks to complete the on-site services.
- Processing device 202 may schedule the tasks in one or more time slots.
- the current demand may include different numbers of requests in different types, and processing device 202 may select field professionals capable to complete the requested on-site services and schedule the tasks in their available times.
- processing device 202 may determine the schedule for the set of field professionals based on the predicted demand for on-site services and locations associated with the set of requests. For example, as shown in FIGS. 3A-3B , a type of on-site service is requested at locations A, B, C, and D and a field professional (the first field professional P1) may be assigned to a task to complete such on-site services in locations A-D. In this example, processing device 202 may determine a schedule to complete the tasks in a temporal order of D ⁇ C ⁇ B ⁇ A because a predicted demand of such on-site service at location A may rise later that day.
- P1 may be able to respond to imminent demand of the same type of service around location A around the scheduled time. By doing so, total traveling time may be saved and faster response to customer requests may be achieved.
- processing device 202 may generate the schedule for the set of field professionals further based on the predicted traffic conditions.
- processing device 202 may determine a schedule to complete the tasks in a temporal order of A ⁇ B ⁇ D ⁇ C after considering the traffic data because processing device 202 may determine that traffic conditions between C and D would be bad at a specific time of day and the determined temporal order may allow P1 to avoid travelling between C and D during that specific time. By doing so, a total driving duration of P1 may be minimized.
- processing device 202 may generating the schedule for the set of field professionals further based on the current weather conditions.
- the current weather may be snowing
- processing device 202 may determine a schedule to complete the tasks in a temporal order of A ⁇ D ⁇ C ⁇ B after considering the traffic data and the weather data because the traveling between A and B would be very slow due to the snow weather if route A ⁇ B ⁇ D ⁇ C is adopted.
- route A ⁇ D ⁇ C ⁇ B P1 may avoid the current snow and road conditions may improve for traveling later that day. By doing so, a total driving duration of P1 may be minimized.
- processing device 202 reserves in the schedule availability based on the predicted imminent demand for on-site services.
- processing device 202 may arrange tasks in a first time slot under full availability of field professionals, such as up to a predetermined percentage. If the first time slot is insufficient to cover all requested on-site services, processing device 202 may arrange tasks in a second time slot, keeping the first time slot under full availability of the field professionals.
- FIG. 8B is a diagram of a timeline reflecting an example schedule associated with tasks, consistent with the present disclosure.
- two days of schedule are shown in the timeline.
- Five time slots are shown in FIG. 8B , in which time slot t1 spans from 8:00 to 16:00 in day 1, time slot t2 spans from 16:00 to 20:00 in day 1, time slot t3 spans from 8:00 to 12:00 in day 2, time slot t4 spans from 12:00 to 16:00 in day 2, and time slot t5 spans from 16:00 to an undetermined time in day 2.
- processing device 202 may receive the set or requests reflecting the current demand of the on-site service as described in step 802 in process 800 A.
- Processing device 202 may predict imminent demand for the same type of on-site service may rise in t3 based on historical data, as described at step 804 . For example, the prediction may show that during t3, some urgent requests of the same type of on-site services would be made by customers, and such urgent requests has high desirability to be completed soon (e.g., completed in t4). Processing device 202 may schedule a task associated with a field professional available to complete the on-site service in t4, as described at step 806 . To cope with the potential rise of imminent demand, processing device 202 may reserve 20% of availability of field professionals in t4. That is, for all field professionals that may be assigned to complete the task in t4, the maximum percentage thereof to be assigned in t4 is 80%.
- processing device 202 may start scheduling the task associated with field professionals available to complete the on-site service in t5. By doing so, if the urgent requests occur in t3, there would be 20% of field professionals available in t4 to complete the tasks.
- processing device 202 may reserve availability in the schedule for certain field professionals. In some embodiments, processing device 202 may reserve availability of field professionals with a specific skill set, field professionals performing a specific task type, field professionals having a specific experience level, or field professionals conforming to any predetermined criteria. For example, referencing to FIG. 8B , the requests received at step 802 reflecting the current demands may require a first skill and a second skill. Two types of field professionals having the respective skills may be assigned to complete the tasks. The imminent demands predicted at step 804 may show that another service demand requiting the first skill may rise in t3 but no service demand requiring the second skill would rise in t3, based on historical data. In this circumstance, processing device 202 may only reserve availability of field professionals having the first skill in t4, and impose no restriction on assigning field professionals having the second skill in t4.
- processing device 202 may reserve availability in a schedule for specific task types.
- the requests received at step 802 reflecting the current demands may include a first type of on-site service and a second type of on-site service.
- the imminent demands predicted at step 804 may show that only the first type of on-site service may rise in t3 based on historical data.
- processing device 202 may only reserve availability of field professionals performing the first type of on-site service in t4, and impose no restriction on assigning field professionals performing the second type of on-site service in t4.
- the percentage (e.g., 80%) of the reserved availability may be determined based on a desired scheduling weight of the task, the details of which are described above.
- processing device 202 may identify service zones associated with the predicted demand. Processing device 202 may further reserve availability in a schedule of a field professional who travels to an area associated with the identified service zones.
- a service zone may be a geographic region where a field professional provides on-site service.
- the area associated with the service zone may be a geographic region that includes, overlaps with, borders on, or locates close to the service zone.
- the service zone may be a zone that includes sites, buildings, or addresses that are easy to access in between, such as a university campus, a hospital campus, a residential community, or a business district.
- the service zone may be predetermined and recorded as a data entry in database 154 .
- one or more field professionals may be associated with a specific service zone and provide on-site service in that specific service zone.
- a field professional may be associated with one or more service zones for providing on-site services.
- Such associations may also be recorded or stored as data entries in database 154 .
- processing device 202 may use an address of the predicted demand to identify a service zone where the address is in.
- FIG. 8C is a diagram of a map showing example service zones associated with on-site services, consistent with the present disclosure.
- FIG. 8C shows a base B of field professionals, four service zones S1-S4, a field professional P1 located near S1, illustrated as a round dot, and a field professional P2 located near S2, illustrated as a square dot.
- the base B may be the starting point (e.g., starting points in FIGS. 3A-3B ) of routes of field professionals traveling to destinations for providing on-site services. For example, a demand is predicted to occur at an address in service zone S1.
- Processing device 202 may use the address to identify S1 as the service zone.
- Processing device 202 may determine that P1 is traveling to an area associated with S1.
- Processing device 202 may then reserve P1's availability in P1's schedule. For example, processing device 202 may determine a probability that a demand will occur in S1 and a distance from P1's current location to S1. Based on the probability and the distance, processing device 202 may determine how much availability would be reserved for P1. For example, the higher the probability, the higher availability may be reserved. For another example, the shorter the distance, the higher availability may be reserved.
- processing device 202 may identify a first service zone associated with a first predicted demand and a second service zone associated with a second predicted demand lower than the first predicted demand. For example, in FIG. 8C , processing device 202 may identify S1 associated with a first predicted demand (e.g., a repairing service) and S2 associated with a second predicted demand (e.g., an installing service). The second predicted demand may have a lower probability to occur than the first predicted demand.
- a first predicted demand e.g., a repairing service
- S2 associated with a second predicted demand
- the second predicted demand may have a lower probability to occur than the first predicted demand.
- processing device 202 may determine a strategy for reserving availability of field professionals. In some embodiments, processing device 202 may avoid reserving availability in a schedule of a field professional traveling to an area associated with the first service zone, and reserve availability in a schedule of a field professional traveling to an area associated with the second service zone. For example, in FIG. 8C , for field professional P1, S2 is more remote than S1. Based on the distance between P1 and S1, the distance between P2 and S2, and the probabilities that a demand will occur in S1 and S2, respectively, processing device 202 may determine the strategy for reserving availability of P1 and P2.
- processing device 202 may avoid reserving P1's availability in P1's schedule, and reserve P2's availability in P2's schedule instead, even though the probability that a demand will occur in S2 is lower than the probability that a demand will occur in S1.
- processing device 202 may further determine tools and spare parts required in tasks associated with predicted imminent demand. For example, in FIG. 8C , after reserving P1's availability in P1's schedule of t4 based on a prediction that an imminent demand (e.g., a repairing service) for on-site service in t4 might be requested in t3, processing device 202 may determine required tools and spare parts for the imminent demand. Corresponding relationships between services and tools and parts may be stored as data entries in database 154 . In some embodiments, once the imminent demand is predicted, processing device 202 may inquire database 154 to determine the corresponding required tools and spare parts.
- an imminent demand e.g., a repairing service
- processing device 202 may further confirm that the set of field professionals assigned to tasks associated with the current demand will have the tools and spare parts required in tasks associated with predicted imminent demand. For example, in FIG. 8D , when P1 is traveling in the area associated with S1 to perform on-site services requested in a current demand, processing device may determine that an imminent demand may occur in S1 and the required tools and spare parts needed for the imminent demand in S1. Processing device 202 may further confirm that P1 will have the required tools and spare parts for performing the imminent demand, in case P1 can be assigned to the imminent demand when it actually occurs.
- processing device 202 may notify (e.g., by sending a message) P1 the imminent demand that P1 may be assigned to and the required tools and spare parts, and P1 may respond (e.g., by sending another message) to the notification to confirm whether P1 has those tools and spare parts.
- FIG. 8D is a flowchart of an example process 800 D for scheduling tasks to field professionals, consistent with the present disclosure.
- server 152 may implement process 800 D.
- processing device 202 may receive data from I/O system 210 or network interface 206 , and then execute instructions or program codes stored in memory interface 204 or database 154 , in which the instructions or program codes implement algorithms of process 800 D.
- the algorithms of process 800 D may be implemented as one or more of analysis module 441 , forecasting module 442 , planning module 443 , or scheduling module 444 .
- Process 800 D includes the following steps or operations.
- Process 800 D starts with step 802 as described in FIG. 8A .
- processing device 202 uses the historical data to identify events associated with irregular past demand for field professionals.
- the historical data may be data associated with past services and may include statistics of numbers and types of demanded on-site services.
- processing device 202 may determine a frequency for each type of demanded on-site services, and such frequency may be used to determine a probability for each type of the on-site services to be demanded.
- Such frequencies may be zone-specific or period-specific. For example, the frequencies may be calculated for each service zone (e.g., as shown in FIG. 8C ), for each hour of the day, or for each hour of the date in each service zone.
- processing device 202 may determine regular or irregular past demands. For example, if the probability of a type of on-site service is in a predetermined probability range (e.g., 40% to 60%), processing device 202 may determine that on-site service as regular. If the probability of a type of an on-site service is out of the predetermined probability range (e.g., lower than 40% or higher than 60%), processing device 202 may determine that on-site service as irregular.
- a predetermined probability range e.g. 40% to 60%
- processing device 202 may determine that on-site service as regular. If the probability of a type of an on-site service is out of the predetermined probability range (e.g., lower than 40% or higher than 60%), processing device 202 may determine that on-site service as irregular.
- processing device 202 when processing device 202 identifies irregular past demands, it may further determine whether an event is associated with those irregular past demands. For example, processing device 202 may obtain from an information source to search for the event.
- the event may be a traffic condition, a weather condition, a specific time period, or a public event (e.g., a road construction, a road closure, a road opening, a holiday, a big sports event, a concert, a big conference, a product promotion, a sales marketing event, etc.).
- processing device 202 may identify that after a big snowstorm, past demands of utility repairing services may be irregularly high.
- processing device 202 may identify that before a holiday, past demands of Internet installing services may be irregularly high.
- processing device 202 predicts event-related demand for on-site services based on the irregular past demand. For example, at step 810 , processing device may identify that, for a specific service zone (e.g., S3 in FIG. 8D ) in a specific time period of a day (e.g., t4 in FIG. 8C ), a regular probability of a repairing service is 40%, but the probability thereof raises to 75% if a big snow storm happens before the specific time period. In this example, processing device 202 may predict the event-related demand (i.e., related to the big snowstorm) for the repairing service to be 35%. In other words, the difference between the regular probability and the irregular probability reflects the demands caused by the big snowstorm.
- a specific service zone e.g., S3 in FIG. 8D
- t4 a specific time period of a day
- processing device 202 may predict the event-related demand (i.e., related to the big snowstorm) for the repairing service to be 35%.
- processing device 202 reserves in the schedule availability based on the predict event-related demand for on-site services.
- processing device 202 may reserve a percentage of availability for a field professional serving the specific service zone in the specific time period, if a big snow storm is predicted to happen before the specific time period. The percentage may be determined based on the event-related demand, such as 35%, 20%, or any other percentage that reflect the influence of the event.
- FIG. 8E is a flowchart of an example process 800 E for scheduling tasks to field professionals, consistent with the present disclosure.
- server 152 may implement process 800 E.
- processing device 202 may receive data from I/O system 210 or network interface 206 , and then execute instructions or program codes stored in memory interface 204 or database 154 , in which the instructions or program codes implement algorithms of process 800 E.
- the algorithms of process 800 E may be implemented as one or more of analysis module 441 , forecasting module 442 , planning module 443 , or scheduling module 444 .
- Process 800 E includes the following steps or operations.
- a memory e.g., database 154 or memory interface 204
- the historical data may be data associated with past performed services and may reflect statistics of the past demand, the field professionals performing tasks associated with the past demands, and environments or circumstances when those tasks were performed.
- the geographical area may be a region where field professionals 110 provide their services, such as the map in FIG. 8C .
- the memory may be configured to store historical traffic data in a geographical area.
- the traffic data is set forth in description related to step 802 in FIG. 8A .
- the historical traffic data may be traffic data associated with past demands.
- the historical traffic data of service zones S1-S4 as shown in FIG. 8C may be stored in database 154 and accessed via memory interface 204 .
- processing device 202 may be configured to determine daily schedules of tasks based on the historical traffic data. Processing device 202 may determine the daily schedules of tasks based on the historical traffic data in a way similar to some embodiments of step 806 as described.
- the memory may be further configured to store historical performance data of the field professionals.
- Performance data may be data reflecting performances of the field professionals, such as time spent on completing the services, time spent on traveling, numbers of completed tasks in a workday, number of total working hours, reviews from customers, efficiency of completing the tasks, etc.
- the historical performance data of the field professionals may be their performance data associated with past demands.
- Processing device 202 may be further configured to determine the daily schedules of tasks based on the historical performance data. For example, based on the historical performance data, processing device 202 may rank the field professionals according to customers' feedback on their past performances (e.g., by review scores). Based on the ranking, processing device 202 may determine daily schedules of tasks for the field professionals, such as assigning more tasks to field professionals with higher rankings than field professionals with lower rankings.
- the set of requests may be associated with a number of task types and each request may be associated with a different location.
- processing device may receive multiple requests at step 802 , each of which may be associated with a task type (e.g., repairing, installing, replacing, maintaining, inspecting, etc.).
- Each of the requests may also be associated with a different location (e.g., in service zones S1-S4 in FIG. 8C ).
- processing device 202 may receive environmental data indicative of future events that can affect certain locations in the geographical area.
- the environmental data may be received from different data sources outside system 100 that monitor the environmental conditions in areas associated with task locations.
- the environmental data may include information reflecting a known future event, such as a scheduled power blackout, infrastructure maintenance (e.g., a road construction work), an atypical weather condition, a public event (e.g., a parade), or the like.
- the future events may affect some locations in the geographical area where the historical data thereof is stored in the memory.
- processing device 202 uses the historical data to identify service zones in the geographical area associated with predicted demand for specific task types.
- the predicted demand may be the imminent demand determined at step 804 in process 800 A.
- the predicted demand may be associated with multiple task types (e.g., repairing, installing, replacing, maintaining, inspecting, etc.).
- the predicted demand may also be associated with on-site services at different locations.
- Processing device 202 may identify the service zones based on the locations. For example, the service zones may be S1-S4 in FIG. 8C .
- processing device 202 may identify the service zones in the geographical area further based on the environmental data.
- the environmental data may indicate that a snowstorm will occur in the geographical area and some service zones will be affected.
- the affected service zones may have higher demand of some task types (e.g., repairing). Based on such environmental data, processing device 202 may identify the service zones that might have higher demands due to the coming snowstorm.
- processing device 202 determines a set of daily schedules of tasks for a set of field professionals. Step 818 may be implemented in a way similar to step 806 in process 800 A.
- processing device 202 may reserve capacity to account for predicted demand for a certain daily schedule with a task associated with a location in proximity to an identified service zone. The capacity may reflect the capability and resources available to complete the requested on-site services. For example, the capacity may include availability of field professionals, tools, spare parts, vehicles, etc.
- processing device 202 may predict that the likelihood of a task in that area is greater than a threshold, accordingly, a field professional may be sent to an identified service zone even if there is no pending task or a scheduled service in that area.
- processing device 202 may determine the schedule for the field professionals under full capacity. For example, referencing to FIG. 8C , service zones S3 and S4 may be identified at step 816 where some demands having the specific task types are predicted to occur. Processing device 202 may reserve availability of field professional P1 who has a schedule to complete a task in a location proximate to S1 to account for the predicted demand. In other words, in anticipation that predicted demand in S1 will be requested, processing device 202 may reserve P1's availability in case those predicted demands are actually requested in S1, in which processing device 202 may assign P1 to respond to the predicted demands. In some embodiments, besides availability of field professionals, processing device 202 may further reserve other capacity or resources in anticipation of responding to the predicted demands, such as extra tools, spare parts, vehicles, etc.
- processing device 202 provides directional instructions to a field professional assigned to the certain daily schedule to a location in proximity to a service zone.
- field professional P2 is assigned to a daily schedule to perform a task at a location proximate to S2 where demands in S2 are predicted to occur in the future.
- Processing device 202 may provide directional instructions to P2 using network interface 206 .
- P2 may receive the directional instructions via communication device 180 A.
- P2's vehicle e.g., an autonomous vehicle
- the directional instructions may be instructions that are informative for the field professional to complete tasks associated with the predicted demands.
- the directional instructions to the location in proximity to the service zone may include at least one of a waypoint, an address, and a driving route.
- the driving route may be a calculated route for P2 to drive to an address of a decimation in S2 where a predicted demand is actually requested, and the waypoint may be a location in the driving route.
- processing device 202 may assign a specific field professional to the certain daily schedule based on the predicted demand for specific task types in the identified service zone and known capabilities of the specific field professional.
- the specific field professional may have a higher qualification or a wider range of skills than a normal field professional. For example, referencing to FIG. 8C , some demands having the specific task types (e.g., inspecting and installing) may be predicted to occur in S2 at step 816 .
- P2 may be known to have capabilities to perform tasks of inspecting and installing.
- Another field professional P3 (not shown) who is near P2 may be known to have capabilities to perform tasks of installing only.
- processing device 202 may assign to P2 the daily schedule of completing tasks at a location proximate to S2 in case the predicted demands having inspecting and installing services are actually requested. Such assignment may achieve a goal that, when the predicted demands are actually requested, P2 may respond to a wider range of tasks than P3.
- processing device 202 may confirm that the field professional assigned to the certain daily schedule is capable to provide the specific task type in the identified service zone. In some embodiments, referencing to the previous example, processing device 202 may assign P2 daily schedule of completing tasks at a location proximate to S2. To confirm that P2 is capable to provide the inspecting and installing service types in S2, processing device 202 may inquire (e.g., by sending a message) P2 whether P2 has the capability to complete the inspecting and installing service in S2. In some embodiments, processing device 202 may further inquire P2 whether P2 has required tools and spare parts for the inspecting and installing service in S2. P2 may respond (e.g., by sending another message) to the inquiry to confirm.
- P2 may respond (e.g., by sending another message) to the inquiry to confirm.
- processing device 202 may be configured to direct the another field professional to an identified service zone even when no specific request from locations in proximity to the identified service zone has been received.
- a third field professional P3 (not shown) may unexpectedly become available, such as due to canceled requested demands in P3's daily schedule.
- processing device 202 may have identify S1 and S2 as service zones that might have predicted demands at step 816 .
- Processing device 202 may then direct P3 to S2 (or S1), even at a time when processing device 202 does not receive any specific request for on-site services at locations proximate to S2 (or S1).
- the predicted demands in S2 (or S1) are actually requested, more field professionals will be available to be assigned to the predicted demands, and the travel time for the assigned field professional (e.g., P3) may be shortened.
- processing device 202 may assign at least one location-agnostic task to the field professional to fill the reserved capacity when no additional on-site tasks are scheduled in the service zone.
- the location-agnostic task is a task that the field professional can perform remotely from a customer's place, such as a technical support session (e.g., a call, a video chat, an online chat, etc.).
- a technical support session e.g., a call, a video chat, an online chat, etc.
- P2 may become idle because processing device 202 may previously reserve P2's availability.
- processing device 202 may assign the location-agnostic task to P2, such that P2 may be utilized.
- a system may implement task scheduling for field professionals to complete a service in a single visit (referred to as “first-time technical services”) by determining requirements for completing the service based on comparison of attributes of services.
- the system may receive a request for a service, determine at least one attribute of the requested service, and compare the determined attribute to other services to determine a requirement for completing the service in a single visit.
- the at least one attribute may include, for example, information on the equipment, information on the infrastructure, information on the residence, information on environmental conditions, or any other information needed to perform the service.
- the requirement may include, for example, tools, spare parts, qualifications, vehicles, or any other physical object or precondition needed to perform the service.
- the system may be implemented as task scheduling unit 150 .
- FIG. 9A is a flowchart of an example process 900 A for scheduling first-time fix services, consistent with the present disclosure.
- server 152 may implement process 900 A.
- processing device 202 may receive data from I/O system 210 or network interface 206 , and then execute instructions or program codes stored in memory interface 204 or database 154 , in which the instructions or program codes implement algorithms of process 900 A.
- the algorithms of process 900 A may be implemented as one or more of analysis module 441 , forecasting module 442 , planning module 443 , or scheduling module 444 .
- Process 900 A includes the following steps or operations.
- processing device 202 stores a plurality of records reflecting characteristics associated with completing a set of technical services in database 154 .
- the technical services may include any combination of any number of on-site services or remote services.
- the on-site services may include any of installing, replacing, repairing, or inspecting products or services of any of water, sewage, electricity, gas, heat, Internet, telephone, mobile communications, or the like.
- the remote services may include any of telephone calls, video chats, text messages, mobile application communications, or any other technical or support services that may provide answers to a customer's questions or instructions to solve a problem.
- the characteristics may include any combination of any number of attributes, requirements, details, statistics, feedbacks, or any information that are associated with completing the set of the technical services.
- the characteristics may include any combination of any number of a specific tool, a spare part, a vehicle, a qualification of a field professional, a specific back-end service (e.g., an internal communication line between the field professional and server 152 ), or any physical object or requirements associated with completing a service.
- the records may be implemented as database entries in database 154 .
- relationships between the characteristics and the technical services may be stored as relational database entries.
- information in each record may be derived from historical experience of completing each of the technical services.
- the information in a record may be implemented as a portion of a database record, such as an attribute of a relational database record in database 154 .
- the historical experience may include any data reflecting statistics, performance records, customer reviews, customer feedbacks, comments, scores, or any previously stored data related to completing the technical services.
- the information in each record may be derived by using machine learning algorithms that identify patterns in the records of completed tasks. For example, the patterns may be indicative of skill sets of field professionals that have completed certain tasks in a single visit.
- each services may include data reflecting multiple services completed by multiple field professionals.
- the information in each record may be derived from the historical experience using a statistical technique.
- the derived information may include a statistic value of the information, such as an average score, an average value, a standard error, or the like.
- the derived information may be an average review score.
- the derived information may be an average completion time for the service and an estimated fluctuation range determined based on a standard error of the multiple time periods.
- the information when the historical experience includes non-quantified data, the information may be derived using a synthesis technique.
- the information of the records may be key elements of the textual data derived using a natural language processing technique.
- the information when the historical experience includes textual data, the information may be derived as an aggregation of the textual data.
- the aggregation of the textual data may include, for example, simple aggregation (e.g., concatenating) of the textual data, or merging (e.g., by removing duplicate fields) of the textual data.
- the information in the records may be derived from feedback from a set of field professionals (such as field professionals 110 ).
- the field professional may provide feedback explaining one or more reasons why he or she could not complete the service in a single visit.
- the feedback may include quantized or non-quantized data.
- the feedback may be textual comments drafted by the field professionals, such as via a graphical user interface (GUI) of communication device 180 A.
- GUI graphical user interface
- the field professional may be provided a list of selections to identify the reason why he or she could not complete the service in a single visit (e.g., via the GUI of communication device 180 A), and the feedback may be the item selected by the field professional.
- each reason why the service cannot be completed in a single visit may be pre-assigned with a code, and the feedback may include the code provided by the field professional (e.g., via the GUI of communication device 180 A).
- the derived information may also be stored as database entries in database 154 . In some embodiments, the derived information may be stored as separate data entries from the plurality of records. In some embodiments, the derived information may be integrated into the plurality of records, such as additional attributes of the database entries of the records.
- processing device 202 receives a request for a new technical service associated with a location.
- processing device 202 may receive the request may via the network interface 206 .
- the request may be sent from communication device 180 C by a customer, or sent from customer service unit 120 .
- the new technical service may be one of the set of the technical services at step 902 .
- processing device 202 assigns a field professional to perform the new service when processing device 202 has determined from information in the database a likelihood that the field professional will complete the new technical service in a single on-site visit at the location.
- processing device 202 may determine the likelihood from the derived information at step 902 . The likelihood may be determined using multiple techniques.
- processing device 202 may determine the likelihood using a statistical technique. For example, by statistics of the characteristics associated with completing the new service and statistics of completing the same type of service under the same or similar characteristics by the field professional, processing device 202 may determine a likelihood based on a calculation of the two statistics. For example, when the statistics of the characteristics show that an average completion time for the type of the new service is 60 minutes, and the statistics of the field professional show that his or her an average time for the type of the new service is 50 minutes, processing device 202 may determine a likelihood that the field professional will complete the task within 60 minutes with a predetermined confidence level (e.g., 95%).
- a predetermined confidence level e.g., 95%).
- processing device 202 may determine the likelihood using a machine learning mode.
- a neural network model e.g., a deep learning model
- the neural network model may be trained, and the initial parameters may be updated.
- the trained neural network model by inputting the characteristics of the same type of the technical service, the location of the technical service, and the name of the field professional, the trained neural network may output a likelihood that the field professional will complete the technical service in a single on-site visit at the location.
- processing device 202 may prioritize customer satisfaction by assigning a field professional having a higher likelihood to complete the customer's request of service in a single visit. For example, processing device 202 may determine a first likelihood that a first field professional will complete the new technical service in a single on-site visit at the location. Processing device 202 may determine a second likelihood that a second field professional will complete the new technical service in a single on-site visit at the location, and the second likelihood is greater than the first likelihood. Processing device 202 may then assign the second field professional to perform the new service.
- the information derived from the plurality of records at step 902 may include information obtained from one or more details associated with completing the requested service.
- the details may include customer inputs, logistics information, reminders, practice tips, check lists, key instructions, guidelines, or any informative material that would assist completing the requested service or getting the field professional prepared.
- the field professional knows the detail prior to performing the service, his or her likelihood to complete the requested service in a single on-site visit may increase.
- processing device 202 may further identify at least one detail from the plurality of records. Upon receiving the request for the new technical service, processing device 202 may obtain information associated with the at least one detail. In some embodiments, the detail may be stored as separate data entries from the plurality of records. In some embodiments, the details may be integrated into the plurality of records, such as additional attributes of the database entries of the records.
- processing device 202 may obtain information associated with the at least one detail by retrieving information about the location associated with the new technical service from at least one database (e.g., database 154 ).
- the information about the location may include the type of infrastructure in the area, such as water, sewage, electricity, gas, heat, Internet, telephone, mobile communications, or the like.
- processing device 202 may obtain information associated with the at least one detail by enquiring a user associated with the request. For example, if the technical service involves a problem with water supply, processing device 202 may send a request for detail to the user, asking the user if the location of the service has access to a water stopcock. For another example, if the technical service involves a problem with Internet connection, processing device 202 may send a request for detail to the user, asking the user if the user has a working modem. For another example, if the technical service involves a problem with electricity, processing device 202 may send a request for detail to the user, asking the user if the user has an active account with the utility provider.
- processing device 202 may assign field professional to perform the new service further based on the obtained information associated with the at least one detail.
- the detail may include a type of infrastructure in the location of the service, and working on the type of infrastructure may require a specific qualification (e.g., a certificate of electrician).
- Processing device 202 may inquire database 154 to obtain only the field professionals with the specific qualification, and assign the field professional among them to perform the new service.
- processing device 202 may further identify from the plurality of records a set of attributes for completing performance the new technical service in a single on-site visit.
- the set of attributes may include, for example, information on the equipment, information on the infrastructure, information on the residence, information on environmental conditions, or any other information needed to perform the service.
- processing device 202 may receive information that may affect the likelihood of the assigned field professional to complete the customer's request of service in a single visit.
- the information may include real-time information about a condition of object associated with the scheduled service, or the current status of parts (e.g., tools) that the field professional has currently available in his/her inventory.
- the field professional may be a nurse scheduled to do a home visit to do dialysis and the information may include updates on a health condition of a patient.
- the information may be received in response to an inquiry triggered by processing device 202 or independently by the customer.
- processing device 202 may determine if, in view of the received information, the likelihood of the assigned field professional to complete the customer's request of service in a single visit is still greater from a threshold. Step 910 may take place after the field professional was assigned and before the date and time that the task is scheduled for. For example, the information may be received on the same day as the scheduled task. Alternatively, the information may be received one or more days before the scheduled task. When the likelihood is below the threshold, processing device 202 may assign a different field professional with higher likelihood to complete the customer's request of service in a single visit. When the likelihood is greater the threshold, processing device 202 may continue with the same field professional and wait for additional information that may change the likelihood.
- FIG. 9B is a flowchart of an example process 900 B for scheduling first-time fix services, consistent with the present disclosure.
- server 152 may implement process 900 B.
- processing device 202 may receive data from I/O system 210 or network interface 206 , and then execute instructions or program codes stored in memory interface 204 or database 154 , in which the instructions or program codes implement algorithms of process 900 B.
- the algorithms of process 900 B may be implemented as one or more of analysis module 441 , forecasting module 442 , planning module 443 , or scheduling module 444 .
- Process 900 B includes the following steps or operations.
- processing device 202 receives a request for an on-site service at a selected location. Step 920 may be implemented in a similar way to step 904 .
- processing device 202 identifies a set of attributes associated with the requested on-site service.
- the set of attributes may include, for example, information on the equipment, information on the infrastructure, information on the residence, information on environmental conditions, or any other information needed to perform the service.
- processing device 202 may identify the set of attributes based on the location associated with the on-site technical service. For example, based on the location, processing device may inquire database 154 for any information about the address of the location, the infrastructure associated with the location, the current environmental conditions (e.g., weather conditions or traffic conditions) near the location, the equipment available to be used at the location, or the like.
- the set of attributes may include information about a residence of a user associated with the request. For example, different residences may need different equipment to complete the requested services, and based on the residence of the user, processing device 202 may determine the information about the equipment available to be used at the residence.
- processing device 202 may determine the set of attributes based on retrieved information about a user associated with the request.
- the information about the user may be stored in database 154 and retrievable using the received request.
- the request may include a name, an address, a phone number, an email address, or any identification information of the user. Using that identification of the user, processing device 202 may retrieve the information about the user from database 154 .
- the information about the user may be any informative data associated with the user, such as an age, a gender, a job title, a block-out on-site visit time, a block-out date, or any other data related to the person.
- the set of attributes may include information about an age of the user.
- a user in a specific age range e.g., a very young age or a very old age
- a specific age range e.g., a very young age or a very old age
- the field professional may have a warning to look for other possible problems or causes, which may help to complete the on-site service in a single visit.
- processing device 202 may determine the set of attributes based on a type of service requested.
- the type of services requested may include installing, replacing, repairing, or inspecting products or services.
- the set of attributes may include information about tools and spare parts needed to perform the type of service requested. For example, if the type of the service requested is installing a new device, the attributes may include information about the new device. If the type of the service requested is repairing a device, the attributes may include information about tools and spare parts for repairing the device.
- processing device 202 may determine the set of attributes based on environmental data.
- the environmental data may be data representing a condition near the location of the requested device or along a route to the location.
- the environmental data may include data representing a weather condition, a traffic condition, a public event (e.g., a scheduled road close), or any other condition that might affect the performing of the requested service.
- the set of attributes may include information about predicted weather conditions at the time of providing the service. For example, when the requested service requires working outside, and if a storm is coming at the time of providing the service near the location of the service, processing device 202 may schedule the service to another time.
- processing device 202 may suggest the user to schedule the service to another time.
- the set of attributes may include information about predicted light conditions at the time of providing the service. For example, when the requested service requires working outside and the time of providing the service is after dawn, processing device 202 may indicate a field professional assigned at step 926 to bring additional tools for lighting.
- processing device 202 uses the information stored in a memory (e.g., database 154 ) and the set of attributes to identify at least one requirement for completing the on-site service in a single visit.
- the requirement may include, for example, tools, spare parts, qualifications, vehicles, or any other physical object or precondition needed to perform the service.
- processing device 202 assigns a field professional to a task of providing the on-site service.
- the assignment may satisfy the identified at least one requirement.
- the attributes identified at step 922 include a required specific qualification to provide the on-site service
- the assigned field professional may have the specific qualification.
- the assigned field professional may be one that can operate the specific equipment.
- processing device 202 provides, using network interface 206 , information for directing the field professional to the selected location.
- the assigned field professional may be provided with information to bring the specific equipment.
- the assigned field professional may be indicated to consider other possible problems or causes of problems.
- the assigned field professional may be indicated to be rescheduled to another time.
- the system includes a memory, a network interface, and a processor connectable to the network interface.
- each task may be associated with constraints, such as the duration of a task, work hours, travel distance, and field professional skillset.
- the system may identify a plurality of tasks that were not scheduled within a predefined period and determine a common cause for them not to be scheduled within the predefined period. Thereafter, the system may present a recommendation for reducing the number of future unscheduled tasks.
- the recommendation may include, for example, changing a task constraint or hiring additional field professionals.
- FIG. 10 is a diagram illustrating a scheduling engine 1010 that receives requests and schedules corresponding tasks.
- the scheduling engine 1010 may, for example, be implemented using the task scheduling unit 150 .
- Scheduling engine 1010 may be implemented in hardware, software, or a combination of both.
- FIG. 10 illustrates a plurality of requests, Request 1 -Request i. Some requests, such as Request 1 -Request 5 , are from Date 1 . Similarly, Request 6 -Request 8 are from Date 2 , Request 9 and 10 are from Date 3 , and Request i is from Date j.
- the scheduling engine 1010 processes the requests in relation to a variety of constraints, including distance, time, geographic, service, and field-professional related constraints.
- the scheduling engine 1010 schedules tasks in response to each of the requests.
- the tasks may be schedule within the expected period of time or outside the expected period of time. For instance, Task 1-Task 3 and Task 5 are all expected to be completed within the period of time of seven days. However, due to the constraints, Task 4 is expected to be completed thirteen days after the request. Since this is longer than seven days, the scheduling engine 1010 may identify Task 4 as it is not scheduled to be completed within the expected period of time. Similarly, while Task 9 is scheduled within two days of the corresponding request, Task 10 is scheduled eleven days after the corresponding request.
- FIG. 11 is a flowchart of an example process 1100 for scheduling tasks to field professionals, consistent with the present disclosure.
- server 152 may implement process 1100 .
- processing device 202 may receive data from I/O system 210 or network interface 206 , and then execute instructions or program codes stored in memory interface 204 or database 154 , in which the instructions or program codes implement algorithms of process 1100 .
- the algorithms of process 1100 may be implemented as one or more of analysis module 441 , forecasting module 442 , planning module 443 , or scheduling module 444 .
- Process 1100 includes the following steps or operations.
- processing device 202 receives, from the network interface 206 , a set of requests for services.
- the set of requests may be any number of requests and may originate from clients, managers, field professionals, or from an automated system.
- the services may include any combination of any number of on-site services or remote services.
- the on-site services may include any of installing, replacing, repairing, or inspecting products or services of any of water, sewage, electricity, gas, heat, Internet, telephone, mobile communications, or the like.
- the remote services may include any of telephone calls, video chats, text messages, mobile application communications, or any other technical or support services that may provide answers to a customer's questions or instructions to solve a problem.
- processing device 202 schedules a set of tasks, in response to the set of requests for services.
- the processing device 202 may also establish a period of time within which the task must be accomplished. Some tasks may be expected to be completed within a period of time from when a corresponding request was received. In other words, some tasks may need fast or slow response times, such that they need to be completed quickly after receiving a request for service, or may be delayable. Management may set the expected completion period based on a variety of factors, such as urgency of the request, availability of resources, customer priority, or risk of additional damage.
- the period of time may be a set time, such as 9:00 on Friday the 23rd, or it may be a time limit, such as within two hours of request receipt.
- the processing device 202 may establish the schedule based on scheduling constraints. Scheduling constraints may be rules of when a task may or may not be scheduled. For instance, if a field professional having a necessary skillset is on vacation until the end of the month, the processing device 202 may avoid scheduling a particular task while the professional is away. Alternatively, the scheduling constraints may include work hours, holidays, part and equipment availability, travel time, task duration, and the like.
- processing device 202 determines a common cause of why at least two requests were not scheduled within a corresponding expected period of time.
- a common cause may be a reason, shared among multiple requests, explaining why the requests were not scheduled within a certain period of time. For instance, if a request is received to repair a customer's cable television, and the task of repairing the cable television is not scheduled to occur within a company's expected period of time of two hours because all available field technicians were already performing or scheduled to perform other tasks, processing device 202 may record the first occurrence of the unscheduled task. Should a similar situation occur again based on a second request, processing device 202 may identify the common cause as being not enough field professionals.
- processing device 202 may identify a common cause of insufficient replacement parts, database errors, vehicle maintenance, and the like. Alternatively, processing device 202 may identify that the constraint is too limiting, such that a strict scheduling constraint should be relaxed. By identifying common causes of tasks not being scheduled within a period of time, processing device 202 may, at step 1108 , enable reducing the number of future unscheduled tasks.
- the set of requests may be received from a plurality of users. Furthermore, each of the requests may be associated with an on-site service to be provided in a different location. That is, many users 130 may make requests for field professional service by contacting the customer service unit 120 . Thus, the set of requests may contain a service and a location where the service must be provided, enabling more accurate scheduling of tasks as well as knowledge of scheduling constraints.
- Scheduling constraints may include distance, time, geography, service, or field professional related constraints.
- distance constraints a company may have a policy that its field professionals will only travel to locations within three hours of travel during the morning hours, so as to reduce travel costs and burden on field professionals.
- scheduling may be constrained by time of day considerations, such that tasks that typically take three hours to complete or tasks with a wide range of durations will not be scheduled near the end of a day.
- a company may prohibit its field professionals from traveling to certain high crime areas during nighttime, thereby constraining the schedule. Services that require heavy outdoor labor may be constrained to early morning or late evening scheduling.
- a schedule may be limited by capabilities of specific field professionals. For instance, if a particular service requires a master plumber and Rob is the only master plumber employed by a company, scheduling of a service that requires a master plumber may be constrained by Rob's vacation and work schedule.
- Scheduling constraints may also include at least two of a distance-related constraint, a time-related constraint, a geographic-related constraint, a service-related constraint, and a field-professional-related constraint.
- a scheduling constraint may be that certain field professional is only able to complete tasks within a two-hour travel radius of a main office.
- a refinery requiring a pneumatic mechanic may only be shut down for maintenance at night. In such a case, there would be a time-related constraint as well as a service-related constraint of a certain skill set.
- the scheduling constraints may be inputted by a user.
- the user may be an administrator of the system, who may use the I/O system 210 to input scheduling constraints.
- the scheduling constraints may be entered along with the set of requests. Alternatively, the scheduling constraints may be entered asynchronously from the set of requests, for example, being saved for use in scheduling a future set of tasks, or after receiving a set of requests for services.
- scheduling constraints may be generated by an Artificial Intelligence (AI) module.
- the AI module may be part of the scheduling module 444 , or in a different system.
- the AI module may, for instance, determine scheduling constraints from past schedules, sets of requests, sets of tasks, or scheduling constraints. For instance, if only one field professional is able to service elevators, and that one field professional is unable to work after noon on Fridays, the AI may determine that elevators may not be serviced on Friday afternoon. As another example, if no field professionals are able to keep appointments in the city after 4:00 due to traffic, the AI may create a scheduling constraint that tasks will not be scheduled in the city after 4:00.
- the set of requests may be associated with different task types.
- the processor may be configured to determine a period of time for task completion for each request based on the associated task type. For example, in the case of a medical field professional, if a service request of taking a blood sample is made, the medical field professional may be expected to complete this task within three days. However, if a service request is made because a patient has the flu, the medical field professional may be expected to complete the task within one day. Thus, the processing device 202 would determine the period of time for task completion for each of the requests in the set of requests.
- the processor may be configured to determine a common cause why a first request associated with a first period of time and a second request associated with a second period of time longer than the first period of time, were not scheduled with tasks expected to be completed within their corresponding periods of time. For example, if the medical field professional was unable to draw blood within three days, and also was unable to treat the flu within one day, the system may determine that neither request was scheduled within the expected period of time because the medical field professional was ill or on vacation. This could help identify if more medical field professionals are needed.
- the system may determine a plurality of causes for the set of requests.
- a common cause may be associated with at least two of the scheduling constraints.
- Each cause may be associated with a number of requests that were not scheduled with tasks expected to be completed within corresponding periods of time. For example, requests that were not scheduled with tasks expected to be completed within the period of time may have the same constraint that the requests require work done more than a three-hour drive away. Furthermore, the requests may also have the same constraint that work must be completed while a facility is shut down for maintenance.
- the common cause may be associated with at least two scheduling constraints.
- the processor may also identify a main cause of why some requests were not scheduled with tasks expected to be completed within corresponding periods of time, and also cause an issuance of a notification associated with the main cause.
- a main cause may be a constraint that is too restrictive and prevents scheduling a set of tasks unnecessarily.
- a constraint may be that no tasks may be scheduled after 1:00, and no HVAC servicing may be done without Mackenzie. Both of these constraints may lead to a number of requests not having scheduled tasks expected to be completed within a corresponding expected period of time.
- the processor may therefore determine that the constraint on no tasks being scheduled after 1:00 is the main cause of why some requests were not scheduled with tasks expected to be completed within the corresponding period of time.
- the processor may issue a notification alerting a user to the main cause.
- the processor may determine that constraints inputted on January 7 are too restrictive, and notify a user of such a finding.
- the processor may present a recommendation for reducing the number of future unscheduled tasks.
- This recommendation may be displayed, for instance, as part of the service optimization suite architecture shown in FIG. 5 .
- the presentation layer 502 may display a recommendation.
- the presentation layer 502 may display a suggested schedule based on the determined recommendation that has less unscheduled tasks compared to an existing schedule.
- the suggested schedule may cover any period of time, such as a day, week, or month. This suggested schedule may have different scheduling constraints than the original schedule.
- the recommendation may include a suggestion to change at least one of the scheduling constraints.
- the recommendation may suggest removing limitations on the length of a workday, driving range, or geographic area.
- the recommendation may be to move constraints in time.
- the recommendation may be to constrain tasks in a city to afternoon hours rather than morning hours, thus avoiding traffic.
- the recommendation may include a suggestion to hire additional field professionals. If the system determines that a particular field professional is frequently needed at two facilities, many miles apart, and travel time causes constraints on the field professional's ability to serve both sites, the system may recommend hiring an additional professional. Furthermore, if a particular field professional has a unique skillset that others do not, the system may include a description of the qualifications needed for new field professionals.
- the processor may also be configured to determine how many of the requests would have been scheduled to tasks expected to be completed within the predefined period of time if the recommendation had been implemented before.
- the recommendation may include a metric showing the reduction in unscheduled tasks.
- the number of requests that would have been scheduled to tasks may be calculated on past, present, or future schedules. Furthermore, the number of requests may be calculated for any defined period of time, such as a month.
- FIG. 12 is a flowchart of a process 1200 for initiating an action due to unscheduled tasks.
- the system receives a request for a service and, at step 1204 , the system schedules a task based on scheduling constraints.
- the system determines if the task was scheduled within the expected period of time. If step 1206 is Yes, the system waits to receive the next request for a service. If step 1206 is No, the system stores details of the request at step 1208 . The system thereby determines the number of requests that were not scheduled with tasks expected to be completed within the period of time.
- the system determines if there are more than two unscheduled tasks.
- the number of requests may cover any period of time. Furthermore, the period of time may be in the past, or the period of time may be in the future, such that the number of requests not scheduled may be analyzed and potentially corrected before the period of time elapses. For instance, if a schedule for the next week has already been set, the number of requests that were not scheduled with tasks expected to be completed may still be calculated, thus giving a manager the opportunity to reshape the schedule to avoid or reduce unscheduled tasks and better serve customers. If step 1210 is Yes, the system may proceed to step 1212 to determine a common cause of the unscheduled tasks. If step 1210 is No, the system may proceed to step 1214 without determining a common cause.
- the system may also initiate an action when the determined number of requests is greater than a predetermined threshold. For example, a company may set a threshold of five unscheduled tasks for a month.
- the system determines if the number of unscheduled tasks is greater than the threshold. If step 1214 is No, the system returns to wait for the next request. However, if step 1214 is Yes, the system may initiate an action at step 1216 . For example, the action may be initiated if there have been more than five unscheduled tasks in the past month. Alternatively, the action may be initiated if the schedule for the next month includes too many requests that were not scheduled with tasks expected to be completed within the period of time. The system may then return to step 1202 to receive a new request, or, the system may wait for a user interaction depending on the initiated action.
- a predetermined threshold For example, a company may set a threshold of five unscheduled tasks for a month.
- the initiated action may include issuance of a warning message.
- the warning may be displayed, for instance, as part of the service optimization suite architecture shown in FIG. 5 .
- the warning may include data concerning how many requests were not scheduled with tasks expected to be completed within the period of time.
- the action may include automatically changing a scheduling constraint.
- the method may result in a constraint on work hours to be changed automatically, such that field professionals work more hours each day in order to accommodate a surge in requests for services.
- the system includes a memory, a network interface, and a processor connectable to the network interface.
- the system may therefore schedule tasks that are location-agnostic and tasks that are location-based in such a way so as to optimize field professional time. For instance, the system may schedule a location-agnostic task chronologically between two location-based tasks, using predicted traffic delays, to reduce wasted time.
- the system may be implemented as task scheduling unit 150 .
- FIG. 13 is a flowchart of an example process 1300 for a scheduling method for field professionals, consistent with the present disclosure.
- server 152 may implement process 1300 .
- processing device 202 may receive data from I/O system 210 or network interface 206 , and then execute instructions or program codes stored in memory interface 204 or database 154 , in which the instructions or program codes implement algorithms of process 1300 .
- the algorithms of process 1300 may be implemented as one or more of analysis module 441 , forecasting module 442 , planning module 443 , or scheduling module 444 .
- Process 1300 includes the following steps or operations.
- a set of first requests for on-site assistance from a first set of users is received.
- the set of requests may be one or more requests, and may be received directly from users, for example, via an online request, telephone call, and the like.
- the requests may be entered by a customer service unit 120 on behalf of a user, or the requests may be entered directly by a manager, director, or field professional upon seeing a need for on-site assistance.
- a second set of requests from a second set of users is received.
- the second set of users may be the same as or different from the first set of users.
- the second set of requests may be a single request or many requests, and may be received before, simultaneously, or after the first set of requests.
- the second set of requests may be for remote assistance, rather than on-site assistance.
- Answering each of the set of first requests for on-site assistance may require one or more field professional to travel to a location associated with a user from the first set of users. That is, location-specific tasks may include tasks that require one or more field professional to travel to a location associated with a user. These tasks may only be completed with a visit to the user's location, and include tasks such as installing equipment, repairing equipment, connecting equipment, and the like.
- answering each of the set of second requests for remote assistance may require the one or more field professional to connect via a communication network with a user from the second set of users.
- location-agnostic tasks may require a field professional to connect via a communication network with a user or resource and may include services that may be accomplished virtually, such as setting parameters digitally, debugging internet connectivity, researching problems, troubleshooting, providing guidance over the phone or email to operators or users, ordering parts, or speaking with other field service professionals for guidance.
- Location-agnostic tasks may optionally be completed at the site of the user, but they also may be completed at any location so long as the field professional can connect via a communication network with a user or, if necessary, a resource.
- a plurality of location-based tasks associated with the set of first requests is assigned to one or more field professional.
- one or more field professional is assigned responsibility for tasks that address the set of first requests.
- Field professionals may be notified of the assignments in person or remotely, for example, via the field professional communication device 180 A.
- the system receives real-time information including current location information of the one or more field professional.
- the real-time information may include information of if a task has been completed yet, or the location of the field professional.
- step 1310 it is determined, based on the real-time information, whether the one or more field professional can complete a location-agnostic task associated with a second request after completing a first location-based task and before starting a second location-based task.
- Real-time information may include locations of tasks, traffic conditions, unexpected delays, or changes in task status, for example, a task being completed early or a task being unable to be completed, resulting in the field professional being unobligated earlier than expected. Additionally, expected task duration information may be considered.
- the location-agnostic task may be assigned to the one or more field professional at step 1312 .
- the assignment may be recorded in a database 154 of the task scheduling unit 150 .
- the assignment may be communicated to the field professional automatically, via the field professional communication device 180 A, or by a manager who receives a notification from the system and approves the assignment before notifying the field professional.
- one or more field professional may be provided a planned field professional schedule 1410 .
- the schedule shown includes driving times between location-specific tasks 1 and 2, tasks 1 and 2, and a location agnostic task 1.
- the one or more field professional completes the scheduled activities of driving and location-specific task 1.
- traffic on the route that the one or more field professional would travel to location-specific task 2 becomes unusually heavy, perhaps due to a car accident or roadway construction.
- process 1300 may be used to revise the schedule of the field professional.
- real-time information may be received about the location of the field professional, as well as real-time information about traffic conditions.
- step 1310 based on the real-time information of the traffic delay shown in the observed traffic 1420 of FIG. 14 , it may be determined that location-agnostic task 1 should be completed in the time that the field professional would be stuck in traffic.
- the field professional's schedule may be revised, reassigning the field professional to complete location-agnostic task 1 before starting location-specific task 2, as shown in revised filed professional schedule 1440 .
- the field professional is able to accomplish three tasks during a shift due to process 1300 , whereas, without process 1300 , the one or more field professional would have been able to complete only two tasks during the shift, with significant time spent being unproductive in traffic.
- the determination of whether the one or more field professional can complete a location-agnostic task after completing a first location-based task and before starting a second location-based task may be based on field-location information.
- the field-location information may include information about the status of a site, such as weather conditions, or status of the one or more field professional, such as prior task completion time or field professional location, that could affect the field professional's ability to perform a later task.
- the field-location information may be received from a wireless communication device associated with the one or more field professional, such as the field professional communication device 180 A, and may be derived by using a GPS signal or cell site location information, for instance.
- the field-location information may also be derived from other sensors or sources, both public, such as on the internet, and private, such as monitoring devices owned by the user or field professional company. In such a manner, the field-location information may be provided and received automatically, without intervention of the field professional. Alternatively, the field-location information may be derived with the intervention of the field professional, for example, by phone calls, text message, or other communications placed by the field professional.
- Information about traffic conditions associated with a field-location for one or more field professional may also be used to determine whether the one or more field professional can complete a location-agnostic task after completing a first location-based task and before starting a second location-based task. For example, if traffic is unusually heavy, a field professional will have time to accomplish a location-agnostic task while waiting for traffic to clear. Alternatively, if traffic is light, the field professional should proceed to the next location-specific task.
- Information about traffic conditions may be derived from publicly available data, including traffic tracking websites or government websites that show construction or emergency closures. Alternatively, information about traffic conditions may be derived from field professionals themselves.
- a delay may occur in that field professional's arrival at a task and determine traffic conditions. This information may be used determine whether the field professional can complete a location-agnostic task.
- Information about environmental conditions associated with a field-location for one or more field professional may be used to determine whether the one or more field professional can complete a location-agnostic task after completing a first location-based task and before starting a second location-based task.
- some location-specific tasks may require working outdoors, and could be impaired by high winds or thunderstorms, such as working on electrical lines.
- the system may therefore obtain weather data from publicly provided sources or via reports from individual field professionals. If a severe thunderstorm is affecting the location of a location-specific task, a field professional may not be able to start the task. In such a case, the system may determine that the field professional can complete a location-agnostic task before starting a second location-based task.
- Environmental conditions may also be used to determine travel times, for instance, if snowstorms will cause delays in arriving at a location.
- One or more field professional may be scheduled to perform an additional location-based task after completing a first location-based task and before starting a second location-based task. Additionally, the one or more field professional may be assigned a location-agnostic task instead of the additional location-based task based on the real-time information. For instance, a field professional may have a first location-based task of installing a new cable television system at Address 1 at 9:00, and a second location-based task of servicing a cable system at Address 2 at 13:00. The field professional may have an additional location-based task of installing a new modem at Address 3 at 10:30.
- the field professional may be assigned to complete a location-agnostic task of remotely configuring a virtual private network for a client at 10:30, rather than completing the additional location-based task of installing a new modem, due to heavy traffic.
- the inability of the one or more field professional to reach a location associated with the additional location-based task at a scheduled time may be determined from real-time information.
- the system may determine the inability of the field professional to reach Address 3 by 10:30 due to real-time traffic conditions between Address 1 and Address 3.
- the system may determine from real-time information about the delay that the field professional is unable to reach Address 3 by 10:30, and instead assign a location-agnostic task to the field professional instead of the additional location-based task.
- a notice of cancellation of the additional location-based task may be used to estimate a free time window in a daily schedule of one or more field professional. Based on the estimated free time window, it may be determined whether one or more field professional can complete the location-agnostic task after completing the first location-based task and before starting the second location-based task. For example, continuing the above example, if the user that requested the additional location-based task at Address 3 cancels the 10:30 appointment, the field professional may now have an unexpected free window in his schedule. Rather than this time going unused, it may be determined, based on the estimated free window, whether the field professional can complete a location-agnostic task after completing the first location-based task and before starting the second location-based task. The determination may be completed at any time.
- a notice of cancellation may originate in a user, for example, if the user is not able to be at the facility during the scheduled time, or the notice of cancellation may originate from an employee, such as a manager or another field professional.
- the additional location-based task may be reassigned to one or more second field professional and the location-agnostic task may be assigned to the one or more field professional.
- the urgency notifications may have multiple levels, such as low, medium and high, and may be based on a variety of factors, including user importance, paying higher fees for higher priority service, and the like.
- the threshold at which the system reassigns tasks may be independent of other considerations, such that, for example, high urgency tasks always are reassigned, or may take into account other considerations, such as other delays that may be introduced by altering the planned schedule.
- information identifying the one or more field professional as more suitable to provide the location-agnostic task than one or more second field professional may be obtained, and, based on this information, the additional location-based task may be reassigned to the one or more second field professional and the location-agnostic task may be assigned to the one or more field professional.
- the obtained information may be obtained from system memory.
- the information may be derived from a user, such as a user requesting a particular field professional who had previously serviced the facility.
- information such as skills data, past experience, and ranking may be used in identifying one or more field professional as more suitable to provide the location-agnostic task than the one or more second field professional.
- field professional 1510 there may be two field professionals, field professional 1510 and second field professional 1520 . Both may be qualified to install modems, but only field professional 1510 is qualified to establish virtual private networks remotely. If a hospital emergency room's virtual private network fails, a high urgency notification may indicate a necessary location-agnostic task of repairing the network. Subsequently, as shown in FIG. 15B , the additional location-based task of a modem installation may be reassigned from field professional 1510 to second field professional 1520 . Field professional 1510 may then be assigned the location-agnostic task of remotely repairing the emergency room's virtual private network. Alternatively, field professional 1510 may have past experience with the hospital's network or superior past rankings by customers. Any combination of these and other factors could be used to determine that field professional 1510 is more suitable to provide the location-agnostic task.
- one or more field professional may be instructed to initiate a location-agnostic task before driving to a location associated with a second location-based task.
- the instruction may be provided by a variety of means, including automatically to the field professional communication device 180 A, or posted to a publicly viewable calendar.
- the instruction may cause a dispatch person to personally notify a field professional via a phone call, radio call, email, or text message. Notifying the field professional before driving to the location associated with the second location-based task reduces lost time and maximizes field professional utilization.
- the instruction may be provided to one or more field professional after driving at least part of the way to a location associated with the second location-based task.
- the system may notify the field professional to stop driving and complete a location-agnostic task while waiting for traffic to clear.
- the field professional may be instructed to perform more location-agnostic tasks if the traffic still caused delays.
- the field professional may resume driving to the second location-based task upon completion of the location-agnostic task with or without further notification.
- historical traffic data may be used to determine a daily schedule of the one or more field professional.
- the daily schedule may include at least one or a plurality of location-agnostic tasks and a plurality of location-based tasks.
- location-agnostic tasks may also be scheduled in advance. For instance, if the historical traffic data indicates that highways near the city are always congested between 16:00 and 18:00, a daily schedule of a field professional may include location-agnostic tasks between 16:00 and 18:00 so that the field professional may be productive despite traffic delays.
- Historical traffic data may, for example, be derived from public sources, or from historical trends as recorded for other field professionals.
- a field professional's schedule may include a plurality of location-agnostic tasks. These may all be for a single user, or for a single type of service, or for many users, or many services.
- a second request may be received after one or more field professional has started the first location-based task. That is, a schedule may be set prior to the start of the workday, but the schedule may also change throughout the day in response to other factors such as traffic, environment, schedule conflicts, field professional availability, and the like.
- Assigning a location-agnostic task to one or more field professional may include sending a link to a remote assistance session to a mobile device associated with the field professional.
- the mobile device may be the field professional communication device 180 A, or may be another device.
- the remote assistance session may be, for example, a remote desktop access tool, a virtual private network, or access to an administrator website.
- the link may enable the field professional to complete the location agnostic task.
- assigning a location-agnostic task to one or more field professional may include transferring a call to a mobile device associated with the one or more field professional.
- the video call may connect a field professional with a user, with another field professional, or with any other employee.
- the mobile device may be the field professional communication device 180 A, or may be another device.
- the video call may enable a field professional to provide remote assistance or obtain further information and guidance related to the location-agnostic task.
- the system includes a memory, a network interface, and a processor connectable to the network interface. The system may therefore provide booking responses for requests to book a new appointment using a multi-route model.
- the multi-route model may be configured to determine booking responses in different ways. For instance, a first method may provide fast response time, while a second method may provide high response accuracy. In this manner, a user or manager may be provided a quick booking response, improving user experience and reducing delays.
- the disclosed methods may be implemented by task scheduling unit 150 .
- FIG. 16 is a flowchart of an example process 1600 for a scheduling method for field professionals, consistent with the present disclosure.
- server 152 may implement process 1600 .
- processing device 202 may receive data from I/O system 210 or network interface 206 , and then execute instructions or program code stored in memory interface 204 or database 154 , in which the instructions or program code implement algorithms of process 1600 .
- the algorithms of process 1600 may be implemented as one or more of analysis module 441 , forecasting module 442 , planning module 443 , or scheduling module 444 .
- Process 1600 includes the following steps or operations.
- a multi-route model for appointment booking for determining booking responses in different ways is stored.
- the model may be stored in memory interface 206 or in a non-transitory computer-readable storage medium.
- the model may include, for example, a machine learning model, an algorithm of checking actual assignment schedules to find schedule availability, and the like.
- the model may rely on external data, for example, data received from the network interface 206 or database 154 that show field professional availability, typical appointment durations, preferred appointment times, and other scheduling constraints.
- the multi-route model may include a plurality of models to determine appointment availability.
- a request to book a new appointment for a service is received.
- This request may be entered directly by a user, for example, on a company website. Alternatively, the request may be entered by a member of the customer service unit 120 , or by a manager.
- the appointment may be for an on-site, location-based visit by a field professional, such as, for example, performing veterinary procedures on a farm, or installing internet equipment at a house.
- the appointment may also be for performance of remote, location-agnostic services, such as configuring an internet connection, that may be performed at any location.
- a first booking response for the request is output, wherein the first booking response is determined using the multi-route model.
- the first booking response may be based on statistical measures and does not necessarily provide accurate results.
- the first booking response may be provided immediately, by a company website or a member of the customer service unit 120 , or may be further analyzed or processed before being provided.
- the first booking response may be one of a plurality of results provided by one of the models of the multi-route model.
- the first booking response is verified based on a second booking response determined using the multi-route model. That is, the multi-route model may provide a plurality of results. The results may be the same, or they may be different. Furthermore, each of the models in the multi-route model may each produce a plurality of results for output and verification. Thus, in step 1608 , the response provided by one model of the multi-route model is verified by another response provided by another model of the multi-route model. Verification may occur by comparing the first booking response to the second booking response. If, for instance, the second booking response shows that the first booking response cannot be the basis of an appointment, perhaps due to a conflict in the schedule, step 1608 may identify that the first booking response is invalid.
- Process 1700 begins by receiving a request to book a new appointment for a service at step 1702 .
- a multi-route model is executed.
- a predictive machine learning algorithm may be executed to determine a first booking response.
- the predictive machine learning algorithm may be implemented through any machine learning technique.
- the first scheduling model may use previous proposed times to determine the first proposed time. For example, if previous cable installations occurred at 2:00 on Tuesdays and internet installations occurred at 1:00 on Wednesdays, the first scheduling model may use this information when determining a first booking response for a new request for cable installation.
- the predictive machine learning algorithm may determine a first booking response corresponding to the initial request for an appointment.
- the first booking response is checked at step 1708 to ensure that the booking response complies with user-related time constraints before outputting the first booking response.
- the first booking response is compared to the unavailable times. For example, a user may request, at step 1702 , an appointment for installation of new solar panels. Furthermore, if the user works or travels every Monday and Tuesday, the user may indicate that Mondays and Tuesdays are unavailable. If the first booking response is determined for Monday or Tuesday, the booking is rejected, and another first booking response is determined.
- the first booking response may be outputted at step 1710 .
- the output may be promptly displayed to a user or customer service agent, or it may be output for further processing before being displayed to a user.
- a user may also submit a user-related time preference.
- the first and second booking responses may be determined based on the user-related time preference.
- a time preference may be, for example, a desire to have service completed before the 15th of the month.
- the user may submit time constraints and time preferences, or time constraints only, or time preferences only, or no time constraints or time preferences at all.
- the user may submit any number of time constraints or time preferences. Time constraints or time preferences may comprise any unit of time measurement, such as, for example, Mondays only, or before 10:00 AM, or during the last week of a month, or during December.
- a second model of the multi-route model is also initiated.
- the second model may be initiated at the same time as, before, or after the first model.
- the second model may include checking an actual assignment schedule of a plurality of field professionals to determine the second booking response. For instance, the second model may step through each workday and appointment time sequentially until an open appointment time is determined. If there are many different field professionals, the schedule for the entire field professional work force may be very complicated and take a significant amount of time to determine a second booking response that meets the user's service requirement.
- the first model of the multi-route model may be more than twenty times faster the second model of the multi-route model, such that the first model takes one second and the second model takes twenty seconds or more.
- the first model may be 5 times, 10 times, 50 times, 100 times or more faster than the second model.
- the second booking response is determined.
- the second model may require enough time that the second booking response may be determined after the first booking response is outputted.
- the input for the first model may include a representation of the current state of the tasks Gantt and previous appointments offers determined by the second model.
- the first booking response is verified based on the second booking response. Because the second booking response is determined by a different and perhaps more thorough process, the second booking response may provide an appointment that meets more of the necessary criteria of the initial request than the first booking response. Thus, the first and second booking responses may include different proposed times for providing the service. For example, the first booking response may be for an appointment at 3:00 on a Thursday. However, the second model may have stepped through each day in the week and found that every field professional is unavailable on Thursday. As a result, the second booking response may have been determined for an appointment at 3:00 on Friday. Thus, the first booking response for 3:00 on Thursday cannot be verified at step 1716 .
- the criteria for verification may, for instance, be that the first and second booking responses are on the same day, within two hours, or on subsequent days.
- step 1730 of FIG. 17B the first and second booking responses are compared.
- step 1730 may be No, as the first and second booking responses may provide the same result.
- the process may terminate at this point.
- process 1700 may proceed to initiate an action to improve the multi-route model at step 1732 .
- the system may provide the second booking response, which may include a second proposed time, to the predictive machine learning algorithm.
- the second booking response may be an additional training input to retrain the predictive machine learning algorithm, thereby updating the predictive machine learning algorithm with the second booking response.
- the predictive machine learning algorithm may be retrained even if the first and second responses are identical, so as to reinforce a correct result in the algorithm.
- a scheduled assignment of at least one field professional may be changed when the first booking response is different than the second booking response at step 1734 .
- the first booking response may be retained, providing greater consistency to users such that the first booking response is retained despite initially being invalid.
- both step 1732 and step 1734 may be performed, such that both the multi-route model is improved and a schedule assignment is changed.
- process 1800 shown in FIG. 18 may be used to schedule field professionals to on-site technical services.
- a request for an on-site technical service associated with a location is received.
- a first scheduling model and a second scheduling model are used to determine proposed times for providing the on-site technical service, wherein a first proposed time determined using the first scheduling model is determined faster than a second proposed time determined using the second scheduling mode.
- the first scheduling model may also be used to determine a first alternative proposed time and the second scheduling model may also be used to determine a second alternative proposed time.
- the first and second alternative proposed times may be determined synchronously or asynchronously with the first and second proposed times.
- the first proposed time is provided before the second proposed time has been determined.
- the first proposed time may be provided directly to the user, or by an intermediary, such as a customer service representative.
- a discrepancy assessment is performed between the first proposed time and the second proposed time. This discrepancy assessment may return as a result the amount of time between the first and second proposed times.
- an action is initiated to improve scheduling of field professionals to on-site technical services.
- a first proposed time is provided to a user. This may be done immediately once a proposed time is determined, or after a delay.
- the proposed time may also be provided to a user by any means of communication, including mail, email, text, automated phone call, or personal phone call from a customer service representative.
- the user may be given an opportunity to accept or reject the first proposed time. If the user accepts the first proposed time at step 1904 , the discrepancy between the first proposed time and the second proposed time is compared to a threshold at step 1906 .
- step 1906 If the discrepancy is higher than a threshold, with step 1906 being Yes, an existing assignment of a field professional may be attempted to be changed to meet the first proposed time at step 1908 . If the discrepancy is lower than a threshold, with step 1906 being No, no further action may be necessary. For example, a user may accept a first proposed time for lawn service of 1:30 on Wednesday. The second proposed time, which may be completed after the user accepts the first proposed time, may reveal that 1:30 on Wednesday is not actually possible by analyzing existing scheduled of field professionals.
- the second proposed time is at 2:00 on Wednesday, and the threshold is a four hour difference, the first proposed time that was accepted by the user may be maintained as an appointment, or the second proposed time that was not offered to the user may be set as an appointment, and the process stopped. If, however, the second proposed time is for 3:00 on Thursday, step 1906 would be Yes, because the discrepancy is greater than the example threshold of four hours. An attempt would be made to reschedule an existing assignment of one or more field professional to meet the first proposed time at step 1908 .
- step 1910 would be Yes. In this case, the process stops. However, if the attempt were unsuccessful, for instance, if all field professionals were already obliged for the entire week, step 1910 would be No. In this case, the user may be contacted at step 1912 to propose a new time for providing the on-site technical service at the location. The contact may occur after any amount of delay, including, for instance, before a user has left a booking website or ended a call with customer service.
- step 1904 if the user does not accept the first proposed time, step 1904 would be No.
- the two proposed times may be different if they do not overlap at all, or, in alternative embodiments, they may be different if they do not overlap fully. For example, an appointment from 2:00 to 3:00 on Thursday may be considered to be different from, or the same as, an appointment from 2:30 to 3:30 on Thursday.
- the amount of difference required for step 1920 to be Yes may therefore vary according to the needs of users, managers, and field professionals. If step 1920 is Yes, the second proposed time may be offered to the user as an alternative proposed time.
- step 1920 new proposed times may be determined at step 1924 . For example, if the first proposed time is 10:30 on Tuesday, and the second proposed time is 10:30 on Tuesday, and the user refuses this appointment, new proposed times may be determined. If, however, the second proposed time were 12:00 on Tuesday, this second proposed time may be offered as an alternative proposed time to the user at step 1922 .
- a first alternative proposed time may be determined using the first scheduling model, in addition to the first proposed time.
- a second alternative proposed time may be determined using the second scheduling model. If a user refuses the first proposed time, and the refusal is received before the second alternative proposed time was determined, the first alternative proposed time may be offered to the user. Alternatively, if the refusal is received after the second alternative proposed time was determined, the second alternative proposed time may be offered to the user.
- the first scheduling model may identify the first proposed time and the first alternative proposed time after a few milliseconds and maybe even seconds before the second scheduling model. For instance, the first proposed time may be 8:00 on Monday and the first alternative proposed time may be 9:00 on Tuesday.
- the 9:00 on Tuesday appointment may be offered.
- the second scheduling model determines a second alternative proposed time of 3:00 on Monday before the refusal is received, the 3:00 on Monday appointment may be offered. In this way, the user is given the benefit of quick, responsive appointment scheduling, while also being provided more robust results if the user is slow to respond and the results are available.
- the system may determine that neither of the appointment times are cost effective, and indicate to the user that there are no available appointment times.
- the system includes a memory, a network interface, and a processor connectable to the network interface. The system may therefore provide an appointment that optimizes cost and wait times according to user and company needs.
- the system may be implemented as task scheduling unit 150 .
- FIG. 20 is a flowchart of an example process 2000 for a scheduling method for field professionals, consistent with the present disclosure.
- server 152 may implement process 2000 .
- processing device 202 may receive data from I/O system 210 or network interface 206 , and then execute instructions or program code stored in memory interface 204 or database 154 , in which the instructions or program code implement algorithms of process 2000 .
- the algorithms of process 2000 may be implemented as one or more of analysis module 441 , forecasting module 442 , planning module 443 , or scheduling module 444 .
- Process 2000 includes the following steps.
- a request to book a new appointment for a service expected to be completed within a time period is received.
- the request may be received directly from a user, for example, via a website.
- the request may be entered by a member of the customer service unit 120 , or by a manager.
- the request may be for an on-site, location-based service by a field professional, such as, for example, performing veterinary procedures on a farm, or installing internet equipment at a house.
- the request may also be for performance of remote, location-agnostic services, such as configuring an internet connection, that may be performed at any location.
- the request may contain information about when the service should be performed. This could include user availability, such as after 5:00 on Tuesdays, or user urgency, such as within 24 hours.
- a company may specify a required time period for different types of services, such as requiring that all requests for vaccination services should be completed within one week of request.
- a first possible time slot and a subsequent second possible time slot for the new appointment within the time period are identified.
- the time slots may be identified by any method. For example, each time slot in the time period may be examined sequentially to see if an appointment could occur in each time slot.
- the first possible time slot and the subsequent second possible time slot time within the time period for the new appointment may be identified based on predicted user availability data. Predicted user availability data may be derived from, for instance, social media, work hours, and historical appointment time preferences provided by the user. A time slot that is possible because no field professionals are scheduled during the time may nonetheless not be identified if the user is predicted to be unavailable during the time.
- a first scheduling cost associated with the first possible time slot and a second scheduling cost associated with the second possible time slot are calculated. Different factors may be considered when calculating the cost, because travel may require travel expenses, including for example tolls, gasoline, air or rail fares, per diem, lodging, and wages.
- a scheduling cost may be associated with a total of driving durations of a set of field professionals.
- a scheduling cost of possible time slots may be based on details of previously scheduled tasks to a set of field professionals. For example, a cost may be the hourly wage of the field professionals multiplied by the driving duration to the location of the requested service, or the price of gasoline.
- Driving duration may include information about anticipated traffic, or the distance between the site of an immediately preceding appointment and the requested appointment location.
- a first possible time slot may immediately follow an appointment at a location 100 miles away from the requested appointment location, while a second possible time slot may follow an appointment at a location only 5 miles away from the requested appointment location.
- the second possible time slot would be associated with a lower cost, both because the set of field professionals would spend less time driving, and because the transportation cost of traveling 100 miles is more than the transportation cost of traveling 5 miles.
- driving duration may include both time and distance.
- the cost may also be associated with a total number of tasks that can be assigned to a set of field professionals in a predefined period of time.
- some time slots may allow a set of field professionals to be assigned to more tasks than other time slots.
- a user may request refrigerator repair service, expected to take one hour to complete.
- a first possible time slot may be between an appointment ending at 9:00 and an appointment beginning at 10:00, and a second possible time slot may be between an appointment ending at 10:00 and an appointment starting at 11:30.
- the second time slot may result in 30 minutes of lost productivity and one fewer task for the shift, because there may be no tasks that a field professional can complete in less than 45 minutes.
- the cost may then be calculated based on the lost revenue from performing one fewer task in a shift and the cost of wages paid during unproductive employment time.
- the cost may also be associated with a total number of field professionals working in a predefined period of time. In this manner, the number of field professionals working each day may better match daily needs. For example, the scheduler may minimize or reduce the number of professionals working each day. Furthermore, the cost may be based on a daily schedule of each of a plurality of field professionals. This may enable greater optimization of scheduling all the field professionals as a whole. For instance, a first possible time slot may occur on a day when three field professionals are scheduled to work. However, the requested service may require a special skill set or be in a location that is far from the other appointments already scheduled for the three field professionals. A fourth field professional may then be needed to perform a service at the first possible time slot.
- the added cost of assigning the appointment to the fourth field professional, thereby making the fourth field professional work may therefore be based in overtime pay, or the obligation of the company to pay the field professional a full day wage despite only performing a single task at the first possible time slot.
- cost may reflect a management preference to minimize the number of field professionals working each day.
- the cost may also be associated with a total of the resources being utilized in a period of time. For instance, a set of field professional nurses may have access to a single inhalator. While a time slot may be possible because one of the nurses is not scheduled during the time, the inhalator may be assigned to a different appointment during the time. Assigning an appointment at the time slot may therefore require rental of a second inhalator. The cost may therefore be based in the rental or purchase cost of additional equipment needed to perform a specific task for an appointment during the time slot.
- selection of the second possible time slot is enabled when it is determined that both the first scheduling cost and the second scheduling cost are below a scheduling cost threshold. Furthermore, enabling selection of the second possible time slot may include outputting information reflecting the second possible time slot. For example, if the cost of both the first and second possible time slots are acceptable to the company, both may be offered to a user so that the user has multiple options for appointment times. If the second possible time slot has a cost above a scheduling cost threshold, only the first possible time slot may be output. Information reflecting the possible time slots may be output directly to the user or indirectly to the user via a member of the customer service unit 120 .
- scheduling costs may be computed the same or differently for each of the identified time slots.
- a no-available-time-slot notification is output when it is determined that both the first scheduling cost and the second scheduling cost are above the scheduling cost threshold. That is, if all available time slots within a time period are too expensive, the user may receive a notification that there are no available time slots or appointments within the time period.
- the notification may include offering a time slot at a time after the time period, or a later time slot within the time period, that may be below the scheduling cost threshold.
- the notification may be provided directly to a user, or to a member of the customer service unit 120 .
- FIG. 21 is a flowchart of an example process 2100 for a scheduling method for field professionals for on-site services in cases when a scheduling cost reflects driving duration.
- a user request for an on-site service associated with a location is received. That is, one or more field professionals may need to travel to the location to perform the service.
- a first possible time slot for providing the on-site service at the location is identified, wherein the first possible time slot is associated with a first field professional.
- a first driving duration that would be added to a schedule of the first field professional if the first field professional is assigned to provide the on-site service at the location is estimated based on previously scheduled tasks of the first field professional and traffic conditions. In other words, the driving duration may be determined based on how far a field professional must drive to reach the location from a previous location.
- the previous location may be the field professional's residence, or a dispatch center, or a location of preceding appointment.
- the traffic conditions may be predicted, for example, based on knowledge that traffic driving into a city at 8:00 is known to add a thirty-minute delay, or that a particular roadway is planned to undergo construction that will increase traffic delays. Additionally, the traffic conditions may also be real-time, based on live traffic updates on the internet or from field professionals, and may help scheduling of same-day or short notice appointments.
- a second possible time slot for a second field professional to provide the on-site service at the location is identified, wherein the second possible time slot is associated with a second field professional.
- a second driving duration that would be added to a schedule of the second field professional if the second field professional is assigned to provide the on-site service at the location is estimated based on previously scheduled tasks of the second field professional and traffic conditions.
- the second driving duration may be estimated in the same manner as the first driving duration.
- Identification of the first and second possible time slots may be completed in any manner.
- a schedule showing all field professionals together may be analyzed to identify the first possible time slot among all field professionals.
- a first possible time slot may be identified for a particular field professional, and a second possible time slot, later than the first possible time slot, may be identified for a different field professional.
- field professional A may have an available time slot of 10:00 on Wednesday
- field professional B may have available time slots of 9:00 on Tuesday and 9:00 on Friday.
- the first possible time slot among all field professionals is 9:00 on Tuesday
- the second possible time slot among all field professionals is 10:00 on Wednesday.
- field professional A may be preferred, and so the first possible time slot may be identified as 10:00 on Wednesday with field professional A, and the second possible time slot may be identified as 9:00 on Friday with field professional B.
- the user is provided a proposed time associated with the second possible time slot different from (e.g., later than) later than the first possible time slot when the second driving duration is less than the first driving duration. That is, although the first possible time slot may be earlier, a later, second time slot may be preferred because the second time slot required less time lost while driving. This may occur if the distance the second field professional must travel from a preceding appointment to the location of the user request is shorter than the distance the first field professional must travel from a preceding appointment. Alternatively, although a first distance may be shorter than a second distance, the first distance may require driving on a route that requires more time due to speed limits and predicted or observed traffic.
- a no-available-time-slot notification is output if both the first driving duration and the second driving duration are greater than a threshold. That is, a company may determine that driving durations greater than one hour result in too much lost productivity, and therefore implement a threshold that appointments are not available for time slots that would require more than one hour of drive time.
- Process 2200 begins at step 2202 by estimating first and second driving durations, for instance, as in steps 2106 and 2110 in FIG. 21 .
- the second driving duration is compared to the first driving duration. If the first driving duration is less than the second driving duration, step 2204 is No, and a proposed time associated with the first possible time slot may be provided to the user. If the second driving duration is less than the first driving duration, step 2204 is Yes, and other steps may occur.
- step 2206 the time difference between the second driving duration and the first driving duration is compared to a threshold. If the difference is smaller than a threshold, step 2206 is Yes, and a proposed time associated with the first possible time slot is provided to the user. If the difference is larger than the threshold, step 2206 is No, and step 2208 may occur. For example, if second possible time slot would save only a small amount of driving duration time, such as only five minutes, the first possible time slot may be preferred despite it requiring a longer driving duration.
- the threshold may be dependent on the difference between the first and second possible time slots.
- the threshold may be set to five minutes, but if the second possible time slot is on Friday, the threshold may be set to two hours. In this way, the inconvenience of a delay between the first and second time slots may be balanced against the benefit of a shorter driving duration.
- the process 2200 predicts if an additional service would be requested in proximity to the location. If an additional service is predicted to be requested in proximity to the location, step 2208 is Yes, and a time associated with the first possible time slot is provided to the user. The prediction may be done by any means, such as by comparison to historical patterns of requests for service or weather forecasts. Additionally, the proximity may reflect a threshold distance, such as ten miles, or a driving duration, such as twenty minutes. In this manner, a schedule may be constructed that anticipates user needs and reduces total driving duration for multiple appointments, even if driving duration for a single appointment, taken in isolation, is greater than it could be for second possible time slot.
- process 2200 confirms if the second field professional has skills for completing the on-site service before providing the user the proposed time associated with the second possible time slot.
- the skills may be determined by reference to a database containing skill information of each field professional, or by directly asking a field professional in reference to a particular request for service.
- process 2200 confirms if the second field professional has replacement parts for completing the on-site service before providing the user the proposed time associated with the second possible time slot.
- process 2200 confirms that the second field professional has at least one tool required for completing the on-site service before providing the user the proposed time associated with the second possible time slot.
- the replacement parts and at least one tool required for completing the on-site service may be determined by reference to a standard list of parts and tools needed for the type of service requested by a user.
- the replacement parts and at least one tool may be determined by communicating with a field professional to inform of the requested service and relying on the field professional to determine what replacement parts and tools are needed.
- a field professional may be considered to have replacement parts if the replacement parts are, for instance, in a vehicle with the field professional, or easily accessed by a field professional, for example at a warehouse within a predetermined distance of the on-site service or accessed by a detour along the route to the location requiring a driving time beneath a threshold.
- Information concerning the location of replacement parts and tools may be derived from wireless tracking tools, inventory logs, or communication with field professionals or warehouse employees.
- the process 2200 may proceed to provide a proposed time associated with the second possible time slot at step 2216 .
- the proposed time slot may be provided directly to the user, or to a customer service representative to provide to the user. If the user refuses the proposed time associated with the second possible time slot at step 2218 , step 2218 is Yes, and the process 2200 may then provide the user a proposed time associated with the first possible time slot. If the user does not refuse the proposed time, step 2218 is No, and the process stops. If any of steps 2210 , 2212 , and 2214 are No, the process 2200 may proceed to step 2220 and provide the user a proposed time associated with the first possible time slot.
- steps 2204 , 2206 , 2208 , 2210 , 2212 , 2214 , 2216 , and 2218 may be utilized in process 2200 . These steps may be performed in any order, and any of the steps may be omitted.
- a company that provides field services may have to keep schedules of each of the field professionals.
- the scheduler may need to find an available time slot in the schedule of the field professionals to accommodate the new request for service.
- a time slot that is available for a field professional may not be available for a user. Identifying time slots that are possible for field professionals as well as possible or even convenient for users increases customer satisfaction.
- the following disclosure describes automated methods and systems that enable identifying when a time slot is suitable for the requesting user as well as the field professionals. For example, if a field professional has multiple times slots available, but some of those times are unavailable for a user, the system may offer the user one of the time slots that are available to both the field professional and the user.
- the system includes a memory, a network interface, and a processor connectable to the network interface. In some embodiments, the system may be implemented as task scheduling unit 150 .
- FIG. 23 is a flowchart of an example process 2300 for a scheduling method for field professionals, consistent with the present disclosure.
- server 152 may implement process 2300 .
- processing device 202 may receive data from I/O system 210 or network interface 206 , and then execute instructions or program code stored in memory interface 204 or database 154 , in which the instructions or program code implement algorithms of process 2300 .
- the algorithms of process 2300 may be implemented as one or more of analysis module 441 , forecasting module 442 , planning module 443 , or scheduling module 444 .
- Process 2300 includes the following steps.
- a user request for an on-site service is received.
- the request may be received in a variety of ways, including directly from a user, for example, via a website.
- the request may be entered by a member of the customer service unit 120 , or by a manager.
- the request may be for an on-site, location-based service by a field professional, such as, for example, performing veterinary procedures on a farm, or installing internet equipment at a house.
- the request may be accompanied by a time period, provided by the user along with the request or by a company as a standard of service for a type of on-site service.
- a set of possible time slots for providing the on-site service is identified based on a schedule of a set of field professionals.
- the time slot may be identified by any method. For example, time slots in a time period may be examined sequentially to see if an appointment could occur in each time slot.
- information indicating an availability of the user to accept the on-site service is retrieved.
- the information may be from at least one online source.
- the online source may be, for example, social media or a publicly viewable calendar.
- the information may be direct, such as a user publicly posting their work hours, or the information may be derived from user patterns, such as analysis of a user's social media posting history showing that no posts were made between 8:00 and 9:00 on weekdays, indicating that the user is likely commuting to work during that time.
- user permission to crawl the at least one online source may be requested and, if the user approves, the user permission may be accepted as well.
- the request may only occur if a search of publicly available information yields insufficient information.
- the information may also be retrieved from a profile associated with the user.
- This profile may be stored in the system's database.
- the profile may also be an online profile, created by a user when establishing a relationship with the field professional company.
- the data in the profile may be supplied directly by the user, or the data may be created by the company based on past answers of the user to proposed times for on-site services. For example, if a user always declines time slots before 10:00, a profile may be created for the user that records that appointments before 10:00 should not be offered. Alternatively, the profile may record the user's directly inputted choice that appointments after 12:00 should not be offered. In this manner, the user's profile may or may not be directly viewable or editable by the user.
- a subset of possible time slots for providing the on-site service is determined based on the retrieved information indicative of an availability of the user.
- the subset may be determined by comparing the information from step 2306 to the set of time slots from step 2304 .
- the set of possible time slots for providing the on-site service may include times in which field professionals can arrive to a location associated with the user, and the subset of possible time slots for providing the on-site service may include times in which field professionals can arrive to the location and there is a likelihood that the user will be present at the location.
- Mutually exclusive times may be ignored, with remaining times forming the sub-set.
- the set of possible time slots of when a field professional is available from step 2304 may include 8:00 on Monday, Tuesday, and Wednesday.
- the information from step 2306 may show that the user is only available at 8:00 on Tuesday, Wednesday, and Thursday.
- the intersection of the two sets namely, 8:00 on Tuesday and Wednesday, form the subset of possible time slots.
- the subset of possible time slots may be less than 25% of the set of possible time slots, either by cumulative time, such as a subset of 1.5 hours of time slots in comparison to a set of 8 hours of time slots, or by total number, such as one time slot, regardless of duration, in a subset and five time slots in a set.
- Determining the subset of possible time slots for providing the on-site service may be based on profiles of other users. Behavior analytics may reveal that other users with similar profiles have a pattern of appointment preferences. For example, if a requesting user's profile shares a corporate address with many other users who prefer appointments after 4:00 on weekdays, the subset of appointments may be determined based on appointments after 4:00 on weekdays. This could happen even if the requesting user has not indicated that he prefers appointments after 4:00 on weekdays. Similar analysis of profiles of other users, such as information about demographic data, spending with the company, or types of services requests, may be used to determine the subset as well.
- determining the subset of possible time slots for providing the on-site service may be based on information associated with a weather forecast. For example, if the on-site service requires work outside, time slots should not be offered for periods when bad weather is expected.
- a weather forecast may be near term, such as rain being forecast for Tuesday, or long term, such as snow being expected at a service location between November and March that prevents installation of a large piece of equipment.
- determining the subset of possible time slots for providing the on-site service may be based on information associated with the request. For example, if a user requests the service at an address known to be for the user's work location, either by self-identification by the user or by looking up the address associated with an incoming call, the subset of times may be determined to be during work hours. Alternatively, if the user requests service using a home phone number rather than a work phone number, the subset of times may be determined to be outside of work hours.
- a time is proposed for providing the on-site service based on a time slot selected from the subset of possible time slots.
- the proposed time may be delivered directly to the user or indirectly to the user via a member of the customer service unit 120 . Alternatively, the time may not be delivered to the user at all, but instead may be saved for further processing.
- at least one time slot associated with a field professional may be selected based on a location associated with the user and locations of tasks previously assigned to the field professional. That is, if there are many time slots in the sub-set, and some of them are preceded by appointments far from the location associated with the request and others are preceded by appointments close to the location associated with the request, the time slots preceded by appointments closest to the requested location may be preferred.
- the distances may be in relation to appointments immediately following the time slot.
- a company may prefer to suggest a time slot when there is already a field professional scheduled in proximity to the user's location. After the time is proposed, a task may be scheduled for a field professional after the user accepts the proposed time.
- FIG. 24 is a flowchart of an example process 2400 for a scheduling method for field professionals for on-site services in cases when a user cannot keep an appointment.
- a time is proposed to a user and, at step 2404 , the user accepts the proposed time and the appointment may be scheduled.
- step 2406 online activities of the user are monitored to determine a likelihood that the user will not be available to accept the on-site service at the proposed time. For example, the user may make a public post on social media about traveling to China on Monday but has an appointment scheduled for Tuesday, or, after granting access to private accounts, the system may find hotel reservations for the same day as an appointment to install equipment.
- step 2408 the process may use this information to determine a likelihood that the user will not be available to accept the on-site service at the proposed time. If it is likely that the user will be available still despite the online activities, step 2408 is No and the process proceeds to step 2410 .
- the process retrieves updated information indicative of the availability of the user to accept the on-site service.
- This updated information may be information the user provides directly to the field professional company, for instance, by email, website, or phone call.
- the updated information may also contain updated user availability for a different appointment time.
- step 2412 after receiving any updated information or determining that it is likely the user will not be available with step 2408 being Yes, the system determines if a previously scheduled appointment of the user needs to be rescheduled. This determination may be based on the retrieved updated information, or on the likelihood determination from step 2408 , or a combination of both. The determination may include comparing the new unavailability with the previously scheduled appointment. If the user will be unavailable for a small portion of the appointment, or if the appointment does not need the user to be present for the service to be performed, the process may determine that the appointment does not need to be rescheduled, and step 2412 is No. In this case, the process returns to monitoring online activities of the user at step 2406 .
- step 2412 is Yes, for instance because the user must be home to let a field professional into the house or to supervise the field professional's work, then the proposed time for providing the on-site service may be updated from the previously scheduled appointment at step 2414 .
- any combination of steps 2406 , 2408 , and 2410 may be omitted. If step 2406 is omitted and a previously scheduled appointment does not need to be rescheduled such that step 2412 is No, the process may return to retrieve updated availability information or may simply stop.
- FIG. 25 is a flowchart of an example process 2500 for a scheduling method for field professionals, consistent with the present disclosure.
- a request for a service is received from a user.
- the request may be received directly from a user, for example, via a website.
- the request may be entered by a member of the customer service unit 120 , or by a manager.
- the request may be for an on-site, location-based service by a field professional, or the request may be for a remote, location-agnostic service, such as, for example, setting up a virtual private network.
- a first possible time slot for providing the service is identified.
- the first possible time slot may be associated with a first field professional.
- the first possible time slot may be determined by examining the schedule of a particular field professional, or the first possible time slot may be determined by examining all schedules of all field professionals. In other words, the time slot may be the first time slot because it is associated with a first field professional, or the time slot may be the first time slot because it is the first available slot overall, regardless of which field professional it is associated with.
- a second possible time slot different from the first possible time slot may be identified for a second field professional to provide the service. The second possible time slot may be associated with a second field professional.
- the second possible time slot may be identified in the same manner as the first possible time slot.
- the second possible time slot may be at least one day later than the first possible time slot.
- the second possible time slot may be in an afternoon and the first possible time slot may be in a morning of a day.
- the information may be from at least one online source.
- the online source may be social media, or a publicly viewable calendar.
- the information may be direct or derived from analysis.
- the information may be retrieved from a profile associated with the user, as well, which may be for instance private data obtained from the user's accounts with the user's permission, public data from social media or governmental records, historical appointment information, demographic data, or profiles of similar users.
- a proposed time associated with the second possible time slot may be provided when the retrieved information suggests that the user will not be available for the service during the first time slot. For example, a likelihood may be determined that the user will be unavailable during the first possible time slot based on historical appointment information. If a user has never accepted an appointment offered after 12:00, the user may be likely to be unavailable for a new appointment during a first time slot of 12:30. Additionally, profiles of other users with similar demographic data, such as age, gender, or income, may be used to determine a likelihood that the user will be unavailable during the first possible time slot.
- the user may be likely to be unavailable during a first possible time slot that falls during working hours.
- the user may be provided the proposed time associated with the second possible time slot based on the likelihood that the user will be unavailable during the first possible time slot.
- the likelihood may be above some threshold set by the company.
- the determination of whether to provide a proposed time associated with the second possible time slot may also be based on if the service is location-based, such that the user must be present for the service to occur, or location-agnostic, such that the user does not need to be present for the service to occur.
- a field professional When a field professional provides a service to a user, sometimes the task assigned to the field professional cannot be completed in one visit. This may occur for a variety of reasons. For example, the field professional may not have the proper tools, supplies, or training on hand to complete a task. Other times, a user may request the incorrect service. For example, a user with a faulty internet connection may assume that a field professional needs to fix a modem, but when the field professional inspects the problem, the field professional may discover that an underground line is broken, requiring an entirely different service to correct the issue. In other cases, additional problems may arise during the service.
- a field professional servicing an air conditioner may plan on replacing refrigerant in the system, but, while performing this service, the field professional may discover a dangerous ground fault in the air conditioner system that could start a fire. In some situations, inclement weather may prevent the service being performed.
- the system may receive data from a field professional located in the field at a customer's location. The received data may indicate that an additional visit at the customer is needed. The system may take into consideration other requirements and provides the field professional with at least one time slot for offering the customer.
- the system includes a memory, a network interface, and a processor connectable to the network interface. In some embodiments, the system may be implemented as task scheduling unit 150 .
- FIG. 26 is a flowchart of an example process 2600 for a scheduling method for repeat visits by field professionals, consistent with the present disclosure.
- server 152 may implement process 2600 .
- processing device 202 may receive data from I/O system 210 or network interface 206 , and then execute instructions or program code stored in memory interface 204 or database 154 , in which the instructions or program code implement algorithms of process 2600 .
- the algorithms of process 2600 may be implemented as one or more of analysis module 441 , forecasting module 442 , planning module 443 , or scheduling module 444 .
- Process 2600 includes the following steps.
- a user request for an on-site service is received.
- the request may be received directly from a user, for example, via a website.
- the request may be entered by a member of the customer service unit 120 , or by a manager.
- the request may be for an on-site, location-based service by a field professional, such as, for example, performing veterinary procedures on a farm, or installing internet equipment at a house.
- the request may be accompanied by a time period within which the service should be performed, provided by the user along with the request or by a company as a standard of service for a type of on-site service.
- information is transmitted to a field professional.
- the information may reflect an assignment to provide the on-site service requested by the user at step 2602 .
- the information may be transmitted using the network interface.
- the information may include details about the assignment, such as time, expected duration, required tools and equipment, and location of the service.
- the information may also include directional instructions to the location associated with the on-site service.
- the directional instructions may be driving instructions. In some embodiments the directional instructions may also include instructions on navigating a site.
- the directional instructions may include a driving route to the entrance of the facility, as well as directions inside the facility to the installation site, such as to install the equipment on tank 3 behind the second berm on the north side of the plant.
- the directions may be provided by dispatchers or managers at the field professional company, by other field professionals, or by the user requesting the service.
- an indication may be received that an additional visit is required to complete the on-site service.
- the indication may be received from the field professional or the user while the field professional is in the field at the user's location.
- the indication may be received by an automated system via a network interface 206 , by a manager, a member of the customer service unit 120 , or another field professional.
- the indication may be sent from a communication device associated with the user, such as a smart phone app, a phone call to the customer service unit 120 , or via a website.
- the indication may be sent from a communication device associated with the field professional, such as field professional communication device 180 A.
- the indication may also include a time estimation of work required in the additional visit.
- the time estimation may include the time required on site to perform the service, as well as the travel time required.
- the indication may include an estimated travel duration derived from navigation software or field professional experience.
- the indication may be based on a field professional's estimate of the time required, or the indication may be based on known times required for types of services. For example, a field professional may input a type of service needed, such as replacing a valve.
- An automated system may access a database containing times according to tasks, find that, for instance, valve replacements require an hour, and attach the time to the indication automatically.
- the indication may also provide information about when the additional visit may occur. For example, if a field professional is installing cabinets and knows that glue must dry for three days before a next step may be completed, the field professional may provide this information in the indication.
- the indication may also include details of spare parts required in the additional visit, and task details of the additional visit may be updated to include the spare parts.
- the indication may also include details of what tools are required in the additional visit, and the task details of the additional visit may be updated to include the required tools.
- the field professional may also indicate that spare parts or tools must be ordered.
- the indication may also include details of what field professional skills are needed to complete the on-site service of the additional visit.
- the indication may include at least two of a time estimation of the work required in the additional visit, details of spare parts required in the additional visit, details of tools required in the additional visit, and details of skills of a field professional required in the additional visit.
- a schedule of the field professional may be accessed to identify at least one available time slot to schedule an additional visit in the future.
- the at least one available time slot may be identified within a predefined time period.
- the predefined time period may cause only time slots within four workdays to be considered.
- the predefined time period may be determined based on the nature of the task, such that some urgent requests may lead to quicker appointment times.
- the time estimation may be taken into account. For example, if the field professional or a system identifies that a farm veterinarian will require two hours to perform, free time slots in the field professional's schedule that are shorter than two hours may be ignored.
- identifying the available time slot may include reassigning a task previously assigned to the field professional to clear a time slot associated with the time estimation in a schedule of the field professional. For example, if a septic tank repair is estimated to require five hours and a septic tank repairman has an opening from 8:00 to 12:00, the septic tank repairman's appointment at 12:00 may be reassigned to 1:00 so that the 8:00 to 1:00 time slot is cleared.
- the additional visit may take place during this time with the time slot associated with the time estimation cleared.
- previously assigned task may be reassigned to a different field professional to clear the time slot in the original field professional's schedule.
- ff a schedule of the field professional is full during a predefined time period, the tasks in the schedule of the field professional may be checked to see which tasks may be reassigned to a different field professional.
- the additional visit may be by a different field professional with a different skill set.
- a cable television installer may know that an electrician is needed to complete installation of a cable box.
- the cable installer may send an indication that an additional visit is required by a different field professional, and a future schedule of a different field professional may be accessed to identify a time slot.
- a schedule of a field professional having the required skill set may be accessed to identify an available time slot. In this way, a situation wherein a field professional arrives at a location but cannot complete the required work because he does not have the necessary skills may be avoided, increasing user convenience and satisfaction while also reducing costs from wasted field professional time and travel.
- a next time where the field professional having the required skill set is scheduled to arrive an area proximate to the location may be identified.
- the proximity may vary according to company and user requirements. For field professional services that span an entire country, for instance, an area proximate to the location may be hundreds of miles away. For companies with smaller service areas, the area proximate may be only a few miles. Alternatively, the area proximate to the location may be measured as a traveling duration rather than a distance.
- identifying the available time slot may include confirming that the spare parts or tools required in the additional visit are available. For example, if a spare part or tool must be ordered from a manufacturer or transferred from a warehouse, there may be a delay before a field professional is able to complete the additional visit. Thus, appointments that would occur before a shipping delay is over may be ignored so that only time slots that occur after the required parts or tools become available are considered.
- At step 2610 at least one proposed time for the additional visit associated with the identified time slot is provided.
- the proposed time for the additional visit associated with the identified time slot may be provided to the user through a communication device associated with the user while the field professional is at the user's location. Additionally, the proposed time for the additional visit associated with the identified time slot may be provided to the field professional through a communication device associated with the field professional while the field professional is at the user's location.
- the proposed time may be provided to the same person who provided the indication in step 2606 . It may also be provided to the other person who did not provide the indication in step 2606 . Furthermore, the indication may be provided to the same or different device type that provided the indication. The indication may also be provided to multiple devices.
- information reflecting an assignment associated with the additional visit may be transmitted to the field professional while the field professional is at the location.
- the user and field professional may have prompt confirmation that the additional visit will occur so that the task may be completed.
- the information may include the date and time for the additional visit.
- Process 2700 may occur in conjunction with process 2600 .
- Process 2700 begins at step 2702 with receiving an indication, while the field professional is at a location in the field where a service is being performed, that an additional visit is required to complete the on-site service.
- a plurality of available time slots is identified.
- the time slots may be for a single or a plurality of field professionals.
- the plurality of available time slots may be identified by stepping through the entirety of a set time period. For example, every time slot that does not have an appointment may be identified for every field professional in a one-week period.
- the plurality may include a set number of available time slots, regardless of the time range the time slots define. For example, three time slots may be required for the plurality, even if sixth months of schedule must be analyzed before finding three available time slots.
- the plurality may be set by processor time. For example, the plurality may include all available time slots found in five seconds of analysis, thereby providing a user prompt service.
- proposed times for the additional visit associated with the identified plurality of available time slots are provided.
- the proposed times may be provided to the field professional, the user, or both. Additionally, the proposed times may be provided directly to the field professional or user via a communication device, or the proposed times may be provided to a member of the customer service unit to provide to the field professional or user.
- the user selection indictive of a preferred time is received.
- the field professional may provide an indication of a preferred time as well.
- the selection may be received by providing a list of the plurality of time slots, or a portion thereof, to the user, for instance by displaying the proposed time slots on a smart phone app or on a website. The user may select which of the proposed time slots he prefers. If a preferred time was selected, step 2708 would by Yes, and the process 2700 stops. However, if the user indicates that none of the proposed times are preferred, step 2708 is No, and process 2700 may proceed to step 2710 .
- information is retrieved indicative of an availability of the user.
- This information may be retrieved directly from the user by prompting the user for availability information. For example, the user may indicate that time slots after 3:00 would be acceptable.
- information about the user may be retrieved from a profile that reflects the user's appointment history and demographics.
- a subset of possible time slots for the additional visit is determined, based on the retrieved information indicative of an availability of the user. Mutually exclusive times may be ignored, with remaining times forming the subset. For example, if the plurality of available time slots comprised 3:00 on Tuesday, 4:00 on Wednesday, and 1:00 on Thursday, and the retrieved information showed that the user was unavailable before 3:00 on weekdays, the subset of possible time slots may be 3:00 on Tuesday and 4:00 on Wednesday.
- proposed times for the additional visit associated with the determined subset of possible time slots are provided.
- the proposed times may be provided to the user or the field professional. After providing the proposed times, user acceptance of one of the times may be received, and an appointment may be scheduled for that time.
- steps 2706 and 2708 may be omitted, such that information indicative of an availability of a user is retrieved without first proposing times to the user.
- steps 2710 , 2712 , and 2714 may be omitted, and any remaining proposed times from the plurality of available time slots may be proposed to the user.
- the time period may be expanded or more processing time allowed to find more proposed times to be provided to the user until the user accepts a time.
- Field professionals often provide one of the main interactions between a company and a customer.
- the relationship between the company and the customer is often shaped by the quality of the service provided by a field professional. Understanding a customer's perception of the quality of service provided by the field professional can therefore be used to improve the relationship between the customer and the company by improving future customer satisfaction. For example, if a customer is very pleased with a service provided by a field professional, a company may decide to assign the same field professional to perform future services. Alternatively, if a customer is dissatisfied with a service provided by a field professional, a company may decide to not assign that same field professional to perform future services for the customer. Customer satisfaction may be based on quality of service, professionalism, or personal interactions, for example. By tailoring field professional assignments to past customer satisfaction, a company may maintain good customer satisfaction or improve poor customer satisfaction, thereby retaining and adding users.
- the following disclosure describes methods and systems that enable scheduling of a field professional based on data including customer satisfaction associated with prior service.
- the system may receive data from a customer during or after a service is completed. Based on that data, the system may decide whether to assign the same field professional or a different field professional for future tasks associated with the same customer.
- the system includes a memory, a network interface, and a processor connectable to the network interface. In some embodiments, the system may be implemented as task scheduling unit 150 .
- FIG. 28 is a flowchart of an example process 2800 for a scheduling method for repeat visits by field professionals consistent with the present disclosure.
- server 152 may implement process 2800 .
- processing device 202 may receive data from I/O system 210 or network interface 206 , and then execute instructions or program code stored in memory interface 204 or database 154 , in which the instructions or program code implement algorithms of process 2800 .
- the algorithms of process 2800 may be implemented as one or more of analysis module 441 , forecasting module 442 , planning module 443 , or scheduling module 444 .
- Process 2800 includes the following steps.
- a customer request for at least one on-site service associated with a location is received.
- the request may be for a first on-site service, for example, or one in a series of services.
- the request may be received directly from a customer via a website. Alternatively, the request may be entered by a member of the customer service unit 120 , or by a manager.
- the request may be for an on-site, location-based service by a field professional, such as, for example, conducting a medical evaluation prior to purchasing life insurance or installing a septic tank.
- the request may be accompanied by a time period within which the service should be performed, provided by the customer along with the request or by a company as a standard of service for a type of on-site service.
- a field professional is assigned to at least one task of providing the at least one on-site service at the location.
- the assignment may be transmitted to the at least one field professional using the field professional communication device 180 A, for example, by email, text message, or phone call.
- the assignment may include details about the assignment, such as time, expected duration, required tools and equipment, and location of the service.
- the at least one field professional may be assigned randomly, or based on criteria such as skillset and availability.
- step 2806 data associated with the on-site service is obtained following completion of the at least one on-site service.
- the data is further illustrated by reference to FIG. 29 , showing that the data associated with service may be based on five types of data sources, discussed below.
- Data source 2902 shows that the data associated with the on-site service may be determined based on a sentiment analysis of a recording of an interaction between a field professional and the user during the at least one on-site service.
- the field professional communication device 180 A may record a conversation between a customer and a field professional.
- the audio recording may be later analyzed to identify key words indicating customer sentiment about the interaction between the field professional and customer during a visit.
- tone of voice may be analyzed to determine if a customer is showing negative emotions, such as anger or frustration, or positive emotions, such as happiness, during conversations with the field professional.
- a phone call between a customer an any member of the company, including a field professional or a customer service representative may be recorded and similarly analyzed.
- the recording may be made during a visit, but analyzed at the same or a different time.
- the information is digitally signed by the customer to ensure authenticity in later processing.
- Data source 2904 shows that following completion of the at least one on-site service, feedback may be received from the customer.
- the data associated with the at least one on-site service may be determined based on the received feedback.
- the feedback may be solicited from the customer immediately after the service by the field professional, or may be solicited by the company by an email, phone call, or text message after the service completes. Alternatively, the feedback may be unsolicited, and provided by the customer without prompting.
- the feedback may be, for example, a star rating, such as three out of four stars, or a level of satisfaction, such as options for very satisfied, satisfied, not satisfied, and the like.
- Metadata may be information or other indications that are automatically sent without a field professional or customer explicitly deciding to send it. For example, if a field professional has a task to set up an internet connection, the time of the first login from the customer's address may be metadata information showing at least the task is in progress at the time. In the case of an electrician, for example, the times at which electricity is turned off and turned on may be metadata information. Thus, metadata may include time information, and may show that a field professional has arrived, started a task, completed a task, different phases of a task, or left the location.
- Metadata information may also location information showing where the field professional was at different times. Time and location information may be compared to the appointment time and the expected job duration to show the punctuality and efficiency of a field professional.
- metadata information associated with the at least one on-site service may be received from at least one communication device associated with the at least one field professional.
- the metadata information may include GPS readings of a cell phone carried by a field professional, or cell site location information.
- the metadata information may also include information about messages sent by the field professional, such as information showing any addresses that sent messages to or received messages from the field professional. Message address information may show how many times a field professional had to contact another person for assistance, or, in some cases, if a field professional was distracted from performing the task due to sending and receiving messages.
- Data source 2908 shows that following completion of the on-site service, data associated with the at least one on-site service may be determined from posts that the user published in a social network.
- a customer may post information on a social networking website indicating satisfaction with the service provided, such as thanking the company for good service.
- a customer may also post information showing dissatisfaction, such as posting a complaint.
- the customer's post may be discovered by finding the customer on a social networking site by using known information about the customer, such as email address and name.
- a customer's post may be found by the customer directing the message to the company, such as tagging a company's profile in a post about the quality of service.
- a user's post may also appear on a website that hosts reviews of businesses, and a company may link reviews to recently performed service.
- Data source 2910 shows after the on-site service was completed, data about the on-site service may be received from the field professional.
- the data may be submitted by the field professional communication device 180 A, or by a form filled out by the field professional, and may include information such as any issues encountered during the service and the field professional's estimation of the customer's satisfaction. It may also include details on what service was performed, for example, recording that the field professional administered a vaccine to all of the calves on a farm over three months old or details on any infrastructure that was installed, so that a future service may have records of past services.
- Element 2912 shows that data from any combination of the sources illustrated as data sources 2902 , 2904 , 2906 , 2908 , and 2910 may be used in determining data associated with service.
- the data associated with the on-site service may be used to determine a level of satisfaction 2914 from a work of the field professional. For example, algorithms may be used to determine the ratio of positive words to negative words used by the customer, or weight may be given to customer satisfaction or reviews. Different data may have more significance than others. For example, a social network post directed to a company directly complaining of a service may have more impact on the determined level of satisfaction than metadata showing that the field professional arrived at a site on time and completed the service quickly.
- an additional customer request for an additional service associated with the same location is received.
- the additional request may be for a second service, after a first service.
- the task of providing the second service may be a location-agnostic task associated with the first on-site service. For example, if an internet modem was installed during a first task, a second task may require changing connection settings. The second task may be accomplished from any location by logging into a modem and changing the settings, such that the task may be location-agnostic.
- the task of providing the second service may be a location-based task independent of the first on-site service.
- a first task may be installing an internet modem
- a second task may be installing a cable television connection, such that the second task is independent of the first on-site service and is performed at a specific location.
- the additional service may also be location-based and dependent on the prior on-site service, such as completing an installation or correcting an error in earlier work.
- the request may be made by the same customer or someone with a relationship with the customer, such as a spouse.
- information including data associated with the at least one on-site service is retrieved at step 2810 .
- the information may be saved in database 154 , for instance.
- the information may also contain expected durations of different services and field professional availability and skillsets.
- a field professional is assigned to perform the additional service based on the retrieved information. For example, the same field professional that performed a first task may be assigned to provide a second service based on the retrieved information.
- Step 2812 may be further illustrated by reference to FIG. 30 .
- FIG. 30 shows process 3000 for assigning an additional service based on retrieved information. After data is retrieved at step 3002 , the process compares the difference in time between the previous service and the next request for service. If a time difference between a first time when the first on-site service was provided and a second time when the second request is received is below a predefined period of time, step 3004 if Yes, and the same field professional may be assigned to accomplish the task. In other words, if step 3004 is Yes, the process may skip step 3006 .
- the same veterinarian may be assigned to the task.
- the field professional may provide better, quicker service and the customer have greater satisfaction because there would be continuity of care and familiarity with the user's issues. If, however, the difference is greater than a predefined period, such as a month later, the process proceeds to step 3006 , because there may be a reduced benefit of familiarity due to the delay between a first and second service.
- the level of satisfaction from the work of the field professional is compared to a threshold.
- the threshold may be a numerical calculation based on the data, or a qualitative determination. Alternatively, the determination may be made by a manager assessing the data.
- the level of satisfaction may be customer-dependent, such that only the requesting customer's level of satisfaction from prior work with the field professional is compared to the threshold. Alternatively, the threshold may be customer dependent, for instance, premium customers may be sent field professionals with high satisfaction scores across many customers. If the level of satisfaction from the work of the field professional is less than a threshold, step 3006 is No, and a new field professional may be assigned to the task at step 3008 .
- step 3006 is Yes, and the certain field professional or plurality of field professionals may be assigned to perform the additional on-site service. In this way, users may continue having high levels of satisfaction by having the same field professional for each subsequent services.
- the on-site service is analyzed to determine if it included a plurality of on-site services provided by a plurality of field professionals. If there were two or more, step 3010 is Yes, and the process selects which of the plurality of field professionals to assign to perform the additional on-site service based on the data associated with the on-site service.
- the selected group may be a single field professional, or may be a subset of the plurality of field professionals that performed the at least one on-site service. For example, if three electricians worked together to install a hot tub at a hotel, the level of customer satisfaction of one electrician may be higher than the level of customer satisfaction of the other two electricians.
- the first electrician may be selected to perform the service because he had a higher level of customer satisfaction.
- the electrician may be selected to perform the service because the data shows that an electrician is needed to service a motor, not a plumber.
- the process then proceeds to step 3014 .
- the process may proceed directly to step 3014 without performing step 3012 .
- the process determines if the field professional or plurality is available to provide the service. This determination may be based partly on a time period within which the service must or should be performed, determined either by company standards or customer request that the service be provided within some amount of time. If the certain field professional's schedule is full during a predefined time period, a task previously assigned to the certain field professional may be reassigned to enable assigning the certain field professional to the additional on-site service at step 3016 . Similarly, if a plurality of field professionals is selected at step 3012 , the schedule of the plurality or a schedule of each individual in the plurality may be analyzed and tasks reassigned so each individual of the plurality may be assigned the additional on-site service.
- the field professional or the plurality of field professionals may be assigned to perform the additional service. While performing process 3000 , any of the steps may be omitted as desired by a company. For example, a company may omit determining if the difference in time between the previous service and the next service is less than a predefined period of time because, for instance, the types of services offered by the company do not benefit from having the same field professional perform subsequent tasks.
- FIG. 31 shows a process 3100 of suggesting a field professional to a user.
- step 3104 determines if the additional service is of a different type than the on-site service already performed. If the additional service is of a different type than the at least one on-site service, step 3104 is Yes, and a different field professional is selected at step 3106 . A suggestion of a different field professional for the additional service may then be presented at step 3108 . The different field professional may be selected based on a necessary skillset needed to perform the additional service.
- step 3104 is No, and, at step 3108 , the field professional selected in step 3102 based on the data associated with the at least one on-site service may be suggested for the additional on-site service.
- the field professional may be suggested to a manager or customer service representative at step 3108 , or directly to the user.
- step 3104 is No.
- the same field professional therefore may be suggested to the customer based on data associated with the first service.
- the customer requests a second service to cut down other trees to provide more sunlight to the apple trees
- the second service may be of a different type from the first service.
- step 3104 is Yes, and a different field professional may be suggested to the user.
- Different types of services may be determined by a company based on the skillset needed to perform a service, such that, for example, all tasks that can be completed by an electrician are the same type.
- process 3100 determines if the suggestion was accepted at step 3110 . If the suggestion was accepted, step 3110 is Yes, and the field professional is assigned to the task at step 3112 . However, if the suggestion was declined, step 3110 is No, and the system may return to step 3106 and determine a different field professional. This cycle may continue until a suggestion is accepted at step 3110 . Once a suggestion is accepted, the corresponding field professional may be assigned to perform the service at step 3112 . In this manner, a customer may have the same field professional if the customer was satisfied with the field professional's work, or may decline the same field professional if the customer was unsatisfied with the first field professional's work. The customer may also choose between multiple field professionals until a field professional is satisfactory to the customer. Alternatively, a manager may also choose between multiple field professionals to choose the optimal field professional to perform a task.
- Scheduling tasks for field professionals requires a system to predict values of numerous scheduling parameters.
- One example of these scheduling parameters is the “task duration,” the time it takes for a field professional to complete a task at the client's location.
- Another parameter is the “travel duration,” the time it takes for a field professional to travel to the client's location. Allocating a time period for a certain task significantly shorter than the actual task duration (or the actual travel duration) may result in dispatchers having to take immediate action to fix the schedule, postponing tasks, or requiring more field professionals to meet the demand. These implications may attribute to poor customer service. On the other hand, allocating a time period for the certain task significantly longer than the actual task duration (or the actual travel duration) may result in under-utilization of field resources, post revenue, or poor customer service.
- the following discussion refers to task duration and travel duration; however, a person skilled in the art would recognize that values of other scheduling parameters may be predicted and used by the disclosed system.
- FIG. 32 shows a bar graph illustrating actual task duration distribution of single task type.
- the task duration may vary significantly. Factors that may influence the task duration may include different characteristics of the field professionals (e.g., skills, experience, etc.), the time of day, the weather, the location of the task, the comments from the client at the time of scheduling, and more.
- the field professionals e.g., skills, experience, etc.
- the time of day e.g., skills, experience, etc.
- the present disclosure discloses a system (e.g., system 100 ) with a optimization engine that takes into consideration different factors for predicting the task duration and other scheduling parameters for a specific task.
- the system may constantly or periodically receive information for calculating the scheduling parameters.
- the received information may be associated with past task durations (e.g., last month when Bob was assigned to this type of task it took him 70 minutes on average, but this month his average is about 57 minutes).
- the information may include traffic data associated with travel duration predictions (e.g., last week it was estimated to take 20 minutes on average to travel from point A to point B between 10:00 and 15:00; this week it is estimated to take 15 minutes to travel from point A to point B between 10:00 and 15:00).
- the system may provide schedule optimization services to different service providers.
- An example configuration for these embodiments may include a central server with an optimization engine and a plurality of local servers, each with its own native scheduling engine.
- the central server may be separate or remote from the local server. Namely, different servers may host the optimization engine and the native scheduling engines. In some cases, this separation is important because service providers (associated with the local servers) may not wish to share details on their clients with third party services (such as the schedule optimization service providing the central server).
- the optimization engine may have access to more updated information regarding different scheduling parameters, the optimization engine may provide more precise results than the native scheduling engines.
- the local servers cannot simply use the resources of the central server without sharing confidential or private information.
- the following disclosure describes a process by which local servers can benefit from the optimization engine without sharing details on their customers.
- the present disclosure shows a technical solution that provides an improvement to the functioning of a computerized system with optimization engine by communicating scheduling data between the central server and one or more local servers.
- FIG. 33 is a schematic illustration of a system 3300 for scheduling tasks to field professionals.
- System 3300 may include a central server 3305 and a plurality of local servers 3330 (e.g., a local server 3330 A, and a local server 3330 B).
- Central server 3305 may include at least one memory (e.g. a memory device 3310 ), a communication interface (e.g., a network interface 3320 ), and at least one processor (e.g., a processor 3315 ) connectable to the communication interface and the at least one memory.
- each of local servers 3330 may include at least one memory (e.g.
- a memory device 3335 A and memory device 3335 B a memory device 3335 A and memory device 3335 B
- a communication interface e.g., a network interface 3345 A and a network interface 3345 B
- at least one processor e.g., a processor 3340 A and a processor 3340 B.
- System 3300 may include one or more local servers 3330 for communicating with users and scheduling tasks to field professionals.
- the memory device of local server 3330 A may be configured to store data associated with scheduled tasks.
- memory device 3335 A may be configured to store task data 3336 A, scheduling data 3337 A, and client data 3338 A.
- task data 3336 A may include information about tasks that were scheduled during a defined period of time, such as dates, times, task type, task location, skills requirement per task, tools requirement per task, spare parts requirement per task, etc.
- the defined period of time may be more than a week, more than a month, more than a year.
- Scheduling data 3337 A may include a plurality of scheduling parameters associated with the native scheduling engine 3341 A.
- the scheduling parameters may include, for example, estimated tasks duration times for different task types, estimated travel duration times for different rides at different times of the day, and more.
- Client data 3338 A may include details of the clients associated with the scheduled tasks, such as client profiles (e.g., name, age, gender, profile photos, work place), contact details (e.g., contact information, phone number, email address, home address), client history (e.g., details about last services provided, such as service feedbacks, complaints, or comments), and more.
- client profiles e.g., name, age, gender, profile photos, work place
- contact details e.g., contact information, phone number, email address, home address
- client history e.g., details about last services provided, such as service feedbacks, complaints, or comments
- task data 3336 A may include general information that can be shared with central server 3305 and client data 3338 A may include private information about the clients that should not be shared with central server 3305 .
- the processor of local server 3330 A may be configured to schedule tasks to field professionals 110 using a native scheduling engine 3341 A.
- the communication interface of local server 3330 A may be configured to communicate with field professionals 110 , users 130 , and central server 3305 .
- network interface 3345 A may receive a set of requests for on-site assistance from users 130 and real-time information from a set of field professionals.
- the term “a set of field professionals” in this disclosure refers to one or more field professionals.
- the communication interface of local server 3330 A may also be configured to transmit task data 3336 A and scheduling data 3337 A to central server 3305 and to avoid transmitting client data 3338 A.
- System 3300 illustrated in FIG. 33 also includes central server 3305 for updating a scheduling engine that schedules tasks to field professionals.
- Central server 3305 may be configured to access data associated with a scheduling engine (e.g., a native scheduling engine 3341 A 3316 and/or a native scheduling engine 3341 B).
- a scheduling engine e.g., a native scheduling engine 3341 A 3316 and/or a native scheduling engine 3341 B.
- Memory 3318 is the primary storage of central server and it is a type of memory which temporarily stores data (also referred to as a volatile memory).
- the primary storage may be directly associated with processor 3315 . Examples of the primary storage may include Random Access Memory (RAM), Dynamic Random-Access Memory (DRAM), Synchronous Dynamic Random-Access Memory (SD RAM).
- RAM Random Access Memory
- DRAM Dynamic Random-Access Memory
- SD RAM Synchronous Dynamic Random-Access Memory
- Memory 3318 may also be associated with a memory device that permanently stores a predefined set of instructions for internal operation of the central server 3305 .
- Memory device 3310 is the secondary storage of central server 3305 and it is a type of memory which is non-volatile and persistent in nature. It allows a user to store data that may be instantly and easily retrieved, transported, and used by applications and service. Examples of the secondary storage may be a magnetic hard disk, an optical disk, or another form of storage for large amounts of data.
- Central server 3305 may be synchronized with a cloud storage service.
- scheduling data 3311 may include information associated with previously completed tasks scheduled by at least one scheduling engine other than native scheduling engine 3341 A.
- scheduling data 3311 may include information associated with tasks scheduled by native scheduling engine 3341 B. The information may include specific details about the scheduled tasks and/or statistics about the scheduled tasks.
- scheduling data 3311 may be associated with traffic predictions.
- scheduling data 3311 may include estimated travel durations, weather forecasts, details regarding public events that may cause atypical traffic conditions (e.g., parades, marathons, and demonstrations), and more.
- scheduling data 3311 may be associated with task duration predictions.
- scheduling data 3311 may be associated with a task type, a time of day, a customer type, a task location, skills of field professionals, and more. Scheduling data 3311 may include that collection of data be used for determining a prediction model 3312 .
- memory device 33310 of central server 3335 may be configured to store a prediction model (e.g., prediction model 3312 ).
- prediction model refers to a specific model associated with task scheduling derived by applying a prediction method to a collection of data.
- the prediction method may include a combination of methods from the fields of statistics, machine learning, artificial intelligence, and data mining.
- central server 3305 can train and update prediction model 3312 based on data received from field professionals 110 , users 130 , local servers 3330 , and/or other data sources 3350 .
- processor 3315 may update prediction model 3312 based on data that periodically received from local server 3330 A and/or local server 3330 B.
- a different prediction model may include a different version of prediction model, i.e., different values for the same scheduling parameters.
- the processor of central server 3305 may be configured to utilize an optimization engine 3316 and an in-memory processing module 3317 for checking performances of native scheduling engine 3341 A.
- the term “optimization engine” refers to software, firmware, hardware, or a combination thereof for generating a task assignment plan for a set of field professionals.
- the optimization engine may be associated with software instructions and a prediction model that may be stored in the secondary storage. When the software instructions are executed, at least some of the data stored in the secondary storage is loaded by processor 3315 into the primary storage. Thereafter, processor 3315 may be configured to execute the software instructions associated with the optimization engine in the primary storage.
- in-memory processing module refers to software, firmware, hardware, or a combination thereof for processing in a stateless manner at least part of the data received from local server 3330 A.
- In-memory processing module 3317 enables directly loading the data received from local server 3330 A into the primary storage (e.g., memory 3318 ) without passing into the secondary storage.
- primary storage e.g., memory 3318
- secondary storage e.g., memory device 3310
- processing in a stateless manner refers to a type of data processing that does not keep track of configuration settings, transaction information, or any other historical information about the processed data.
- central server 3305 prevents at least part of the data received from local server 3330 A from maintaining state. In other words, central server 3305 prevents at least part of the data received from local server 3330 A from being saved in the secondary storage.
- the communication interface of central server 3305 may be configured to communicate with one or more local servers 3330 , field professionals 110 , users 130 , and data source 3350 .
- Data source 3350 may be associated with a volatile or non-volatile, magnetic, semiconductor, tape, optical, removable, non-removable, or other type of storage device or tangible or non-transitory computer-readable medium.
- data source 3350 may provide traffic data, map data, and toll road information, which may be used for task scheduling.
- the traffic data may include historical traffic data and real-time traffic data regarding a certain geographical region. In one embodiment, the traffic data may be used to, for example, calculate estimate travel durations and determine an optimal route for a particular field professional.
- Real-time traffic data may be received from a real-time traffic monitoring system, which may be integrated in or independent from data source 3350 .
- the map data may include map information used for navigation purposes, for example, for calculating potential routes and guiding professionals to locations associated with the tasks.
- the toll road information may include toll charges regarding certain roads and any change or updates thereof. Toll road information may be used to calculate optimal routes for the field professionals to locations associated with the tasks.
- FIG. 34 is a message flow diagram showing example communications between different elements of a scheduling system in accordance with a process 3400 .
- Process 3400 starts when central server 3305 requests scheduling data from data source 3350 (message 3402 ). Thereafter, central server 3305 may receive scheduling data from data source 3350 (message 3404 ). The scheduling data may be used to update the optimization engine. For example, a certain road may be under maintenance and travel duration is expected to be longer.
- local server 3330 A may receive requests for on-site services from a plurality of users 130 . In one embodiment, each of the requests may require a field professional to travel to different locations associated with a corresponding user. Local server 3330 A may use its native scheduling engine to generate task schedule. Thereafter, local server 3330 A may send the scheduling data associated with its native scheduling engine and/or task data to central server 3305 (message 3406 and message 3408 ).
- Central server 3305 may process in a stateless manner the received task data using the optimization engine.
- processor 3315 may detect at least one task that local server 3330 A, using its native scheduling engine, had scheduled in an unoptimized manner.
- a task scheduled in an unoptimized manner may be a task in which the estimated task duration is determined to be longer (or shorter) than the task duration currently allocated in the schedule.
- a task scheduled in an unoptimized manner may be a task in which the estimated travel duration to the task is determined to be longer (or shorter) than the travel duration currently allocated in the schedule.
- processor 3315 may identify a factor that causes the native scheduling engine of local server 3330 A to schedule tasks in the unoptimized manner, provide to the local server 3330 A information such as the identified factor (message 3410 ). After processing in a stateless manner, the task data from local server 3330 A, processor 3315 may update its prediction model (prediction model 3312 ). In one embodiment, updating the prediction model may take into account the identified factor that caused the native scheduling engine of local server 3330 A to schedule tasks in the unoptimized manner.
- local server 3330 A may use the information received from central server 3305 to update its native scheduling engine. Local server 3330 A may also review the previously scheduled set of tasks to identify at least one task scheduled in an unoptimized manner. Alternatively, central server 3305 may also transmit details of at least one task determined to be scheduled in an unoptimized manner. Consistent with the present disclosure, the scheduling system prefers not to make schedule changes that require contacting clients that had already scheduled a service and change their appointment times. Accordingly, local server 3330 A may determine a likelihood that the task scheduled in an unoptimized manner will require dispatchers to take immediate action for fixing the schedule. And in some cases, local server 3330 A may cause a schedule change associated with the identified task. FIG. 35 illustrates an example of the schedule change and FIG. 36 illustrates an example of decision tree for changing the schedule.
- FIG. 35 is a schematic illustration of two daily schedules 3500 A, 3500 B according to a disclosed embodiment.
- Each daily schedule shows the times and durations of tasks assigned by local server 3330 A to four field professionals (Arnold, Bruce, Chuck, and Donald) between 8:00 and 16:00 of a workday.
- a person skilled in the art would recognize that an actual scheduling system can manage the daily schedules of more than 10 field professionals, more than 50 field professionals, and/or more than 100 field professionals.
- the upper schedule 3500 A shows details of tasks that local server 3330 A had assigned to each of the field professionals using the native scheduling engine.
- the lower schedule 3500 B shows details of tasks that local server 3330 A assigned to each of the field professionals using an updated version of native scheduling engine.
- the term “updated version of native scheduling engine” may refer to different scheduling engines, different versions of a same scheduling engine, or a scheduling engine with different values of scheduling parameters.
- Arnold was assigned to tasks 3501 , 3502 , and 3503 ;
- Bruce was assigned to tasks 3511 , 3512 , 3513 , and 3514 ;
- Chuck was assigned to tasks 3521 , 3522 , 3523 , 3524 , and 3525 ;
- Donald was assigned to tasks 3531 , 3532 , 3533 , 3534 , and 3535 .
- Local server 3330 A may use the updated native scheduling engine on the previously scheduled set of tasks to identify one or more tasks scheduled in an unoptimized manner. For example, local server 3330 A may determine that 1) in Arnold's schedule, task 3502 was originally assigned with a longer task duration than a time it is estimated to take; 2) in Bruce's schedule, tasks 3513 and 3514 were originally assigned with a shorter task duration than the times they are estimated to take; 3) in Chuck's schedule, task 3524 was originally assigned with a shorter task duration than a time it is estimated to take; and 4) in Donald's schedule, task 3532 was originally assigned with a shorter task duration than a time it is estimated to take.
- local server 3330 A may change the schedule to prevent a situation in which dispatchers have to take immediate action to fix the schedule. Specifically, as shown in the lower schedule 3500 B, local server 3330 A had updated the estimated task durations, reassigned task 3524 from Chuck to Arnold, reassigned task 3532 from Donald to Bruce, and rescheduled task 3514 to a different day.
- FIG. 36 is a flowchart of an example process 3600 used by a processing device of local server 3330 A (e.g., processor 3340 ), according to embodiments of the present disclosure.
- Process 3600 begins when the processing device determines a likelihood that a task scheduled using the native scheduling engine will result in a failure to complete another task (block 3602 ). Thereafter, the processing device may determine whether the likelihood is greater than a threshold (decision block 3604 ). If the likelihood is less than the threshold (i.e., changing the schedule is not necessary but may improve utilization of field resources), the processing device may determine if changing the schedule would require changing task time (decision block 3606 ). Typically changing a task time would require contacting a client and may lead to negative customer experience.
- a threshold i.e., changing the schedule is not necessary but may improve utilization of field resources
- the processing device When changing the schedule does not require changing the task time, the processing device is configured to cause the schedule change associated with the task (block 3608 ). For example, this type of schedule change may include reassigning tasks to different field professionals and does not require changing the task time.
- the processing device When changing the schedule requires changing the task time, the processing device is configured to avoid causing the schedule change associated with the task (block 3610 ). If the likelihood that a task previously scheduled will cause a failure to complete another task is greater than the threshold, the processing device may use the updated native scheduling engine to identify alternative task times (block 3612 ). The alternative task times may be offered to the client. Thereafter, the processing device is configured to cause the schedule change associated with the task (block 3614 ).
- FIG. 37 depicts an example method 3700 in accordance with an embodiment from the perspective of a central server (e.g., central server 3305 ).
- Method 3700 may be used for updating a scheduling engine of a local server (e.g., local server 3330 B) that schedules tasks to field professionals.
- a scheduling engine of a local server e.g., local server 3330 B
- FIG. 37 depicts an example method 3700 in accordance with an embodiment from the perspective of a central server (e.g., central server 3305 ).
- Method 3700 may be used for updating a scheduling engine of a local server (e.g., local server 3330 B) that schedules tasks to field professionals.
- a local server e.g., local server 3330 B
- FIG. 37 depicts an example method 3700 in accordance with an embodiment from the perspective of a central server (e.g., central server 3305 ).
- Method 3700 may be used for updating a scheduling engine of a local server (e.g.,
- a processing device may access stored data (e.g., scheduling data 3311 ) associated with an optimization engine (e.g., optimization engine 3316 ).
- the processing device may periodically receive from a remote server (e.g., local server 3330 B) a data associated with a native scheduling engine (e.g., native scheduling engine 3341 B) (e.g., task data 3336 B and/or scheduling data 3337 B).
- a remote server e.g., local server 3330 B
- a native scheduling engine e.g., native scheduling engine 3341 B
- the processing device may receive from the remote server data associated with tasks that were scheduled during a defined period of time. The period of time associated with the scheduled tasks may be defined by the processing device, by the remote server, or by an operator of system 3300 .
- the processing device may periodically receive from the remote server data associated with tasks that were scheduled during a period of less than a month, a period of less than two months, a period of less than three months, a period of more than two days, a period of more than ten days, and a period of more than twenty days.
- the processing device may process in a stateless manner the data periodically received from the remote server using optimization engine to update a prediction model.
- processing the data associated with the scheduled tasks in a stateless manner may be done by avoiding storing in memory device 3310 the data associated with scheduled tasks.
- processing the data associated with the scheduled tasks in a stateless manner may be done by avoiding storing in memory device 3310 personal details included in the data associated with scheduled tasks.
- the method may include detecting that the native scheduling engine scheduled a task in an unoptimized manner by determining that a field professional assigned to the task is estimated to arrive at a location associated with the task before or after a time estimated by the native scheduling engine.
- detecting that the native scheduling engine scheduled a task in an unoptimized manner may include determining that a field professional assigned to the task is estimated to complete the task before or after a time estimated by the native scheduling engine. For example, the native scheduling engine reserved in the schedule 2.5 hours for completing a second task, but the optimization engine determines that a second field professional assigned to the second task will complete the second task in less than an hour and may be available for an additional task.
- detecting that the native scheduling engine scheduled a task in an unoptimized manner may include determining that a field professional assigned to the task does not have a skill set required to complete the task on time.
- a third field professional may be assigned to a third task of installing a certain product, but the optimization engine determines that the third field professional did not complete the training for installing that certain product.
- detecting that the native scheduling engine scheduled a task in an unoptimized manner may include determining that other field professionals may compete the task faster than the field professional currently assigned to the task. In one example, this type of task takes a fourth field professional 35 minutes more than the average time of other field professionals, and it is better to assign the third field professional to other types of tasks.
- the processing device may identify at least one factor that causes the native scheduling engine to schedule tasks in the unoptimized manner.
- the at least one factor that caused the native scheduling engine to schedule tasks in an unoptimized manner may include inaccurate estimations of travel durations, inaccurate estimations of task durations, inaccurate skill requirements per task, and/or inaccurate statistics on field professionals.
- the processing device may identify a combination of factors that causes the native scheduling engine to schedule tasks in the unoptimized manner.
- the processing device may transmit information associated with the updated prediction model to the remote server for enabling improvement of the native scheduling engine.
- Improving the native scheduling engine may include updating the native scheduling engine based on the identified at least one factor.
- the information transmitted to the remote server may be associated with a plurality of scheduling parameters.
- the information transmitted to the remote server may include indications of inaccurate estimations driving durations native scheduling engine, indications of inaccurate estimations of task durations, and indications of inaccurate skill requirements per task.
- the native scheduling engine may assign different task durations for a plurality of task types, different task durations for a plurality of field professionals, different task durations for a plurality of customer types, different task durations for time of day, different task durations for a plurality of areas of task locations, different task durations for a plurality of skills of the field professional, and more.
- the local server may update the native scheduling engine by changing at least one value of the plurality of scheduling parameters. For example, originally the native scheduling engine of local server 3330 B assumed it will take Bob 68 minutes to complete a certain task type. But using the updated native scheduling engine the local server may determines that there is 80% likelihood that it will take Bob 50 minutes to complete the task and 20% likelihood that it will take Bob 60 minutes to complete the task.
- the processing device may transmit to the remote server details about the at least one task that the native scheduling engine had scheduled in an unoptimized manner.
- the details about the at least one task may include, for example, the task reference number, the time and date of the task, the field professional assigned to the task, the location of the task, the customer associated with the task, and more.
- the processing device may also transmit to the remote server at least one recommendation for optimizing scheduling of tasks by the native scheduling engine.
- the at least one recommendation may include a suggestion to reassign the task that the native scheduling engine had scheduled in an unoptimized manner to a different field professional.
- the at least one recommendation may include a suggestion to reschedule the task that the native scheduling engine had scheduled in an unoptimized manner to a different time or a different date.
- the at least one recommendation may include a warning.
- the processing device may determine a likelihood that the at least one task that the native scheduling engine had scheduled in an unoptimized manner will result in a failure to complete a task, and when the likelihood is greater than the threshold, the processing device may transmit a warning to the remote server.
- the processing device may obtain data about at least one environmental condition.
- the processing device may obtain the data about at least one environmental condition from a data source (e.g., data source 3350 A).
- the term “environmental condition” refers to a condition that may have a physical effect on a daily schedule of a field professional.
- the environmental condition may include natural or man-made conditions.
- the natural environmental conditions may include, for example, flood, hurricane, thunderstorm, earthquake, and more.
- the man-made environmental conditions may include, for example, atypical traffic conditions, construction, fires, and more.
- the processing device may determine a likelihood that the at least one environmental condition was not accounted for by a current version of the native scheduling engine and transmit an update to a remote server (e.g., local server 3330 A). In one example, the processing device may transmit information for updating a current version of the native scheduling engine.
- the processing device may periodically receive data associated with tasks scheduled by the native scheduling engine.
- the term “periodically” in this context refers to the transmission of data from the remote server being performed more than once or in successive instances and does not necessarily imply regular or uniform interval.
- the processing device may receive first data associated with tasks scheduled by the native scheduling engine during a first time period (e.g., a week), and receive second data associated with tasks scheduled by the native scheduling engine during a second time period (e.g., 10 days) subsequent the first time period.
- the first and the second time period may or may not overlap.
- the first time period and the second time period may be between one day and one hundred days.
- a duration of the first time period may be selected such that a size of the first data is lower than a threshold associated with an ability of the at least one processor to process in stateless manner.
- the threshold may be determined based on a size of a RAM memory associated with the at least one processor.
- the size of the data received may be less than 100% of the size of the memory 3318 , less than 90% of the size of the memory 3318 , less than 75% of the size of the memory 3318 , or less than 50% of the size of the memory 3318 .
- FIG. 38 depicts an exemplary method 3800 in accordance with an embodiment from the perspective of a local server (e.g., local server 3330 A).
- Method 3800 is used for scheduling tasks to field professionals.
- the in the description of also this method reference is made to certain components of system 3300 . It will be appreciated, however, that other implementations are possible and that other components may be utilized to implement the exemplary method. It will also be readily appreciated that the illustrated method can be altered to modify the order of steps, delete steps, or further include additional steps.
- a processing device may receive a plurality of requests for on-site service from a plurality of users (e.g., users 130 ), wherein each request is associated with a different location.
- the processing device may schedule a set of tasks from the plurality of requests using a native scheduling engine (e.g., native scheduling engine 3341 A)).
- the processing device may estimate travel durations between locations associated with the set of tasks. The travel durations of the field professionals may depend on accurate estimates of prevailing and emerging traffic conditions.
- the processing device may utilize advanced traffic models to analyze traffic data, including real-time traffic data and historical traffic data to estimate the travel durations.
- different versions of native scheduling engine may use different scheduling data.
- different estimations of travel durations may be determined. For example, when using first scheduling data, native scheduling engine 3341 A may estimate that a specific ride will take 37 minutes, but when using second scheduling data, native scheduling engine 3341 A may estimate that a specific ride will take 52 minutes.
- the processing device may estimate task durations associated with the set of tasks.
- the task durations may be determined based on at least one of: the task type, the field professional, the customer type, the time of day, and the task area.
- different estimations of task durations may be determined. For example, a first version of native scheduling engine 3341 A may estimate that a specific task will be completed in 25 minutes, but an updated second version of native scheduling engine 3341 A may estimate that the specific task will be completed in 38 minutes.
- the processing device may determine the requirements to complete each of the set of tasks and assign field professionals accordingly. The requirements may include the skills required to complete a task, the list of tools required to complete, and/or a list of parts required to complete. The requirements may also change when the native scheduling engine uses different scheduling data.
- the processing device may update the native scheduling engine based on information received from a remote server (e.g., central server 3805 ).
- a remote server e.g., central server 3805
- the information from a remote server I may be received in response to sending the remote server data associated with the set of scheduled tasks (e.g., task data 3336 A). This embodiment is described in detail with reference to steps 3704 to 3712 of FIG. 37 .
- the information from a remote server may be received periodically from the remote server.
- the information from a remote server may be received from the remote server after detecting a trigger: for example, after the remote server identifies an environmental condition that requires a change in the native scheduling engine.
- the processing device may receive from the remote server at least one recommendation for optimizing scheduling of future tasks.
- the at least one recommendation may include a suggestion to reassign a task to a different field professional.
- the at least one recommendation may include a suggestion to reschedule a task to a different time or a different date.
- the at least one recommendation may include a suggestion associated with a desired scheduling weight.
- the desired scheduling weight may be a value (e.g., a numeric, textual, alphabetic, or symbolic value) that indicates a level of desirability of scheduling certain task types by local server 3330 A.
- the processing device may use the updated native scheduling engine on the previously scheduled set of tasks to identify a task scheduled in an unoptimized manner.
- the processing device may use the updated native scheduling engine to determine that a field professional assigned to a task is estimated to arrive at a location associated with the task before or after a time previously estimated by the processing device. For example, originally the native scheduling engine had scheduled a first task to start at 11:00 AM, but later the updated native scheduling engine determines that the first field professional assigned to the first task will not arrive to the location associated with the first task before 11:40 AM.
- the processing device may use the updated native scheduling engine to determine that a field professional assigned to a task is estimated to complete the task before or after a time previously estimated by the processing device. For example, originally the native scheduling engine had reserved in the schedule 2.5 hours for completing a second task, but later the updated native scheduling engine determines that a second field professional assigned to the second task will complete the second task in less than an hour and may be available for an additional task.
- the processing device may use the updated native scheduling engine to determine that a field professional assigned to a task does not have a skill set required to complete the task. For example, originally the native scheduling engine I had assigned a third field professional to a third task of installing a certain product, but later the updated native scheduling engine determines that the third field professional did not complete the training for installing that certain product.
- the processing device may cause a schedule change associated with the identified task.
- the identified task was previously assigned to a first field professional and causing the schedule change may include reassigning the identified task to a second field professional.
- the task identified as being scheduled in an unoptimized manner was task 3532 and the schedule change may include reassigning task 3532 from Donald to Bruce.
- the identified task was previously assigned to a first field professional and causing the schedule change may include reassigning a different task previously assigned to the first field professional to a second field professional thereby enabling the first field professional to complete the identified task.
- the task identified as being scheduled in an unoptimized manner was task 3523 and the schedule change may include reassigning task 3524 from Chuck to Arnold.
- the identified task is scheduled at a certain time and causing the schedule change may require rescheduling the identified task to a different time.
- the task identified as being scheduled in an unoptimized manner was task 3514 and the schedule change may include rescheduling task 3514 to a different time.
- rescheduling the identified task to a different time may include suggesting a user one or more alternative times selected by the updated native scheduling engine.
- the processing device may periodically transmit to the remote server (e.g., central server 3805 ) data associated with a plurality of scheduled tasks.
- this data is used by an optimization engine to determine the information that may be used for updating the native scheduling engine.
- the size of the periodically transmitted data may be less than a threshold to enable processing the data in stateless manner.
- the threshold may be determined based on a size of a RAM memory associated with the at least one processor of the remote server.
- the size of the data received may be less than 100% of the size of the memory 3318 , less than 90% of the size of the memory 3318 , less than 75% of the size of the memory 3318 , or less than 50% of the size of the memory 3318 .
- a scheduling system should take into consideration real-time conditions that affect a schedule for a field professional. These real-time conditions may include an unplanned event likely to interfere with the field professional completing a task (e.g., user cancellation of an appointment, malfunction of a tool, traffic, etc.), and a window of opportunity for scheduling additional tasks to the field professional (e.g., shorter-than-estimated travel durations, shorter-than-estimated task durations, user cancellation of an appointment, etc.).
- the disclosed system may identify several optional tasks that may be assigned to the field professional. In a first embodiment, the system may present the optional tasks to the field professional and assign a task based on the field professional's selection. FIGS.
- FIG. 40A and 40B illustrate user interfaces associated with the first embodiment.
- the system may use an artificial intelligence technology on historical data that may be indicative of dispatchers' preferences to identify possible tasks to assign to the field professional, to identify a group of field professionals as candidates for doing certain tasks, or to learn details (e.g., skills) on the field professionals.
- FIG. 41 illustrates software modules associated with the second embodiment.
- real-time information may refer to information or data collected at the time an event occurs or soon after the event occurs.
- the real-time information may include data relevant to determining the capability or the progress of a field professional's in arriving at a location associated with a task at a scheduled time and/or in completing on-site services associated with scheduled tasks.
- the real-time information may be collected from at least one source, such as, but not limited to, a mobile device (e.g., a mobile telephone, a personal digital assistant (PDA), a laptop computer, a tablet computer), an IoT device (e.g., including at least one of: a temperature sensor, a barometer, an altimeter, a visible light sensor), a global positioning system (GPS), a radio beacon, a wireless local area network (WLAN) station, a vehicle information and communication system (VICS), a traffic information broadcast system, a vehicle tracking and telemetry system, a weather monitoring system (WMS), social network and news websites, and more.
- a mobile device e.g., a mobile telephone, a personal digital assistant (PDA), a laptop computer, a tablet computer
- an IoT device e.g., including at least one of: a temperature sensor, a barometer, an altimeter, a visible light sensor), a global positioning system (GPS), a radio beacon
- system 100 may determine if a field professional is at a location associated with one of the tasks in the schedule or en route to a scheduled task.
- the real-time information may reflect task updates (e.g., field professional 110 may use a dedicated communication device or a dedicated application to provides real-time updates, such as “arrived at destination” and “5 minutes delay in completing the task”).
- the real-time information may include updates from different data sources outside system 100 that may affect the progress of field professional 110 (e.g., traffic updates, weather updates, user's social profiles, etc.).
- the real-time information may reflect required changes to a schedule of a field professional.
- system 100 may determine, from the real-time information, existence of an unplanned event likely to interfere with the field professional completing at least one task from the daily schedule.
- system 100 may determine, from the real-time information, a window of opportunity to assign an additional task to the field professional.
- FIG. 39A depicts a planned timeline and an actual timeline of a first field professional 110 (e.g., Bart).
- a first field professional 110 e.g., Bart
- Bart was assigned with five tasks: task A (scheduled to start at 8:30 AM and estimated to end at 9:30 AM), task B (scheduled to start at 10:00 AM and estimated to end at 11:00 AM), task C (scheduled to start at 11:30 AM and estimated to end at 12:30 PM) task D (scheduled to start at 1:00 PM and estimated to end at 2:00 PM), and task E (scheduled to start at 2:30 PM and estimated to end at 3:00 PM).
- each of the tasks that Bart was assigned to is associated with a different location, and the planned timeline includes periods of time between the tasks that correspond to the estimated travel duration times.
- Steps 3902 to 3908 may be implemented by system 100 after Bart had encountered unplanned event 3900 .
- system 100 may receive real-time information associated with Bart.
- the real-time information may include a message from Bart that he had a flat tire.
- system 100 may determine existence of an unplanned event likely to interfere with task C. For example, system 100 may estimate that it will take Bart 20 minutes to fix the flat tire, and based on the current traffic conditions, he is expected to arrive to the location associated with task C around 11:50 AM. Thus, the flat tire event is likely to interfere with task C scheduled to start at 11:30 AM. Accordingly, system 100 may reassign task C to a different field professional or reschedule task C to a different date. System 100 may identify a group of optional tasks (e.g., task F, task G, task H, task I, and task J). The optional tasks may include repair and maintenance services of IoT devices or different location-agnostic tasks.
- the optional tasks may include repair and maintenance services of IoT devices or different location-agnostic tasks.
- system 100 may present Bart some of the identified tasks (e.g., task F, task G, task H) as alternatives to task C.
- system 100 may assign Bart with task F. After Bart has completed task F, he can continue with his planned schedule and complete tasks D and E.
- FIG. 39B depicts a planned timeline and an actual timeline of a second field professional 110 (e.g., Lisa).
- Lisa was assigned with five tasks: task A (scheduled to start at 8:30 AM and estimated to end at 9:30 AM), task B (scheduled to start at 10:00 AM and estimated to end at 11:45 AM), task C (scheduled to start at 12:45 PM and estimated to end at 1:30 PM) task D (scheduled to start at 2:00 PM and estimated to end at 3:00 PM), and task E (scheduled to start at 3:30 PM and estimated to end at 4:30 PM).
- each of the tasks that Lisa was assigned to is associated with a different location, and the planned timeline includes periods of time between the tasks that correspond to the estimated travel duration times.
- Steps 3952 to 3958 may be implemented by system 100 after Lisa has completed task B. At step 3952 , system 100 may receive real-time information about Lisa's progress.
- Lisa may use a dedicated application on her smartphone to provide a real-time update “task completed.”
- system 100 may determine a window of opportunity. Determining the window of opportunity may include determining a duration of the window of opportunity.
- system 100 may identify a plurality of optional tasks (e.g., task F, task G, and task H).
- system 100 may automatically select task F and assign it to Lisa. After Lisa has completed task F, she can continue with her planned schedule and complete tasks D and E.
- FIGS. 40A and 40B depict two graphical user interfaces (GUIs) according to embodiments of the present disclosure.
- the GUIs may be part of a dedicated app installed in field professional communication device 180 A.
- FIG. 40A depicts a GUI 4000 that enables field professional 110 to provide real-time information to system 100 ; and
- FIG. 40B depicts a GUI 4010 that enables field professional 110 to select an optional task from a list of optional tasks identified by system 100 .
- GUI 4000 in FIG. 40A may include a map area displaying a current location of field professional 110 relative to the location associated with a next task in the daily schedule. GUI 4000 may also present the estimated time of arrival for the next task's location. Below the map area, GUI 4000 displays the fields “Next Task,” “Current Status,” and “Event Type.” The field “Next Task” may present the next task's ID number. Field professional 110 may obtain additional details on the next task by pressing the ID number. For example, the additional details that GUI 4000 may present to field professional 110 may include: information about the customer (e.g., name, address, phone number, etc.), information about the scheduled on-site service (type of service, required parts, etc.), and more.
- information about the customer e.g., name, address, phone number, etc.
- information about the scheduled on-site service type of service, required parts, etc.
- the field “Current Status” may be automatically completed by the system, for example, based on location data received from communication devices 180 A. Alternatively, the field “Current Status” may be manually completed by field professional 110 by entering updates such as: “arrived at location,” “task completed,” and more.
- the field “Event Type” may include details on an unplanned event likely to interfere with at least one task from the daily schedule. In one embodiment, the details may include a time estimation of the expected delay due to the unplanned event. GUI 4000 may also include a “send” button for transmitting the event reporting to system 100 .
- GUI 4100 in FIG. 40B may present to field professional 110 a list of optional tasks identified by system 100 .
- field professional 110 may be prompt to select an optional task from the list when system 100 determines existence of an unplanned event likely to interfere with a task from the daily schedule.
- field professional 110 may be prompt to select an optional task from the list when system 100 determines a window of opportunity to assign an additional task to the field professional.
- GUI 4010 may include a feature 4012 to refresh the list, as some of the optional tasks may be concurrently scheduled by the system, by dispatchers, or by other field professionals.
- Field professional 110 may change the presentation parameters of the list of optional tasks identified by system 100 .
- GUI 4010 may include a feature 4014 for sorting the plurality of optional tasks.
- the optional tasks are sorted based on their distance, i.e., the distance of a location of an optional task from a current location of field professional 110 .
- field professional 110 may be able to sort the plurality of optional tasks according to other parameters, for example, based on task type (e.g., location-agnostic tasks or location-based tasks), based on client type (e.g., private customers or industrial customers), based on estimated task duration, based on due date, and more.
- FIG. 41 illustrates a memory 4100 containing software modules and databases consistent with the present disclosure.
- memory 4100 may be part of server 152 .
- memory 4100 may be stored in an external storage communicatively coupled with server 152 , such as one or more databases or memories accessible over network 170 .
- the components of memory 4100 may be distributed in more than one server.
- memory 4100 may include an input module 4102 , an optional task identification module 4104 , a task selection module 4106 , and an output module 4108 .
- Modules 4102 , 4104 , 4106 , and 4108 may contain software instructions for execution by at least one processing device (e.g., processor 202 ).
- Memory 4100 may also include or be connected to a plurality of databases, such as a pending requests database 4110 which may store details on requests for on-site services (e.g., requests that were not yet scheduled); a field professionals database 4112 which may store data on each field professional (e.g., skills, qualifications, experience, shifts times, ranking); and a historical assignment database 4114 which may store data associated with assignments of tasks for a plurality of field professionals when windows of opportunity are identified. For example, historical assignment database 4114 may store data indicative of past dispatchers' preferences regarding assignments of additional tasks.
- a pending requests database 4110 which may store details on requests for on-site services (e.g., requests that were not yet scheduled)
- a field professionals database 4112 which may store data on each field professional (e.g., skills, qualifications, experience, shifts times, ranking)
- a historical assignment database 4114 which may store data associated with assignments of tasks for a plurality of field professionals when windows of opportunity are identified.
- historical assignment database 4114 may store data indicative of
- input module 4102 may cooperate to perform multiple operations.
- input module 4102 may provide to optional task identification 4104 an identification of a window of opportunity associated with a specific field professional.
- Optional task identification 4104 can interact with pending requests database 4110 , field professionals database 4112 , and an external data source 4116 configured to store updated information, such as traffic conditions, weather conditions, etc.
- optional task identification 4104 can process the accessed data and forward to task selection module 4106 details of plurality of optional tasks that the specific field professional can complete during the window of opportunity.
- Task selection module 4106 can interact with field professionals database 4112 and historical assignment database 4114 , and select which task assign to the specific field professional.
- Output module 4108 may receive an identification of the selected task from task selection module 4106 and may change the daily schedule of the specific field professional accordingly.
- Input module 4102 can receive a set of requests for on-site service from a plurality of users and receive real-time information about a progress of a field professional assigned to a set of tasks associated with a subset of requests.
- the requests for the on-site services may be associated with different locations.
- input module 4102 can receive the real-time information via network interface 206 transmitted from one or more communication devices (e.g., field professional communication device 180 A, customer service communication device 1808 , or user communication device 180 C).
- the real-time information about the progress of a specific field professional may reflect the likelihood that the specific field professional will complete the daily schedule of assigned tasks.
- input module 4102 may determine existence of an unplanned event likely to interfere with the specific field professional completing at least one task from the daily schedule. In addition, input module 4102 may determine existence of a window of opportunity to assign an additional task to the specific field professional. The window of opportunity may (or may not) be associated with the unplanned event. Input module 4102 can then transmit data identifying the determined window of opportunity associated with a specific field professional to optional task identification module 4104 for processing.
- Optional task identification module 4104 may receive the data identifying the determined window of opportunity from input module 4102 and detect a plurality of optional tasks for the specific field professional.
- Optional task identification module 4104 may access pending requests database 4110 to learn which tasks are available for scheduling.
- the tasks available for scheduling may include tasks associated with unassigned requests and tasks that were scheduled to deferred dates due to lack of field professionals' availability.
- optional task identification module 4104 may apply one or more criteria for determining a plurality of optional tasks relevant for the specific field professional.
- the one or more criteria may include distance of a task's location to a current location of the specific field professional.
- the one or more criteria may include the current traffic conditions along a route to a task's location.
- the one or more criteria may include the current weather conditions at a task's location. In another embodiment, the one or more criteria may include skills of the specific field professional. In another embodiment, the one or more criteria may include a scheduling weight indicating a desired ratio between the types of scheduled tasks. In another embodiment, the one or more criteria may include details associated with the tasks and/or details associated with the customer (e.g., only IoT device customers). In another embodiment, the one or more criteria may include a predicted task duration. The predicted task duration may be used by the system to determine if a task should be offered to a field professional. For example, the system may determine that a first field professional may be assigned to a certain task since the predicted duration for him would be 60 minutes while a second field professional may not be assigned to the certain task as the system estimates the predicted duration for him would be 75 minutes.
- Task selection module 4106 may receive the data identifying the plurality of optional tasks from optional task identification module 4104 and select at least one of the plurality of optional tasks for assignment. Task selection module 4106 may select the at least one optional task by processing of information using artificial intelligence (AI) technology and Machine learning (ML) technology. Specifically, task selection module 4106 may include AI software instructions that enable a processing device to perform at least one of learning of information, inference of information, and perception of information. Moreover, task selection module 4106 may include ML software instructions that enable a processing device to process a large amount of information (big data), such as information stored in an associated database (e.g., historical assignment database 4114 ).
- big data big data
- task selection module 4106 can process a large amount of information to select at least one of the plurality of optional tasks for assignment.
- the processing of information is an operation that grasps characteristics, rules, and judgment criteria of information, quantifies relationship between information and information, and predicts new data using a quantified information.
- Task selection module 4106 may identify at least one optional task that the field professional may be able to complete during the window of opportunity, based on the patterns learned by processing the information. For example, task selection module 4106 may determine a pattern associated with past dispatchers' preferences regarding assignment of additional tasks and may select the at least one optional task based on the determined pattern.
- task selection module 4106 may also rank the plurality of optional tasks that the field professional can complete during the window of opportunity according to a likelihood that a human dispatcher would select each task. Task selection module 4106 can then transmit data identifying the at least one optional task to output module 4108 for processing.
- Output module 4108 can determine whether to automatically assign the specific field professional to the at least one task selected by task selection module 4106 . In case task selection module 4106 had identified a group of optional tasks that meet the selection criteria, output module 4108 can determine to present the group of optional tasks to the specific field professional and to prompt the specific field professional to choose an optional task. Upon assigning an additional task to the specific field professional, output module 4108 may update historical assignment database 4114 to reflect the selected task assignment.
- FIG. 42 is a flowchart of an example process 4200 for scheduling tasks to field professionals executed by a processing device of system 100 , according to embodiments of the present disclosure.
- FIG. 42 For purposes of illustration, in the following description, reference is made to certain components of system 100 . It will be appreciated, however, that other implementations are possible and that other components may be utilized to implement the exemplary method. It will also be readily appreciated that the illustrated method can be altered to modify the order of steps, delete steps, or further include additional steps.
- a processing device (e.g., processing device 202 ) provides a field professional information about a daily schedule of assigned tasks associated with a set of requests for on-site services.
- the processing device receives real-time information reflecting a likelihood the field professional will complete the daily schedule of assigned tasks.
- the processing device may receive the real-time information from a customer service unit (e.g., customer service unit 120 ), from a user device (e.g., the customer's communication device 180 C), or from a field professional device (e.g., communication device 180 A).
- the real-time information when the real-time information is associated with an event of a user's cancellation of an appointment, the real-time information may be received from any of the communication devices mentioned above.
- users may call to the customer service unit and inform that they need to cancel the appointment; users may interact with system 100 directly via a website that has a feature to cancel appointments (e.g., a link to the website may be provided to the users by system 100 ); users may interact with system 100 by responding to a message (e.g., a verification SMS, email or Interactive voice response (IVR) message with a cancellation request; and the field professional may call the user and learn that the user forgot about the appointment. Thereafter, the field professional may use a dedicated app to cancel this appointment.
- a message e.g., a verification SMS, email or Interactive voice response (IVR) message with a cancellation request
- IVR Interactive voice response
- the processing device determines from the real-time information existence of an unplanned event likely to interfere with the field professional completing at least one task from the daily schedule.
- the unplanned event may have been resulted from a situation associated with the user, from a situation associated with the field professional, or from environmental conditions.
- the unplanned event may include user cancellation of an appointment associated with a task in the daily schedule of the field professional. For example, when the user is stuck at work and cannot make it home in time for the appointment with the field professional.
- the unplanned event may include a significant delay of the field professional to the appointment with the user. For example, when the field professional had a flat tire on the way to a location associated with a next task and expected to be 30 minutes late.
- the unplanned event may include atypical traffic conditions associated with a driving route to a location of a task in the daily schedule of the field professional. For example, when the driving route had a road blocked for repair and the field professional or the user will not be able to get in time to the location associated with the appointment.
- the real-time information associated with the atypical traffic conditions may be received from traffic control services or directly from the field professional.
- the unplanned event may include atypical weather conditions at a location associated with a task in the daily schedule of the field professional. Examples for atypical weather conditions may include heavy rain, heat wave, a hurricane, flooding, and more.
- the atypical weather conditions may prevent the field professional from getting to the location associated with the appointment or prevent the field professional from completing the task.
- the unplanned event may include lack of parts associated with a task in the daily schedule of the field professional. For example, when the field professional had used unexpectedly a replacement part that was planned to be used in a future task, and now a scheduled task cannot be completed.
- the unplanned event may include a malfunction of a tool needed for completion of a task in the daily schedule of the field professional. For example, when a tool needed in a scheduled task unexpectedly broke in a previous task.
- the processing device identifies and present a plurality of optional tasks to the field professional based on the determination at step 4206 .
- the processing device may access at least one database of unscheduled tasks (e.g., tasks associated with recent requests) or scheduled tasks that may be rescheduled on-the-fly (e.g., repair and maintenance services for IoT devices).
- the plurality of optional tasks may include at least one location-agnostic task that includes a remote communication session with a customer (e.g., remote support session) and at least one location-agnostic task that does not involve communicating with customers (e.g., completing reports of past tasks).
- the processing device may filter one or more irrelevant tasks.
- the processing device may identify the plurality of optional tasks by taking into account a specific skill set of the field professional and confirming that the field professional is capable to perform each assignment of the plurality of optional tasks.
- the processing device may identify the plurality of optional tasks by taking into account a current location of the field professional and confirm that each location associated with the plurality of optional tasks is within a predefined distance from the current location of the field professional (e.g., less than five miles).
- the processing device may identify the plurality of optional tasks by considering traffic conditions (e.g., current and predicted traffic conditions) and estimate how much each assignment of the plurality of optional tasks would affect the rest of the daily schedule of the field professional.
- the processing device may rank the plurality of optional tasks based on the different considerations discussed above, and present only a part of the plurality of optional tasks based on their ranking. For example, a task associated with a closer location may have a higher ranking.
- the processing device assigns the field professional to a selected task and unassign the at least one task.
- unassigning the at least one task may include rescheduling the at least one task to a different time.
- the processing device may determine existence of an unplanned event likely to interfere with the field professional completing a single task from the daily schedule and reschedule the single task to a different time. For example, the single task may be scheduled to a different day based on the field professional's availability and/or the customer's availability.
- unassigning the at least one task may include assigning the at least one task to a different field professional.
- the processing device may determine existence of an unplanned event likely to interfere with the field professional completing a single task from the daily schedule and reassign the single task to another field professional.
- the on-site service associated with the at least one task may be provided to the user at the scheduled time, but by a different field professional.
- the processing device may determine existence of an unplanned event likely to interfere with the field professional completing a plurality of tasks from the daily schedule.
- the field professional may be involved in a car accident on the way to a first task of the day.
- the processing device may reschedule at least some of the plurality of task to different dates and/or reassign at least some of the plurality of tasks to different field professionals.
- FIG. 43 depicts an example method 4300 for scheduling tasks to field professionals executed by a processing device of system 100 , according to embodiments of the present disclosure.
- a processing device of system 100 For purposes of illustration, in the following description, reference is made to certain components of system 100 . It will be appreciated, however, that other implementations are possible and that other components may be utilized to implement the exemplary method. It will also be readily appreciated that the illustrated method can be altered to modify the order of steps, delete steps, or further include additional steps.
- a processing device receives a set of requests for on-site service, each request may be associated with a different location.
- the set of requests for on-site service may include at least one request received from a user (e.g., user 130 ) and at least one request received from an IoT device (e.g., IoT device 140 ) without any user intervention.
- the processing device may receive real-time information about a progress of a field professional assigned to a set of tasks associated with a subset of requests. In one embodiment, the processing device may receive real-time information from a communication device associated with the field professional.
- the field professional may use a dedicated application or a dedicated communication device to provide real-time updates, such as “arrived location,” “task completed,” and more.
- the processing device may receive real-time information from a device associated with the on-site service. For example, the processing device may receive updates directly from an IoT device being repaired.
- the processing device dynamically determines a window of opportunity to assign an additional task to the field professional.
- the processing device may determine the window of opportunity from real-time information that includes traffic conditions in a geographic area associated with a current location of the field professional.
- the traffic conditions may include real-time traffic conditions and predicted traffic conditions.
- the processing device may determine the window of opportunity from real-time information that includes task status updates transmitted from a communication device of the field professional.
- the processing device may determine the window of opportunity from real-time information that includes current location information derived at least partially from a location circuit communication device of the field professional.
- the processing device may determine the window of opportunity from real-time changes in the daily schedule of the field professional.
- the processing device may determine the window of opportunity from a user cancellation of a task in a daily schedule of the field professional. In another embodiment, the processing device may determine the window of opportunity from a completion of a task in a daily schedule of the field professional faster than estimated. This embodiment is illustrated in FIG. 39 . In another embodiment, the processing device may determine the window of opportunity from arriving at a location associated with a task in a daily schedule faster than estimated. In another embodiment, the processing device may determine the window of opportunity from reassignment of a task in a daily schedule of the field professional to a different field professional.
- the processing may periodically check if there are differences between estimated conditions (e.g., traffic conditions, work progress, etc.) and the current conditions. For example, when the daily schedule of a field professional was determined, the estimated task duration of task A was estimated to be 30 minutes, and the travel duration between the location associated with task A and the location associated with task B was estimated to be 45 minutes.
- the field professional Upon arriving at the location associated with task A, the field professional updates the processing device that the on-site service associated with task A would be completed in 10 minutes. Thereafter, the processing device may determine, based on the real-time traffic conditions and the current location of the field professional, that the travel duration from the location associated with task A and the location associated with task B would take only 20 minutes. Thus, the field professional will have a window of 45 minutes before task B starts.
- the processing device identifies a plurality of optional tasks that the field professional is determined to be able to complete during the window of opportunity.
- the processing device may check if the field professional can start one of the tasks associated with the subset of requests earlier than a scheduled time. Checking if the field professional can start a task earlier may include asking a customer associated with the task or identifying that completing the task does not require a presence of a user (e.g., repairing an IoT device that is not located within a user's property). With reference to the example above, the processing device may receive a confirmation from customer associated with task B that the field professional can start task B earlier.
- the real-time information may include a current location of the field professional and traffic conditions in the geographic area.
- the processing device may use the traffic conditions in the geographic area and the current location of the field professional to identify the plurality of optional tasks. For example, the processing device may follow rules for identifying optional tasks, such as only location-agnostic tasks, tasks within five miles radius from the current location of the field professional, or tasks within 15 minutes' drive from the current location of the field professional.
- the rules may be associated with the duration of the window of opportunity. For example, when the window of opportunity is more than 60 minutes, allow up to 15 minutes' drive, but when the window of opportunity is less than 45 minutes, allow up to 10 minutes' drive.
- the processing device automatically selects one of the optional tasks for assignment to the field professional based on historical data.
- the processing device may be associated with a memory device (e.g., database 154 ) configured to store historical data indicative of past dispatchers' preferences regarding assignment of additional tasks.
- the memory device may also store historical data indicative of past field professionals' preferences regarding assignment of additional tasks. For example, the received selection of the field professional as described in step 4210 above.
- the historical data may include details on a plurality of past windows of opportunity, and the at least one processor is configured to identify a past window of opportunity similar to a current window of opportunity, and to select the task based on the past dispatchers' preferences regarding assignment of a task associated with the past window of opportunity.
- the details on the plurality of past windows of opportunity may include times, durations, information about the field professionals associated with the plurality of past windows of opportunity (e.g., skills, experience, working hours, etc.), and information about the optional tasks that each of the field professionals could have completed during a corresponding past window of opportunity.
- the processing device may determine a pattern associated with the past dispatchers' preferences regarding assignment of additional tasks, and select the task based on the determined pattern. For example, the processing device may determine that an hour before shift ends, a human dispatcher always selects a location-agnostic task.
- the processing device may rank the plurality of optional tasks that the field professional can complete during the window of opportunity according to a likelihood that a human dispatcher would select each task. The ranking of the plurality of optional tasks may also be based on other parameters to enable greater optimization of scheduling of tasks for all the field professionals.
- the processing device assigns the field professional to the selected task.
- the selected additional task may be a location-agnostic task associated with a request for remote assistance received before the window of opportunity. Specifically, the selected additional task may be being available to provide at least one location-agnostic service for requests received during the window of opportunity.
- the selected additional task may be a location-based task associated with a location in proximity to a current location of the field professional (e.g., less than a mile).
- the selected additional task may be one that is estimated to end before the field professional is required to start driving towards a location of a next scheduled task. For example, with reference to the example illustrated in FIG. 39 , task F is estimated to end before Lisa needs to start driving towards a location associated with task C.
- IoT Internet of Things
- the Internet of Things (IoT) has grown well beyond smart watches and security cameras.
- IoT trend is changing the future of business with its now billions of “things.”
- Some of these things have sensors for monitoring other things.
- IoT devices While many IoT devices have the functionality of alerting users when a malfunction occurs or is predicted to occur, they still rely on their users to repair them or repair the things they monitor.
- the following disclosure provides a solution that will enable IoT devices to autonomously schedule on-site service, for example, without any user intervention.
- a system that schedules tasks to field professionals may receive a request from a connected device that includes an indication of an urgency level.
- the system may take into consideration other requests (e.g., from human customers) and schedules a visit of a field professional within a time period that corresponds with the urgency level.
- the urgency level can be determined from information derived from the connected device and the scheduled visit (e.g., for repair or maintenance) may be given a precedence in the task schedule relative to other previously scheduled tasks.
- the connected device may periodically send performance data to a server, the server may analyze the performance data, determine that maintenance service is in needed, and cause scheduling of an on-site service (the server may or may not be part of the system that assigns tasks to field professionals).
- the connected device may monitor a living being (e.g., elderly people, livestock), and may cause scheduling of a visit of a health care provider without an approval of the monitored being.
- connections device refer to any device (e.g., an appliance, a sensor, etc.) that has an addressable interface (e.g., an Internet protocol (IP) address, a Bluetooth identifier (ID), a near-field communication (NFC) ID, etc.) that can transmit information, for example, to a processing device (e.g., processing device 202 ) using a network such as a local ad-hoc network or the Internet.
- IP Internet protocol
- ID Bluetooth identifier
- NFC near-field communication
- a connected device may have a passive communication interface, such as a quick response (QR) code, a radio-frequency identification (RFID) tag, an NFC tag, or the like, or an active communication interface, such as a modem, a transceiver, a transmitter-receiver, or the like.
- a passive communication interface such as a quick response (QR) code, a radio-frequency identification (RFID) tag, an NFC tag, or the like
- RFID radio-frequency identification
- NFC tag or the like
- active communication interface such as a modem, a transceiver, a transmitter-receiver, or the like.
- the connected device may have a particular set of attributes (e.g., a device state or status, such as whether the connected device is on or off, open or closed, idle or active, available for task execution or busy, a cooling or heating function, an environmental monitoring or recording function, a light-emitting function, a sound-emitting function, etc.) that can be embedded in and/or controlled/monitored by a central processing unit (CPU), microprocessor, or the like.
- a connected device can encompass the range from the simplest IoT devices to the most robust legacy Internet accessible devices.
- connected devices may include, but are not limited to, refrigerators, toasters, ovens, microwaves, freezers, dishwashers, dishes, hand tools, clothes washers, clothes dryers, furnaces, air conditioners, thermostats, televisions, light fixtures, vacuum cleaners, sprinklers, electricity meters, gas meters, thermometers, humidity sensors, soil sensors, security cameras, motion detection lights, traffic sensors, wearable devices, fitness bracelets, continuous glucose monitor devices, connected inhalers, an ingestible sensors, coagulation testing devices, asthma monitor devices, cell phones, desktop computers, laptop computers, tablet computers, personal digital assistants (PDAs), etc.
- PDAs personal digital assistants
- FIG. 44 is a diagram showing a timeline 4400 illustrating the chronological events that happen when a processing device (e.g., processing device 202 ) schedules a first request from a human customer and a second request from a connected device to at least one field professional, according to disclosed embodiments.
- timeline 4400 includes a splitting point 4414 to two optional timelines (First Time Period and Second Time Period) that correspond with the urgency level of the second request of the connected device.
- the manner and order in which events are shown in timeline 4400 are chosen for convenience and clarity of presentation and is not intended to limit the disclosed embodiments.
- a processing device may receive a first request for a service.
- the requested service may be a location-based service (e.g., it may include a repair of a device in a customer's house) or a location-agnostic service (e.g., it may include remote accessing a customer's device).
- the first request may be autonomously received from a connected device; but in the example illustrated in FIG. 44 , the first request is received from a human customer.
- the processing device may schedule a first task for providing the requested service to the human customer. In the illustrated example the processing device scheduled the task associated with the first request on date “A.”
- the processing device may receive a second request for a service.
- the service autonomously requested by the connected device may also be a location-based service (e.g., it may include a repair of the connected device or a repair of a device monitored by the connected device) or a location-agnostic service (e.g., it may include updating a software or fixing a bug).
- the connected devices associated with the first and second requests may be from different types or associated with different owners.
- the processing device may determine an urgency level associated with the second request.
- the term “urgency level” as used herein refers to a determination of the need of the connected device for the service so that the connected device can continue functioning without sacrificing performance.
- the connected device may include in the request an indicator of the urgency level.
- the connected device may include data (e.g., measurements, reports, etc.) in the request and the processing device will derive from the received data the urgency level.
- the processing device may determine a time period that corresponds with the urgency level.
- the first optional time line illustrates a case where the determined time period ends after date “A”
- the second optional time line illustrates a case where the determined time period ends before date “A.”
- the processing device may schedule a second task associated with the second request from the connected device to date “B.”
- date “B” may be before date “A,” after date “A,” or on the same day.
- the processing device may schedule a task associated with the second request at the second scheduled date (date “B”) being after the first scheduled date (date “A”). This optional timeline describes a case when the time period that corresponds with the associated urgency level ends after the first scheduled date (date “A).
- the processing device may schedule a task associated with the second request at the second scheduled date (date “B”) being before the first scheduled date (date “A). This optional timeline describes a case when the time period that corresponds with the associated urgency level ends before the first scheduled date (date “A).
- the processing device may schedule the task associated with the second request at the first scheduled date, for example, the task associated with the second request may be scheduled instead of the task associated with the first request.
- This scenario may occurred when the urgency level associated with the request of the connected device is higher than a threshold.
- the processing device may reschedule the task associated with the first request to a different date.
- the processing device may prefer to reschedule tasks of connected devices (rather than rescheduling tasks of human customers) to a different date within their corresponding determined time periods.
- a field professional may provide the service associated with first request, and at step 4418 , the processing device may receive a confirmation that the first task has been completed.
- a field professional may provide the service associated with the second request, and at step 4422 , the processing device may receive a confirmation that the second task has been completed.
- the decision whether the second task should be scheduled for a date before or after date “A,” may be based on the determined time period that is associated with the urgency level of the connected device.
- FIG. 45 shows five locations ( 4500 , 4502 , 4504 , 4506 , 4508 ) associated with tasks that were previously scheduled in response to a first set of requests. Each of these task is associated with different task details (request date, task estimated duration, task scheduled date assigned to field professional, and customer type).
- the system received a second request from a connected device for an on-site service at another location ( 4510 ) in proximity to the first five locations ( 4500 , 4502 , 4504 , 4506 , 4508 ).
- the determined time period associated with the second request is five days.
- the system may aim to schedule nearby tasks on the same date and to the same field professional.
- the processing device may identify optional pending tasks associated with a location in proximity to the location associated with the second request.
- the on-site service associated with the second request may be scheduled on the same date as the on-site services scheduled for locations 4500 , 4504 , and 4506 .
- the on-site services for locations 4502 and 4508 are scheduled on dates later than the determined time period.
- the processing device may determine, based on the time period, that the on-site service for the connected device can be scheduled on a particular day when a first request is scheduled. Thereafter, the processing device may assign a single field professional to provide the on-site services at first location 4506 and at the second location 4510 on the (same) particular day. In one embodiment, the processing device may determine that the second location is in proximity to the first location when an estimated driving duration between the second location and the first location is less than 60 minutes, less than 45 minutes, less than 30 minutes, or less than 15 minutes. In another embodiment, the processing device may determine that the on-site service for the connected device can be scheduled on the (same) particular day by comparing the estimated driving duration to a threshold associated with the urgency level.
- the threshold may be 2 hours, for less urgent services the threshold may be 1 hour.
- the term “threshold” is used here to denote a reference value, a level, a point, or a range of values, for which, when the driving duration is below it, the processing device may allow the on-site service for the connected device to be scheduled on the certain date.
- the processing device may confirm that Bruce and Chuck have the skills required to complete the on-site service. In this example both Bruce and Chuck have the required skills. Therefore, the processing device may check if Bruce and Chuck have time availability in their daily schedule. Assuming Bruce's schedule is full, the processing device may schedule the on-site service associated with the second request to Chuck on June 9 th . In some cases, the processing device may determine that the connected device in location 4510 may be accessed without the presence of its owner. If this is the case, the processing device may use real-time data from field professionals to reschedule the on-site service for the connected device.
- the processing device may reschedule the on-site service after learning that Bruce had completed the on-site service in location 4504 after 20 minutes instead of the estimated 55 minutes.
- the processing device may identify a window of opportunity for Bruce to complete the on-site service for the connected device in location 4510 and reschedule the on-site service associated with the second request to Bruce on June 8 th .
- FIG. 46 is a flowchart of an example method 4600 for scheduling tasks to field professionals executed by a processing device of system 100 , according to embodiments of the present disclosure.
- a processing device of system 100 For purposes of illustration, in the following description reference is made to certain components of system 100 . It will be appreciated, however, that other implementations are possible and that other components may be utilized to implement the exemplary method. It will also be readily appreciated that the illustrated method can be altered to modify the order of steps, delete steps, or further include additional steps.
- a processing device receives a first request for an on-site service, wherein the first request includes information identifying a location associated with a customer.
- the first request for the on-site service may be received directly from a human customer.
- the first request for the on-site service may be received from a connected device associated with a human customer.
- the processing device schedules a task associated with the first request to be performed by a field professional on a first scheduled date.
- scheduled date is meant to include date and/or time, as appropriate.
- the scheduled date may include a time range (e.g., between 1:00 PM to 5:00 PM).
- the scheduled date may include an exact time (e.g., 11:15 AM).
- the processing device may schedule the task associated with the first request on the first scheduled date based on the information identifying the location associated with the customer. For example, when the location associated with the customer is next to a public school, the processing device may avoid scheduling services at the times when school ends. In addition, the location may provide details for selecting the most fitting field professional.
- the processing device may determine the first scheduled date based on an availability (and/or predicated availability) of the human customer. For example, the processing device may retrieve information indicative of an availability of the human customer at the location for accepting the on-site service (e.g., from social network, online source, past answers), and propose at least one time slot for providing the on-site service based on retrieved information.
- the processing device receives a second request from a connected device for an on-site service.
- the request may include a wide range of data formats, such as messages, reports, measurements, and other feedback generated by the connected device.
- the request from the connected device may include a data stream with values of a plurality of parameters associated with a plurality of software-driven components of the connected device or of a device monitored by the connected device.
- the processing device may process the data stream to determine that the connected device is in need of an on-site service.
- the request from the connected device may include identification of a condition of a software-driven component that requires an on-site service.
- the second request may be associated with a repair service or a maintenance service for the connected device.
- the data stream from the connected device may be indicative of a failure of one of the components of the connected device.
- the second request may be associated with a repair service or a maintenance service for a device monitored by the connected device.
- a single connected device may monitor a plurality of devices and the data steam from the connected device may be indicative of a failure of one of the monitored devices.
- the second request may have an associated urgency level determined by information received from the connected device.
- the connected device may determine the urgency level by itself and may include the associated urgency level in the request for on-site service.
- the processing device may determine the urgency level from the information received from the connected device.
- the request from the connected device may include information indicative of a condition of at least one component (or a group of components) of the connected device or a condition of at least one device (or a group of devices) monitored by the connected device.
- the processing device may determine the urgency level from the information received from the connected device and historical data associated with the connected device.
- database 154 may include historical data associated with a plurality of connected devices, such as past status updates; the processing device may use the historical data to predict an upcoming malfunction of one of the components of the connected device or of a device monitored by the connected device.
- the determined urgency level corresponds to the predicated upcoming malfunction.
- the processing device may determine a time period that corresponds with the associated urgency level of the on-site service for the connected device. For example, assuming the urgency level is a value on a scale of one to ten where “ten” is very urgent and “one” is not urgent, a length of time period may be inversely proportionate to the urgency level, e.g., when the urgency level is “three” the time period may be thirty days and when the urgency level is “nine” the time period may be two days. Thus, as urgency level increases the time period may decrease. Furthermore, the processing device may also determine the time period based on the urgency level and based on the type of the connected device.
- the type of the connected device may be associated with the manufacture of the connected device, the owner of the connected device, the category of the connected device, the location of the connected device, and the pending tasks of the connected device. For example, a connected device of a municipality may receive a higher priority than a connected device of an individual. In other words, two connected devices with a same urgency level may be assigned with two different time periods.
- the processing device may receive one or more updates associated with the urgency level from the connected device, and may change the time period based on the received updates.
- the updates from a connected device may indicate a change in status of at least one component of the connected device (or change in status of at least one device monitored by the connected device), which may require rescheduling the on-site service to an earlier date. Therefore, after receiving the updates, the processing device may determine again the urgency level and/or the time period. In one embodiment, the processing device may confirm that the scheduled date for the on-site service associated with the connected device is within the determined time period (e.g., within a second time period determined based on the received updates).
- the processing device schedules a task associated with the second request to be performed on a second scheduled date based on the associated urgency level.
- the second scheduled date may be before the first scheduled date, after the first scheduled date, or on the same date.
- the processing device may schedule the task associated with the second request to a field professional other than the field professional scheduled for the task associated with the first request.
- the processing device may assign the same field professional to provide on-site services associated with the first and second requests.
- a single field professional may be assigned where the first request is from a human customer and the second request is from a connected device.
- the processing device may assign the field professional a second task associated with a connected device in its proximity (e.g., within 10 minutes' drive).
- the processing device may determine accessibility of the connected device and schedule the task associated with the second request based on the accessibility of the connected device.
- the accessibility of the connected device may be for time periods in which the field professional can complete the on-site service to the connected device. For example, when the connected device is located outdoors, the task can be scheduled as early as 6:00 AM. But when the connected device is located within a company premises, the task can be scheduled only during the opening hours.
- the processing device receives confirmation that the task associated with the first request and the task associated with the second request have been completed.
- a confirmation in this context may refer to a message sent to the processing device after an on-site service is completed.
- the confirmation may be received from the at least one field professional assigned to the task associated with the first request and to the task associated with the second request.
- the confirmation may be received from the connected device and/or the customer.
- parts may refer to any type of component or hardware utilized in connection with an on-site service by a field professional.
- the delivered parts may include replacement parts; for example, technicians scheduled to repair electrical devices may require different components for repairing the devices, such as, cables, fuses, switches, circuits, and more.
- the delivered parts may include disposables; for example, a medical service provider scheduled to visit patients may use a variety of disposables parts, such as syringes, needles, sutures, staples, packaging, tubing, catheters, medical gloves, gowns, masks, adhesives, and more.
- the delivered parts may include tools; for example, some on-site services require the field professionals to use certain tools not part of the default inventory, such as a driller for reinforced concrete or a dialysis machine. Field professionals assigned to provide on-site services may start their day with an inventory of parts that is configured to enable completion of the tasks scheduled for that day. Yet, it is not uncommon that during the day some parts are unexpectedly needed.
- a field professional arrives at a location associated with a scheduled task and learns that a specific part not found in her inventory (e.g., a tool) is needed to complete the on-site service.
- a field professional may unexpectedly be required to use parts in one task (e.g., replacement parts or disposables) meaning that the field professional may not be able to compete a later task.
- FIG. 47 is a schematic illustration to explain a field professional's use of parts throughout a workday.
- FIG. 47 depicts a daily schedule 4700 that shows the times and durations of each of tasks A, B, C, and D assigned to a field professional by server 152 between 8:00 and 16:00 of a workday.
- the field professional may be a computer technician and each task in daily schedule 4700 includes an indication of the one or more parts expected to be used in each task.
- server 152 may predict which parts the field professional will need to use in each task based on details derivable from a request for the on-site service.
- server 152 may predict that task A would require replacing a motherboard; task B would require replacing a hard disk drive; task C would require replacing a Graphics Processing Unit (GPU); and task D would require replacing a different motherboard.
- a person skilled in the art would recognize that the above example is simplified, and an actual repair service may involve substantially more parts (e.g., more replacement parts, specific tools, etc.).
- an inventory of parts 4710 may be assigned to the field professional.
- inventory 4710 includes GPU 4712 , motherboards 4714 A, 4714 B, and 4716 , and hard disk drive 4718 A and 4718 B.
- server 152 may schedule a delivery of GPU 4720 to the field professional. The different alternatives for delivering GPU 4720 to the field professional are described below with reference to FIG. 48 .
- FIG. 48 is a schematic map that illustrates possible parts delivery points along a travel path of a field professional.
- field professional 4800 may be assigned to tasks A, B, C, D for providing technical service at locations A, B, C, and D.
- the route of field professional 4800 is schematically illustrated in a solid line and the different parts-delivery options are illustrated in dashed lines.
- server 152 may determine that field professional 4800 needs an additional part (e.g., a GPU) not currently in its assigned inventory to complete one of the scheduled tasks. For example, when field professional 4800 completed the on-site service associated task A, server 152 may receive in real-time an indication of the updated inventory of parts currently available to field professional 4800 .
- an additional part e.g., a GPU
- server 152 may determine that in completing task A field professional 4800 unexpectedly used a certain part (e.g., GPU 4712 ) needed to complete task C. Accordingly, server 152 may schedule a task for delivery of the at least one additional part (e.g., GPU 4720 ) to field professional 4800 .
- the at least one additional part can be delivered from two storage locations; namely, the first storage facility and the second storage facility.
- server 152 may determine a location for delivering at least one part to the field professional based on locations of scheduled tasks in a daily schedule of the field professional and/or based on a current location of field professional 4800 determined from a GPS receiver integrated with communication devices 180 A.
- the determined location may include a location between a current location of field professional 4800 and a location of the task where the part is needed.
- server 152 may determine that the part needed for task C may be delivered to location A (option 4802 ), to a point between location A and location B (option 4804 ), or to location B (option 4806 ).
- server 152 may instruct field professional 4800 to wait before departing to a next task when the at least one part is scheduled to be delivered to the field professional at the location associated with the current task. For example, with regards to option 4806 , server 152 may instruct field professional 4800 to wait at location B before departing to location C.
- server 152 may select which storage facility will provide the at least one additional part to field professional 4800 . The determination may be based on the current location of field professional 4800 , the traffic conditions (current and predicted), the parts inventory in each storage facility, and other scheduling costs associated with the part delivery. For example, server 152 may determine that the at least one additional part (e.g. GPU 4720 ) will be delivered to location C from the second storage facility (option 4808 ) based on traffic conditions. In one embodiment, server 152 may also identify another field professional has the at least one additional part (e.g. GPU 4720 ) currently available in his/her inventory of parts, and organize a meet-up between the two field professionals.
- the at least one additional part e.g. GPU 4720
- server 152 may also identify another field professional has the at least one additional part (e.g. GPU 4720 ) currently available in his/her inventory of parts, and organize a meet-up between the two field professionals.
- a field professional 4810 may receive a task of meeting with field professional 4800 at a point between location B and location C (option 4812 ).
- the task for delivering the at least one additional part to field professional 4800 may include instructing field professional 4800 to purchase the least one additional part (e.g. GPU 4720 ) at a specific store that may be located next to field professional 4800 (option 4814 ).
- FIG. 49A is a flowchart of an example method 4900 for scheduling parts delivery executed by a processing device of system 100 , according to embodiments of the present disclosure.
- a processing device of system 100 for scheduling parts delivery executed by a processing device of system 100 .
- a processing device may receive a set of requests for on-site services.
- the on-site services associated with at least some of the requests require parts.
- the term “parts” may refer to any type hardware being utilized during an on-site service by a field professional.
- the parts may include replacement parts, disposables, or tools.
- the processing device may schedule a set of tasks corresponding to the set of requests for a field professional. The scheduling of the tasks may be based on the skills of the field professional and the expected availability of the parts.
- the processing device may determine the expected availability of parts based on data associated with previously scheduled tasks and offer time slots for users for the on-site services based on the expected availability of the parts.
- the processing device may predict that the certain component may be out-of-stock by Tuesday. Accordingly, the processing device may offer a user requesting the service time slots on Wednesday.
- the processing device may determine that the certain tool is already scheduled to be used on Tuesday at a location far from the location associated with a current request. Accordingly, the processing device may offer a user requesting the service time slots on Wednesday.
- the processing device may determine a set of parts that the field professional is likely to require to complete the set of tasks.
- the processing device may determine which parts the field professional would need for completion of the set of tasks based on details of the requests for the on-site services.
- the processing device may determine information indicative of the types of parts required to complete the task from the requests for the on-site service. The information may include the type of task, the location of the task, the weather predicted at the time of the task, and more. For example, installing Internet connection may require different replacement parts when the location is a private property or an apartment house.
- the processing device may determine which parts the field professional would need for completion of the set of tasks based on historical data indicative of the previous parts used in tasks similar to the scheduled set of tasks. For example, a certain neighborhood may experience poor infrastructure and completing some services in that neighborhood requires certain parts.
- the processing device may determine the set of parts that the field professional is likely to require using a task-to-parts database.
- the task-to-parts database (e.g., part of database 154 ) may correlate different types of tasks with one or more parts.
- the data structure of records in the task-to-parts database may include a set of tuples. Some tuples may contain information related to tasks and any specific work related to performing each task, and some tuples may contain information related to any components or parts related to each specific work item. In this way, the data structure can be accessed to quickly identify the parts for each task to support identification of parts not currently on hand in a field professional's available inventory when on-site.
- the processing device may determine the set of parts that the field professional is likely to require using a customer database that may be stored locally by the customer or stored in database 154 .
- the processing device may access the customer database to determine if the customer has some parts that the field professional may need during the on-site service. For example, the processing device may determine that for a certain patient the field professional does not need to bring a dialysis machine because the patient has his own dialysis machine.
- the processing device may determine that the field professional needs an additional part not currently in the field professional's assigned inventory to complete the set of tasks.
- the field professional's assigned inventory or individual inventory refers to a group of parts readily available to a field professional while the field professional is traveling between different locations associated with different tasks.
- the processing device may receive in real time an indication of an inventory of parts currently available to the field professional.
- the inventory of parts may be updated after each task in a daily schedule of tasks is completed.
- the processing device may determine the individual inventory from updates from the field professional or from sensors (e.g., weight sensors, image sensors) that monitor the inventory of parts.
- the processing device may receive from the field professional, while the field professional is at a location associated with a current task, a request for a specific part needed for completion of the current task. Upon receiving the request, the processing device may schedule a task for delivery in the field of the requested part to the location associated with a current task to enable the field professional to complete the current task. For example, when the field professional is a medical professional, a nurse may determine that a certain tool (e.g., an inhalator) is needed during a check-up with a patient.
- a certain tool e.g., an inhalator
- the processing device may schedule a task for delivery in the field of the at least one additional part to the field professional.
- the processing device may schedule the delivery task to ensure timely arrival of the additional part at a location associated with the task determined to require the additional part to complete that task.
- the additional part may be delivered before or after the field professional arrives at the location associated with the task determined to require the additional to complete that task.
- the processing device may schedule the delivery task of the at least one additional part to arrive at a location along a route assigned to the field professional.
- the scheduling delivery of the at least one additional part may include booking or assigning an autonomous vehicle (e.g., a drone or an autonomous car) for delivering the at least one additional part.
- the autonomous vehicle may be part of a transportation service, such as UberTM, LyftTM and ViaTM.
- FIG. 49B depicts a related method 4950 for scheduling parts delivery used by a processing device of system 100 , according to embodiments of the present disclosure.
- a processing device of system 100 For purposes of illustration, in the following description reference is made to certain components of system 100 . It will be appreciated, however, that other implementations are possible and that other components may be utilized to implement the exemplary method. It will also be readily appreciated that the illustrated method can be altered to modify the order of steps, delete steps, or further include additional steps.
- a processing device may receive a set of requests for on-site services, wherein the on-site services of at least some of the requests require parts.
- the processing device may schedule a set of tasks corresponding to the set of requests for a field professional.
- a task associated with a certain request may be associated with a set of parts needed for completion of the set of tasks.
- the set of parts may include parts from a first type of parts and a second type of parts (e.g., replacement parts and tools).
- the field professional may be a technician and the set of parts may include communication hardware (e.g., cables, switches) and a concrete drilling tool (e.g., concrete demolition hammer).
- the system may cause a delivery of either the first type of parts, the second type of parts, or both.
- the field professional may be a nurse and the set of parts may include a disposable medical product (e.g., drugs, stoma bags) and a medical device (e.g., a dialysis machine).
- the processing device may provide data indicative of expected parts that the field professional would need for completion of the set of tasks.
- the data indicative of expected parts may include at least one list of parts; for example, a list of tools needed for completion of the set of tasks, a list of replacement parts needed for completion of the set of tasks, and a list of disposables needed for completion of the set of tasks.
- the processor may determine the data indicative of expected parts based on historical data about parts used in previous tasks similar to the scheduled set of tasks.
- the data indicative of expected parts may be associated with tasks for that day and may be provided before the field professional departs to the field.
- the processing device may receive from the field professional, while the field professional is at a location associated with a current task, a request for at least one additional part.
- the request may be indicative of a specific part needed for completion of the current task or a specific part needed for completion of a future task.
- the request may be initiated by the field professional or by an electronic device associated with the field professional (e.g., communication devices 180 A).
- the request may include an explicit identification of the at least one additional part or data indicative of the current status of the individual inventory of the field professional.
- the request may include data indicative of parts that were unexpectedly used in at least one earlier task.
- the processing device may determine that the at least one additional part is associated with a future task and it cannot be delivered in time to the field professional. Accordingly, the processing device may reassign that future task to another field professional having the at least one additional part. In some cases, even if a part may be delivered to the field professional before the future task, it may still be beneficial to reassign the future task to another field professional instead of scheduling the part delivery.
- the processing device may decide whether to schedule a delivery of the at least one additional part or reassign the future delivery based on real-time data, such as other field professionals current location and their pending tasks.
- the processing device may schedule a task for delivery in the field of the requested at least one additional part to the field professional.
- the at least one additional part can be delivered from a plurality of storage locations (e.g., the first and second storage facilities depicted by FIG. 48 ).
- the processing device may select one of the plurality of storage locations for providing the at least one additional part.
- the selection of the storage location for providing the at least one additional part may be based on a predicted demand for parts and/or real-time information about the current demand for said parts. For example, the first storage facility may be closer to a current location of the field professional and has eight pieces of the required parts, whereas the second storage facility has only five pieces. Nevertheless, the processing device may select the second storage facility because all the eight pieces from the first storage facility are predicted to be used tomorrow, and the next supply of the pieces to the first storage facility is scheduled for the next week.
- Programs based on the written description and disclosed methods are within the skill of an experienced developer.
- the various programs or program modules can be created using any of the techniques known to one skilled in the art or can be designed in connection with existing software.
- program sections or program modules can be designed in or by means of .Net Framework, .Net Compact Framework (and related languages, such as Visual Basic, C, etc.), Java, C++, Objective-C, HTML, HTML/AJAX combinations, XML, or HTML with included Java applets.
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Development Economics (AREA)
- Game Theory and Decision Science (AREA)
- Educational Administration (AREA)
- Data Mining & Analysis (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Medical Informatics (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Automation & Control Theory (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Telephonic Communication Services (AREA)
Abstract
Description
- This application claims the benefit of priority of U.S. Provisional Patent Application No. 62/785,423, filed on Dec. 27, 2018; and U.S. Provisional Patent Application No. 62/871,397, filed Jul. 8, 2019. All of the foregoing applications are incorporated herein by reference in their entirety.
- The present disclosure relates generally to the field of managing service organizations. More specifically, the present disclosure relates to systems, methods, and devices for providing services such as services provided by professionals or experts in the field.
- One aspect of process management involves matching available resources to the tasks to be performed by or within an organization. In the service providers industry, for example, the main resources are the service professionals (such as field technicians, help desk or customer service operators, insurance assessors, business consultants, etc.) and their available work hours. Other resources may include vehicles, tools and equipment, spare parts, office space (e.g., meeting rooms), etc. The service tasks are usually initiated by customer requests, and typically cannot be precisely predicted on the micro-level, as there is no way to know when a customer will call and request assistance.
- Service providers thus face the challenge of accurately managing the size, mix of skills, and regional allocation of their resources. Erring by allocating too few resources results in failing to meet customer expectations, risking losing customers, and sometimes requiring the service organization to pay contract-specified penalties. Erring by allocating too many resources results in spending excessive money on resources that are not fully utilized. Optimizing the schedule of tasks can increase productivity and revenue for the service provider.
- The disclosed embodiments are directed to providing new and improved ways for scheduling tasks to field professionals that overcome problems and inefficiencies in existing systems.
- Consistent with disclosed embodiments, systems, methods, and computer readable media enable scheduling tasks to field professionals based on real-time conditions. For example, consistent with one aspect a disclosed system includes a network interface and a processor connectable to the network interface. The processor determines real-time schedule information for a set of field professionals independent from any schedule update received from the field professionals via the network interface. The processor also determines, from the real-time schedule information associated with a first field professional, existence of a delay associated with one or more tasks assigned to the first field professional. The processor further determines a likelihood that the delay will interfere with the first field professional arriving to an identified location associated with an assigned task at a scheduled time, and determines from real-time schedule information associated with a second field professional whether the second field professional can arrive to the identified location associated with the task assigned to the first field professional at the scheduled time. Thereafter, the processor reassigns the task assigned to the first field professional based on the real-time schedule information associated with the first field professional and the real-time schedule information associated with the second field professional. The processor also provides to at least one of the first field professional and the second field professional, using the network interface, information reflecting the reassignment of the task.
- In another aspect, an additional system for scheduling tasks to field professionals based on real-time conditions is provided. The system includes a network interface and a processor connectable to the network interface. The processor is configured to: receive, from the network interface, progress information for a set of field professionals; determine a delay associated with one or more tasks assigned to a first field professional; determine a likelihood that the delay will interfere with the first field professional arriving to an identified location associated with an assigned task at a scheduled time; reassign the assigned task to a second field professional based on the determined likelihood that the delay will interfere with the first field professional arriving to the identified location associated with the assigned task at the scheduled time; and provide the second field professional, using the network interface, information reflecting the reassignment.
- Consistent with disclosed embodiments, systems, methods, and computer readable media enable scheduling tasks to field professionals. For example, consistent with one aspect a disclosed system includes a network interface and a processor connectable to the network interface. The processor receives a set of requests reflecting demand for on-site services, wherein the set of requests is associated with a number of task types. The processor also receives availability data indicative of an availability of a plurality of field professionals to perform on-site services and skills data indicative of capabilities of each of the plurality of field professionals with respect to the task types. The processor further obtains at least one desired scheduling weight for the number of task types, and generates a schedule for the plurality of field professionals based on the demand for on-site services, the availability data, and the skills data. In one embodiment, generating the schedule for the plurality of field professionals comprises including a first task in the schedule when the first task conforms with the at least one desired scheduling weight and excluding a second task from the schedule when the second task does not conform with the at least one desired scheduling weight.
- In another aspect, a method for scheduling tasks to field professionals is provided. The method includes: receiving a set of requests reflecting demand for on-site services, wherein the set of requests is associated with a number of task types; receiving availability data indicative of an availability of a plurality of field professionals to perform on-site services; receiving skills data indicative of capabilities of each of the plurality of field professionals with respect to the task types; obtaining at least one desired scheduling weight for the number of task types; generating a schedule for the plurality of field professionals based on the demand for on-site services, the availability data, and the skills data; and wherein generating the schedule for the plurality of field professionals comprises including a first task in the schedule when the first task conforms with the at least one desired scheduling weight and excluding a second task from the schedule when the second task does not conform with the at least one desired scheduling weight.
- Consistent with disclosed embodiments, systems, methods, and computer readable media enable using predicted demand to optimize task scheduling. For example, consistent with one aspect a disclosed system includes a memory configured to store historical data associated with past demand for field professionals, a network interface, and a processor connectable to the network interface. The processor is receives a set of requests reflecting a current demand for on-site services, predicts imminent demand for on-site services based on the historical data, generates a schedule for a set of field professionals based on the current demand for on-site services, and reserves in the schedule availability based on the predicted imminent demand for on-site services.
- In another aspect, an additional system for using predicted demand to optimize task scheduling is provided. The system includes a memory configured to store historical data associated with past demand for field professionals, a network interface, and a processor connectable to the network interface. The processor receives a set of requests for on-site service, wherein the set of requests are associated with a number of task types and each request is associated with a different location. The processor also uses the historical data to identify service zones in the geographical area associated with predicted demand for specific task types. The processor further determines, based on the requests, a set of daily schedules of tasks for a set of field professionals, and, for a certain daily schedule with a task associated with a location in proximity to an identified service zone, reserve capacity to account for predicted demand. Thereafter, the processor provides, using the network interface, directional instructions to a field professional assigned to the certain daily schedule to a location in proximity to a service zone.
- Consistent with disclosed embodiments, systems, methods, and computer readable media enable scheduling technical services to be completed in a single visit. For example, consistent with one aspect a method includes: storing in a database a plurality of records reflecting characteristics associated with completing a set of technical services, wherein information in each record is derived from historical experience of completing each of the technical services; receiving a request for a new technical service associated with a location; and assigning a field professional to perform the new service having determined from information in the database a likelihood that the field professional will complete the new technical service in a single on-site visit at the location.
- In another aspect, an additional system for scheduling technical services to be completed in a single visit is provided. The system includes a memory configured to store information including details of previously completed tasks, a network interface, and a processor connectable to the network interface. The processor receives a request for an on-site service at a selected location. The processor also identifies a set of attributes associated with the requested on-site service; and uses the stored information and the set of attributes to identify at least one requirement for completing the on-site service in a single visit. The processor further assigns a field professional to a task of providing the on-site service, wherein the assignment satisfies the identified at least one requirement. Thereafter, the processor may provide, using the network interface, information for directing the field professional to the selected location.
- Consistent with disclosed embodiments, systems, methods, and computer readable media enable identifying causes for unscheduled tasks. For example, consistent with one aspect a disclosed system includes a network interface, a memory, and a processor connectable to the network interface. The memory is configured to store details of previously received requests for services. The processor receives, from the network interface, a set of requests for services; and schedule a set of tasks based on scheduling constraints, wherein each task is expected to be completed within a period of time from when a corresponding request was received. The processor also determines a common cause why at least two requests were not scheduled with tasks expected to be completed within the period of time, wherein the common cause is associated with at least one of the scheduling constraints; and enable reducing the number of future unscheduled tasks based on the determination.
- In another aspect, an additional system for identifying causes for unscheduled tasks is provided. The system includes system that may include a network interface, a memory, and a processor connectable to the network interface. The memory is configured to store details of previously received requests for services. The processor may be configured to access the memory and to receive, from the network interface, a set of requests for services; schedule a set of tasks based on scheduling constraints. If the number of requests that were not scheduled with tasks expected to be completed within the period of time is greater than a predetermined threshold, the system may initiate an action, such as issuing a warning or automatically changing a scheduling constraint.
- Consistent with disclosed embodiments, systems, methods, and computer readable media enable task scheduling for location-based and location-agnostic tasks. For example, consistent with one aspect a disclosed system includes a memory, network interface, and a processor connectable to the network interface. The processor receives a set of first requests for on-site assistance from a first set of users and receives a set of second requests for remote assistance from a second set of users. After receiving the first and second sets of requests, the processor assigns a plurality of location-based tasks associated with first requests to one or more field professional. The processor may then receive real-time information associated with the one or more field professional including current location and determine based on the real-time information whether the one or more field professional can complete a location-agnostic task associated with a second request after completing a first location-based task and before starting a second location-based task. Subsequently, the processor assigns the location-agnostic task to the one or more field professional.
- In another aspect, an additional system for scheduling for location-based and location-agnostic tasks is provided. The system includes a memory, network interface, and a processor connectable to the network interface. The processor receives an urgency level of a location-agnostic task associated with a second request and to obtain information identifying one or more field professional as more suitable to provide the location-agnostic task than one or more second field professional. The information may consist of skills data, past experience, and ranking. After assigning the location-agnostic task, the processor instructs the one or more field professional to initiate the location-agnostic task before or after driving to a location associated with a location-based task.
- Consistent with disclosed embodiments, systems, methods, and computer readable media enable a multi-route process for appointment booking. For example, consistent with one aspect a disclosed system includes a memory, network interface, and a processor connectable to the network interface. The processor receives a request to book a new appointment for a service. After receiving the request, the processor outputs a first booking response for the request, wherein the first booking response is determined using a multi-route model. The multi-route model is configured to determine booking responses in different ways. The processor verifies the first booking response based on a second booking response determined using the multi-route model.
- In another aspect, an additional system for enabling a multi-route process for appointment booking is provided. The system includes a memory, network interface, and a processor connectable to the network interface. The processor receives a user refusal of a first offered appointment time. The processor then contacts the user and offers a first alternative appointment time determined by a first scheduling model, or a second alternative appointment time determined by a second schedule model. The processor may also be configured to attempt to change an existing assignment of a field professional to meet the first proposed time.
- Consistent with disclosed embodiments, systems, methods, and computer readable media enable the scheduling of tasks to field professionals. For example, consistent with one aspect a disclosed method includes receiving a request to book a new appointment for a service, the service being expected to be completed within a time period; identifying a first possible time slot and a subsequent second possible time slot for the new appointment within the time period; calculating a first scheduling cost associated with the first possible time slot and a second scheduling cost associated with the second possible time slot and enabling selection of the second possible time slot when it is determined that both the first scheduling cost and the second scheduling cost are below a scheduling cost threshold; and outputting a no-available-time-slot notification when is determined that both the first scheduling cost and the second scheduling cost are above the scheduling cost threshold.
- In another aspect, a system for scheduling of tasks to field professionals is provided. The system includes a network interface, a memory, and a processor connectable to the network interface. The processor estimates driving durations necessary to conduct an appointment. The processor also offers a proposed time associated with a second possible time slot later than the first possible time slot if the second driving duration is smaller than the first driving duration. The processor may also be configured to output a no-available-time-slot notification if the first driving duration and the second driving duration are greater than a driving duration threshold.
- Consistent with disclosed embodiments, systems, methods, and computer readable media enable the scheduling of tasks for field professionals based on users' profile. For example, consistent with one aspect a disclosed system includes a network interface, a memory, and a processor connectable to the network interface. The processor receives a request from a user for an on-site service. The processor also identifies a set of possible time slots for providing the on-site service based on a schedule of a set of field professionals. Additionally, the processor retrieves information indicative of an availability of the user to accept the on-site service. The processor also determines a subset of possible time slots for providing the on-site service based on the retrieved information indicative of an availability of the user. Further, the processor may propose a time for providing the on-site service based on a time slot selected form the subset of possible time slots.
- In another aspect, an additional system for scheduling of tasks for field professionals based on users' profile is provided. The system includes a network interface, a memory, and a processor connectable to the network interface. The processor receives from a user a request for a service. The processor also identifies a first possible time slot for providing the service associated with a first field professional and a second possible time slot later than the first possible time slot, wherein the second possible time slot is associated with a second field professional. The processor may also retrieve information indicative of the availability of the user to accept the service, Finally, the processor proposes a time associated with the second possible time slot later than the first possible time slot when the retrieved information suggests that the user will not be able to accept the service during the first time slot.
- Consistent with disclosed embodiments, systems, methods, and computer readable media enable the scheduling of appointments from the customer's location. For example, consistent with one aspect a disclosed system includes a network interface, a memory, and a processor connectable to the network interface. The processor receives a request from a user for an on-site service associated with a location. Information reflecting an assignment is transmitted to a field professional. While the field professional is at the location, the field professional may, using a mobile device for example, send an indication that an additional visit is required to complete the on-site service. After receiving the indication, a schedule of the field professional is accessed to identify an available time slot in the future. A proposed time for the additional visit associated with the identified time slot is then provided.
- In another aspect, a system for scheduling of additional appointments when a user declines a first time slot. The system includes a network interface, a memory, and a processor connectable to the network interface. The processor receives a request from a user for an on-site service associated with a location and identify a plurality of available time slots. If, after the plurality of available time slots are provided to the user, the user does not select one of the plurality of available time slots, additional information is retrieved indicative of an availability of the user. A subset of the plurality of time slots is determined based on the availability of the user. This subset is then provided to the user.
- Consistent with disclosed embodiments, systems, methods, and computer readable media enable assigning a field professional to perform additional service based on customer feedback. For example, consistent with one aspect a disclosed system includes a network interface, a memory, and a processor connectable to the network interface. The processor receives a request from a user for an on-site service associated with a location. At least one field professional is assigned to at least one task of providing the at least one on-site service at the location. After the service is performed, data is obtained associated with the service, including user feedback. If another request is received from the user for an additional service associated, the processor retrieves information including data associated with the earlier service from memory. A field professional is then assigned to perform the additional service based on the retrieved information.
- In another aspect, a system for assigning a field professional to perform additional service based on data associated with a prior service. The system includes a network interface, a memory, and a processor connectable to the network interface. The processor is configured to receive data associated with a service. The data may include recorded interactions between an employee and a user, feedback from a user after service is performed, metadata indicating service time associated with a field professional, social network posts by a user, and data from field professionals. The data may then be evaluated to determine a level of satisfaction.
- Consistent with disclosed embodiments, systems, methods, and computer readable media enabling updating a scheduling engine that schedules tasks to field professionals. For example, consistent with one aspect a disclosed system includes at least one memory configured to store data associated with an optimization engine, a network interface, and a processor. The processor periodically receives from a remote server data associated with a native scheduling engine. Then, the processor processes in a stateless manner the data received periodically from the remote server using the optimization engine to update a prediction model. Thereafter, the processor transmits information associated with the updated prediction model to the remote server for enabling improvement of the native scheduling engine.
- Consistent with disclosed embodiments, systems, methods, and computer readable media enabling scheduling tasks to field professionals using a remote optimization engine are disclosed. For example, consistent with one aspect a disclosed system includes at least one memory configured to store data associated with scheduled tasks, a network interface, and a processor. The processor receives a plurality of requests for on-site service from a plurality of users, wherein the requests are associated with a plurality of locations. The processor also schedules a set of tasks from the plurality of requests using a native scheduling engine. Then, the processor updates the native scheduling engine based on information received from a remote server, and uses the native scheduling engine on the previously scheduled set of tasks to identify a task scheduled in an unoptimized manner. Thereafter, the processor causes a schedule change associated with the identified task.
- Consistent with disclosed embodiments, systems, methods, and computer-readable media enable assigning tasks based on real-time conditions. For example, consistent with one aspect a disclosed system includes a network interface and a processor. The processor provides a field professional with information about a daily schedule of assigned tasks associated with a set of requests for on-site services. The processor also receives real-time information reflecting a likelihood the field professional will complete the daily schedule of assigned tasks. The processor may determine, from the real-time information, existence of an unplanned event likely to interfere with the field professional completing at least one task from the daily schedule. Thereafter, the processor also presents a plurality of optional tasks to the field professional based on the determination. Upon detecting a selection of one of the plurality of optional tasks, the processor assigns the field professional to the selected task and unassign the at least one task.
- Consistent with disclosed embodiments, systems, methods, and computer-readable media enable assigning tasks based on real-time conditions. For example, consistent with one aspect a disclosed system includes memory configured to store historical data associated with assignments of tasks for a plurality of field professionals when windows of opportunity are identified, a network interface, and a processor. The processor receives a set of requests for on-site service from a plurality of users, wherein each request is associated with a different location. The processor also receives real-time information about a progress of a field professional assigned to a set of tasks associated with a subset of requests. The processor may dynamically determine a window of opportunity to assign an additional task to the field professional and may identify a plurality of optional tasks that the field professional is determined to be able to complete during the window of opportunity. Thereafter, the processor automatically selects one of the optional tasks for assignment to the field professional based on the historical data; and assigns the field professional to the selected task.
- Consistent with disclosed embodiments, systems, methods, and computer readable media enabling scheduling services to customers and connected devices. For example, consistent with one aspect a disclosed system includes a processor connectable to a network interface. The processor receives a first request for an on-site service; the first request includes information identifying a location associated with a customer. The processor also schedules a task associated with the first request to be performed by a field professional on a first scheduled date. After scheduling the task associated with the first request, for example, the processor may receive a second request from a connected device for an on-site service. The second request may have an associated urgency level determined from information received from the connected device. The processor may further determine a time period that corresponds with the associated urgency level of the on-site service for the connected device and schedule a task associated with the second request to be performed by the field professional or another field profession on a second scheduled date based on the associated urgency level. The first scheduled date and the second scheduled date may be the same date or different dates. The processor may also receive confirmation that the task associated with the first request and the task associated with the second request have been completed.
- In another aspect, an additional system for scheduling services to customers and connected devices is provided. The system includes a network interface and a processor connectable to the network interface. The processor receives a first request for an on-site service; the first request includes information identifying a location associated with a customer. The processor schedules a task associated with the first request to be performed by a field professional on a first scheduled date. The processor may also receive a second request from a connected device for an on-site service at a second location in proximity to the first location. The on-site service for the connected device may have an associated urgency level. The processor may determine a time period that corresponds with the associated urgency level of the on-site service for the connected device, and determine, based on the time period, that the on-site service for the connected device can be scheduled at the certain date. Thereafter, the processor assigns a single field professional to provide the on-site services in the first location and in the second location at the certain date.
- Consistent with disclosed embodiments, systems, methods, and computer readable media enabling scheduling parts delivery. For example, consistent with one aspect a disclosed system includes a network interface and a processor connectable to the network interface. The processor receives a set of requests for on-site services, wherein the on-site services of at least some of the requests require parts, for example replacement parts. The processor also assigns a set of tasks corresponding with the set of requests to a field professional. In addition, the processor determines a set of parts the field professional is likely to require to complete the assigned set of tasks, and determines that the field professional needs an additional part not currently in the field professional's inventory to complete the set of tasks. Thereafter, the processor may schedule a task for delivery in the field of the at least one additional part to the field professional.
- In another aspect, an additional system for scheduling parts delivery is provided. The system includes a network interface and a processor connectable to the network interface. The processor receives a set of requests for on-site services, wherein the on-site services of at least some of the requests require parts. The processor further schedules a set of tasks corresponding with the set of requests to a field professional. The processor may also provide data indicative of expected parts that the field professional would need for completion of the set of tasks. In addition, the processor receives from the field professional, while the field professional is at a location associated with a current task, a request for at least one additional part. Thereafter, the processor schedules a task for delivery in the field of the requested at least one additional part to the field professional.
- Consistent with other disclosed embodiments, non-transitory computer-readable storage media may store program instructions, which are executed by at least one processing device and perform any of the methods described herein.
- The foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the claims.
- The accompanying drawings, which are incorporated in and constitute a part of this disclosure, illustrate various disclosed embodiments. In the drawings:
-
FIG. 1 is a schematic illustration of an example system for scheduling tasks to field professionals, consistent with the present disclosure; -
FIG. 2 is a block diagram that illustrates some of the components the system ofFIG. 1 , consistent with the present disclosure; -
FIG. 3A andFIG. 3B are schematic maps used to illustrate an example of the daily schedule of tasks of two field professionals, consistent with the present disclosure; -
FIG. 4 is a schematic illustration of an example system, consistent with the present disclosure; -
FIG. 5 is a schematic illustration of an example logical architectural model for implementing embodiments of the present disclosure; -
FIG. 6A is a flowchart of an example process for task scheduling based on real-time conditions, consistent with the present disclosure; -
FIG. 6B is a diagram of example planned and actual schedules of field professionals, consistent with the present disclosure; -
FIG. 7A is a flowchart of an example process for scheduling tasks to field professionals according to desired scheduling weights, consistent with the present disclosure; -
FIG. 7B is a flowchart of another example process for scheduling tasks to field professionals according to desired scheduling weights, consistent with the present disclosure; -
FIG. 7C is a diagram of an example schedule for several field professionals, consistent with the present disclosure; -
FIG. 8A is a flowchart of an example process for scheduling tasks to field professionals based on predicted demand, consistent with the present disclosure; -
FIG. 8B is a diagram of a timeline reflecting an example schedule associated with tasks, consistent with the present disclosure; -
FIG. 8C is a diagram of a map showing example service zones associated with on-site services, consistent with the present disclosure; -
FIG. 8D andFIG. 8E are flowcharts of another example processes for scheduling tasks to field professionals based on predicted demand, consistent with the present disclosure; -
FIG. 9A is a flowchart of an example process for scheduling technical services to field professionals to be completed in a single visit, consistent with the present disclosure; -
FIG. 9B is a flowchart of another example process for scheduling technical services to field professionals to be completed in a single visit, consistent with the present disclosure; -
FIG. 10 is a diagram that illustrates a scheduling engine that receives requests, applies constraints, and schedules tasks, consistent with the present disclosure; -
FIG. 11 is a flowchart showing an exemplary process for reducing the number of future unscheduled tasks, consistent with the present disclosure; -
FIG. 12 is a flowchart showing a process for scheduling tasks and initiating an action based on the number of unscheduled tasks, consistent with the present disclosure; -
FIG. 13 is a flowchart showing an exemplary process for assigning location-agnostic task to one or more field professionals, consistent with the present disclosure; -
FIG. 14 is a diagram showing a planned field professional schedule modified by observed traffic delays, consistent with the present disclosure; -
FIG. 15A andFIG. 15B are diagrams showing assignment of a location-agnostic task and reassignment of an additional location-based task between field professionals, consistent with the present disclosure; -
FIG. 16 is a flowchart showing an exemplary process for a multi-route model for appointment booking, consistent with the present disclosure; -
FIG. 17A andFIG. 17B show an example flowchart for determining booking responses and initiating actions in response, consistent with the present disclosure; -
FIG. 18 is a flowchart showing another exemplary process for a multi-route model for appointment booking, consistent with the present disclosure; -
FIG. 19A andFIG. 19B show an example flowchart for offering appointment times to a user, consistent with the present disclosure; -
FIG. 20 is a flowchart showing an exemplary process for offering times for service based on system considerations, consistent with the present disclosure; -
FIG. 21 is a flowchart showing an exemplary process for offering times for service based on driving duration, consistent with the present disclosure; -
FIG. 22 is a flowchart showing an exemplary process for providing a user a proposed time associated with the second possible time slot or a first possible time slot, consistent with the present disclosure; -
FIG. 23 is a flowchart showing an exemplary process for offering times for service based on user availability, consistent with the present disclosure; -
FIG. 24 is a flowchart for checking user availability information and updating a proposed time, consistent with the present disclosure; -
FIG. 25 is a flowchart showing an exemplary process for providing a user alternative possible time slot, consistent with the present disclosure; -
FIG. 26 is a flowchart showing an exemplary process for offering times for an additional visit to a location, consistent with the present disclosure; -
FIG. 27 is a flowchart for providing proposed time slots based on information indicative of an availability of a user, consistent with the present disclosure; -
FIG. 28 is a flowchart showing an exemplary process for assigning a field professional to perform additional services after performing at least one on-site service, consistent with the present disclosure; -
FIG. 29 is a diagram showing types of data associated with a service provided by a field professional, consistent with the present disclosure; -
FIG. 30 is a flowchart for assigning a field professional based on satisfaction level and availability of the user, consistent with the present disclosure; -
FIG. 31 is a flowchart for suggesting and accepting a suggestion for a field professional, consistent with the present disclosure; -
FIG. 32 is a bar graph showing a typical task duration distribution, consistent with the present disclosure; -
FIG. 33 is a schematic illustration of a scheduling system that includes a central server and local servers, consistent with the present disclosure; -
FIG. 34 is a message flow diagram showing example messages exchanged between different elements of the scheduling system ofFIG. 33 ; -
FIG. 35 is a diagram showing two schedules of field professionals scheduled using different versions of scheduling engines, consistent with the present disclosure. -
FIG. 36 is a flowchart showing an exemplary process for changing the schedule, consistent with the present disclosure; -
FIG. 37 is a flowchart showing an exemplary process for updating a native scheduling engine of a local server, consistent with the present disclosure; -
FIG. 38 is a flowchart showing an exemplary process for scheduling tasks using a data from a central server, consistent with the present disclosure; -
FIG. 39A andFIG. 39B are diagrams showing of planned timelines of a field professional and actual timelines of the field professional, consistent with the present disclosure; -
FIG. 40A andFIG. 40B are schematic diagram showing two graphical user interfaces for a field professional, consistent with the present disclosure; -
FIG. 41 is a is a block chart illustrating an exemplary embodiment of a memory containing software modules, consistent with the present disclosure; -
FIG. 42 is a flowchart showing a first exemplary process for assigning tasks based on real-time information, consistent with the present disclosure; -
FIG. 43 is a flowchart showing a second exemplary process for assigning tasks based on real-time information, consistent with the present disclosure; -
FIG. 44 is a timeline showing an exemplary process for scheduling on-site services to connected devices, consistent with the present disclosure; -
FIG. 45 is a schematic map showing locations of scheduled on-site services for connected devices and locations of scheduled on-site services for human customers, consistent with the present disclosure; -
FIG. 46 is a flowchart showing an exemplary process for scheduling on-site services for connected devices and human customers, consistent with the present disclosure; -
FIG. 47 is a diagram showing a field professional's usage of parts throughout a workday, consistent with the present disclosure; -
FIG. 48 is a schematic map showing possible parts delivery points along a travel path of a field professional, consistent with the present disclosure; -
FIG. 49A is a flowchart showing an exemplary process for scheduling parts delivery, consistent with a disclosed embodiment; and -
FIG. 49B is a flowchart showing another exemplary process for scheduling parts delivery, consistent with a disclosed embodiment. - The following detailed description refers to the accompanying drawings.
- Wherever possible, the same reference numbers are used in the drawings and the following description to refer to the same or similar parts. While several illustrative embodiments are described herein, modifications, adaptations and other implementations are possible. For example, substitutions, additions, or modifications may be made to the components illustrated in the drawings, and the illustrative methods described herein may be modified by substituting, reordering, removing, or adding steps to the disclosed methods. Accordingly, the following detailed description is not limited to the disclosed embodiments and examples. Instead, the proper scope is defined by the appended claims.
- The present disclosure is directed to systems and methods for distributing resources in the field, including professionals, engineers, agents, and the like. The term “field professional” refers, for example, to a trained and/or qualified individual who provides services (often, expert) at a location or worksite. For example, in the home utilities industry, field professionals may be certified technicians who are trained to install, replace, or repair electrical equipment. In the telecommunications and cable industry, field professionals may be individuals who install cable or run telephone lines into residences or business establishments. In heavy engineering, mining, industrial and manufacturing, field professionals may be individuals who are dispatched for preventative maintenance and repair. In property maintenance, field professionals may be individuals who are dispatched for landscaping, irrigation, and home and office cleaning. In the HVAC industry, field professionals may be individuals who have the expertise and equipment to investigate units in residential, commercial and industrial environments. In healthcare, field professionals may be individuals who provide in-home care for elderly or disabled. In gas utilities, field professionals may be individuals who are dispatched to investigate and repair suspected leaks. As used herein, the term “and/or” refers to and encompasses any and all possible combinations of one or more of the associated listed items, as well as the lack of combinations when interpreted in the alternative (“or”).
- In embodiments consistent with this disclosure, systems and methods are used to schedule tasks to one or more field professionals. The term “scheduling tasks” is used herein to refer, for example, to a process for determining an order (e.g., chronological order) for a set of tasks a field professional performs. The tasks may be associated with requested services and require a field professional to travel to different locations. There are different types of scheduled tasks, for example, installing, replacing, or repairing objects, and each task type may require a different skill set. In addition, some scheduled tasks may be location-based tasks that require the field professional to visit a customer's location, for example, business or residence, and some tasks may be location-agnostic tasks that do not require the field professional to visit a customer's location. Location-agnostic tasks may be viewed as support sessions that a technician can perform remote from the customer place.
- A system consistent with the present disclosure is configured to manage a number of field professionals (e.g., more than 50 field professionals, more than 250 field professionals, more than 750 field professionals), and the term “scheduling tasks” may also include selecting which field professional will be assigned to each task. In some embodiments, scheduling tasks may include generating a daily schedule for each field professional.
- In one embodiment, the system may receive one or more requests for technical services. The term “request” includes, for example, an indication that a service (for example, a technical service) is needed. In one embodiment, the request may be initiated by a customer and received via a telephone call, an email, a support chat, a text message, or any form of communication. In another embodiment, the request may be initiated by device (for example, a connected device that can sense the need for a service and communicate that need to a service provider, sometimes referred to as an “IoT device”). The request may include information identifying the location where the technical service is requested (e.g., an address).
- Reference is now made to
FIG. 1 , which shows an example of asystem 100 for scheduling tasks to fieldprofessionals 110. In one embodiment,system 100 may represent a computer-based system that may include computer system components, desktop computers, workstations, tablets, handheld computing devices, memory devices, and/or internal network(s) connecting the components.System 100 may include or be connected to various network computing resources (e.g., servers, routers, switches, network connections, storage devices, etc.) necessary to support the services provided bysystem 100. In one embodiment,system 100 may include a customer service unit 120 configured to receive a set of requests for on-site technical assistance fromusers 130 and/or directly fromIoT devices 140. Customer service unit 120 may also schedule appointments withfield professionals 110 for providing the on-site service based on the availability of withfield professionals 110 and system constraints. In another embodiment,system 100 may include atask scheduling unit 150 for processing the received requests in view of the existing schedule of tasks and provide recommendations for appointments that enable greater optimization of scheduling all the field professionals as a whole. In another embodiment,system 100 may provideservice provider 160 statistics based on an analysis of information reflective of the service performances.Network 170 may facilitate communications and data exchange between different system components and the different entities associated withsystem 100. - Consistent with the present disclosure,
task scheduling unit 150 may include aserver 152 and adatabase 154. In one example configuration,server 152 may be a cloud server that processes request received directly (or indirectly) from one ormore users 130 and determine, based on the requests, a set of daily schedules of tasks forfield professionals 110. The term “cloud server” refers to a computer platform that provides services via a network, such as the Internet. In this example configuration,server 152 may use virtual machines that may not correspond to individual hardware. For example, computational and/or storage capabilities may be implemented by allocating appropriate portions of desirable computation/storage power from a scalable repository, such as a data center or a distributed computing environment. In one example,server 152 may implement the methods described herein using customized hard-wired logic, one or more Application Specific Integrated Circuits (ASICs) or Field Programmable Gate Arrays (FPGAs), firmware, and/or program logic which, in combination with the computer system,cause server 152 to be a special-purpose machine. - As depicted in
FIG. 1 ,server 152 may be coupled to one or more physical or virtual storage devices such asdatabase 154.Server 152 may accessdatabase 154 to determine, for example, the availability offield professionals 110 and to use historical data to predict factors that may affect the completion of tasks.Database 154 may utilize a volatile or non-volatile, magnetic, semiconductor, tape, optical, removable, non-removable, or other type of storage device or tangible or non-transitory computer-readable medium.Database 154 may also be part ofserver 152 or separate fromserver 152 as shown. Whendatabase 154 is not part ofserver 152, for example,server 152 may exchange data withdatabase 154 via a communication link as shown. -
Database 154 may include one or more memory devices that store data and instructions used to perform one or more features of the disclosed embodiments. In one embodiment,database 154 may include any suitable databases, ranging from small databases hosted on a workstation to large databases distributed among data centers.Database 154 may also include any combination of one or more databases controlled by memory controller devices (e.g., server(s), etc.) or software. For example,database 154 may include document management systems, Microsoft SQL databases, Share Point databases, Oracle™ databases, Sybase™ databases, other relational databases, or non-relational databases, such as mongoDB™ and others. - Consistent with the present disclosure,
task scheduling unit 150 may exchange data with a variety ofcommunication devices 180 associated with the different entities associated withsystem 100. The term “communication device” is intended to include all possible types of devices capable of exchanging data usingcommunications network 170. In some examples, the communication device may include a smartphone, a tablet, a mobile station, a personal digital assistant, a desktop, a laptop, an IoT device (e.g., IoT device 140), a dedicated terminal, and any other device that enables data communication. In one embodiment,task scheduling unit 150 may provide to a fieldprofessional communication device 180A information reflecting the assignment of tasks and receive progress information derived at least partially from a location circuit ofcommunication device 180A. In another embodiment,task scheduling unit 150 may present to a customerservice communication device 1808 possible time slots for scheduling new technical services and receive a selection of appointments. In another embodiment,task scheduling unit 150 may transmit to auser communication device 180C updates about an oncoming technical service and receive feedback about previously completed tasks. In another embodiment,task scheduling unit 150 may present a serviceprovider communication device 180D a recommendation for reducing the number of future unscheduled tasks and receive a desired scheduling weight for different task types. - Consistent with the present disclosure,
communications network 170 may be any type of network (including infrastructure) that supports communications, exchanges information, and/or facilitates the exchange of information between the components ofsystem 100. For example,communications network 170 may include or be part of the Internet, a Local Area Network, wireless network (e.g., a Wi-Fi/302.11 network), or other suitable connections. In other embodiments, one or more components ofsystem 100 may communicate directly through dedicated communication links, such as, for example, a telephone network, an extranet, an intranet, the Internet, satellite communications, off-line communications, wireless communications, transponder communications, a local area network (LAN), a wide area network (WAN), a virtual private network (VPN), and so forth. - The components and arrangements shown in
FIG. 1 are not intended to limit the disclosed embodiments, as the system components used to implement the disclosed processes and features may vary. In one embodiment,task scheduling unit 150 may include a set ofservers 152, with eachserver 152 hosting a certain type of service. For example, a first server may host a native scheduling engine for scheduling, and a second server may compare in a stateless manner the data associated with the scheduled tasks using an optimization engine to detect if the native scheduling engine scheduled tasks in an unoptimized manner. -
FIG. 2 is a block diagram of example configurations ofserver 152 andcommunication device 180. In one embodiment, bothserver 152 andcommunication device 180 includes a bus 200 (or other communication mechanism) that interconnects subsystems and components for transferring information withinserver 152 and/orcommunication device 180. For example,bus 200 may interconnect aprocessing device 202, amemory interface 204, anetwork interface 206, and aperipherals interface 208 connected to I/O system 210. -
Processing device 202, shown inFIG. 2 , may include at least one processor configured to execute computer programs, applications, methods, processes, or other software to perform embodiments described in the present disclosure. For example, the processing device may include one or more integrated circuits, microchips, microcontrollers, microprocessors, all or part of a central processing unit (CPU), graphics processing unit (GPU), digital signal processor (DSP), field programmable gate array (FPGA), or other circuits suitable for executing instructions or performing logic operations. The processing device may include at least one processor configured to perform functions of the disclosed methods such as a microprocessor manufactured by Intel™. The processing device may include a single core or multiple core processors executing parallel processes simultaneously. In one example, the processing device may be a single core processor configured with virtual processing technologies. The processing device may implement virtual machine technologies or other technologies to provide the ability to execute, control, run, manipulate, store, etc., multiple software processes, applications, programs, etc. In another example, the processing device may include a multiple-core processor arrangement (e.g., dual, quad core, etc.) configured to provide parallel processing functionalities to allow a device associated with the processing device to execute multiple processes simultaneously. It is appreciated that other types of processor arrangements could be implemented to provide the capabilities disclosed herein. - In some embodiments,
processing device 202 may usememory interface 204 to access data and a software product stored on a memory device or a non-transitory computer-readable medium. For example,server 152 may usememory interface 204 to accessdatabase 154. As used herein, a non-transitory computer-readable storage medium refers to any type of physical memory on which information or data readable by at least one processor can be stored. Examples include random access memory (RAM), read-only memory (ROM), volatile memory, nonvolatile memory, hard drives, CD ROMs, DVDs, flash drives, disks, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM or any other flash memory, NVRAM, a cache, a register, any other memory chip or cartridge, and networked versions of the same. The terms “memory” and “computer-readable storage medium” may refer to multiple structures, such as a plurality of memories or computer-readable storage mediums located withincommunication device 180,server 152, or at a remote location. Additionally, one or more computer-readable storage mediums can be utilized in implementing a computer-implemented method. The term “computer-readable storage medium” should be understood to include tangible items and exclude carrier waves and transient signals. - Both
communication device 180 andserver 152 may includenetwork interface 206 coupled tobus 200.Network interface 206 may provide a two-way data communication to a network, such asnetwork 170. InFIG. 2 , the communication betweencommunication device 180 andserver 152 is represented by a dashed arrow. In one embodiment,network interface 206 may include an integrated services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line. As another example,network interface 206 may include a local area network (LAN) card to provide a data communication connection to a compatible LAN. In another embodiment,network interface 206 may include an Ethernet port connected to radio frequency receivers and transmitters and/or optical (e.g., infrared) receivers and transmitters. The specific design and implementation ofnetwork interface 206 depends on the communications network(s) over whichcommunication device 180 andserver 152 are intended to operate. For example, in some embodiments,communication device 180 may includenetwork interface 206 designed to operate over a GSM network, a GPRS network, an EDGE network, a Wi-Fi or WiMax network, and a Bluetooth® network. In any such implementation,network interface 206 may be configured to send and receive electrical, electromagnetic or optical signals that carry digital data streams representing various types of information. - Both
communication device 180 andserver 152 may also include peripherals interface 208 coupled tobus 200. Peripherals interface 208 be connected to sensors, devices, and subsystems to facilitate multiple functionalities. In one embodiment, peripherals interface 208 may be connected to I/O system 210 configured to receive signals or input from devices and providing signals or output to one or more devices that allow data to be received and/or transmitted bycommunication device 180 andserver 152. In one example, I/O system 210 may include atouch screen controller 212,audio controller 214, and/or other input controller(s) 216.Touch screen controller 212 may be coupled to atouch screen 218.Touch screen 218 andtouch screen controller 212 can, for example, detect contact, movement or break thereof using any of a plurality of touch sensitivity technologies, including but not limited to capacitive, resistive, infrared, and surface acoustic wave technologies as well as other proximity sensor arrays or other elements for determining one or more points of contact with thetouch screen 218.Touch screen 218 can also, for example, be used to implement virtual or soft buttons and/or a keyboard. While atouch screen 218 is shown inFIG. 2 , I/O system 210 may include a display screen (e.g., CRT or LCD) in place oftouch screen 218.Audio controller 214 may be coupled to amicrophone 220 and aspeaker 222 to facilitate voice-enabled functions, such as voice recognition, voice replication, digital recording, and telephony functions. The other input controller(s) 216 may be coupled to other input/control devices 224, such as one or more buttons, rocker switches, thumbwheel, infrared port, USB port, and/or a pointer device such as a stylus. - With regards to
communication device 180, peripherals interface 208 may also be connected to animage sensor 226 for capturing image data. The term “image sensor” refers to a device capable of detecting and converting optical signals in the near-infrared, infrared, visible, and ultraviolet spectrums into electrical signals. The electrical signals may be used to form an image or a video stream (i.e., image data) based on the detected signal. The term “image data” includes any form of data retrieved from optical signals in the near-infrared, infrared, visible, and ultraviolet spectrums. Examples of image sensors may include semiconductor charge-coupled devices (CCD), active pixel sensors in complementary metal-oxide-semiconductor (CMOS), or N-type metal-oxide-semiconductor (NMOS, Live MOS). In some cases,image sensor 226 may be part of a camera included incommunication device 180. According to some embodiments, peripherals interface 208 may also be connected to amotion sensor 228, alight sensor 230, and aproximity sensor 232 to facilitate orientation, lighting, and proximity functions. Other sensors (not shown) can also be connected to theperipherals interface 208, such as a temperature sensor, a biometric sensor, or other sensing devices to facilitate related functionalities. In addition, a GPS receiver can also be integrated with, or connected to,communication device 180. For example, a GPS receiver can be built into mobile telephones, such as smartphone devices. GPS software allows mobile telephones to use an internal or external GPS receiver (e.g., connecting via a serial port or Bluetooth). - Consistent with the present disclosure,
communication device 180 may usememory interface 204 to accessmemory device 234.Memory device 234 may include high-speed random-access memory and/or non-volatile memory such as one or more magnetic disk storage devices, one or more optical storage devices, and/or flash memory (e.g., NAND, NOR).Memory device 234 may store anoperating system 236, such as DARWIN, RTXC, LINUX, iOS, UNIX, OSX, WINDOWS, or an embedded operating system such as VXWorkS. Theoperating system 236 can include instructions for handling basic system services and for performing hardware-dependent tasks. In some implementations, theoperating system 236 can be a kernel (e.g., UNIX kernel). -
Memory device 234 may also storecommunication instructions 238 to facilitate communicating with one or more additional devices, one or more computers and/or one or more servers.Memory device 234 can include graphicaluser interface instructions 240 to facilitate graphic user interface processing;sensor processing instructions 242 to facilitate sensor-related processing and functions;phone instructions 244 to facilitate phone-related processes and functions;electronic messaging instructions 246 to facilitate electronic-messaging related processes and functions; web browsing instructions 248 to facilitate web browsing-related processes and functions;media processing instructions 250 to facilitate media processing-related processes and functions; GPS/navigation instructions 252 to facilitate GPS and navigation-related processes and instructions; capturinginstructions 254 to facilitate processes and functions related toimage sensor 226; and/orother software instructions 258 to facilitate other processes and functions.Memory device 234 may also include applicationspecific instructions 260 to facilitate a process for providing real-time information about a progress of a field professional assigned to a number of tasks associated with a subset of requests. - Each of the above identified instructions and applications may correspond to a set of instructions for performing one or more functions described above. These instructions need not be implemented as separate software programs, procedures, or modules.
Memory device 234 may include additional instructions or fewer instructions. Furthermore, various functions ofcommunication device 180 may be implemented in hardware and/or in software, including in one or more signal processing and/or application specific integrated circuits. For example,communication device 180 may execute an image processing algorithm to identify objects in a received image. In addition, the components and arrangements shown inFIG. 2 are not intended to limit the disclosed embodiments. As will be appreciated by a person skilled in the art having the benefit of this disclosure, numerous variations and/or modifications may be made to the depicted configuration ofserver 152. For example, not all components may be essential for the operation ofserver 152 in all cases. Any component may be located in any appropriate part ofserver 152, and the components may be rearranged into a variety of configurations while providing the functionality of the disclosed embodiments. For example, some servers may not include some of the elements shown in I/O system 210. -
FIGS. 3A and 3B depict two schematic maps illustrating the planned daily schedule of two field professionals and the updated daily schedule of the two field professionals. As shown inFIG. 3A , the first field professional was assigned to tasks for providing technical service at locations A, B, C, D; and the second field professional was assigned to tasks for providing technical service at locations E, F, G, H. The planned route of the first field professional is illustrated in a dashed line and the planned route of the second field professional is illustrated in a solid line. Assuming that the first field professional was scheduled to be at location “A” at 10:36 and at location “B” at 11:39; and the second field professional was scheduled to be at location “E” at 10:15 and at location “F” at 11:09. In the illustrated example,server 152 received at 9:15, fromnetwork interface 206, real-time information for the first and second field professionals. In one embodiment, the real-time information may include current location information derived at least partially from location circuits of field professionals'communication devices 180A. For example, the real-time information may indicate that first field professional is stuck on the road to location “A.” In another embodiment, the real-time information may include task status updates transmitted from field professionals'communication devices 180A. For example, the real-time information may indicate that the second field professional had finished the assignment earlier than the estimated time for the completion of the task associated with location “E.” Based on the real-time progress information, and as shown inFIG. 3B ,server 152 may reassign the first field professional to a task associated location “F,” and reassign the second field professional to a task associated location “A.” Thus, the updated schedule of first field professional includes tasks associated with locations F, B, C, and D and the updated schedule of second field professional includes tasks associated with locations E, A, G, H. - Consistent with the present disclosure,
server 152 may determine from real-time information a delay associated with one or more tasks assigned to a first field professional, and that there is a likelihood that the delay will interfere with the first field professional arriving at an identified location associated with an assigned task at a scheduled time. For example, at 9:15,server 152 may determine that the first field professional cannot make it to location “A” before 9:40. Therefore,server 152 may reassign the assigned task to a second field professional based on the real-time information and the determined likelihood that the delay will interfere with the first field professional arriving at location “A” at 10:36.Server 152 may provide the second field professional, usingnetwork interface 206, information reflecting the assignment of the task associated with location “A.” In one embodiment, the information reflecting the assignment of the first task includes directional instructions to location “A” (e.g., a location, an address, a driving route). In another embodiment, the information reflecting the assignment of the first task includes details about a customer associated location “A” (e.g., a name, a phone number). In another embodiment, the information reflecting the assignment of the first task includes a description of the first task (e.g., tools, spare parts, existing infrastructure). -
FIG. 4 provides a high-level illustration ofsystem 100, according to embodiments of the disclosure. It illustrates the integrated access, management and analysis to service operations data within one organization, and the interaction with other organizations. Also shown is the interaction with other corporate Management Information Systems (MIS). The figure showsserver 152, using database 154 (which may be a set of synchronized databases) to support a client software operated by users concerned with some combination of the basic service management tasks.System 100 may include ananalysis module 441, aforecasting module 442, aplanning module 443, ascheduling module 444, and a database access module (not shown).Modules processing device 202. The function of the modules is described in detail below. - Consistent with the present disclosure,
server 152 may extract information, and convey management decisions, to other units, including:human resources 431 for interacting with information about available staff, their calendars (i.e., vacation, training, overtime, etc.) and their mix of skills (which may be affected by changes in training plans);finance 432 for examining, and reporting, the implications of decisions such as authorizing overtime or subcontracting some work; andcustomer relationship management 433 for interacting with past and current data of detailed and aggregated customer demands.FIG. 4 also shows how two or more organizations using the same system may make their operations and cooperation much more effective by automatically transmitting relevant information between their servers. One example is outsourcing, in which a planning decision in organization A (marked as 410) to outsource work to organization B (marked as 420) may be conveyed to organization B, and appears there as a change in forecast demand, requiring re-iteration of the planning process. Such an arrangement may enable a large service organization to form customer-facing portals and subcontractor-facing portals to streamline and optimize its operations. This subcontractor-facing portal is also known as B2B (Business-to-Business) application, as well as “private marketplace” or “public marketplace” depending on their openness. - According to the present disclosure,
analysis module 441,forecasting module 442,planning module 443,scheduling module 444, database access module, anddatabase 154 may cooperate to perform multiple operations associated with the assignment of field professionals. For example,forecasting module 442 may include macro-level forecasting software, which analyzes past demand and actual service operations performance, together with expected future events (e.g., new product launch) to predict demands aggregated or separated along the different types of decisions that characterize customer demand and the decision inherent in answering a customer demand. While some of the data used comes fromanalysis module 441,forecasting module 442 may be used as a decision-making tool letting managers define their expectations (out of the different possible predictions and scenarios) and commit to the decision that planning should proceed in a manner consistent with these decisions. -
Planning module 443 may include macro-level planning software for analyzing demands at various aggregation levels and rough allocation of resources to meet these demands. This module supports the analysis of expected demands side-by-side with allocated resources, checking the impact of various resource-management decisions on the organization's capability to meet demands (including “what-if” analysis” and managing different alternative scenarios concurrently), and communicating the planning decisions so that they are used in further operations—scheduling, workforce management, training etc. -
Scheduling module 444 may include micro-level planning software for assigning specific values to the different characteristic of each task, including resource assignments, time scheduling and geographic routing.Analysis module 441 may include reporting and querying tool for data analysis and datamining at all levels, from most general to most specific, across any dimension. The analysis may support both human-initiated drill-down and ad-hoc querying and comparison operations, as well as intelligent software-directed data mining tools. This module may be concerned mostly with analysis of existing data, and not with any decision-making. - According to some embodiments,
server 152 may distinguish between three types of aggregated demands: group A: aggregated demands originating from a projected forecast; group B: aggregated demand originating from customers who present their demand in an aggregated way only, for example “I need 5000 hours of telephone installation in August”; and group C: individualized, itemized known demand that is aggregated into a group B demand, because a temporary concern is made only to a rough capacity assessment question, or to a rough resource allocation. At any given point of time and for a certain time duration, a manager ofservice provider 160 may be interested in the aggregated answers for the entire demand (A+B+C) for that time duration. Yet for the more immediate horizon, and for the part of group C individualized demand required in this time duration, the manager ofservice provider 160 may need to have the micro-level scheduling plan fromscheduling module 444. - The integrated nature of
system 100 enablesservice provider 160 to take the most appropriate path between the options described below, mixing and integrating between work flows, hierarchical levels, and hierarchies along any dimension (i.e., hierarchies of time scales, intra-organizational and inter-organizational structures, geographical regions, demand types, skill sets etc.). For example, in some embodiments,server 152 may use theforecasting module 442 to collect historical information as well as future-event information (e.g., new product launch) in order to generate and refine group A demands;use planning module 443 for macro-level planning on group A+B+C; runscheduling module 444 on itemized group C;run analysis module 441 on the schedule of itemized group C to obtain information. The obtained information may include: for a user-specified time period, what are the total number of service calls delivered in each of the geographic regions; for any given service professional, for a user-specified time period, what customers did he work for, how many hours for each one, and the total for that professional; for any given customer, for a user-specified time period, which field professionals worked for him, and the total work and costs; division of work time between actual on-site work, travel, region, service field professional's seniority or skills, and other general or specific data associated with a time of year, etc. (e.g., training, vacation, and absences). In addition,server 152 may use the information fromanalysis module 441 to modify and refineforecasting module 442 andplanning module 443 decisions. For instance, the average time duration of tasks. - In other embodiments,
server 152 may exploit the capabilities of supporting multiple hierarchies, aggregations, and discrepancy detection, to support the process of conciliating downward-flowing management decisions with upward-flowing information from the workforce as well as from existing and potential customers. In one example,server 152 may use forecasting module 442 (assisted by analysis module 441) to generate demand predictions on a detailed level (e.g., per each region and/or per each demand type) and propagate the sums upwards to present higher-level aggregations (also referred to herewith as “bottom-up” forecasting). In another example,server 152 may use forecasting module 442 (assisted by analysis module 441) to generate high-level aggregated demand predictions, combine them with management guidelines (e.g., ratios between demand types, training quotas, ratio of travel time to on-site time) and propagate these forecasts downwards (also referred to herewith as “top-down” forecasting). In another example,server 152 may useforecasting module 442 to detect and resolve discrepancies between high-level and low-level forecast numbers, and between divisions across different dimensions (e.g., size of demand isolated across regional, temporal, and demand-type dimensions). In another example,server 152 may useplanning module 443 to allocate resources on a detailed level (e.g., per each region and/or per each demand type) and propagate the sums upwards to present higher-level aggregations (also referred to herewith as “bottom-up” planning). In another example,server 152 may useplanning module 443 to generate higher-level aggregated resource allocations, combined with management guidelines (e.g., budget, overtime policies) and propagate these plans downwards (also referred to herewith as “top-down” planning). In another example,server 152 may useplanning module 443 to detect and resolve discrepancies between high-level and low-level resource allocation numbers, and between divisions across different dimensions (e.g., size of demand separated across regional, temporal and demand-type dimensions). - In other embodiments,
server 152 may have the capability to iteratively go back to decisions and commitments made in any prior step and change them. When such a change is made,system 100 may propagate the effects of the change across all the affected data, hierarchies, and decisions. When such a propagation results in a discrepancy, the problem may be automatically highlighted andservice provider 160 may be optionally presented with a list of possible decisions that may resolve the problem. - The following is one example illustrating this capability: using the
forecasting module 442, Jane, an organization's service manager, generates a top-level resource allocation plan for the coming quarter (e.g., Q4). David, a manager for region A, now needs to refine the details of Jane's top-level plan for the coming quarter. Jane has allocated for region A enough resources to satisfy the projected demands for that region. However, usingplanning module 443 to assess region-specific needs and forecasting, as reflected by forecastingmodule 442. David finds that there will not be enough resources in his region to cover an expected demand for a specific task type (e.g., not enough service engineers are qualified for network installation). Optionally,planning module 443 may suggest several possible resolutions, such as outsourcing, transferring resources from another region, and allowing more overtime. David chooses to resolve the discrepancy by transferring resources from another region. He contacts Joe, a manager of neighboring region B, to check whether Joe has a surplus of resources for network installation. If so, David and Joe need to check the extra costs and mileage involved in the additional travel (optionally this may be another feature of planning module 443), and record their agreement usingplanning module 443 so that Jane can see it in detail and in aggregation. If Joe cannot help David, and after David has tried some other solutions (e.g., outsourcing, adding overtime), David will need to ask Jane for additional resources to be allocated in the plan for region A. Jane then records the extra allocation, and David's planning module view shows that his region should be ready to meet the demands. This is an example of modifying an earlier message made in the same module (Planning), with automatic propagation which removes the discrepancy-report for region A, and optionally also updates information in the human resources, finance, and other systems. Mary, who is in charge of training in the human resources department, uses her own views ofanalysis module 441,forecasting module 442 andplanning module 443 to identify the problem in region A. If theanalysis module 441 andforecasting module 442 show that this problem is expected to persist, she modifies training plans and quotas to ensure that the skill distribution—at least in region A—would have a better fit to the demand distribution. This is an example of automatic propagation to systems outside of those described in the disclosure. In the meantime, region C's manager has solved that region's lack of resources by negotiating an outsourcing agreement with Alice, who owns a smaller local service business. Alice enters this as a demand in her own forecasts and usesplanning module 443 to make sure that she has enough resources to fulfill the expected demands, together with this new obligation. This is an example of supporting the coordination of planning and decision-making across organizational boundaries. - Time has passed and it is now Monday evening at the beginning of Q4. David (the manager of region A) has received a list of demands for service to be completed the next day. He uses
scheduling module 444 to optimize the dispatch—which service engineer will handle which demand or tasks at which time, according to various factors, including customer's service level agreement, customer location, service engineer's skills, and spare parts inventory.Scheduling module 444 automatically takes into account the rough allocations made inplanning module 443, including decisions such as “reserve engineers with network-installation skills, as many as possible for network-installation demands”; and “if possible, keep spare time for service professionals who are based near the boundary with region B, since the plan lets region B's manager handle expected demands by requesting assignment of region A resources.” After more time has passed, in the middle of Q4, it turned out that some of the predictions were not substantially accurate. Joe, the manager of region B, usesanalysis module 441 to determine why he experienced difficulties in scheduling day-to-day calls, and discovers that the distribution between the north part of his region and the south part has somewhat deviated from expectations, with the south region having large demands and necessitating too much travel in the north. Usingforecasting module 442, he updates the aggregate intra-regional demand expectations which automatically highlights a discrepancy inplanning module 443 versus the existing resource allocation. Joe can now resolve this discrepancy using his own resources, using outsourcing; or by usinganalysis module 441 to check whether any for the neighboring regions to his south has unexpected surplus resources, and then negotiate with that region's manager; or by addressing the problem to the manager for the whole organization. These interactions are supported by a shared access to the data, features, and views provided byanalysis module 441,forecasting module 442,planning module 443 andscheduling module 444. This illustrates the capability to propagate the effects of new data and new decisions across several different modules, planning horizons, and hierarchy structures, as well as preventing the repeated occurrence of micro-level problems (e.g., difficulty in servicing a specific request on a specific day) by feedback via analysis and forecasting into modified planning and allocation. - In other embodiments,
server 152 may have the capability to bring in simulation tools as a well-integrated part of the performance tracking process to predict problems and check possible solutions as soon as possible. Allocating enough resources to meet the expected demand may be not enough, even after taking account of various times not used for actual service—e.g., training, vacations, health problems—and for time spent in travel between tasks. To achieve more accurate predictions, a following simulation may be made, according to the present disclosure. A statistical demand characteristic obtained from historical data collected byscheduling module 444 and aggregated usinganalysis module 441. These characteristics will describe demand as divided along the different dimensions and their related hierarchies, e.g., region and type of demand.Forecasting module 442 may be used to project these characteristics into the future period of interest.Planning module 443 may be used to allocate resources matching the forecasted demands. A stochastic method may be used to generate a number of hypothetical samples of a typical day's demands, randomly drawn according to the statistical distributions generated in the previous step.Scheduling module 444 may be used to schedule each of these sets of demands, using the resources assigned by theplanning module 443.Analysis module 441 may be used to aggregate the detailed results obtained byscheduling module 444, and to check whether the resources indeed matched the demand under simulated fully detailed operation. A resource allocation utility atplanning module 443 may be used to modify resource allocation at the appropriate level (e.g., it may be revealed that the only need may be to change allocation between sub-divisions of one region). The simulation may be repeated if necessary, to reveal conditions that may create problems in the future. - In other embodiments,
server 152 may have the capability to facilitate the integration of decision processes and management levels, different users (or the same users in different steps of their work). To do so,server 152 may use different ways of analyzing, viewing, aggregating, or dis-aggregating (“drilling down”) data. For example,server 152 may have access to data with at least one field that includes work hours, tools, spare parts, overtime allotments. The source for each field may come from the forecasting (prediction of required resources), allocation (decisions on resources made available to operations), or actual data (for times prior to present). Optionally, there may be different subtypes of each source, as when there are several forecasts for August—one from the forecast made in January, one from the forecast made in April, etc., the system is set to display one or more sources for the same field, each with its own values, and optionally highlight discrepancies between the sources. In addition, some values may propagate from a previous stage, as when the expected work hours across the whole organization are derived by summing of the expected work hours as reported by each division manager. Other values are propagated from a later stage, as when an Operations Manager has set the work-hour budget for the whole organization, which needs to be divided between the regions. Both directions may—and often do—coexist, and the system may be set to display either of them, or both, and optionally highlight discrepancies between the directions. - In other embodiments,
server 152 may have the capability to support scenarios for decision-support and “what if” tools. A scenario comprises a set of data, which is inserted into the system (e.g., forecasts, staff size) and a set of decisions (e.g., extended overtime, outsourcing, constraining the allocation of some resources so that they may be used only—or preferentially—for demands of specific type or region). Each scenario may generate its own set of data, viewable and editable through the system. As the decision process evolves, some scenarios are modified, some are split to compare different “decision forks,” and some are deleted, until a preferred scenario remains and becomes the basis for an actual decision. - As mentioned above, the actions performed by the manager of
service provider 160 while using one view automatically propagated by the software across other views, hierarchy levels, and planning periods. They may also be propagated across organization boundaries, as when a planning-decision in organization A to outsource work to organization B is conveyed to organization B and appears there as a change in forecast demand, requiring re-iteration of the planning process. According to some embodiments, when propagating these actions, the system automatically monitors for discrepancies. The discrepancies may include: (1) Discrepancies between a forecast demand and allocated resources. (2) Discrepancies between different sources of the same information (e.g., forward-looking simulation vs. extrapolation of data using statistical trends analysis). (3) Discrepancies between different propagation directions, as when the planned resources are both dictated by higher management, propagating downwards, and also reported by regional management, propagating upwards. (4) Discrepancies between commitments made to customers and actual ability to deliver: For example, a customer may call with a problem and be told “someone will be with you tomorrow between 13:00 and 17:00,” because there appeared to be enough free resources during that time window, and without committing specific resources. Later there will be more calls are received and the software determines that there will be difficulty meeting this commitment, alerting the manager early enough to act, e.g., by diverting resources from another region. Another example for an even shorter planning-period: identifying the situation in which the service engineer is delayed in traffic or in an earlier task and will probably fail to arrive on time to the next task. - The system may provide alerts to draw the user's attention to discrepancies. Optionally, the alerts consist of color-coding of areas in the view (e.g., cells in a displayed table) according to the presence and severity of discrepancies. Optionally, the alerts may include presenting to the user a list of alerts, possibly ranked and color-coded by their severity. Optionally, the alerts may include messages transmitted to users defined as being in charge of reacting and/or resolving each type of alert. Messages may be transmitted by phone, cellular messaging, e-mail, fax, and instant messaging. In addition, the alerts may include of any combination of the above mechanisms, configurable according to the user's personal preferences, user type, alert type, and organizational procedures.
-
FIG. 5 is a conceptual illustration of a three-tierarchitectural model 500 for managing data retrieval within an information system is shown in accordance with embodiments of the present disclosure. The three-tierarchitectural model 500 includes apresentation layer 502, anapplication layer 504, and a data layer. Each of these layers (502, 504, and 506) may be software modules designed to interact with one another to provide a logical framework for managing retrieval of stored data for various other software modules in the information system. As a person skilled in the art would recognize, even though not explicitly stated when describing specific embodiments, any of the computer-implemented operations performed by these layers (502, 504, and 506) may also include interaction with one or more hardware modules in the information system. - Generally,
presentation layer 502 may be responsible for manipulating data for the performance of an action. Such an action may include, for example, rendering the data for display on a graphical user interface (GUI).Data layer 506 stores the data that is to be manipulated bypresentation layer 502.Application layer 504 may be an “intermediate” layer that serves as a communication liaison betweenpresentation layer 502 anddata layer 506. That is,presentation layer 502 may issue requests for retrieval of specified data stored indata layer 506 toapplication layer 504 rather than communicating directly withdata layer 506. In response to such a request,application layer 504 may retrieve the specified data fromdata layer 506 and provide a view of the retrieved data topresentation layer 502. The view presents the specified data topresentation layer 502 in a manner such thatpresentation layer 502 may manipulate the data to perform a specific task. For example,presentation layer 502 may display data presented through a view on a display element of a graphical user interface. Prior to retrieving the specified data,application layer 504 may apply one or more rules to the request in furtherance of managing retrieval of the data forpresentation layer 502. As described in more detail below, these rules relate to conditions that are designed to effectuate the transfer of data betweendata layer 506 andpresentation layer 502. - In one embodiment, each of these layers (502, 504, and 506) may reside on a single computing system. In another embodiment, at least one of these layers may reside on a computing system separate from the other two layers. For example,
presentation layer 502 may reside on a client computer system andapplication 504 anddata layer 506 may both reside on a server computer system. Even further, each layer may reside on a separate computing system from the other. In either of these latter embodiments, a communications network may be employed for communications between the layers residing on separate computer systems. It should be appreciated that each of the layers operate regardless of whether the layers reside on a single computing system or multiple computing systems. -
Presentation layer 502 may include software modules and processes (collectively, “components”) of application programs that use data stored indata layer 506 to perform actions. Example actions may include, without limitation, rendering information for display on a GUI presented to users through a display monitor. It should be appreciated that these actions may relate to any form of data manipulation or processing, and therefore are not limited to rendering data for display on a GUI. Indeed, many components of application programs manipulate data during “background” operations that are not noticeable to users of the computing system. These types of actions may be performed either randomly or following scheduled, periodic time periods. For illustrative purposes, however,presentation layer 502 may be described as a component requesting data fromdata layer 506 for use in manipulating the data to render a display for a GUI. In one embodiment,presentation layer 502 may be built on top of AngularJS framework and utilize single page application (SPA) architecture. Using modular approach,presentation layer 502 may provide unified visual design language and user experience. The different services described in the disclosure may be implemented as modules within this layer. For mobile access, the presentation layer may include applications for most popular mobile operating systems, such as iOS, Android, and Windows, and deployed from corresponding application stores. -
Data layer 506 is configured to store data in the form of file structures, each having a standard identifier, e.g., path and file name, recognizable toapplication layer 504 anddata layer 506. In order to request specific data stored indata layer 506, a request by a component ofpresentation layer 502 includes, i.e., specifies, the standard identifier for the data. Upon receiving a request from the component,application layer 504 manages retrieval of the specified data fromdata layer 506 based on the standard identifier and thereafter provides a view of the retrieved data to the requesting component. The view presents the specified data to the presentation layer in a manner such that the data may be manipulated to perform a specific action. Consistent with the present disclosure,data layer 506 may have a pure multi-tenant architecture, providing both security and privacy to customers and unity to the system development and deployment. For example, the infrastructure may include a relational database, which may be used dynamically to obtain high integrity control while maintaining a customizable schema for each customer. In one embodiment, a plurality of customers may share the same type of database, as well as the same type of tables. Each table may be partitioned according to the customer identity which enables the system to protect the security and privacy of the customer data. Although the same type of tables is used by a plurality of customers, the system includes a mechanism which enables providing different schema per customer, without the need to execute Data Definition Language (DDL) commands and simply using references to the relevant column as the customer defined. This ability enables us to perform online schema changes efficiently and safely without any downtime to the customers, and without any code change. This flexibility allows each customer to customize the product according to their specific business needs, while using a software product on the cloud. This flexibility also enables the system to provide fully localizable product to the customers, which enables international companies to use the same product in multiple languages. In one embodiment, updating objects may be performed using optimistic locking which ensures that, if parallel requests arrive, isolation of the transaction may be kept while still keeping data integrity. - In accordance with the
architectural model 500, the responsibilities and/or operations ofapplication layer 504 may be performed by various software modules into whichapplication layer 504 is divided. In accordance with one embodiment,application layer 504 may be responsible for receiving requests from components ofpresentation layer 502 for data stored indata layer 506 and providing the requesting components with a view of the specified data. In another embodiment,application layer 504 may be responsible for the actual retrieval, and subsequent caching, of the specified data. Consistent with the present disclosure,application layer 504 may include implementation for a highly customizable object manipulation framework allowing it to utilize all of the benefits ofdata layer 506 and provide for the developer's generic ability to work with business data objects. For example,application layer 504 may enable object definition, CRUD operations, advanced search capabilities, and object serialization for web access, including RESTful, SOA, and XML over HTTP methods. In one embodiment, on top of the abilities ofdata layer 506, this layer provides memory caching mechanism, which allows high performance for infrequently updated objects and dramatically reduces the number of queries for the data layer. For example,application layer 504 may have search capabilities for objects included in memory by indexing and grouping mechanisms implementing proprietary object query language allowing a sophisticated mix of SQL executed queries within memory validated conditions. In one embodiment,application layer 504 may utilize a stateless architectural approach and may not maintain any state data between sequential calls. For example, all state data may be serializing in the database by the end of each call, and during a next call requesting some data, the most updated state data is then obtained from the database. As an implementation for the multi-tenant paradigm,application layer 504 may ensure high data and access isolation on the tenant and user level and allow a highly configurable ability to define, set data, and access controls on a user, group of users, role, and tenant level. - Consistent with the present disclosure, the services on the cloud environment
architectural model 500 may be highly available and may simultaneously work on multiple availability zones. Production and staging environments are isolated on virtual cloud network level. As a scalability model, the system may utilize POD approach when multi-tenant deployments segmented and isolated in completely independent parts. In order to reduce latency and comply with laws of different countries, such as the General Data Protection Regulation (GDPR) in Europe and more. - A. Task Scheduling Based on Real-Time Conditions
- Disclosed and claimed is a system that receives real-time reports (e.g., traffic updates, weather conditions), predicts that a field professional will not be able reach the customer at the scheduled time, and reassigns the customer to a different field professional. In one example, the system predicts that the field professional will miss a future task in his daily schedule. In another example, the system predicts that a delay would cause one or more tasks to be completed after a shift of a field professional is about to end.
-
FIG. 6A is a flowchart of anexample process 600 for task scheduling based on real-time conditions, consistent with the present disclosure. In some embodiments,server 152 may implementprocess 600. For example,processing device 202 may receive data from I/O system 210 ornetwork interface 206, and then execute instructions or program codes stored inmemory interface 204 ordatabase 154, in which the instructions or program codes implement algorithms ofprocess 600. The algorithms ofprocess 600 may be implemented as one or more ofanalysis module 441,forecasting module 442,planning module 443, orscheduling module 444.Process 600 includes the following steps or operations. - At
step 602,processing device 202 determines real-time schedule information forfield professionals 110 independent from any schedule update received fromfield professionals 110 vianetwork interface 206. The real-time schedule information may include any information or data associated with task schedules of thefield professionals 110 updated or received in real time. In some embodiments,processing device 202 may determine real-time schedule information fromcommunication device 180A. In some embodiments, the real-time information may be determined by processingdevice 202 without intervention offield professionals 110, such as in predetermined intervals or triggered by predetermined events. - In some embodiments, the real-time schedule information may reflect a field professional's progress in attending, performing or completing tasks. For example, the real-time schedule information may reflect location information associated with the professional. Based on the location information, system 100 (alone or with reference to other internal or external systems) may determine if a field professional is at a location associated with one of the tasks in the schedule or en route to a scheduled task. For another example, the real-time schedule information may reflect task updates (e.g.,
field professionals 110 may use a dedicated communication device or a dedicated application to provides real-time updates, such as, “arrived at destination,” “task completed,” “set out for next destination,” etc.). For another example, the real-time schedule information may include updates from different data sources outsidesystem 100 that may affect the progress of field professionals 110 (e.g., traffic updates, weather updates, user's social profiles, etc.). - In some embodiments, the real-time schedule information may reflect required changes to a schedule of a field professional. For example,
system 100 may determine that a schedule offield professionals 110 needs to be changed and provide real-time schedule information reflecting the schedule change with optionally varying degrees of specificity (e.g., as inFIGS. 3A-3B , after completing the task at point A, go to point F and not to point B). For another example, a client may directly inform a field professional that he/she is running late for a location of a scheduled task. - In some embodiments, the real-time schedule information may include current location information derived at least partially from location circuits of communication devices of
field professionals 110 without intervention offield professionals 110. In some embodiments, the communication devices may include mobile devices (e.g., a smartphone) or vehicles that is associated withfield professionals 110. For example, the communication devices may includecommunication device 180A. The location circuit may be, for example, a global positioning system (GPS) circuit module. In some embodiments, the current location information may be derived from the location circuits without intervention offield professionals 110, such as in predetermined intervals. - In some embodiments, the real-time information may include real-time weather conditions associated with
field professionals 110. For example, the weather conditions may be associated with regions that covers current locations offield professionals 110. In some embodiments, the weather conditions may be received from a third-party service provider, such as an Internet server of a weather forecast service provider. In some embodiments, the weather conditions may be received from the third-party service provider without intervention offield professionals 110, such as in predetermined intervals. - In some embodiments, the real-time schedule information may be received from
communications network 170. In some embodiments,field professionals 110 may initiate sending schedule update viacommunication device 180, but such schedule update is independent from the real-time schedule information determined by processingdevice 202. In other words,processing device 202 may receive the real-time schedule information automatically without affirmatively reporting offield professionals 110. For example,processing device 202 may send a request at a predetermined time interval tocommunication device 180A to obtain the real-time schedule information. - In some embodiments,
processing device 202 may receive progress information forfield professionals 110 fromnetwork interface 206. The progress information may include any number of any combination of the real-time schedule information that is determined by processingdevice 202 without intervention offield professionals 110 and the schedule update sent byfield professionals 110. In some embodiments, the schedule update may include task updates initiated by field professionals 110 (e.g.,field professionals 110 may use a dedicated communication device or a dedicated application to provides updates, such as, “arrived at destination,” “task completed,” “set out for next destination,” etc.) or shift updates initiated by field professionals 110 (e.g.,field professionals 110 may use a dedicated communication device or a dedicated application to provides real-time updates, such as, “shift stated,” “shift completed,” “shift interrupted,” etc.). - In some embodiments, the progress information may include task status updates transmitted from communication devices of
field professionals 110. For example, the task status updates may be transmitted in a form of text messages. For another example, the task status updates may be transmitted in a form of application data inputted byfield professionals 110 through a user interface to a dedicated application installed in the communication devices (e.g., a smartphone). - Referring back to
FIG. 6A , atstep 604,processing device 202 determines, from the real-time schedule information associated with a first field professional, existence of a delay associated with one or more tasks assigned to the first field professional. The first field professional may be one offield professionals 110. The first field professional may have one of more tasks assigned thereto. For example, as shown inFIGS. 3A-3B , the first field professional was assigned to tasks for providing technical service at locations A, B, C, D. The delay may be represented as a time difference between a current time and the scheduled arrival time of a location associated with a task assigned to the first field professional to perform at the location. Consistent with the present disclosure, the delay may be associated with a difficulty for completing a scheduled task, no matter the cause of the difficulty. For example, the delay may result from traffic conditions due severe weather conditions. Alternatively, the delay may result from a failure of the field professional to complete an earlier task within an allocated time frame. Alternatively, the delay may result from a customer not being present at the location. -
FIG. 6B is a diagram of example planned and actual schedules of field professionals, consistent with the present disclosure. InFIG. 6B , the first field professional P1 corresponds to the first field professional inFIG. 3A , and each of locations A-D may have a specified or scheduled arrival time for P1. Each row of blocks represents a schedule associated with a field professional inFIG. 6B . White blocks represent the field professional's time durations when performing a task at a specified location or when the field professional is available. Dotted blocks represent the field professional's time durations when driving between the specified locations. A timeline is shown below the blocks, and dash lines are shown to indicate aligned time points of the schedules in the timeline. - For the first field professional P1, two schedules are shown: one for P1's planned schedule, and one for P1's actual schedule. In P1's planned schedule, P1's scheduled arrival times for locations A-D are 10:36, 11:39, 12:20, and 13:15. The delay associated with the one or more tasks may occur when the first field professional arrives at the locations later than the scheduled times. For example, in P1's actual schedule, P1 misses the scheduled arrival time of 10:36 for location A. In other words, at the scheduled arrival time 10:36, P1 is still driving. In this example, the delay may be represented as a time difference between a current time and the scheduled arrival time 10:36.
- In some embodiments, the real-time schedule information may include a current time and a current location of the first field professional. By comparing the current time and location of the first field professional with expected time and location thereof,
processing device 202 may determine the existence of the delay. For example, assuming the scheduled arrival time is 10:36 for location A and the first field professional leaves the starting point (FIG. 3A ) at 10:00, if the current time is 10:18 but the current location of the field professional is at ¼ of the total distance from the starting point to location A,processing device 202 may determine the existence of the delay. - In some embodiments, the real-time schedule information may include the real-time weather conditions. The scheduled arrival times at task locations may be determined based on a first assumed weather condition, such as a sunny weather. When the real-time weather condition is different from the assumed weather condition, the arrival times may be delayed. For example, if the real-time weather condition is raining, the road conditions may become worse and the traffic may become slower, by which the first field professional may delay arriving at schedule times. If that is the case,
processing device 202 may determine the existence of the delay. - In some embodiments, if processing
device 202 receives the progress information fromnetwork interface 206 atstep 602,processing device 202 may determine a delay associated with one or more tasks assigned to the first field professional. In some embodiments,processing device 202 may determine the delay from the progress information. - At
step 606,processing device 202 determines a likelihood that the delay will interfere with the first field professional arriving at an identified location associated with an assigned task at a scheduled time. The scheduled time may be a time specified by processingdevice 202 for the first field professional to arrive at the identified location. For example, the identified location may be any of locations A-D inFIG. 3A . Though processingdevice 202 determines the existence of the delay atstep 604, the delay may not necessarily cause an actual delay of the arrival time at the identified location. For example, the first field professional may find means (e.g., find a shorter route or increase moving speed) to make up for the delay. - In some embodiments,
processing device 202 may apply a traffic route model reflecting one or more possible routes for the first field professional to travel to the identified location for determining the likelihood that the delay will interfere with the first field professional arriving at the identified location at the scheduled time. Traffic conditions may affect driving durations between locations assigned to the first field professional. - In some embodiments, the traffic route model may include a model that assigns different weights to different segments of routes. A weight may have a value proportional to a likelihood that a delay would occur when a field professional travels through it. The weight may be assigned in accordance to historical data, such as statistics of traffic conditions and speed limits. In some embodiments, the total weight of a route may be a sum of the weights of its segments. To apply the traffic route model,
processing device 202 may select the one or more possible routes for the first field professional from all routes to travel to the identified location.Processing device 202 may then determine the total weights for each of the possible routes. In some embodiments, if the first field professional is on the way to the identified location and all of the possible routes have a total weight corresponding to a likelihood greater than a predetermined threshold (e.g., 50%),processing device 202 may determine that the delay will interfere with the first field professional arriving at the identified location at the scheduled time. - In some embodiments,
processing device 202 may apply a task performance model for determining the likelihood that the delay will interfere with the first field professional arriving at the identified location at the scheduled time. In some embodiments, the task performance model may include a model that assigns different weights to different tasks. A weight may have a value proportional to a likelihood that a delay would occur when a field professional performs a specific task. The weight may be assigned in accordance to historical data, such as statistics of task performances. The weight may also be assigned in accordance to difficulty level of the tasks, such as complexity and time duration to perform it. To apply the task performance model,processing device 202 may determine the type of task the first field professional is performing, such as from task information.Processing device 202 may then determine the weight for the task. In some embodiments, if the task being performed by the first field professional has a total weight corresponding to a likelihood greater than a predetermined threshold (e.g., 50%),processing device 202 may determine that the delay will interfere with the first field professional arriving at the identified location (e.g., the next location for a future task) at the scheduled time. - In some embodiments,
processing device 202 may determine a likelihood that the delay will interfere with a future assigned task. The future assigned task may be a task scheduled later than the current task. For example, inFIG. 3A , if the first field professional is currently working at location A for a first task, a second task at location B is the future assigned task. In some embodiments,processing device 202 may determine a likelihood that the delay in the current task will interfere with the future assigned task using a delay-statistics model. In some embodiments, the delay-statistics model may collect and compile historical delay data and generate correlations between a time duration of the delay at the current task and a likelihood of such delay causing a time duration of a delay at the future task. For example, statistics may show that that a five-minute delay at 10:00 for a first task will cause an 80% likelihood that the first field professional will be 30 minutes late to a second task scheduled at 15:00. The delay-statistics model may establish a corresponding relationship between the 5-minute delay and the 30-minute delay for the two tasks. When the first field professional actually delay for 5 minutes at the first task, by using the delay-statistics model,processing device 202 may determine that the likelihood is 80% for the first field professional to arrive 30 minutes late for the second task. - In some embodiments, to determine a likelihood that the delay will interfere with a future assigned task,
processing device 202 may obtain weather conditions associated with locations of tasks assigned to the first field professional and adjusting time estimations for completion of the tasks based on the weather conditions. When the task is performed outdoor, the weather condition may affect the task completion time. The weather condition may also affect travel durations between locations assigned to the first field professional. In some embodiments,processing device 202 may obtain the weather conditions from a third-party service provider. To determine a likelihood that a weather condition will cause delay for the completion time,processing device 202 may also use a weather-statistics model. The weather-statistics model may collect and compile historical weather condition data and generate correlations between a weather condition at a location of a task and a likelihood of such weather condition causing a delay for the completion time. When the first field professional is performing the current task and the weather condition changes, by using the weather-statistics model,processing device 202 may determine that there is a specific likelihood for the first field professional to delay the completion time of the current task. Based on the likelihood,processing device 200 may adjust time estimation for completion of the current task. - In some embodiments, to determine a likelihood that the delay will interfere with a future assigned task,
processing device 202 may obtain traffic conditions associated with locations of tasks assigned to the first field professional and predicting times that the first field professional would arrive these locations based on the traffic conditions. In some embodiments,processing device 202 may predict the arrival times of the first field professional use the traffic route model and the delay-statistics model. For example, by obtaining the traffic conditions and inputting it into the traffic route model and the delay-statistics model,processing device 202 may determine likelihoods that the traffic conditions will cause the first field professional to delay for different time durations to arrive the different locations. Based on those likelihoods,processing device 202 may determine the predicted arrival times. As an example, Table 1 shows originally estimated driving duration between the starting point and location A inFIG. 3 and corresponding predicted driving durations updated using real-time traffic conditions at different times of a day. In Table 1, each row represents a time of the day. -
TABLE 1 Time Estimated driving duration Updated driving duration 10:00 25 minutes 55 minutes 10:15 25 minutes 55 minutes 10:30 27 minutes 52 minutes 10:45 27 minutes 45 minutes 11:00 30 minutes 40 minutes 11:15 30 minutes 35 minutes 11:30 35 minutes 35 minutes 11:45 35 minutes 35 minutes 12:00 30 minutes 30 minutes - In some embodiments,
processing device 202 may determine a likelihood that the delay will interfere with the first field professional completing all assigned tasks prior to a predesignated shift completion time. In some embodiments, to determine the likelihood, processing device may use a statistics model that is modified based on any combination of the traffic route model, the task performance model, the delay-statistics model, and the weather-statistics model. The statistics model may collect and compile historical data and generate correlations between a time duration of the delay and a likelihood of such delay causing an overtime for the first field professional. For example, statistics may show that that a one-hour delay at 10:00 for a first task will cause an 90% likelihood that the first field professional will be unable to completing all assigned tasks prior to a predesignated shift completion time at 18:00. The statistics model may establish a corresponding relationship between the one-hour delay and the 90% of overtime likelihood. When the first field professional actually delay for one hour, by using the statistics model,processing device 202 may determine that the likelihood is 90% that the first field professional will be unable to completing all assigned tasks prior to the predesignated shift completion time. - Referring back to
FIG. 6A , atstep 608,processing device 202 determines from real-time schedule information associated with a second field professional whether the second field professional can arrive to the identified location associated with the task assigned to the first field professional at the scheduled time. The second field professional may be one offield professionals 110. For example, the second field professional may be the field professional assigned to tasks for providing technical service at locations E, F, G, H inFIGS. 3A-3B . In some embodiments,processing device 202 may determine whether the second field professional can arrive at the identified location at the schedule time based on any combination of the traffic conditions, weather conditions, or task performances associated with the second field professional. - For example, as shown in
FIG. 6B ,processing device 202 may determine from real-time schedule information that the first field professional P1 will delay arriving at location A at scheduled time 10:36, and the second field professional P2 has finished a task at location E at 10:12, sooner than expected completion time at 10:39. Based on the traffic condition from location E to location A, weather conditions at locations E and A, or the type of the task to be performed at location A,processing device 202 may determine that the second field professional can arrive to location A at 10:36. - At
step 610,processing device 202 reassigns the task assigned to the first field professional based on the real-time schedule information associated with the first field professional and the real-time schedule information associated with the second field professional. - In some embodiments,
processing device 202 may reassign the task assigned to the first field professional by assigning it to the second field professional. For example, as shown inFIG. 6B ,processing device 202 may reassign the task associated with P1 at location A to P2. In other words, P2 will go to location A after finishing task at location E rather than location F as originally scheduled. In some embodiments,processing device 202 may reassign the task associated with P2 at location F to P1. In other words, P1 will go to location F rather than location A as originally scheduled. - In some embodiments, prior to reassigning the task to the second field professional,
processing device 202 may determine whether the second field professional has required skills and parts to complete the task. If the second field professional has the required skills and parts to complete the task,processing device 202 may reassign it to the second field professional. For example, as shown inFIG. 6B ,processing device 202 may determine whether P2 has required skills and parts to complete the task at location A before reassigning the task associated with P1 at location A to P2. - In some embodiments,
processing device 202 may reassign the assigned task to the second field professional based on the determined likelihood that the delay will interfere with the first field professional arriving at the identified location associated with the assigned task at the scheduled time. For example, if the determined likelihood exceeds a predetermined threshold (e.g., 50%),processing device 202 may reassign the task to the second field professional. - In some embodiments, to reassign the task assigned to the first field professional to the second field professional,
processing device 202 may identify a number of second field professionals who can complete the task assigned to the first field professional, and select the second field professional based on current location information of the number of second field professionals and traffic conditions. In some embodiments, atstep 608,processing device 202 may determine that there are multiple second field professionals who can arrive to the identified location associated with the task assigned to the first field professional at the scheduled time. Further,processing device 202 may select the second field professional based on the current location information of the second field professionals and the traffic conditions. For example,processing device 202 may determine the second field professional as the field professional having the shortest arrival time from the multiple second field professionals. In some embodiments,processing device 202 may determine the second field professional based on other criteria, such as skill levels, workload of the day, completed work of the day, future work scheduled, and so forth. For example,processing device 202 may assigned a weight and a score to each of the criteria. The weight represents the level of importance of that criterion in the determination of the second field professional. The score represents the degree, extent, or scale of the criterion.Processing device 202 may determine a weighted score for each of the multiple second field professionals and select one with its weighted score in a predetermined range. - In some embodiments, to reassign the task assigned to the first field professional to the second field professional, the second field professional may be selected based on estimated costs. The costs may include travel distances, wages, overtime pay, or the like. For example,
processing device 202 may estimate a cost for each of the number of second field professionals who can complete the task assigned to the first field professional, and select the second field professional further based on estimated costs. In some embodiments,processing device 202 may select the second field professional as the one having the lowest cost among the multiple second field professionals. To determine the costs, in some embodiments,processing device 202 may also assign a weight and a score to each of the factors of the costs. The weight represents the level of importance of that cost factor in the determination of the second field professional. The score represents the value of the cost.Processing device 202 may determine a weighted score for each of the multiple second field professionals and select one with its weighted score in a predetermined range. - In some embodiments, if processing
device 202 determines, atstep 606, a likelihood that the delay will interfere with the first field professional completing all assigned tasks prior to the predesignated shift completion time,processing device 202 may reassign one or more tasks to the second field professional, thereby avoiding causing the first field professional to work overtime. For example, the second field professional may be associated with the same predesignated shift completion time. For another example, the second field professional may be associated with a later predesignated shift completion time. - In some embodiments, selecting the second field professional includes reassigning a task currently assigned to the second field professional to a third field professional. In some embodiments, the third field professional may actually be the best candidate for such reassignment (e.g., having the shortest traveling time or the lowest cost), but his or her availability may be unclear because he or she is in the middle of a task. If the likelihood is high that the third field professional can complete his or her current task soon,
processing device 202 may conditionally reassign the task of the first field professional to the second field professional, on condition that the third field professional does not complete his or her current task in time. If the third field professional does complete his or her current task in time, processing device may reassign the task conditionally reassigned to the second field professional to the third field professional. - In some embodiments,
processing device 202 may receive an indication from the first field professional about inability to complete all pending tasks in a daily schedule.Processing device 202 may then identify a plurality of second field professionals who can complete pending tasks in the daily schedule of the first field professional, and reassign the pending tasks to at least two second field professionals.Processing device 202 may further provide the at least two second field professionals, usingnetwork interface 206, information reflecting the reassignment. In some embodiments, the indication about inability to complete all pending tasks in a daily schedule may include an injury, a family emergency, or a sudden, personal event. The information reflecting the reassignment may be any information for indicating at least some contents of the reassignment. In some embodiments, the information reflecting the reassignment may include information about a plan of the reassignment, such as rescheduling the task to a new data and time for the first field professional, or reassigning the task to a second field professional to complete. For example, the information about the plan may include the new data and time if the task is rescheduled, or a name of the second field professional if the task is reassigned thereto. In some embodiments, the information reflecting the reassignment may include directional instructions to accessing task locations, such as an address or a driving route. - In some embodiments,
processing device 202 may reassign the task by rescheduling the task to a date and time where the first field professional is available. In some embodiments,processing device 202 may reassign the task in accordance with company policies. The company policies may include different rules that specifies the way of reassignment under different conditions. For example, the company policies may specify that when the first field professional delay more than 10 minutes, the task assigned to the first field professional must be reassigned to the second field professional. The company policies may also specify that if the task is reassigned to the second field professional and would cause the second field professional to detour for a time longer than a predetermined threshold (e.g., 30 minutes), the task must be rescheduled to a date and time where the first field professional is available. In some embodiments, the company policies may be implemented as computer-readable instructions as conditions in algorithms, which may be stored indatabase 154 accessible viamemory interface 204 and executed by processingdevice 202. - Referring back to
FIG. 6A , atstep 612,processing device 202 provides to at least one of the first field professional and the second field professional, usingnetwork interface 206, information reflecting the reassignment of the task. In some embodiments,processing device 202 may send the information to the communication devices associated with the first field professional and the second field professional, such ascommunication device 180A. - In some embodiments,
processing device 202 may provide a customer associated with the assign task, usingnetwork interface 206, information indicative of the reassignment. The customer may be one ofusers 130. In some embodiments,processing device 202 may send the information to the communication device associated with the customer, such ascommunication device 180C. In some embodiments, the information indicative of the reassignment may include a name, an expected arrival time, and contact information (e.g., a phone number) of the second field professional. - B. Work Capacity Planning
- Disclosed is a system that improves work capacity in task scheduling by assigning different types of tasks to field professionals based on real-time conditions. In some embodiments, the system may be implemented as
task scheduling unit 150. The types of tasks may include product installation, product repair, product maintenance, product replacement, product diagnostics, customer consulting, or the like. The real-time conditions may be associated with specific demand categories, such that the system may change a ratio between the types of scheduled tasks by limiting the time windows that can be scheduled for a specific demand category. In one example, the system may limit the tasks for installing a first product to 70% of the available time windows (also known as time slots). This means that only 30% of the available time windows may be assigned to tasks associated with other products. By inputting such real-time conditions to the system, the system may optimize work capacity for task scheduling and increase throughput of task scheduling. -
FIG. 7A is a flowchart of anexample process 700A for scheduling tasks to field professionals, consistent with the present disclosure. In some embodiments,server 152 may implementprocess 700A. For example,processing device 202 may receive data from I/O system 210 ornetwork interface 206, and then execute instructions or program codes stored inmemory interface 204 ordatabase 154, in which the instructions or program codes implement algorithms ofprocess 700A. The algorithms ofprocess 700A may be implemented as one or more ofanalysis module 441,forecasting module 442,planning module 443, orscheduling module 444.Process 700A includes the following steps or operations. - At
step 702,processing device 202 receives a set of requests reflecting demand for services. The set of requests may be associated with a number of task types. In some embodiments, the requests reflecting the demand for services may be data including instructions to request remote services. For example, the remote services may include marketing, surveys, business development, searches and other services that does not require the presence of the service providers. In other embodiments, the requests reflecting the demand for services may be data including instructions to request on-site services. For example, the on-site services may include installing Internet services, setting up utility services, repairing a telephonic device, replacing plumbing devices, or the like. In some embodiments, the set of requests may be sent by any of the customer service unit 120 (e.g., viacommunication device 180B), users 130 (e.g., viacommunication device 180C), orIoT devices 140. The services may be services requested to be performed by professionals on-site or by remote service providers. In some embodiments, the number of task types may include different types of service. For example, the task types may include product installation, product repair, product maintenance, product replacement, product diagnostics, customer consulting, or the like. In some embodiments, the number of task types may include different types of products. For example, the task types may correspond to different product categories, product models, product manufacturers, or the like. It is noted that the terms “task type,” “task classification,” and “demand category” may be used interchangeably herein and may refer to any distinguishable characteristic of a task for field professionals. - At
step 704,processing device 202 receives availability data indicative of an availability offield professionals 110 or the remote service providers to perform the services. Available field professionals or remote service providers may be scheduled to perform the services. The availability data may be any data that indicates or represents the availability offield professionals 110. For example, the availability data may include any symbolic or numeric value that indicates a field professional is available or unavailable for a new task. In some embodiments,processing device 202 may receive the availability data from field professionals 110 (e.g., viacommunication device 180A). In some embodiments,processing device 202 may receive the availability data fromdatabase 154. In some embodiments,processing device 202 may determine the availability data from inputs fromfield professionals 110 associated with a period time. For example, a field professional may submit his or her personal schedule conflicts toserver 152 vianetwork interface 206. The submission may be performed daily, weekly, monthly, or in any appropriate interval. In some embodiments,processing device 202 may determine the availability data from personal records offield professionals 110. For example, the personal records may include scheduled holidays, vacations, leaves, or any off-duty time periods. In some embodiments, the personal records may be stored indatabase 154. - At
step 706,processing device 202 receives skills data indicative of capabilities of each offield professionals 110 or remote service providers with respect to the task types. The skill data may include any classification of resource that indicates the capabilities of each offield professionals 110 or remote service providers to perform a work associated with a demand category. Field professionals capable of performing the task types may be scheduled to perform the on-site services. The skills data may be any form of data associated with a field professional or a remote service provider and indicative of the capabilities of the field professional. In some embodiments, the skills data may be stored as a database record. For example, the skills data may include data indicative of years of experience, categories of capabilities, certificates of the capabilities, levels of skills, past performance records, titles, team roles, or the like. - In some embodiments,
processing device 202 may receive the skills data from field professionals 110 (e.g., viacommunication device 180A). In some embodiments,processing device 202 may receive the skills data fromdatabase 154. In some embodiments,processing device 202 may determine the skills data from personal records offield professionals 110. For example, the personal records may include information representing qualifications, seniority, skill levels, years of affiliation, or the like. In some embodiments, the personal records may be stored indatabase 154. - In some embodiments,
processing device 202 may determine the skills data based on ranking associated with customers' feedback offield professionals 110. For example, the customers' feedback may include scores, stars, comments, answers to multiple-choice questions, emails, phone calls, letters, or the like. The ranking may be determined based on a number-based process (e.g., by ranking the scores) or an opinion-based process (e.g., by evaluating the comments). In some embodiments, the opinion-based process may be implemented using a machine learning model capable of natural language processing. In some embodiments, the ranking of a field professional may be performed for each of the task types the field professional is capable of performing. - Referring back to
FIG. 7A , atstep 708,processing device 202 obtains at least one desired scheduling weight for the number of task types. For example, for each of the task types,processing device 202 may obtain a desired scheduling weight. The desired scheduling weight may be a value (e.g., a numeric, textual, alphabetic, or symbolic value) that indicates a level of desirability of the task type by a customer. For example, if the desired scheduling weight is a numeric value, the numeric value may indicate the level of the desirability. In some embodiments, high desired scheduling weight may indicate high desirability of the task type, andprocessing device 202 may prioritize to schedule field professionals for such task type. For example, a task of installing devices may have a lower desirability than a task of repairing devices, and the desired scheduling weight for the task of installing devices may have lower values (e.g., a value of 0.3) than the task of repairing devices (e.g., a value of 0.8). It should be noted that the values of the desired scheduling weight may be set to be within any range and not limited to the examples described herein. - In some embodiments, to obtain the at least one desired scheduling weight,
processing device 202 may receive an input indicative of the at least one desired scheduling weight. In some embodiments, the input may be adjusted according to circumstances. For example,processing device 202 may receive the input in real time. For another example,processing device 202 may receive the input in a predetermined interval. For another example,processing device 202 may receive the input on demand by a user of customer service unit 120. In some embodiments, the input may be received from a member of customer service unit 120 (e.g., a manager). For example,processing device 202 may receive a desired scheduling weight for repair as 0.4 (e.g., representing that the repair tasks take 40% of the available time slots for task scheduling), and a desired scheduling weight for installation as 0.6 (e.g., representing that the installation tasks take 60% of the total scheduled tasks).Processing device 202 may assign each task of repair with theweight 40% and each task of installation with the weight 60%. For another example, the member of customer service unit 120 may desire to allocate more resources to support a new product than to an old product. In this example, the input may include a first weight (e.g., 0.8) for the new product and a second weight (e.g., 0.2) for the old product, in which the first weight may be greater than the second weight. Consistent with the present disclosure, the desired scheduling weight may correspond with a scheduling limit, such that a scheduling restriction may be placed on a first task type without placing a restriction on a second task type. The scheduling limit may be indicative of the percentage of the available time windows that can be scheduled for the first task type. For example, the system may avoid from scheduling more than 10% of the available time windows to tasks for repairing a certain product. - In some embodiments, the scheduling weight may be set as correlated with a period of time, such as a month, a season, a year, or any length of any period of time. For example, a task of installing Internet devices may be highly demanded in a summer, and the scheduling weight for such a task may be set as higher than the scheduling weights in other times of the year. For another example, a task of repairing electrical apparatuses may be highly demanded after a heavy snowstorm, and the scheduling weight for such a task may be set as higher than the scheduling weights after normal weather conditions.
- In some embodiments, the scheduling weight may be set as correlated with a geographic region, such as a city, a county, a community, or any size of any geographic region. For example, a task of installing telephonic devices may be highly demanded in an urban area, and the scheduling weight for such a task may be set as higher than the scheduling weights in other geographic regions. For another example, a task of maintaining electrical apparatuses may be highly demanded in a rural region, and the scheduling weight for such a task may be set as higher than the scheduling weights in other geographic regions.
- In some embodiments, to obtain the at least one desired scheduling weight,
processing device 202 may use artificial intelligence (AI) to determine the at least one desired scheduling weight for increasing throughput. In some embodiments, the AI may be implemented as a software module intask scheduling unit 150. For example, the AI may receive a marketing goal as input, and based on market data (e.g., stored in database 154), determine the desired scheduling weight to meet the marketing goals. The marketing goal may be, for example, increasing customer satisfaction on product maintenance in September. Based on such a marketing goal, the AI may increase the desired scheduling weight of the task type of product maintenance in September. - Referring back to
FIG. 7A , atstep 710,processing device 202 generates a schedule forfield professionals 110 based on the demand for services, the availability data, and the skills data. Consistent with the present disclosure,processing device 202 may determine scheduling policies based on available resources and wherein generating the schedule is based on the scheduling policies. For example, when a certain tool is temporary disable, avoid scheduling certain tasks. In this embodiment, the available resources may include the field professionals themselves, working hours, vehicles, tools, equipment, spare parts, office space, and more. The schedule may be generated as any data that includes instructions forfield professionals 110 to complete work at specified locations and time. For example, the schedule may include a promised arrival time communicated to a customer, a destination of the customer, a route to the destination, or an expected arrival time determined based on real-time information. Generating the schedule forfield professionals 110 may include including a first task in the schedule when the first task conforms with the at least one desired scheduling weight and excluding a second task from the schedule when the second task does not conform with the at least one desired scheduling weight. For example, the first task may be installing a first product, and the second task may be repairing a second product. In some embodiments, conforming with the at least one desired scheduling weight may be implemented as requiring a scheduling weight associated with a task exceeding the desired scheduling weight. For example, the first and second tasks may be associated with a first and second scheduling weights, respectively. When the first scheduling weight is greater than or equal to the desired scheduling weight, the first task may conform with the at least one desired scheduling weight. When the second scheduling weight is smaller than the desired scheduling weight, the second task may not conform with the at least one desired scheduling weight. In some embodiments, the first scheduling weight may be higher than the second scheduling weight. - In some embodiments, the receipt order of the requests may be uncorrelated with generation of the schedule for
field professionals 110. For example,processing device 202 may receive a first request associated with the first task may and a second request associated with the second task. For example, the first request may be received after the second request. The first and second requests may reflect demand for services of the first and second tasks. - In some embodiments,
processing device 202 may receive historical data associated with past demand for the task types. For example, the historical data may be data associated with past performed services and may include statistics of numbers and types of demanded services (e.g., on-site services). In some embodiments, the historical data may be zone-specific, such as grouped by different geographic regions. Different regions may have different statistics of demanded services. For example, an urban zone may be dominated by requests of Internet installing or repair services, and a rural zone may be dominated by requests of electrical equipment maintenance services. In some embodiments, the historical data may be event-related, such as relating to an inclement weather condition (e.g., a storm). For example, demanded services of restoring utilities may spike after a big storm. In some embodiments, the historical data may be time-specific, such as grouped by certain days of a week, a month, or a year. Different days may have different statistics of demanded services. For example, Mondays may be dominated by requests of Internet repair services, and Tuesdays may be dominated by requests of installing Internet services. - In some embodiments,
processing device 202 may generate the schedule forfield professionals 110 based on a prediction of demand associated with the received historical data. The prediction of the demand may be generated based on the statistics of the numbers and types of the demanded on-site services. For example, a frequency of an on-site service may be used as a probability to predict the likelihood of its demand. A scheduling weight of the on-site service may be determined based on the its frequency in the historical data.Processing device 202 may then generate the schedule using its scheduling weight. For example, based on historical data,processing device 202 may predict a demand of installing new Internet services is low in March. Based on such prediction,processing device 202 may generate the March schedule with lower priority forfield professionals 110 associated with Internet service installation. In some embodiments, the prediction of the demand may be determined using a machine learning model (e.g., implemented as a software model executable by processing device 202). - In some embodiments,
processing device 202 may receive environmental data indicative of future events that affect completion of tasks. For example, the environmental data may include information reflecting a known future event, such as a scheduled power blackout, infrastructure maintenance (e.g., a road construction work), an atypical weather condition, a public event (e.g., a parade), or the like. Such future events may limit resources available to fieldprofessionals 110 or interfere with their ability to travel, thus affect the completion of the tasks. In some embodiments,processing device 202 may generate the schedule forfield professionals 110 based on the environmental data. For example,processing device 202 may receive environmental data indicative of a schedule blackout in a zone. Based on such environmental data,processing device 202 may generate the schedule forfield professionals 110 to avoid working in the zone during the scheduled blackout. - In some embodiments,
task scheduling unit 150 may reserve schedule availability associated with the desired scheduling weight. In those embodiments,processing device 202 may further schedule tasks that do not conform with the desired scheduling weight when a daily schedule offield professionals 110 is not full. For example, the desired scheduling weights for repair and installation may be 40% and 60%, respectively. Percentages of the actual schedules of repair and installation in the daily schedules may be 20% and 60%, respectively. In other words, the daily schedule offield professionals 110 is not full. In this example, if no requests for repair are received,processing device 202 may schedule up to 60% of the tasks to installations and leaves only 40% room for repairs. - In some embodiments,
processing device 202 may further provide, usingnetwork interface 206, to a field technician information reflecting an assignment of the first task. The field technician may be one offield professionals 110. The information reflecting the assignment of the first task may be provided as a text message, a website hyperlink, a push notification of a phone application, or the like. In some embodiments,processing device 202 may provide the information vianetwork interface 206 tocommunication device 180A. - In some embodiments, the information reflecting the assignment of the first task may include details about a customer associated with the first task. For example, the details may include a name, an account number, or a phone number of the customer. In some embodiments, the information reflecting the assignment of the first task may include description of the first task. For example, the description may include a tool, a spare part, or an existing infrastructure, which may be needed by the first task. In some embodiments, the information reflecting the assignment of the first task may include directional instructions to an identified location associated with the first task. For example, the directional instructions may include a location, an address, or a driving route of the customer.
-
FIG. 7B is a flowchart of anotherexample process 700B for scheduling tasks to field professionals, consistent with the present disclosure. In some embodiments,server 152 may implementprocess 700B. For example,processing device 202 may receive data from I/O system 210 ornetwork interface 206, and then execute instructions or program codes stored inmemory interface 204 ordatabase 154, in which the instructions or program codes implement algorithms ofprocess 700B. The algorithms ofprocess 700B may be implemented as one or more ofanalysis module 441,forecasting module 442,planning module 443, orscheduling module 444.Process 700B includes the following steps or operations. - At
step 712,processing device 202 receives a request for on-site service. Step 712 may be implemented in a way similar to step 702 inprocess 700A. Atstep 714,processing device 202 may determine a task type for the request. In some embodiments, corresponding relationships between task types and on-site services may be stored indatabase 154, such as database record entries.Processing device 202 may inquire the database record entries to determine the task type for the received request. Atstep 716,processing device 202 selects a date for scheduling the task. In some embodiments,processing device 202 may select the date based on various factors, such as demand of the on-site service. For example, if the demand of the on-site service is not in an emergency (e.g., requested to be completed within five business days),processing device 202 may select a date not conflicting with the demand.FIG. 7C shows an example of selecting the date for scheduling the task. -
FIG. 7C is a diagram of an example schedule for several field professionals, consistent with the present disclosure. The field professionals are Arnold, Bruce, Chuck, and Donald. The schedule shows assigned tasks and availability of each of the field professionals between 8:00 and 16:00 of a workday. The assigned tasks have two types, a first type of task (e.g., installing services) shown as dense-dotted blocks, and a second type of task (e.g., repairing services) shown as sparse-dotted blocks. Each of the field professionals are assigned with different numbers of the two types of tasks in different times of day. For example, Arnold is assigned with 5 tasks in the workday, with the first, third, and fifth tasks of the first type and the second and fourth tasks of the second type. InFIG. 7C , Arnold, Bruce, and Chuck have a full schedule for the workday, and Donald has an empty time slot after his third task. -
Processing device 202 may select this workday for scheduling the received task based on the demand of the on-site service. The demand may include a time requirement of completion within five business days. For example, the on-site service may be of the second type, and scheduling the on-site service does not conflict with the time requirement of the demand of the on-site service (e.g., the workday inFIG. 7C is within the five-business day after receiving the request). Accordingly,processing device 202 may select the workday inFIG. 7C as the selected date. - At
step 718,processing device 202 determines whether scheduling the task in the selected date conforms with a scheduling limit associated with the task type. If scheduling the task in the selected date conforms with the scheduling limit associated with the task type,process 700B proceeds to step 720. Otherwise,process 700B goes back to step 716, at whichprocessing device 202 may select another date for scheduling the task. Consistent with the present disclosure,process 700B may be adapted to be used in other implementations ofsystem 100. For example,process 700B may be adapted to be used when optimizing task schedules. As discussed below,system 100 may review the schedule and provided schedule change recommendations to enable greater optimization of scheduling all the field professionals as a whole. Beforesystem 100 provides a schedule changes recommendation, it may determine whether scheduling the task in a recommended date conforms with the scheduling limit associated with the task type. In one embodiment,system 100 may use a multi-route model to determine appointment availability. In one example, part of the routes may use a version ofprocess 700B to confirm that the scheduling limit associated with the task type is met. For example, inFIG. 7C , the first type of task has a desired scheduling limit of 0.3, and the second type of task has a desired scheduling limit of 0.7. The desired scheduling limits of the first and second types of tasks may be obtained in a way similar to step 708 ofprocess 700A. Such desired scheduling limit may reflect that the second type of tasks has higher desirability higher than the first type of tasks. In this example, the condition of conforming with the scheduling limit associated with the task type may be that, if a desired scheduling limit is smaller than 0.6,processing device 202 may schedule the first type of tasks to the workday inFIG. 7C . That is, the received request of on-site service will not be scheduled to the workday inFIG. 7C . Otherwise, if the desired scheduling limit is greater than or equal to 0.6,processing device 202 may schedule the second type of tasks to the workday inFIG. 7C . That is, the received request of on-site service will be scheduled to the workday inFIG. 7C . The description of the desired scheduling limit has been set forth in descriptions corresponding to step 708 ofprocess 700A and will not be detailed hereinafter. - In the above example, at
step 718,processing device 202 may determine that scheduling the task in the selected date conforms with the scheduling limit associated with the task type because the task is of the second type and has a desired scheduling limit of 0.7, such that the received request of on-site service may be scheduled on the work day inFIG. 7C . - At
step 720,processing device 202 selects a field professional for completing the task. For example, the workday ofFIG. 7C is the selected date, andprocessing device 202 may select any of Arnold, Bruce, Chuck, and Donald as the selected field professional for completing the task.Processing device 202 may select the date based on various factors, such as availability of the field professional and skills data of the field professional. - At
step 722,processing device 202 determines whether the selected field processional has availability on the selected date. If the selected field processional has availability on the selected date,process 700B proceeds to step 724. Otherwise,process 700B goes back to step 720, in whichprocessing device 202 may select another field professional. As shown inFIG. 7C , only Donald has availability (i.e., the empty time slot) on the selected date.Processing device 202 may select Donald as the selected field professional. In some other embodiments, if no field professional is available on the selected date,process 700B may goes back tostep 720. - At
step 724,processing device 202 determines whether skills of the selected field professional comply with the task. If the skills of the selected field professional comply with the task,process 700B proceeds to step 726. Otherwise,process 700B goes back to step 720, in whichprocessing device 202 may select another field professional. In some embodiments, the skills required for completing the on-site service may involve certifications, past experience, past performance, customer satisfaction levels, years of experience, or any other indicators reflecting likelihood of successfully completing the requested on-site service of the selected field professional. Such skills may be stored as data entries associated with the field professional indatabase 154, for example. In some embodiments,processing device 202 may retrieve such data entries after selecting the field professional atstep 722, and determine whether the field professional has required skills for completing the on-site service by comparing values of the data entries to predetermined criteria. For example, if the requested on-site service involves repairing a device,processing device 202 may determine whether Donald has a certificate to repair the device. Atstep 726,processing device 202 may schedule the task on the selected date to the selected field professional. For example, inFIG. 7C ,processing device 202 may schedule the task to Donald's empty time slot. - C. Using Predicted Demand to Optimize Task Scheduling
- Disclosed and claimed is a system that implements predictive task scheduling for field professionals by predicting service demand based on historical data and schedule field professionals under full availability thereof based on the predicted service demand. The system may reserve some availability of field professionals as redundancy for a time period in a service schedule in case of emergencies that is likely to occur (but not yet occur when scheduling the field professionals) predicted by historical data. The predicated demand may include certain locations or certain types of task. The system may also determine where to send specific field professionals with specific skill sets. In some embodiments, the system may be implemented as
task scheduling unit 150. -
FIG. 8A is a flowchart of anexample process 800A for scheduling tasks to field professionals, consistent with the present disclosure. In some embodiments,server 152 may implementprocess 800A. For example,processing device 202 may receive data from I/O system 210 ornetwork interface 206, and then execute instructions or program codes stored inmemory interface 204 ordatabase 154, in which the instructions or program codes implement algorithms ofprocess 800A. The algorithms ofprocess 800A may be implemented as one or more ofanalysis module 441,forecasting module 442,planning module 443, orscheduling module 444.Process 800A includes the following steps or operations. - At
step 802,processing device 202 receives a set of requests reflecting a current demand for on-site services.Database 154 may be configured to store historical data associated with past demand for field professionals.Processing device 202 is connectable tonetwork interface 206 foraccess database 154. The current demand may be a demand for on-site services that occur at a current time. In some embodiments, the current demand may be an actual demand occurring at the current time, rather than a predicted demand. In some embodiments, the set of requests may be in a form of network data messages that may be received by processingdevice 202 vianetwork interface 206. The historical data may include any data reflecting statistics, attributes, environments, or circumstances associated with past demands of on-site services. For example, the historical data may include statistical data reflecting frequencies and number of times of past demands for each of the on-site services. The statistical data may be associated with attributes of the past demands, such as a time period when such past demands were made, a location where such past demands were performed, a traffic condition when a field professional was reaching the location, a weather condition when the field professional was reaching the location, a number of dispatched field professionals, availability of field professionals during the time period, or any other related information. - In some embodiments, in addition to the set of requests,
processing device 202 may further receive other data, such as traffic data indicative of current traffic conditions and historical traffic conditions, or weather data indicative of a current weather condition. For example, the traffic data may include data reflecting road conditions and level of traffic congestions of a region near the location of the on-site service or a route along with which a field professional may travel to reach the location of the on-site service. The traffic data may further include data reflecting past road conditions and level of traffic congestions of the region near the location of the on-site service around the time when the on-site service is scheduled. - At
step 804,processing device 202 predicts imminent demand for on-site services based on the historical data. The imminent demand may be any demand that is likely to occur at a time close to a candidate schedule time for the requests reflecting the current demand. For example, the imminent demand may be any sudden, improvised, urgent, emergent, or last-minute demand made by customers (e.g., out of plan).Processing device 202 may predict the imminent demand using the historical data. For example, for a candidate schedule time for the requests reflecting the current demand,processing device 202 may select a time period before the candidate schedule time and retrieve statistical data reflecting frequencies and number of times of occurrence of such imminent demands. Based on the statistical data,processing device 202 may determine a likelihood reflecting a probability that a certain number of requests reflecting the imminent demands would be made within the time period before the candidate schedule time. - In some embodiments, when processing
device 202 receives the traffic data indicative of the current traffic conditions and the historical traffic conditions,processing device 202 may predict imminent traffic conditions based on the received traffic data. For example, based on the historical traffic conditions,processing device 202 may determine an average traffic condition (e.g., an average road condition or an average level of traffic congestion) within the time period before the candidate schedule time as the predicted imminent traffic conditions. - In some embodiments, when processing
device 202 further receives the weather data indicative of the current weather condition,processing device 202 may predict the imminent traffic conditions based on the weather data and the traffic data. For example, based on the weather data and average traffic condition as determined using the traffic data in the aforementioned embodiments,processing device 202 may adjust the average traffic condition in accordance with corresponding relationships between weather conditions and effects on traffic conditions (e.g., a raining condition may delay traffic speed for 20%, while a snow storm may delay traffic speed for 50%) to predict the imminent traffic conditions. - Referring back to
FIG. 8A , atstep 806,processing device 202 generates a schedule for a set of field professionals based on the current demand for on-site services. In some embodiments, the field professionals may be assigned with tasks to complete the on-site services.Processing device 202 may schedule the tasks in one or more time slots. For example, the current demand may include different numbers of requests in different types, andprocessing device 202 may select field professionals capable to complete the requested on-site services and schedule the tasks in their available times. - In some embodiments,
processing device 202 may determine the schedule for the set of field professionals based on the predicted demand for on-site services and locations associated with the set of requests. For example, as shown inFIGS. 3A-3B , a type of on-site service is requested at locations A, B, C, and D and a field professional (the first field professional P1) may be assigned to a task to complete such on-site services in locations A-D. In this example,processing device 202 may determine a schedule to complete the tasks in a temporal order of D→C→B→A because a predicted demand of such on-site service at location A may rise later that day. By arranging P1 to visit location A around the time when predicted demand of such on-site service rises, P1 may be able to respond to imminent demand of the same type of service around location A around the scheduled time. By doing so, total traveling time may be saved and faster response to customer requests may be achieved. - In some embodiments, when processing
device 202 receives the traffic data indicative of the current traffic conditions and the historical traffic conditions,processing device 202 may generate the schedule for the set of field professionals further based on the predicted traffic conditions. In the above example,processing device 202 may determine a schedule to complete the tasks in a temporal order of A→B→D→C after considering the traffic data becauseprocessing device 202 may determine that traffic conditions between C and D would be bad at a specific time of day and the determined temporal order may allow P1 to avoid travelling between C and D during that specific time. By doing so, a total driving duration of P1 may be minimized. - In some embodiments, when processing
device 202 further receives the weather data indicative of the current weather conditions,processing device 202 may generating the schedule for the set of field professionals further based on the current weather conditions. In the above example, the current weather may be snowing, andprocessing device 202 may determine a schedule to complete the tasks in a temporal order of A→D→C→B after considering the traffic data and the weather data because the traveling between A and B would be very slow due to the snow weather if route A→B→D→C is adopted. By adopting route A→D→C→B, P1 may avoid the current snow and road conditions may improve for traveling later that day. By doing so, a total driving duration of P1 may be minimized. - Referring back to
FIG. 8A , atstep 808,processing device 202 reserves in the schedule availability based on the predicted imminent demand for on-site services. To reserve availability in the schedule,processing device 202 may arrange tasks in a first time slot under full availability of field professionals, such as up to a predetermined percentage. If the first time slot is insufficient to cover all requested on-site services,processing device 202 may arrange tasks in a second time slot, keeping the first time slot under full availability of the field professionals. -
FIG. 8B is a diagram of a timeline reflecting an example schedule associated with tasks, consistent with the present disclosure. InFIG. 8B , two days of schedule are shown in the timeline. Five time slots are shown inFIG. 8B , in which time slot t1 spans from 8:00 to 16:00 inday 1, time slot t2 spans from 16:00 to 20:00 inday 1, time slot t3 spans from 8:00 to 12:00 inday 2, time slot t4 spans from 12:00 to 16:00 inday 2, and time slot t5 spans from 16:00 to an undetermined time inday 2. Inday 1,processing device 202 may receive the set or requests reflecting the current demand of the on-site service as described instep 802 inprocess 800A.Processing device 202 may predict imminent demand for the same type of on-site service may rise in t3 based on historical data, as described atstep 804. For example, the prediction may show that during t3, some urgent requests of the same type of on-site services would be made by customers, and such urgent requests has high desirability to be completed soon (e.g., completed in t4).Processing device 202 may schedule a task associated with a field professional available to complete the on-site service in t4, as described atstep 806. To cope with the potential rise of imminent demand,processing device 202 may reserve 20% of availability of field professionals in t4. That is, for all field professionals that may be assigned to complete the task in t4, the maximum percentage thereof to be assigned in t4 is 80%. If the current demand of the on-site service cannot be fully satisfied in t4,processing device 202 may start scheduling the task associated with field professionals available to complete the on-site service in t5. By doing so, if the urgent requests occur in t3, there would be 20% of field professionals available in t4 to complete the tasks. - In some embodiments,
processing device 202 may reserve availability in the schedule for certain field professionals. In some embodiments,processing device 202 may reserve availability of field professionals with a specific skill set, field professionals performing a specific task type, field professionals having a specific experience level, or field professionals conforming to any predetermined criteria. For example, referencing toFIG. 8B , the requests received atstep 802 reflecting the current demands may require a first skill and a second skill. Two types of field professionals having the respective skills may be assigned to complete the tasks. The imminent demands predicted atstep 804 may show that another service demand requiting the first skill may rise in t3 but no service demand requiring the second skill would rise in t3, based on historical data. In this circumstance,processing device 202 may only reserve availability of field professionals having the first skill in t4, and impose no restriction on assigning field professionals having the second skill in t4. - In some embodiments,
processing device 202 may reserve availability in a schedule for specific task types. For example, referencing toFIG. 8B , the requests received atstep 802 reflecting the current demands may include a first type of on-site service and a second type of on-site service. The imminent demands predicted atstep 804 may show that only the first type of on-site service may rise in t3 based on historical data. In this circumstance,processing device 202 may only reserve availability of field professionals performing the first type of on-site service in t4, and impose no restriction on assigning field professionals performing the second type of on-site service in t4. In some embodiments, the percentage (e.g., 80%) of the reserved availability may be determined based on a desired scheduling weight of the task, the details of which are described above. - In some embodiments,
processing device 202 may identify service zones associated with the predicted demand.Processing device 202 may further reserve availability in a schedule of a field professional who travels to an area associated with the identified service zones. A service zone may be a geographic region where a field professional provides on-site service. The area associated with the service zone may be a geographic region that includes, overlaps with, borders on, or locates close to the service zone. In some embodiments, the service zone may be a zone that includes sites, buildings, or addresses that are easy to access in between, such as a university campus, a hospital campus, a residential community, or a business district. The service zone may be predetermined and recorded as a data entry indatabase 154. In some embodiments, one or more field professionals may be associated with a specific service zone and provide on-site service in that specific service zone. In some embodiments, a field professional may be associated with one or more service zones for providing on-site services. Such associations may also be recorded or stored as data entries indatabase 154. In some embodiments, when a demand is predicted,processing device 202 may use an address of the predicted demand to identify a service zone where the address is in. -
FIG. 8C is a diagram of a map showing example service zones associated with on-site services, consistent with the present disclosure.FIG. 8C shows a base B of field professionals, four service zones S1-S4, a field professional P1 located near S1, illustrated as a round dot, and a field professional P2 located near S2, illustrated as a square dot. The base B may be the starting point (e.g., starting points inFIGS. 3A-3B ) of routes of field professionals traveling to destinations for providing on-site services. For example, a demand is predicted to occur at an address in service zone S1.Processing device 202 may use the address to identify S1 as the service zone.Processing device 202 may determine that P1 is traveling to an area associated with S1.Processing device 202 may then reserve P1's availability in P1's schedule. For example,processing device 202 may determine a probability that a demand will occur in S1 and a distance from P1's current location to S1. Based on the probability and the distance,processing device 202 may determine how much availability would be reserved for P1. For example, the higher the probability, the higher availability may be reserved. For another example, the shorter the distance, the higher availability may be reserved. - In some embodiments,
processing device 202 may identify a first service zone associated with a first predicted demand and a second service zone associated with a second predicted demand lower than the first predicted demand. For example, inFIG. 8C ,processing device 202 may identify S1 associated with a first predicted demand (e.g., a repairing service) and S2 associated with a second predicted demand (e.g., an installing service). The second predicted demand may have a lower probability to occur than the first predicted demand. - In the above embodiments, when the second service zone is more remote than the first service zone,
processing device 202 may determine a strategy for reserving availability of field professionals. In some embodiments,processing device 202 may avoid reserving availability in a schedule of a field professional traveling to an area associated with the first service zone, and reserve availability in a schedule of a field professional traveling to an area associated with the second service zone. For example, inFIG. 8C , for field professional P1, S2 is more remote than S1. Based on the distance between P1 and S1, the distance between P2 and S2, and the probabilities that a demand will occur in S1 and S2, respectively,processing device 202 may determine the strategy for reserving availability of P1 and P2. For example, it may takeP1 10 minutes to travel to S1 and one hour to travel to S2. In this example,processing device 202 may avoid reserving P1's availability in P1's schedule, and reserve P2's availability in P2's schedule instead, even though the probability that a demand will occur in S2 is lower than the probability that a demand will occur in S1. - In some embodiments, after reserving in the schedule the availability based on the predicted demand for the on-site services,
processing device 202 may further determine tools and spare parts required in tasks associated with predicted imminent demand. For example, inFIG. 8C , after reserving P1's availability in P1's schedule of t4 based on a prediction that an imminent demand (e.g., a repairing service) for on-site service in t4 might be requested in t3,processing device 202 may determine required tools and spare parts for the imminent demand. Corresponding relationships between services and tools and parts may be stored as data entries indatabase 154. In some embodiments, once the imminent demand is predicted,processing device 202 may inquiredatabase 154 to determine the corresponding required tools and spare parts. - After determining tools and spare parts required in the tasks associated with the predicted imminent demand,
processing device 202 may further confirm that the set of field professionals assigned to tasks associated with the current demand will have the tools and spare parts required in tasks associated with predicted imminent demand. For example, inFIG. 8D , when P1 is traveling in the area associated with S1 to perform on-site services requested in a current demand, processing device may determine that an imminent demand may occur in S1 and the required tools and spare parts needed for the imminent demand in S1.Processing device 202 may further confirm that P1 will have the required tools and spare parts for performing the imminent demand, in case P1 can be assigned to the imminent demand when it actually occurs. In some embodiments, to confirm so,processing device 202 may notify (e.g., by sending a message) P1 the imminent demand that P1 may be assigned to and the required tools and spare parts, and P1 may respond (e.g., by sending another message) to the notification to confirm whether P1 has those tools and spare parts. -
FIG. 8D is a flowchart of anexample process 800D for scheduling tasks to field professionals, consistent with the present disclosure. In some embodiments,server 152 may implementprocess 800D. For example,processing device 202 may receive data from I/O system 210 ornetwork interface 206, and then execute instructions or program codes stored inmemory interface 204 ordatabase 154, in which the instructions or program codes implement algorithms ofprocess 800D. The algorithms ofprocess 800D may be implemented as one or more ofanalysis module 441,forecasting module 442,planning module 443, orscheduling module 444.Process 800D includes the following steps or operations. -
Process 800D starts withstep 802 as described inFIG. 8A . Atstep 810,processing device 202 uses the historical data to identify events associated with irregular past demand for field professionals. In some embodiments, the historical data may be data associated with past services and may include statistics of numbers and types of demanded on-site services. Based on frequencies of past demanded on-site services,processing device 202 may determine a frequency for each type of demanded on-site services, and such frequency may be used to determine a probability for each type of the on-site services to be demanded. Such frequencies may be zone-specific or period-specific. For example, the frequencies may be calculated for each service zone (e.g., as shown inFIG. 8C ), for each hour of the day, or for each hour of the date in each service zone. Based on the statistics,processing device 202 may determine regular or irregular past demands. For example, if the probability of a type of on-site service is in a predetermined probability range (e.g., 40% to 60%),processing device 202 may determine that on-site service as regular. If the probability of a type of an on-site service is out of the predetermined probability range (e.g., lower than 40% or higher than 60%),processing device 202 may determine that on-site service as irregular. - In some embodiments, when processing
device 202 identifies irregular past demands, it may further determine whether an event is associated with those irregular past demands. For example,processing device 202 may obtain from an information source to search for the event. The event may be a traffic condition, a weather condition, a specific time period, or a public event (e.g., a road construction, a road closure, a road opening, a holiday, a big sports event, a concert, a big conference, a product promotion, a sales marketing event, etc.). For example,processing device 202 may identify that after a big snowstorm, past demands of utility repairing services may be irregularly high. For another example,processing device 202 may identify that before a holiday, past demands of Internet installing services may be irregularly high. - At
step 812,processing device 202 predicts event-related demand for on-site services based on the irregular past demand. For example, atstep 810, processing device may identify that, for a specific service zone (e.g., S3 inFIG. 8D ) in a specific time period of a day (e.g., t4 inFIG. 8C ), a regular probability of a repairing service is 40%, but the probability thereof raises to 75% if a big snow storm happens before the specific time period. In this example,processing device 202 may predict the event-related demand (i.e., related to the big snowstorm) for the repairing service to be 35%. In other words, the difference between the regular probability and the irregular probability reflects the demands caused by the big snowstorm. - After
step 812,process 800D proceeds to step 806 as described inFIG. 8A . Atstep 814,processing device 202 reserves in the schedule availability based on the predict event-related demand for on-site services. In the example set forth atstep 810, when processingdevice 202 determines that the storm-related demand for the repairing service is 35% atstep 812, it may reserve a percentage of availability for a field professional serving the specific service zone in the specific time period, if a big snow storm is predicted to happen before the specific time period. The percentage may be determined based on the event-related demand, such as 35%, 20%, or any other percentage that reflect the influence of the event. -
FIG. 8E is a flowchart of anexample process 800E for scheduling tasks to field professionals, consistent with the present disclosure. In some embodiments,server 152 may implementprocess 800E. For example,processing device 202 may receive data from I/O system 210 ornetwork interface 206, and then execute instructions or program codes stored inmemory interface 204 ordatabase 154, in which the instructions or program codes implement algorithms ofprocess 800E. The algorithms ofprocess 800E may be implemented as one or more ofanalysis module 441,forecasting module 442,planning module 443, orscheduling module 444.Process 800E includes the following steps or operations. -
Process 800E starts withstep 802 as described inFIG. 8A . In some embodiments, a memory (e.g.,database 154 or memory interface 204) may be configured to store historical data associated with past demand for field professionals in a geographical area. The historical data may be data associated with past performed services and may reflect statistics of the past demand, the field professionals performing tasks associated with the past demands, and environments or circumstances when those tasks were performed. The geographical area may be a region wherefield professionals 110 provide their services, such as the map inFIG. 8C . - In some embodiments, the memory may be configured to store historical traffic data in a geographical area. The traffic data is set forth in description related to step 802 in
FIG. 8A . The historical traffic data may be traffic data associated with past demands. For example, the historical traffic data of service zones S1-S4 as shown inFIG. 8C may be stored indatabase 154 and accessed viamemory interface 204. In some embodiments,processing device 202 may be configured to determine daily schedules of tasks based on the historical traffic data.Processing device 202 may determine the daily schedules of tasks based on the historical traffic data in a way similar to some embodiments ofstep 806 as described. - In some embodiments, the memory may be further configured to store historical performance data of the field professionals. Performance data may be data reflecting performances of the field professionals, such as time spent on completing the services, time spent on traveling, numbers of completed tasks in a workday, number of total working hours, reviews from customers, efficiency of completing the tasks, etc. The historical performance data of the field professionals may be their performance data associated with past demands.
Processing device 202 may be further configured to determine the daily schedules of tasks based on the historical performance data. For example, based on the historical performance data,processing device 202 may rank the field professionals according to customers' feedback on their past performances (e.g., by review scores). Based on the ranking,processing device 202 may determine daily schedules of tasks for the field professionals, such as assigning more tasks to field professionals with higher rankings than field professionals with lower rankings. - In some embodiments, the set of requests may be associated with a number of task types and each request may be associated with a different location. For example, processing device may receive multiple requests at
step 802, each of which may be associated with a task type (e.g., repairing, installing, replacing, maintaining, inspecting, etc.). Each of the requests may also be associated with a different location (e.g., in service zones S1-S4 inFIG. 8C ). - In some embodiments,
processing device 202 may receive environmental data indicative of future events that can affect certain locations in the geographical area. For example, the environmental data may be received from different data sources outsidesystem 100 that monitor the environmental conditions in areas associated with task locations. The environmental data may include information reflecting a known future event, such as a scheduled power blackout, infrastructure maintenance (e.g., a road construction work), an atypical weather condition, a public event (e.g., a parade), or the like. The future events may affect some locations in the geographical area where the historical data thereof is stored in the memory. - At
step 816,processing device 202 uses the historical data to identify service zones in the geographical area associated with predicted demand for specific task types. In some embodiments, the predicted demand may be the imminent demand determined atstep 804 inprocess 800A. The predicted demand may be associated with multiple task types (e.g., repairing, installing, replacing, maintaining, inspecting, etc.). The predicted demand may also be associated with on-site services at different locations.Processing device 202 may identify the service zones based on the locations. For example, the service zones may be S1-S4 inFIG. 8C . - In some embodiments, if processing
device 202 receives the environmental data atstep 802,processing device 202 may identify the service zones in the geographical area further based on the environmental data. For example, the environmental data may indicate that a snowstorm will occur in the geographical area and some service zones will be affected. The affected service zones may have higher demand of some task types (e.g., repairing). Based on such environmental data,processing device 202 may identify the service zones that might have higher demands due to the coming snowstorm. - At
step 818, based on the requests,processing device 202 determines a set of daily schedules of tasks for a set of field professionals. Step 818 may be implemented in a way similar to step 806 inprocess 800A. In some embodiments,processing device 202 may reserve capacity to account for predicted demand for a certain daily schedule with a task associated with a location in proximity to an identified service zone. The capacity may reflect the capability and resources available to complete the requested on-site services. For example, the capacity may include availability of field professionals, tools, spare parts, vehicles, etc. In one embodiment,processing device 202 may predict that the likelihood of a task in that area is greater than a threshold, accordingly, a field professional may be sent to an identified service zone even if there is no pending task or a scheduled service in that area. - In some embodiments,
processing device 202 may determine the schedule for the field professionals under full capacity. For example, referencing toFIG. 8C , service zones S3 and S4 may be identified atstep 816 where some demands having the specific task types are predicted to occur.Processing device 202 may reserve availability of field professional P1 who has a schedule to complete a task in a location proximate to S1 to account for the predicted demand. In other words, in anticipation that predicted demand in S1 will be requested,processing device 202 may reserve P1's availability in case those predicted demands are actually requested in S1, in whichprocessing device 202 may assign P1 to respond to the predicted demands. In some embodiments, besides availability of field professionals,processing device 202 may further reserve other capacity or resources in anticipation of responding to the predicted demands, such as extra tools, spare parts, vehicles, etc. - At
step 820, usingnetwork interface 206,processing device 202 provides directional instructions to a field professional assigned to the certain daily schedule to a location in proximity to a service zone. For example, referencing toFIG. 8C , field professional P2 is assigned to a daily schedule to perform a task at a location proximate to S2 where demands in S2 are predicted to occur in the future.Processing device 202 may provide directional instructions to P2 usingnetwork interface 206. In some embodiments, P2 may receive the directional instructions viacommunication device 180A. In some embodiments, P2's vehicle (e.g., an autonomous vehicle) may receive the directional instructions automatically without P2's intervention. The directional instructions may be instructions that are informative for the field professional to complete tasks associated with the predicted demands. - In some embodiments, the directional instructions to the location in proximity to the service zone may include at least one of a waypoint, an address, and a driving route. For example, referencing to the example at
step 820, the driving route may be a calculated route for P2 to drive to an address of a decimation in S2 where a predicted demand is actually requested, and the waypoint may be a location in the driving route. - In some embodiments,
processing device 202 may assign a specific field professional to the certain daily schedule based on the predicted demand for specific task types in the identified service zone and known capabilities of the specific field professional. In some embodiments, the specific field professional may have a higher qualification or a wider range of skills than a normal field professional. For example, referencing toFIG. 8C , some demands having the specific task types (e.g., inspecting and installing) may be predicted to occur in S2 atstep 816. P2 may be known to have capabilities to perform tasks of inspecting and installing. Another field professional P3 (not shown) who is near P2 may be known to have capabilities to perform tasks of installing only. Based on such information,processing device 202 may assign to P2 the daily schedule of completing tasks at a location proximate to S2 in case the predicted demands having inspecting and installing services are actually requested. Such assignment may achieve a goal that, when the predicted demands are actually requested, P2 may respond to a wider range of tasks than P3. - In some embodiments,
processing device 202 may confirm that the field professional assigned to the certain daily schedule is capable to provide the specific task type in the identified service zone. In some embodiments, referencing to the previous example,processing device 202 may assign P2 daily schedule of completing tasks at a location proximate to S2. To confirm that P2 is capable to provide the inspecting and installing service types in S2,processing device 202 may inquire (e.g., by sending a message) P2 whether P2 has the capability to complete the inspecting and installing service in S2. In some embodiments,processing device 202 may further inquire P2 whether P2 has required tools and spare parts for the inspecting and installing service in S2. P2 may respond (e.g., by sending another message) to the inquiry to confirm. - In some embodiments, when a daily schedule of another field professional has unexpectedly become available,
processing device 202 may be configured to direct the another field professional to an identified service zone even when no specific request from locations in proximity to the identified service zone has been received. For example, referencing toFIG. 8C , a third field professional P3 (not shown) may unexpectedly become available, such as due to canceled requested demands in P3's daily schedule. In this example,processing device 202 may have identify S1 and S2 as service zones that might have predicted demands atstep 816.Processing device 202 may then direct P3 to S2 (or S1), even at a time when processingdevice 202 does not receive any specific request for on-site services at locations proximate to S2 (or S1). By doing so, when the predicted demands in S2 (or S1) are actually requested, more field professionals will be available to be assigned to the predicted demands, and the travel time for the assigned field professional (e.g., P3) may be shortened. - In some embodiments,
processing device 202 may assign at least one location-agnostic task to the field professional to fill the reserved capacity when no additional on-site tasks are scheduled in the service zone. The location-agnostic task is a task that the field professional can perform remotely from a customer's place, such as a technical support session (e.g., a call, a video chat, an online chat, etc.). For example, referencing toFIG. 8C , when no additional on-site tasks are scheduled in S2 (e.g., the predicted demands in S2 are not actually requested), P2 may become idle becauseprocessing device 202 may previously reserve P2's availability. To fill P2's reserved availability,processing device 202 may assign the location-agnostic task to P2, such that P2 may be utilized. - D. Scheduling Tasks
- Disclosed and claimed is a system that may implement task scheduling for field professionals to complete a service in a single visit (referred to as “first-time technical services”) by determining requirements for completing the service based on comparison of attributes of services. The system may receive a request for a service, determine at least one attribute of the requested service, and compare the determined attribute to other services to determine a requirement for completing the service in a single visit. The at least one attribute may include, for example, information on the equipment, information on the infrastructure, information on the residence, information on environmental conditions, or any other information needed to perform the service. The requirement may include, for example, tools, spare parts, qualifications, vehicles, or any other physical object or precondition needed to perform the service. In some embodiments, the system may be implemented as
task scheduling unit 150. -
FIG. 9A is a flowchart of anexample process 900A for scheduling first-time fix services, consistent with the present disclosure. In some embodiments,server 152 may implementprocess 900A. For example,processing device 202 may receive data from I/O system 210 ornetwork interface 206, and then execute instructions or program codes stored inmemory interface 204 ordatabase 154, in which the instructions or program codes implement algorithms ofprocess 900A. The algorithms ofprocess 900A may be implemented as one or more ofanalysis module 441,forecasting module 442,planning module 443, orscheduling module 444.Process 900A includes the following steps or operations. - At
step 902,processing device 202 stores a plurality of records reflecting characteristics associated with completing a set of technical services indatabase 154. The technical services may include any combination of any number of on-site services or remote services. For example, the on-site services may include any of installing, replacing, repairing, or inspecting products or services of any of water, sewage, electricity, gas, heat, Internet, telephone, mobile communications, or the like. The remote services may include any of telephone calls, video chats, text messages, mobile application communications, or any other technical or support services that may provide answers to a customer's questions or instructions to solve a problem. - In some embodiments, the characteristics may include any combination of any number of attributes, requirements, details, statistics, feedbacks, or any information that are associated with completing the set of the technical services. For example, the characteristics may include any combination of any number of a specific tool, a spare part, a vehicle, a qualification of a field professional, a specific back-end service (e.g., an internal communication line between the field professional and server 152), or any physical object or requirements associated with completing a service.
- In some embodiments, the records may be implemented as database entries in
database 154. For example, in those database entries, relationships between the characteristics and the technical services may be stored as relational database entries. In some embodiments, information in each record may be derived from historical experience of completing each of the technical services. The information in a record may be implemented as a portion of a database record, such as an attribute of a relational database record indatabase 154. The historical experience may include any data reflecting statistics, performance records, customer reviews, customer feedbacks, comments, scores, or any previously stored data related to completing the technical services. Consistent with the present disclosure, the information in each record may be derived by using machine learning algorithms that identify patterns in the records of completed tasks. For example, the patterns may be indicative of skill sets of field professionals that have completed certain tasks in a single visit. In some embodiments, each services may include data reflecting multiple services completed by multiple field professionals. - In some embodiments, the information in each record may be derived from the historical experience using a statistical technique. For example, when the historical experience includes quantified data (e.g., scores, statistics, or the like), the derived information may include a statistic value of the information, such as an average score, an average value, a standard error, or the like. For example, when the historical experience includes a customer review score, the derived information may be an average review score. For another example, when the historical experience includes multiple time periods for completing the service, the derived information may be an average completion time for the service and an estimated fluctuation range determined based on a standard error of the multiple time periods.
- In some embodiments, when the historical experience includes non-quantified data, the information may be derived using a synthesis technique. For example, when the historical experience includes textual data (e.g., textual comments, summaries, memoranda, or the like), the information of the records may be key elements of the textual data derived using a natural language processing technique. For another example, when the historical experience includes textual data, the information may be derived as an aggregation of the textual data. The aggregation of the textual data may include, for example, simple aggregation (e.g., concatenating) of the textual data, or merging (e.g., by removing duplicate fields) of the textual data.
- In some embodiments, the information in the records may be derived from feedback from a set of field professionals (such as field professionals 110). For example, when a field professional did not complete a service in a single visit, the field professional may provide feedback explaining one or more reasons why he or she could not complete the service in a single visit. The feedback may include quantized or non-quantized data. For example, the feedback may be textual comments drafted by the field professionals, such as via a graphical user interface (GUI) of
communication device 180A. For another example, the field professional may be provided a list of selections to identify the reason why he or she could not complete the service in a single visit (e.g., via the GUI ofcommunication device 180A), and the feedback may be the item selected by the field professional. For another example, each reason why the service cannot be completed in a single visit may be pre-assigned with a code, and the feedback may include the code provided by the field professional (e.g., via the GUI ofcommunication device 180A). - In some embodiments, the derived information may also be stored as database entries in
database 154. In some embodiments, the derived information may be stored as separate data entries from the plurality of records. In some embodiments, the derived information may be integrated into the plurality of records, such as additional attributes of the database entries of the records. - Referring back to
FIG. 9A , atstep 904,processing device 202 receives a request for a new technical service associated with a location. In some embodiments,processing device 202 may receive the request may via thenetwork interface 206. The request may be sent fromcommunication device 180C by a customer, or sent from customer service unit 120. The new technical service may be one of the set of the technical services atstep 902. - At
step 904,processing device 202 assigns a field professional to perform the new service when processingdevice 202 has determined from information in the database a likelihood that the field professional will complete the new technical service in a single on-site visit at the location. In some embodiments,processing device 202 may determine the likelihood from the derived information atstep 902. The likelihood may be determined using multiple techniques. - In one embodiment,
processing device 202 may determine the likelihood using a statistical technique. For example, by statistics of the characteristics associated with completing the new service and statistics of completing the same type of service under the same or similar characteristics by the field professional,processing device 202 may determine a likelihood based on a calculation of the two statistics. For example, when the statistics of the characteristics show that an average completion time for the type of the new service is 60 minutes, and the statistics of the field professional show that his or her an average time for the type of the new service is 50 minutes,processing device 202 may determine a likelihood that the field professional will complete the task within 60 minutes with a predetermined confidence level (e.g., 95%). - In another embodiment,
processing device 202 may determine the likelihood using a machine learning mode. For example, a neural network model (e.g., a deep learning model) may be created and set with initial parameters. Based on statistics of the field professional completing the type of the new service, locations, and characteristics of the technical service under which the field professional completed the same type of the new service, the neural network model may be trained, and the initial parameters may be updated. Using the trained neural network model, by inputting the characteristics of the same type of the technical service, the location of the technical service, and the name of the field professional, the trained neural network may output a likelihood that the field professional will complete the technical service in a single on-site visit at the location. - In some embodiments,
processing device 202 may prioritize customer satisfaction by assigning a field professional having a higher likelihood to complete the customer's request of service in a single visit. For example,processing device 202 may determine a first likelihood that a first field professional will complete the new technical service in a single on-site visit at the location.Processing device 202 may determine a second likelihood that a second field professional will complete the new technical service in a single on-site visit at the location, and the second likelihood is greater than the first likelihood.Processing device 202 may then assign the second field professional to perform the new service. - In some embodiments, the information derived from the plurality of records at
step 902 may include information obtained from one or more details associated with completing the requested service. The details may include customer inputs, logistics information, reminders, practice tips, check lists, key instructions, guidelines, or any informative material that would assist completing the requested service or getting the field professional prepared. In some embodiments, if the field professional knows the detail prior to performing the service, his or her likelihood to complete the requested service in a single on-site visit may increase. - In some embodiments,
processing device 202 may further identify at least one detail from the plurality of records. Upon receiving the request for the new technical service,processing device 202 may obtain information associated with the at least one detail. In some embodiments, the detail may be stored as separate data entries from the plurality of records. In some embodiments, the details may be integrated into the plurality of records, such as additional attributes of the database entries of the records. - In some embodiments,
processing device 202 may obtain information associated with the at least one detail by retrieving information about the location associated with the new technical service from at least one database (e.g., database 154). For example, the information about the location may include the type of infrastructure in the area, such as water, sewage, electricity, gas, heat, Internet, telephone, mobile communications, or the like. - In some embodiments,
processing device 202 may obtain information associated with the at least one detail by enquiring a user associated with the request. For example, if the technical service involves a problem with water supply,processing device 202 may send a request for detail to the user, asking the user if the location of the service has access to a water stopcock. For another example, if the technical service involves a problem with Internet connection,processing device 202 may send a request for detail to the user, asking the user if the user has a working modem. For another example, if the technical service involves a problem with electricity,processing device 202 may send a request for detail to the user, asking the user if the user has an active account with the utility provider. - At
step 906,processing device 202 may assign field professional to perform the new service further based on the obtained information associated with the at least one detail. For example, the detail may include a type of infrastructure in the location of the service, and working on the type of infrastructure may require a specific qualification (e.g., a certificate of electrician).Processing device 202 may inquiredatabase 154 to obtain only the field professionals with the specific qualification, and assign the field professional among them to perform the new service. In some embodiments,processing device 202 may further identify from the plurality of records a set of attributes for completing performance the new technical service in a single on-site visit. The set of attributes may include, for example, information on the equipment, information on the infrastructure, information on the residence, information on environmental conditions, or any other information needed to perform the service. - At
step 908,processing device 202 may receive information that may affect the likelihood of the assigned field professional to complete the customer's request of service in a single visit. The information may include real-time information about a condition of object associated with the scheduled service, or the current status of parts (e.g., tools) that the field professional has currently available in his/her inventory. For example, the field professional may be a nurse scheduled to do a home visit to do dialysis and the information may include updates on a health condition of a patient. The information may be received in response to an inquiry triggered by processingdevice 202 or independently by the customer. - At
step 910,processing device 202 may determine if, in view of the received information, the likelihood of the assigned field professional to complete the customer's request of service in a single visit is still greater from a threshold. Step 910 may take place after the field professional was assigned and before the date and time that the task is scheduled for. For example, the information may be received on the same day as the scheduled task. Alternatively, the information may be received one or more days before the scheduled task. When the likelihood is below the threshold,processing device 202 may assign a different field professional with higher likelihood to complete the customer's request of service in a single visit. When the likelihood is greater the threshold,processing device 202 may continue with the same field professional and wait for additional information that may change the likelihood. -
FIG. 9B is a flowchart of anexample process 900B for scheduling first-time fix services, consistent with the present disclosure. In some embodiments,server 152 may implementprocess 900B. For example,processing device 202 may receive data from I/O system 210 ornetwork interface 206, and then execute instructions or program codes stored inmemory interface 204 ordatabase 154, in which the instructions or program codes implement algorithms ofprocess 900B. The algorithms ofprocess 900B may be implemented as one or more ofanalysis module 441,forecasting module 442,planning module 443, orscheduling module 444.Process 900B includes the following steps or operations. - At
step 920,processing device 202 receives a request for an on-site service at a selected location. Step 920 may be implemented in a similar way to step 904. Atstep 922,processing device 202 identifies a set of attributes associated with the requested on-site service. The set of attributes may include, for example, information on the equipment, information on the infrastructure, information on the residence, information on environmental conditions, or any other information needed to perform the service. - In some embodiments,
processing device 202 may identify the set of attributes based on the location associated with the on-site technical service. For example, based on the location, processing device may inquiredatabase 154 for any information about the address of the location, the infrastructure associated with the location, the current environmental conditions (e.g., weather conditions or traffic conditions) near the location, the equipment available to be used at the location, or the like. In some embodiments, the set of attributes may include information about a residence of a user associated with the request. For example, different residences may need different equipment to complete the requested services, and based on the residence of the user,processing device 202 may determine the information about the equipment available to be used at the residence. - In some embodiments,
processing device 202 may determine the set of attributes based on retrieved information about a user associated with the request. In some embodiments, the information about the user may be stored indatabase 154 and retrievable using the received request. For example, the request may include a name, an address, a phone number, an email address, or any identification information of the user. Using that identification of the user,processing device 202 may retrieve the information about the user fromdatabase 154. The information about the user may be any informative data associated with the user, such as an age, a gender, a job title, a block-out on-site visit time, a block-out date, or any other data related to the person. In some embodiments, the set of attributes may include information about an age of the user. For example, when the requested service involves a problem with the Internet, a user in a specific age range (e.g., a very young age or a very old age) might have a higher likelihood of misdescribing the problem or misidentifying the cause of the problem. Based on the information about the age of the user, the field professional may have a warning to look for other possible problems or causes, which may help to complete the on-site service in a single visit. - In some embodiments,
processing device 202 may determine the set of attributes based on a type of service requested. For example, the type of services requested may include installing, replacing, repairing, or inspecting products or services. In some embodiments, the set of attributes may include information about tools and spare parts needed to perform the type of service requested. For example, if the type of the service requested is installing a new device, the attributes may include information about the new device. If the type of the service requested is repairing a device, the attributes may include information about tools and spare parts for repairing the device. - In some embodiments,
processing device 202 may determine the set of attributes based on environmental data. In some embodiments, the environmental data may be data representing a condition near the location of the requested device or along a route to the location. For example, the environmental data may include data representing a weather condition, a traffic condition, a public event (e.g., a scheduled road close), or any other condition that might affect the performing of the requested service. In some embodiments, the set of attributes may include information about predicted weather conditions at the time of providing the service. For example, when the requested service requires working outside, and if a storm is coming at the time of providing the service near the location of the service,processing device 202 may schedule the service to another time. For another example, when the requested service requires travelling to a remote residence during peak hours and is highly likely to miss the requested time,processing device 202 may suggest the user to schedule the service to another time. In some embodiments, the set of attributes may include information about predicted light conditions at the time of providing the service. For example, when the requested service requires working outside and the time of providing the service is after dawn,processing device 202 may indicate a field professional assigned atstep 926 to bring additional tools for lighting. - Referring back to
FIG. 9B , atstep 924,processing device 202 uses the information stored in a memory (e.g., database 154) and the set of attributes to identify at least one requirement for completing the on-site service in a single visit. The requirement may include, for example, tools, spare parts, qualifications, vehicles, or any other physical object or precondition needed to perform the service. Atstep 926,processing device 202 assigns a field professional to a task of providing the on-site service. In some embodiments, the assignment may satisfy the identified at least one requirement. For example, when the attributes identified atstep 922 include a required specific qualification to provide the on-site service, the assigned field professional may have the specific qualification. For another example, when the attributes identified atstep 922 requires a specific equipment (e.g., a special lifter vehicle), the assigned field professional may be one that can operate the specific equipment. - At
step 928,processing device 202 provides, usingnetwork interface 206, information for directing the field professional to the selected location. For example, when the attributes of the identified atstep 922 include a residence that requires a specific equipment, the assigned field professional may be provided with information to bring the specific equipment. For another example, when the attributes of the identified atstep 922 include an age of the user which falls into a specific range, the assigned field professional may be indicated to consider other possible problems or causes of problems. For another example, when the attributes of the identified atstep 922 include a weather condition not suitable for outside work, the assigned field professional may be indicated to be rescheduled to another time. - E. Identifying Causes for Unscheduled Tasks
- Services provided by field professionals often have required response times set by task urgency or customer priority. It may be difficult, however, to respond to the requests within the expected response time. This can occur, for instance, if a task must be completed within a week of a customer making a request, but the field professional who is capable of performing the task is on vacation for a month. The following disclosure describes methods and systems for implementing an optimization dashboard that determines causes of unscheduled tasks of field professionals, enabling a reduction in the number of future unscheduled tasks. The system includes a memory, a network interface, and a processor connectable to the network interface. When scheduling tasks to field professionals, each task may be associated with constraints, such as the duration of a task, work hours, travel distance, and field professional skillset. The system may identify a plurality of tasks that were not scheduled within a predefined period and determine a common cause for them not to be scheduled within the predefined period. Thereafter, the system may present a recommendation for reducing the number of future unscheduled tasks. The recommendation may include, for example, changing a task constraint or hiring additional field professionals.
-
FIG. 10 is a diagram illustrating ascheduling engine 1010 that receives requests and schedules corresponding tasks. Thescheduling engine 1010 may, for example, be implemented using thetask scheduling unit 150.Scheduling engine 1010 may be implemented in hardware, software, or a combination of both.FIG. 10 illustrates a plurality of requests, Request 1-Request i. Some requests, such as Request 1-Request 5, are fromDate 1. Similarly, Request 6-Request 8 are fromDate 2,Request Date 3, and Request i is from Date j. Thescheduling engine 1010 processes the requests in relation to a variety of constraints, including distance, time, geographic, service, and field-professional related constraints. After processing the requests, thescheduling engine 1010 schedules tasks in response to each of the requests. The tasks may be schedule within the expected period of time or outside the expected period of time. For instance, Task 1-Task 3 andTask 5 are all expected to be completed within the period of time of seven days. However, due to the constraints,Task 4 is expected to be completed thirteen days after the request. Since this is longer than seven days, thescheduling engine 1010 may identifyTask 4 as it is not scheduled to be completed within the expected period of time. Similarly, whileTask 9 is scheduled within two days of the corresponding request,Task 10 is scheduled eleven days after the corresponding request. Therefore, since at least two requests were not scheduled with tasks expected to be completed within an expected period of time, a determination is made of a common cause of why the expected period of time was not satisfied. A person skilled in the art would recognize that the above example is simplified, and an actual scheduling engine may involve substantially more requests, constraints, and tasks. -
FIG. 11 is a flowchart of anexample process 1100 for scheduling tasks to field professionals, consistent with the present disclosure. In some embodiments,server 152 may implementprocess 1100. For example,processing device 202 may receive data from I/O system 210 ornetwork interface 206, and then execute instructions or program codes stored inmemory interface 204 ordatabase 154, in which the instructions or program codes implement algorithms ofprocess 1100. The algorithms ofprocess 1100 may be implemented as one or more ofanalysis module 441,forecasting module 442,planning module 443, orscheduling module 444.Process 1100 includes the following steps or operations. - At
step 1102,processing device 202 receives, from thenetwork interface 206, a set of requests for services. The set of requests may be any number of requests and may originate from clients, managers, field professionals, or from an automated system. The services may include any combination of any number of on-site services or remote services. For example, the on-site services may include any of installing, replacing, repairing, or inspecting products or services of any of water, sewage, electricity, gas, heat, Internet, telephone, mobile communications, or the like. The remote services may include any of telephone calls, video chats, text messages, mobile application communications, or any other technical or support services that may provide answers to a customer's questions or instructions to solve a problem. - At
step 1104,processing device 202 schedules a set of tasks, in response to the set of requests for services. Theprocessing device 202 may also establish a period of time within which the task must be accomplished. Some tasks may be expected to be completed within a period of time from when a corresponding request was received. In other words, some tasks may need fast or slow response times, such that they need to be completed quickly after receiving a request for service, or may be delayable. Management may set the expected completion period based on a variety of factors, such as urgency of the request, availability of resources, customer priority, or risk of additional damage. The period of time may be a set time, such as 9:00 on Friday the 23rd, or it may be a time limit, such as within two hours of request receipt. When scheduling, theprocessing device 202 may establish the schedule based on scheduling constraints. Scheduling constraints may be rules of when a task may or may not be scheduled. For instance, if a field professional having a necessary skillset is on vacation until the end of the month, theprocessing device 202 may avoid scheduling a particular task while the professional is away. Alternatively, the scheduling constraints may include work hours, holidays, part and equipment availability, travel time, task duration, and the like. - At
step 1106,processing device 202 determines a common cause of why at least two requests were not scheduled within a corresponding expected period of time. A common cause may be a reason, shared among multiple requests, explaining why the requests were not scheduled within a certain period of time. For instance, if a request is received to repair a customer's cable television, and the task of repairing the cable television is not scheduled to occur within a company's expected period of time of two hours because all available field technicians were already performing or scheduled to perform other tasks,processing device 202 may record the first occurrence of the unscheduled task. Should a similar situation occur again based on a second request,processing device 202 may identify the common cause as being not enough field professionals. Similarly,processing device 202 may identify a common cause of insufficient replacement parts, database errors, vehicle maintenance, and the like. Alternatively,processing device 202 may identify that the constraint is too limiting, such that a strict scheduling constraint should be relaxed. By identifying common causes of tasks not being scheduled within a period of time,processing device 202 may, atstep 1108, enable reducing the number of future unscheduled tasks. - In some embodiments, the set of requests may be received from a plurality of users. Furthermore, each of the requests may be associated with an on-site service to be provided in a different location. That is,
many users 130 may make requests for field professional service by contacting the customer service unit 120. Thus, the set of requests may contain a service and a location where the service must be provided, enabling more accurate scheduling of tasks as well as knowledge of scheduling constraints. - Scheduling constraints may include distance, time, geography, service, or field professional related constraints. As an example of distance constraints, a company may have a policy that its field professionals will only travel to locations within three hours of travel during the morning hours, so as to reduce travel costs and burden on field professionals. Alternatively, scheduling may be constrained by time of day considerations, such that tasks that typically take three hours to complete or tasks with a wide range of durations will not be scheduled near the end of a day. Furthermore, a company may prohibit its field professionals from traveling to certain high crime areas during nighttime, thereby constraining the schedule. Services that require heavy outdoor labor may be constrained to early morning or late evening scheduling. Finally, a schedule may be limited by capabilities of specific field professionals. For instance, if a particular service requires a master plumber and Rob is the only master plumber employed by a company, scheduling of a service that requires a master plumber may be constrained by Rob's vacation and work schedule.
- Scheduling constraints may also include at least two of a distance-related constraint, a time-related constraint, a geographic-related constraint, a service-related constraint, and a field-professional-related constraint. For instance, a scheduling constraint may be that certain field professional is only able to complete tasks within a two-hour travel radius of a main office. Alternatively, for example, a refinery requiring a pneumatic mechanic may only be shut down for maintenance at night. In such a case, there would be a time-related constraint as well as a service-related constraint of a certain skill set.
- The scheduling constraints may be inputted by a user. The user may be an administrator of the system, who may use the I/
O system 210 to input scheduling constraints. The scheduling constraints may be entered along with the set of requests. Alternatively, the scheduling constraints may be entered asynchronously from the set of requests, for example, being saved for use in scheduling a future set of tasks, or after receiving a set of requests for services. - Alternatively, scheduling constraints may be generated by an Artificial Intelligence (AI) module. The AI module may be part of the
scheduling module 444, or in a different system. The AI module may, for instance, determine scheduling constraints from past schedules, sets of requests, sets of tasks, or scheduling constraints. For instance, if only one field professional is able to service elevators, and that one field professional is unable to work after noon on Fridays, the AI may determine that elevators may not be serviced on Friday afternoon. As another example, if no field professionals are able to keep appointments in the city after 4:00 due to traffic, the AI may create a scheduling constraint that tasks will not be scheduled in the city after 4:00. - The set of requests may be associated with different task types. In this case, the processor may be configured to determine a period of time for task completion for each request based on the associated task type. For example, in the case of a medical field professional, if a service request of taking a blood sample is made, the medical field professional may be expected to complete this task within three days. However, if a service request is made because a patient has the flu, the medical field professional may be expected to complete the task within one day. Thus, the
processing device 202 would determine the period of time for task completion for each of the requests in the set of requests. Furthermore, the processor may be configured to determine a common cause why a first request associated with a first period of time and a second request associated with a second period of time longer than the first period of time, were not scheduled with tasks expected to be completed within their corresponding periods of time. For example, if the medical field professional was unable to draw blood within three days, and also was unable to treat the flu within one day, the system may determine that neither request was scheduled within the expected period of time because the medical field professional was ill or on vacation. This could help identify if more medical field professionals are needed. - The system may determine a plurality of causes for the set of requests. A common cause may be associated with at least two of the scheduling constraints. Each cause may be associated with a number of requests that were not scheduled with tasks expected to be completed within corresponding periods of time. For example, requests that were not scheduled with tasks expected to be completed within the period of time may have the same constraint that the requests require work done more than a three-hour drive away. Furthermore, the requests may also have the same constraint that work must be completed while a facility is shut down for maintenance. Thus, the common cause may be associated with at least two scheduling constraints. The processor may also identify a main cause of why some requests were not scheduled with tasks expected to be completed within corresponding periods of time, and also cause an issuance of a notification associated with the main cause. For example, a main cause may be a constraint that is too restrictive and prevents scheduling a set of tasks unnecessarily. For instance, a constraint may be that no tasks may be scheduled after 1:00, and no HVAC servicing may be done without Mackenzie. Both of these constraints may lead to a number of requests not having scheduled tasks expected to be completed within a corresponding expected period of time. The processor may therefore determine that the constraint on no tasks being scheduled after 1:00 is the main cause of why some requests were not scheduled with tasks expected to be completed within the corresponding period of time. The processor, therefore, may issue a notification alerting a user to the main cause. Alternatively, for example, the processor may determine that constraints inputted on January 7 are too restrictive, and notify a user of such a finding.
- After determining a common cause of why at least two requests were not scheduled with tasks expected to be completed within the period of time, the processor may present a recommendation for reducing the number of future unscheduled tasks. This recommendation may be displayed, for instance, as part of the service optimization suite architecture shown in
FIG. 5 . Thepresentation layer 502 may display a recommendation. For instance, thepresentation layer 502 may display a suggested schedule based on the determined recommendation that has less unscheduled tasks compared to an existing schedule. The suggested schedule may cover any period of time, such as a day, week, or month. This suggested schedule may have different scheduling constraints than the original schedule. For example, the recommendation may include a suggestion to change at least one of the scheduling constraints. That is, the recommendation may suggest removing limitations on the length of a workday, driving range, or geographic area. Alternatively, the recommendation may be to move constraints in time. For example, the recommendation may be to constrain tasks in a city to afternoon hours rather than morning hours, thus avoiding traffic. In some embodiments, the recommendation may include a suggestion to hire additional field professionals. If the system determines that a particular field professional is frequently needed at two facilities, many miles apart, and travel time causes constraints on the field professional's ability to serve both sites, the system may recommend hiring an additional professional. Furthermore, if a particular field professional has a unique skillset that others do not, the system may include a description of the qualifications needed for new field professionals. - Additionally, the processor may also be configured to determine how many of the requests would have been scheduled to tasks expected to be completed within the predefined period of time if the recommendation had been implemented before. When displayed, the recommendation may include a metric showing the reduction in unscheduled tasks. The number of requests that would have been scheduled to tasks may be calculated on past, present, or future schedules. Furthermore, the number of requests may be calculated for any defined period of time, such as a month.
-
FIG. 12 is a flowchart of aprocess 1200 for initiating an action due to unscheduled tasks. Atstep 1202, the system receives a request for a service and, atstep 1204, the system schedules a task based on scheduling constraints. Atstep 1206, the system determines if the task was scheduled within the expected period of time. Ifstep 1206 is Yes, the system waits to receive the next request for a service. Ifstep 1206 is No, the system stores details of the request atstep 1208. The system thereby determines the number of requests that were not scheduled with tasks expected to be completed within the period of time. Atstep 1210, the system determines if there are more than two unscheduled tasks. Data used in this determination may be stored in thedatabase 154. The number of requests may cover any period of time. Furthermore, the period of time may be in the past, or the period of time may be in the future, such that the number of requests not scheduled may be analyzed and potentially corrected before the period of time elapses. For instance, if a schedule for the next week has already been set, the number of requests that were not scheduled with tasks expected to be completed may still be calculated, thus giving a manager the opportunity to reshape the schedule to avoid or reduce unscheduled tasks and better serve customers. Ifstep 1210 is Yes, the system may proceed to step 1212 to determine a common cause of the unscheduled tasks. Ifstep 1210 is No, the system may proceed to step 1214 without determining a common cause. - The system may also initiate an action when the determined number of requests is greater than a predetermined threshold. For example, a company may set a threshold of five unscheduled tasks for a month. At
step 1214, the system determines if the number of unscheduled tasks is greater than the threshold. Ifstep 1214 is No, the system returns to wait for the next request. However, ifstep 1214 is Yes, the system may initiate an action atstep 1216. For example, the action may be initiated if there have been more than five unscheduled tasks in the past month. Alternatively, the action may be initiated if the schedule for the next month includes too many requests that were not scheduled with tasks expected to be completed within the period of time. The system may then return to step 1202 to receive a new request, or, the system may wait for a user interaction depending on the initiated action. - The initiated action may include issuance of a warning message. The warning may be displayed, for instance, as part of the service optimization suite architecture shown in
FIG. 5 . The warning may include data concerning how many requests were not scheduled with tasks expected to be completed within the period of time. Alternatively, the action may include automatically changing a scheduling constraint. For example, the method may result in a constraint on work hours to be changed automatically, such that field professionals work more hours each day in order to accommodate a surge in requests for services. - F. Scheduling Location-Based and Location-Agnostic Tasks
- Sometimes, services performed by field professionals require the field professional to physically visit a site to complete a task such as replacing equipment. These types of tasks may be called location-based. Other times, a field professional task may be completed remotely, without the field professional visiting a site in person, such as remotely establishing an internet connection. These tasks may be called location-agnostic. Furthermore, in some situations, a field professional may lose valuable time traveling between sites, for instance, during high volume traffic times. Rather than this time being lost, the field professional could perform a remote task until the condition clears, maximizing productivity. The following disclosure describes methods and systems that enables users to assign location-based tasks and location-agnostic tasks to a field professional. The system includes a memory, a network interface, and a processor connectable to the network interface. The system may therefore schedule tasks that are location-agnostic and tasks that are location-based in such a way so as to optimize field professional time. For instance, the system may schedule a location-agnostic task chronologically between two location-based tasks, using predicted traffic delays, to reduce wasted time. In some embodiments, the system may be implemented as
task scheduling unit 150. -
FIG. 13 is a flowchart of anexample process 1300 for a scheduling method for field professionals, consistent with the present disclosure. In some embodiments,server 152 may implementprocess 1300. For example,processing device 202 may receive data from I/O system 210 ornetwork interface 206, and then execute instructions or program codes stored inmemory interface 204 ordatabase 154, in which the instructions or program codes implement algorithms ofprocess 1300. The algorithms ofprocess 1300 may be implemented as one or more ofanalysis module 441,forecasting module 442,planning module 443, orscheduling module 444.Process 1300 includes the following steps or operations. - At
step 1302, a set of first requests for on-site assistance from a first set of users is received. The set of requests may be one or more requests, and may be received directly from users, for example, via an online request, telephone call, and the like. Alternatively, the requests may be entered by a customer service unit 120 on behalf of a user, or the requests may be entered directly by a manager, director, or field professional upon seeing a need for on-site assistance. - At
step 1304, a second set of requests from a second set of users is received. The second set of users may be the same as or different from the first set of users. The second set of requests may be a single request or many requests, and may be received before, simultaneously, or after the first set of requests. The second set of requests may be for remote assistance, rather than on-site assistance. - Answering each of the set of first requests for on-site assistance may require one or more field professional to travel to a location associated with a user from the first set of users. That is, location-specific tasks may include tasks that require one or more field professional to travel to a location associated with a user. These tasks may only be completed with a visit to the user's location, and include tasks such as installing equipment, repairing equipment, connecting equipment, and the like. On the other hand, answering each of the set of second requests for remote assistance may require the one or more field professional to connect via a communication network with a user from the second set of users. In other words, location-agnostic tasks may require a field professional to connect via a communication network with a user or resource and may include services that may be accomplished virtually, such as setting parameters digitally, debugging internet connectivity, researching problems, troubleshooting, providing guidance over the phone or email to operators or users, ordering parts, or speaking with other field service professionals for guidance. Location-agnostic tasks may optionally be completed at the site of the user, but they also may be completed at any location so long as the field professional can connect via a communication network with a user or, if necessary, a resource.
- At
step 1306, a plurality of location-based tasks associated with the set of first requests is assigned to one or more field professional. Thus, one or more field professional is assigned responsibility for tasks that address the set of first requests. Field professionals may be notified of the assignments in person or remotely, for example, via the fieldprofessional communication device 180A. - At
step 1308, the system receives real-time information including current location information of the one or more field professional. The real-time information may include information of if a task has been completed yet, or the location of the field professional. - At
step 1310, it is determined, based on the real-time information, whether the one or more field professional can complete a location-agnostic task associated with a second request after completing a first location-based task and before starting a second location-based task. Real-time information may include locations of tasks, traffic conditions, unexpected delays, or changes in task status, for example, a task being completed early or a task being unable to be completed, resulting in the field professional being unobligated earlier than expected. Additionally, expected task duration information may be considered. - Finally, after making the determination at
step 1310, the location-agnostic task may be assigned to the one or more field professional atstep 1312. The assignment may be recorded in adatabase 154 of thetask scheduling unit 150. Furthermore, the assignment may be communicated to the field professional automatically, via the fieldprofessional communication device 180A, or by a manager who receives a notification from the system and approves the assignment before notifying the field professional. - Further illustration of the steps of
process 1300 may be understood by reference toFIG. 14 . At the beginning of a day, one or more field professional may be provided a planned fieldprofessional schedule 1410. The schedule shown includes driving times between location-specific tasks tasks agnostic task 1. As the day proceeds, the one or more field professional completes the scheduled activities of driving and location-specific task 1. However, as shown in the observedtraffic 1420, shortly before 11:00, traffic on the route that the one or more field professional would travel to location-specific task 2 becomes unusually heavy, perhaps due to a car accident or roadway construction. If the one or more field professional continued on the previously-planned sequence of tasks, namely, starting to drive at approximately 11:10 and then completing location-specific task 2, the one or more field professional would not be able to starttask 2 until 13:00 due to traffic, as shown in resulting fieldprofessional schedule 1430. As a result, the field professional's duty day may end before being able to accomplish location-agnostic task 1. If such a situation arose,process 1300 may be used to revise the schedule of the field professional. In this case, after having completedsteps step 1308, real-time information may be received about the location of the field professional, as well as real-time information about traffic conditions. Atstep 1310, based on the real-time information of the traffic delay shown in the observedtraffic 1420 ofFIG. 14 , it may be determined that location-agnostic task 1 should be completed in the time that the field professional would be stuck in traffic. The field professional's schedule may be revised, reassigning the field professional to complete location-agnostic task 1 before starting location-specific task 2, as shown in revised filed professional schedule 1440. In this example, the field professional is able to accomplish three tasks during a shift due toprocess 1300, whereas, withoutprocess 1300, the one or more field professional would have been able to complete only two tasks during the shift, with significant time spent being unproductive in traffic. - The determination of whether the one or more field professional can complete a location-agnostic task after completing a first location-based task and before starting a second location-based task may be based on field-location information. The field-location information may include information about the status of a site, such as weather conditions, or status of the one or more field professional, such as prior task completion time or field professional location, that could affect the field professional's ability to perform a later task. The field-location information may be received from a wireless communication device associated with the one or more field professional, such as the field
professional communication device 180A, and may be derived by using a GPS signal or cell site location information, for instance. The field-location information may also be derived from other sensors or sources, both public, such as on the internet, and private, such as monitoring devices owned by the user or field professional company. In such a manner, the field-location information may be provided and received automatically, without intervention of the field professional. Alternatively, the field-location information may be derived with the intervention of the field professional, for example, by phone calls, text message, or other communications placed by the field professional. - Information about traffic conditions associated with a field-location for one or more field professional may also be used to determine whether the one or more field professional can complete a location-agnostic task after completing a first location-based task and before starting a second location-based task. For example, if traffic is unusually heavy, a field professional will have time to accomplish a location-agnostic task while waiting for traffic to clear. Alternatively, if traffic is light, the field professional should proceed to the next location-specific task. Information about traffic conditions may be derived from publicly available data, including traffic tracking websites or government websites that show construction or emergency closures. Alternatively, information about traffic conditions may be derived from field professionals themselves. For example, if many field professionals are dispatched, and one or more encounters traffic, a delay may occur in that field professional's arrival at a task and determine traffic conditions. This information may be used determine whether the field professional can complete a location-agnostic task.
- Information about environmental conditions associated with a field-location for one or more field professional may be used to determine whether the one or more field professional can complete a location-agnostic task after completing a first location-based task and before starting a second location-based task. For example, some location-specific tasks may require working outdoors, and could be impaired by high winds or thunderstorms, such as working on electrical lines. The system may therefore obtain weather data from publicly provided sources or via reports from individual field professionals. If a severe thunderstorm is affecting the location of a location-specific task, a field professional may not be able to start the task. In such a case, the system may determine that the field professional can complete a location-agnostic task before starting a second location-based task. Environmental conditions may also be used to determine travel times, for instance, if snowstorms will cause delays in arriving at a location.
- One or more field professional may be scheduled to perform an additional location-based task after completing a first location-based task and before starting a second location-based task. Additionally, the one or more field professional may be assigned a location-agnostic task instead of the additional location-based task based on the real-time information. For instance, a field professional may have a first location-based task of installing a new cable television system at
Address 1 at 9:00, and a second location-based task of servicing a cable system atAddress 2 at 13:00. The field professional may have an additional location-based task of installing a new modem atAddress 3 at 10:30. The field professional may be assigned to complete a location-agnostic task of remotely configuring a virtual private network for a client at 10:30, rather than completing the additional location-based task of installing a new modem, due to heavy traffic. As such, the inability of the one or more field professional to reach a location associated with the additional location-based task at a scheduled time may be determined from real-time information. In the example case above, the system may determine the inability of the field professional to reachAddress 3 by 10:30 due to real-time traffic conditions betweenAddress 1 andAddress 3. Alternatively, if the first location-based task of installing new cable television atAddress 1 requires more time than expected, the system may determine from real-time information about the delay that the field professional is unable to reachAddress 3 by 10:30, and instead assign a location-agnostic task to the field professional instead of the additional location-based task. - A notice of cancellation of the additional location-based task may be used to estimate a free time window in a daily schedule of one or more field professional. Based on the estimated free time window, it may be determined whether one or more field professional can complete the location-agnostic task after completing the first location-based task and before starting the second location-based task. For example, continuing the above example, if the user that requested the additional location-based task at
Address 3 cancels the 10:30 appointment, the field professional may now have an unexpected free window in his schedule. Rather than this time going unused, it may be determined, based on the estimated free window, whether the field professional can complete a location-agnostic task after completing the first location-based task and before starting the second location-based task. The determination may be completed at any time. A notice of cancellation may originate in a user, for example, if the user is not able to be at the facility during the scheduled time, or the notice of cancellation may originate from an employee, such as a manager or another field professional. - To aid in the determination, there may be an indication of an urgency level of the location-agnostic task associated with the second request. Based on the urgency level of the location-agnostic task, the additional location-based task may be reassigned to one or more second field professional and the location-agnostic task may be assigned to the one or more field professional. The urgency notifications may have multiple levels, such as low, medium and high, and may be based on a variety of factors, including user importance, paying higher fees for higher priority service, and the like. The threshold at which the system reassigns tasks may be independent of other considerations, such that, for example, high urgency tasks always are reassigned, or may take into account other considerations, such as other delays that may be introduced by altering the planned schedule.
- Furthermore, information identifying the one or more field professional as more suitable to provide the location-agnostic task than one or more second field professional may be obtained, and, based on this information, the additional location-based task may be reassigned to the one or more second field professional and the location-agnostic task may be assigned to the one or more field professional. The obtained information may be obtained from system memory. Alternatively, the information may be derived from a user, such as a user requesting a particular field professional who had previously serviced the facility. Also, information such as skills data, past experience, and ranking may be used in identifying one or more field professional as more suitable to provide the location-agnostic task than the one or more second field professional.
- For example, as shown in
FIG. 15A , there may be two field professionals, field professional 1510 and second field professional 1520. Both may be qualified to install modems, but only field professional 1510 is qualified to establish virtual private networks remotely. If a hospital emergency room's virtual private network fails, a high urgency notification may indicate a necessary location-agnostic task of repairing the network. Subsequently, as shown inFIG. 15B , the additional location-based task of a modem installation may be reassigned from field professional 1510 to second field professional 1520. Field professional 1510 may then be assigned the location-agnostic task of remotely repairing the emergency room's virtual private network. Alternatively, field professional 1510 may have past experience with the hospital's network or superior past rankings by customers. Any combination of these and other factors could be used to determine that field professional 1510 is more suitable to provide the location-agnostic task. - In another embodiment, one or more field professional may be instructed to initiate a location-agnostic task before driving to a location associated with a second location-based task. The instruction may be provided by a variety of means, including automatically to the field
professional communication device 180A, or posted to a publicly viewable calendar. Alternatively, the instruction may cause a dispatch person to personally notify a field professional via a phone call, radio call, email, or text message. Notifying the field professional before driving to the location associated with the second location-based task reduces lost time and maximizes field professional utilization. Alternatively, the instruction may be provided to one or more field professional after driving at least part of the way to a location associated with the second location-based task. For instance, if an accident causes traffic to back up after a field professional departs for the second location-based task, the system may notify the field professional to stop driving and complete a location-agnostic task while waiting for traffic to clear. After completing the location-agnostic task, the field professional may be instructed to perform more location-agnostic tasks if the traffic still caused delays. Alternatively, the field professional may resume driving to the second location-based task upon completion of the location-agnostic task with or without further notification. - In another embodiment, historical traffic data may be used to determine a daily schedule of the one or more field professional. The daily schedule may include at least one or a plurality of location-agnostic tasks and a plurality of location-based tasks. Thus, in addition to location-agnostic tasks being scheduled on an ad hoc basis, they may also be scheduled in advance. For instance, if the historical traffic data indicates that highways near the city are always congested between 16:00 and 18:00, a daily schedule of a field professional may include location-agnostic tasks between 16:00 and 18:00 so that the field professional may be productive despite traffic delays. Historical traffic data may, for example, be derived from public sources, or from historical trends as recorded for other field professionals. If there are multiple times in a day when traffic is heavy, a field professional's schedule may include a plurality of location-agnostic tasks. These may all be for a single user, or for a single type of service, or for many users, or many services.
- In some embodiments, a second request may be received after one or more field professional has started the first location-based task. That is, a schedule may be set prior to the start of the workday, but the schedule may also change throughout the day in response to other factors such as traffic, environment, schedule conflicts, field professional availability, and the like.
- Assigning a location-agnostic task to one or more field professional may include sending a link to a remote assistance session to a mobile device associated with the field professional. The mobile device may be the field
professional communication device 180A, or may be another device. The remote assistance session may be, for example, a remote desktop access tool, a virtual private network, or access to an administrator website. The link may enable the field professional to complete the location agnostic task. Alternatively, assigning a location-agnostic task to one or more field professional may include transferring a call to a mobile device associated with the one or more field professional. The video call may connect a field professional with a user, with another field professional, or with any other employee. The mobile device may be the fieldprofessional communication device 180A, or may be another device. The video call may enable a field professional to provide remote assistance or obtain further information and guidance related to the location-agnostic task. - G. Appointment Booking
- Sometimes, services performed by field professionals are booked in advance of the service. Booking in advance allows predictability for users, managers, and field professionals. But coordinating many booking requests from many customers across an entire company's field professionals may be difficult. Furthermore, large companies with many field professionals and customers may have very complex schedules, making booking a single appointment that meets user and company needs very time consuming. Additionally, user experience is degraded, and manager time is lost when waiting on a system to book new appointments. The following disclosure describes automated methods and systems that enable fast booking of appointments for scheduling tasks to field professionals. The system includes a memory, a network interface, and a processor connectable to the network interface. The system may therefore provide booking responses for requests to book a new appointment using a multi-route model. The multi-route model may be configured to determine booking responses in different ways. For instance, a first method may provide fast response time, while a second method may provide high response accuracy. In this manner, a user or manager may be provided a quick booking response, improving user experience and reducing delays. In some embodiments, the disclosed methods may be implemented by
task scheduling unit 150. -
FIG. 16 is a flowchart of anexample process 1600 for a scheduling method for field professionals, consistent with the present disclosure. In some embodiments,server 152 may implementprocess 1600. For example,processing device 202 may receive data from I/O system 210 ornetwork interface 206, and then execute instructions or program code stored inmemory interface 204 ordatabase 154, in which the instructions or program code implement algorithms ofprocess 1600. The algorithms ofprocess 1600 may be implemented as one or more ofanalysis module 441,forecasting module 442,planning module 443, orscheduling module 444.Process 1600 includes the following steps or operations. - At
step 1602, a multi-route model for appointment booking for determining booking responses in different ways is stored. The model may be stored inmemory interface 206 or in a non-transitory computer-readable storage medium. The model may include, for example, a machine learning model, an algorithm of checking actual assignment schedules to find schedule availability, and the like. The model may rely on external data, for example, data received from thenetwork interface 206 ordatabase 154 that show field professional availability, typical appointment durations, preferred appointment times, and other scheduling constraints. The multi-route model may include a plurality of models to determine appointment availability. - At
step 1604, a request to book a new appointment for a service is received. This request may be entered directly by a user, for example, on a company website. Alternatively, the request may be entered by a member of the customer service unit 120, or by a manager. The appointment may be for an on-site, location-based visit by a field professional, such as, for example, performing veterinary procedures on a farm, or installing internet equipment at a house. The appointment may also be for performance of remote, location-agnostic services, such as configuring an internet connection, that may be performed at any location. - At
step 1606, a first booking response for the request is output, wherein the first booking response is determined using the multi-route model. In one embodiment, the first booking response may be based on statistical measures and does not necessarily provide accurate results. The first booking response may be provided immediately, by a company website or a member of the customer service unit 120, or may be further analyzed or processed before being provided. The first booking response may be one of a plurality of results provided by one of the models of the multi-route model. - At
step 1608, the first booking response is verified based on a second booking response determined using the multi-route model. That is, the multi-route model may provide a plurality of results. The results may be the same, or they may be different. Furthermore, each of the models in the multi-route model may each produce a plurality of results for output and verification. Thus, instep 1608, the response provided by one model of the multi-route model is verified by another response provided by another model of the multi-route model. Verification may occur by comparing the first booking response to the second booking response. If, for instance, the second booking response shows that the first booking response cannot be the basis of an appointment, perhaps due to a conflict in the schedule,step 1608 may identify that the first booking response is invalid. - Further illustration of the steps of
process 1600 may be understood with reference to the steps ofprocess 1700 inFIG. 17A andFIG. 17B .Process 1700 begins by receiving a request to book a new appointment for a service atstep 1702. After the request is received, a multi-route model is executed. For example, atstep 1704, a predictive machine learning algorithm may be executed to determine a first booking response. The predictive machine learning algorithm may be implemented through any machine learning technique. In some embodiments, the first scheduling model may use previous proposed times to determine the first proposed time. For example, if previous cable installations occurred at 2:00 on Tuesdays and internet installations occurred at 1:00 on Wednesdays, the first scheduling model may use this information when determining a first booking response for a new request for cable installation. Thus, atstep 1706, the predictive machine learning algorithm may determine a first booking response corresponding to the initial request for an appointment. - Subsequently, the first booking response is checked at
step 1708 to ensure that the booking response complies with user-related time constraints before outputting the first booking response. In other words, if the user identifies a period of unavailability when requesting an appointment, the first booking response is compared to the unavailable times. For example, a user may request, atstep 1702, an appointment for installation of new solar panels. Furthermore, if the user works or travels every Monday and Tuesday, the user may indicate that Mondays and Tuesdays are unavailable. If the first booking response is determined for Monday or Tuesday, the booking is rejected, and another first booking response is determined. If the first booking response complies with the user-related time restraints (or if there are no time constraints) the first booking response may be outputted atstep 1710. The output may be promptly displayed to a user or customer service agent, or it may be output for further processing before being displayed to a user. - In addition to submitting time constraints, a user may also submit a user-related time preference. The first and second booking responses may be determined based on the user-related time preference. A time preference may be, for example, a desire to have service completed before the 15th of the month. The user may submit time constraints and time preferences, or time constraints only, or time preferences only, or no time constraints or time preferences at all. Furthermore, the user may submit any number of time constraints or time preferences. Time constraints or time preferences may comprise any unit of time measurement, such as, for example, Mondays only, or before 10:00 AM, or during the last week of a month, or during December.
- Returning to step 1702, after a request for an appointment is received, a second model of the multi-route model is also initiated. The second model may be initiated at the same time as, before, or after the first model. As shown in
step 1712, the second model may include checking an actual assignment schedule of a plurality of field professionals to determine the second booking response. For instance, the second model may step through each workday and appointment time sequentially until an open appointment time is determined. If there are many different field professionals, the schedule for the entire field professional work force may be very complicated and take a significant amount of time to determine a second booking response that meets the user's service requirement. For instance, the first model of the multi-route model may be more than twenty times faster the second model of the multi-route model, such that the first model takes one second and the second model takes twenty seconds or more. In some embodiments, the first model may be 5 times, 10 times, 50 times, 100 times or more faster than the second model. Atstep 1714, the second booking response is determined. The second model may require enough time that the second booking response may be determined after the first booking response is outputted. In one embodiment, the input for the first model may include a representation of the current state of the tasks Gantt and previous appointments offers determined by the second model. - At
step 1716, the first booking response is verified based on the second booking response. Because the second booking response is determined by a different and perhaps more thorough process, the second booking response may provide an appointment that meets more of the necessary criteria of the initial request than the first booking response. Thus, the first and second booking responses may include different proposed times for providing the service. For example, the first booking response may be for an appointment at 3:00 on a Thursday. However, the second model may have stepped through each day in the week and found that every field professional is unavailable on Thursday. As a result, the second booking response may have been determined for an appointment at 3:00 on Friday. Thus, the first booking response for 3:00 on Thursday cannot be verified atstep 1716. The criteria for verification may, for instance, be that the first and second booking responses are on the same day, within two hours, or on subsequent days. - At
step 1730 ofFIG. 17B , the first and second booking responses are compared. In some situations,step 1730 may be No, as the first and second booking responses may provide the same result. The process may terminate at this point. However, if the first and second booking responses differ, multiple options may be available. For instance,process 1700 may proceed to initiate an action to improve the multi-route model atstep 1732. For example, the system may provide the second booking response, which may include a second proposed time, to the predictive machine learning algorithm. In this way, the second booking response may be an additional training input to retrain the predictive machine learning algorithm, thereby updating the predictive machine learning algorithm with the second booking response. Furthermore, the predictive machine learning algorithm may be retrained even if the first and second responses are identical, so as to reinforce a correct result in the algorithm. Alternatively, a scheduled assignment of at least one field professional may be changed when the first booking response is different than the second booking response atstep 1734. In this way, the first booking response may be retained, providing greater consistency to users such that the first booking response is retained despite initially being invalid. In some embodiments, bothstep 1732 andstep 1734 may be performed, such that both the multi-route model is improved and a schedule assignment is changed. - In some embodiments,
process 1800 shown inFIG. 18 may be used to schedule field professionals to on-site technical services. Atstep 1802, a request for an on-site technical service associated with a location is received. Atstep 1804, a first scheduling model and a second scheduling model are used to determine proposed times for providing the on-site technical service, wherein a first proposed time determined using the first scheduling model is determined faster than a second proposed time determined using the second scheduling mode. The first scheduling model may also be used to determine a first alternative proposed time and the second scheduling model may also be used to determine a second alternative proposed time. The first and second alternative proposed times may be determined synchronously or asynchronously with the first and second proposed times. Atstep 1806, the first proposed time is provided before the second proposed time has been determined. The first proposed time may be provided directly to the user, or by an intermediary, such as a customer service representative. Atstep 1808, after the first proposed time is provided, a discrepancy assessment is performed between the first proposed time and the second proposed time. This discrepancy assessment may return as a result the amount of time between the first and second proposed times. Atstep 1810, based on results of the discrepancy assessment, an action is initiated to improve scheduling of field professionals to on-site technical services. - Further illustration of the steps of
process 1800 may be understood by reference to the steps ofprocess 1900 inFIG. 19A andFIG. 19B . Atstep 1902, a first proposed time is provided to a user. This may be done immediately once a proposed time is determined, or after a delay. The proposed time may also be provided to a user by any means of communication, including mail, email, text, automated phone call, or personal phone call from a customer service representative. The user may be given an opportunity to accept or reject the first proposed time. If the user accepts the first proposed time atstep 1904, the discrepancy between the first proposed time and the second proposed time is compared to a threshold atstep 1906. If the discrepancy is higher than a threshold, withstep 1906 being Yes, an existing assignment of a field professional may be attempted to be changed to meet the first proposed time atstep 1908. If the discrepancy is lower than a threshold, withstep 1906 being No, no further action may be necessary. For example, a user may accept a first proposed time for lawn service of 1:30 on Wednesday. The second proposed time, which may be completed after the user accepts the first proposed time, may reveal that 1:30 on Wednesday is not actually possible by analyzing existing scheduled of field professionals. If the second proposed time is at 2:00 on Wednesday, and the threshold is a four hour difference, the first proposed time that was accepted by the user may be maintained as an appointment, or the second proposed time that was not offered to the user may be set as an appointment, and the process stopped. If, however, the second proposed time is for 3:00 on Thursday,step 1906 would be Yes, because the discrepancy is greater than the example threshold of four hours. An attempt would be made to reschedule an existing assignment of one or more field professional to meet the first proposed time atstep 1908. - If the attempt at
step 1908 is successful,step 1910 would be Yes. In this case, the process stops. However, if the attempt were unsuccessful, for instance, if all field professionals were already obliged for the entire week,step 1910 would be No. In this case, the user may be contacted atstep 1912 to propose a new time for providing the on-site technical service at the location. The contact may occur after any amount of delay, including, for instance, before a user has left a booking website or ended a call with customer service. - Returning to step 1904, if the user does not accept the first proposed time,
step 1904 would be No. As shown inFIG. 19b , it may next be determined if the second proposed time is different than the first proposed time. In this step, the two proposed times may be different if they do not overlap at all, or, in alternative embodiments, they may be different if they do not overlap fully. For example, an appointment from 2:00 to 3:00 on Thursday may be considered to be different from, or the same as, an appointment from 2:30 to 3:30 on Thursday. The amount of difference required forstep 1920 to be Yes may therefore vary according to the needs of users, managers, and field professionals. Ifstep 1920 is Yes, the second proposed time may be offered to the user as an alternative proposed time. Ifstep 1920 is no, new proposed times may be determined atstep 1924. For example, if the first proposed time is 10:30 on Tuesday, and the second proposed time is 10:30 on Tuesday, and the user refuses this appointment, new proposed times may be determined. If, however, the second proposed time were 12:00 on Tuesday, this second proposed time may be offered as an alternative proposed time to the user atstep 1922. - In alternate embodiments, a first alternative proposed time may be determined using the first scheduling model, in addition to the first proposed time. Furthermore, a second alternative proposed time may be determined using the second scheduling model. If a user refuses the first proposed time, and the refusal is received before the second alternative proposed time was determined, the first alternative proposed time may be offered to the user. Alternatively, if the refusal is received after the second alternative proposed time was determined, the second alternative proposed time may be offered to the user. For example, the first scheduling model may identify the first proposed time and the first alternative proposed time after a few milliseconds and maybe even seconds before the second scheduling model. For instance, the first proposed time may be 8:00 on Monday and the first alternative proposed time may be 9:00 on Tuesday. If the user rejects the 8:00 Monday appointment before the second scheduling model is complete, the 9:00 on Tuesday appointment may be offered. On the other hand, if the second scheduling model determines a second alternative proposed time of 3:00 on Monday before the refusal is received, the 3:00 on Monday appointment may be offered. In this way, the user is given the benefit of quick, responsive appointment scheduling, while also being provided more robust results if the user is slow to respond and the results are available.
- H. Offering Times for Service
- When scheduling tasks to field professionals, users ordinarily desire the earliest possible appointment time. Field professional companies may also desire to schedule appointments as early as possible in order to provide services responsive to user needs. However, simply providing the earliest possible appointment may ignore other factors that are important to field professionals, such as added cost necessary to schedule the first available appointment. Furthermore, users may prefer lower cost appointments and services over having the first available appointment for every requested service. The following disclosure describes automated methods and systems that enable offering a later appointment time when the cost of an earlier appointment time is too high. Customer may be incentivized to accept an alternative that is more cost effective for the field professional scheduler. For example, if a first possible appointment time is associated with a cost that is much higher than a second possible appointment time, the system may offer the user the second possible appointment time. Alternatively, the system may determine that neither of the appointment times are cost effective, and indicate to the user that there are no available appointment times. The system includes a memory, a network interface, and a processor connectable to the network interface. The system may therefore provide an appointment that optimizes cost and wait times according to user and company needs. In some embodiments, the system may be implemented as
task scheduling unit 150. -
FIG. 20 is a flowchart of anexample process 2000 for a scheduling method for field professionals, consistent with the present disclosure. In some embodiments,server 152 may implementprocess 2000. For example,processing device 202 may receive data from I/O system 210 ornetwork interface 206, and then execute instructions or program code stored inmemory interface 204 ordatabase 154, in which the instructions or program code implement algorithms ofprocess 2000. The algorithms ofprocess 2000 may be implemented as one or more ofanalysis module 441,forecasting module 442,planning module 443, orscheduling module 444.Process 2000 includes the following steps. - At
step 2002, a request to book a new appointment for a service expected to be completed within a time period is received. The request may be received directly from a user, for example, via a website. Alternatively, the request may be entered by a member of the customer service unit 120, or by a manager. The request may be for an on-site, location-based service by a field professional, such as, for example, performing veterinary procedures on a farm, or installing internet equipment at a house. The request may also be for performance of remote, location-agnostic services, such as configuring an internet connection, that may be performed at any location. The request may contain information about when the service should be performed. This could include user availability, such as after 5:00 on Tuesdays, or user urgency, such as within 24 hours. Alternatively, a company may specify a required time period for different types of services, such as requiring that all requests for vaccination services should be completed within one week of request. - At
step 2004, a first possible time slot and a subsequent second possible time slot for the new appointment within the time period are identified. The time slots may be identified by any method. For example, each time slot in the time period may be examined sequentially to see if an appointment could occur in each time slot. The first possible time slot and the subsequent second possible time slot time within the time period for the new appointment may be identified based on predicted user availability data. Predicted user availability data may be derived from, for instance, social media, work hours, and historical appointment time preferences provided by the user. A time slot that is possible because no field professionals are scheduled during the time may nonetheless not be identified if the user is predicted to be unavailable during the time. - At
step 2006, a first scheduling cost associated with the first possible time slot and a second scheduling cost associated with the second possible time slot are calculated. Different factors may be considered when calculating the cost, because travel may require travel expenses, including for example tolls, gasoline, air or rail fares, per diem, lodging, and wages. A scheduling cost may be associated with a total of driving durations of a set of field professionals. Furthermore, a scheduling cost of possible time slots may be based on details of previously scheduled tasks to a set of field professionals. For example, a cost may be the hourly wage of the field professionals multiplied by the driving duration to the location of the requested service, or the price of gasoline. Driving duration may include information about anticipated traffic, or the distance between the site of an immediately preceding appointment and the requested appointment location. For instance, a first possible time slot may immediately follow an appointment at alocation 100 miles away from the requested appointment location, while a second possible time slot may follow an appointment at a location only 5 miles away from the requested appointment location. In this example, the second possible time slot would be associated with a lower cost, both because the set of field professionals would spend less time driving, and because the transportation cost of traveling 100 miles is more than the transportation cost of traveling 5 miles. In other words, driving duration may include both time and distance. - The cost may also be associated with a total number of tasks that can be assigned to a set of field professionals in a predefined period of time. In other words, some time slots may allow a set of field professionals to be assigned to more tasks than other time slots. For example, a user may request refrigerator repair service, expected to take one hour to complete. A first possible time slot may be between an appointment ending at 9:00 and an appointment beginning at 10:00, and a second possible time slot may be between an appointment ending at 10:00 and an appointment starting at 11:30. The second time slot may result in 30 minutes of lost productivity and one fewer task for the shift, because there may be no tasks that a field professional can complete in less than 45 minutes. The cost may then be calculated based on the lost revenue from performing one fewer task in a shift and the cost of wages paid during unproductive employment time.
- The cost may also be associated with a total number of field professionals working in a predefined period of time. In this manner, the number of field professionals working each day may better match daily needs. For example, the scheduler may minimize or reduce the number of professionals working each day. Furthermore, the cost may be based on a daily schedule of each of a plurality of field professionals. This may enable greater optimization of scheduling all the field professionals as a whole. For instance, a first possible time slot may occur on a day when three field professionals are scheduled to work. However, the requested service may require a special skill set or be in a location that is far from the other appointments already scheduled for the three field professionals. A fourth field professional may then be needed to perform a service at the first possible time slot. The added cost of assigning the appointment to the fourth field professional, thereby making the fourth field professional work, may therefore be based in overtime pay, or the obligation of the company to pay the field professional a full day wage despite only performing a single task at the first possible time slot. Thus, cost may reflect a management preference to minimize the number of field professionals working each day.
- The cost may also be associated with a total of the resources being utilized in a period of time. For instance, a set of field professional nurses may have access to a single inhalator. While a time slot may be possible because one of the nurses is not scheduled during the time, the inhalator may be assigned to a different appointment during the time. Assigning an appointment at the time slot may therefore require rental of a second inhalator. The cost may therefore be based in the rental or purchase cost of additional equipment needed to perform a specific task for an appointment during the time slot.
- Returning to
FIG. 20 , atstep 2008, selection of the second possible time slot is enabled when it is determined that both the first scheduling cost and the second scheduling cost are below a scheduling cost threshold. Furthermore, enabling selection of the second possible time slot may include outputting information reflecting the second possible time slot. For example, if the cost of both the first and second possible time slots are acceptable to the company, both may be offered to a user so that the user has multiple options for appointment times. If the second possible time slot has a cost above a scheduling cost threshold, only the first possible time slot may be output. Information reflecting the possible time slots may be output directly to the user or indirectly to the user via a member of the customer service unit 120. - Any combination of total driving duration, total number of tasks, total number of field professionals, and total resources being utilized may be used in determining a scheduling cost. Furthermore, scheduling costs may be computed the same or differently for each of the identified time slots.
- Further, at
step 2010, a no-available-time-slot notification is output when it is determined that both the first scheduling cost and the second scheduling cost are above the scheduling cost threshold. That is, if all available time slots within a time period are too expensive, the user may receive a notification that there are no available time slots or appointments within the time period. The notification may include offering a time slot at a time after the time period, or a later time slot within the time period, that may be below the scheduling cost threshold. The notification may be provided directly to a user, or to a member of the customer service unit 120. -
FIG. 21 is a flowchart of anexample process 2100 for a scheduling method for field professionals for on-site services in cases when a scheduling cost reflects driving duration. Atstep 2102, a user request for an on-site service associated with a location is received. That is, one or more field professionals may need to travel to the location to perform the service. - At
step 2104, a first possible time slot for providing the on-site service at the location is identified, wherein the first possible time slot is associated with a first field professional. Atstep 2106, a first driving duration that would be added to a schedule of the first field professional if the first field professional is assigned to provide the on-site service at the location is estimated based on previously scheduled tasks of the first field professional and traffic conditions. In other words, the driving duration may be determined based on how far a field professional must drive to reach the location from a previous location. The previous location may be the field professional's residence, or a dispatch center, or a location of preceding appointment. The traffic conditions may be predicted, for example, based on knowledge that traffic driving into a city at 8:00 is known to add a thirty-minute delay, or that a particular roadway is planned to undergo construction that will increase traffic delays. Additionally, the traffic conditions may also be real-time, based on live traffic updates on the internet or from field professionals, and may help scheduling of same-day or short notice appointments. - At
step 2108, a second possible time slot for a second field professional to provide the on-site service at the location is identified, wherein the second possible time slot is associated with a second field professional. Atstep 2110, a second driving duration that would be added to a schedule of the second field professional if the second field professional is assigned to provide the on-site service at the location is estimated based on previously scheduled tasks of the second field professional and traffic conditions. The second driving duration may be estimated in the same manner as the first driving duration. - Identification of the first and second possible time slots may be completed in any manner. A schedule showing all field professionals together may be analyzed to identify the first possible time slot among all field professionals. Alternatively, a first possible time slot may be identified for a particular field professional, and a second possible time slot, later than the first possible time slot, may be identified for a different field professional. For example, field professional A may have an available time slot of 10:00 on Wednesday, and field professional B may have available time slots of 9:00 on Tuesday and 9:00 on Friday. The first possible time slot among all field professionals is 9:00 on Tuesday, and the second possible time slot among all field professionals is 10:00 on Wednesday. However, field professional A may be preferred, and so the first possible time slot may be identified as 10:00 on Wednesday with field professional A, and the second possible time slot may be identified as 9:00 on Friday with field professional B.
- At
step 2112, the user is provided a proposed time associated with the second possible time slot different from (e.g., later than) later than the first possible time slot when the second driving duration is less than the first driving duration. That is, although the first possible time slot may be earlier, a later, second time slot may be preferred because the second time slot required less time lost while driving. This may occur if the distance the second field professional must travel from a preceding appointment to the location of the user request is shorter than the distance the first field professional must travel from a preceding appointment. Alternatively, although a first distance may be shorter than a second distance, the first distance may require driving on a route that requires more time due to speed limits and predicted or observed traffic. - At
step 2114, a no-available-time-slot notification is output if both the first driving duration and the second driving duration are greater than a threshold. That is, a company may determine that driving durations greater than one hour result in too much lost productivity, and therefore implement a threshold that appointments are not available for time slots that would require more than one hour of drive time. - Further illustration of the steps of
process 2100 may be understood with reference to the steps ofprocess 2200 inFIG. 22 .Process 2200 begins atstep 2202 by estimating first and second driving durations, for instance, as insteps FIG. 21 . Atstep 2204, the second driving duration is compared to the first driving duration. If the first driving duration is less than the second driving duration,step 2204 is No, and a proposed time associated with the first possible time slot may be provided to the user. If the second driving duration is less than the first driving duration,step 2204 is Yes, and other steps may occur. - For instance, at
step 2206, the time difference between the second driving duration and the first driving duration is compared to a threshold. If the difference is smaller than a threshold,step 2206 is Yes, and a proposed time associated with the first possible time slot is provided to the user. If the difference is larger than the threshold,step 2206 is No, andstep 2208 may occur. For example, if second possible time slot would save only a small amount of driving duration time, such as only five minutes, the first possible time slot may be preferred despite it requiring a longer driving duration. In some embodiments, the threshold may be dependent on the difference between the first and second possible time slots. For example, if the first possible time slot is on Monday and the second possible time slot is on Tuesday, the threshold may be set to five minutes, but if the second possible time slot is on Friday, the threshold may be set to two hours. In this way, the inconvenience of a delay between the first and second time slots may be balanced against the benefit of a shorter driving duration. - At
step 2208, theprocess 2200 predicts if an additional service would be requested in proximity to the location. If an additional service is predicted to be requested in proximity to the location,step 2208 is Yes, and a time associated with the first possible time slot is provided to the user. The prediction may be done by any means, such as by comparison to historical patterns of requests for service or weather forecasts. Additionally, the proximity may reflect a threshold distance, such as ten miles, or a driving duration, such as twenty minutes. In this manner, a schedule may be constructed that anticipates user needs and reduces total driving duration for multiple appointments, even if driving duration for a single appointment, taken in isolation, is greater than it could be for second possible time slot. - At
step 2210,process 2200 confirms if the second field professional has skills for completing the on-site service before providing the user the proposed time associated with the second possible time slot. The skills may be determined by reference to a database containing skill information of each field professional, or by directly asking a field professional in reference to a particular request for service. - At
step 2212,process 2200 confirms if the second field professional has replacement parts for completing the on-site service before providing the user the proposed time associated with the second possible time slot. Atstep 2214,process 2200 confirms that the second field professional has at least one tool required for completing the on-site service before providing the user the proposed time associated with the second possible time slot. - The replacement parts and at least one tool required for completing the on-site service may be determined by reference to a standard list of parts and tools needed for the type of service requested by a user. Alternatively, the replacement parts and at least one tool may be determined by communicating with a field professional to inform of the requested service and relying on the field professional to determine what replacement parts and tools are needed. A field professional may be considered to have replacement parts if the replacement parts are, for instance, in a vehicle with the field professional, or easily accessed by a field professional, for example at a warehouse within a predetermined distance of the on-site service or accessed by a detour along the route to the location requiring a driving time beneath a threshold. Information concerning the location of replacement parts and tools may be derived from wireless tracking tools, inventory logs, or communication with field professionals or warehouse employees.
- If each of
steps process 2200 may proceed to provide a proposed time associated with the second possible time slot atstep 2216. The proposed time slot may be provided directly to the user, or to a customer service representative to provide to the user. If the user refuses the proposed time associated with the second possible time slot atstep 2218,step 2218 is Yes, and theprocess 2200 may then provide the user a proposed time associated with the first possible time slot. If the user does not refuse the proposed time,step 2218 is No, and the process stops. If any ofsteps process 2200 may proceed to step 2220 and provide the user a proposed time associated with the first possible time slot. - Any combination of
steps process 2200. These steps may be performed in any order, and any of the steps may be omitted. - I. Scheduling Tasks Based on User Profile
- When scheduling tasks to field professionals, a company that provides field services may have to keep schedules of each of the field professionals. When a user requests an on-site service, the scheduler may need to find an available time slot in the schedule of the field professionals to accommodate the new request for service. However, a time slot that is available for a field professional may not be available for a user. Identifying time slots that are possible for field professionals as well as possible or even convenient for users increases customer satisfaction.
- The following disclosure describes automated methods and systems that enable identifying when a time slot is suitable for the requesting user as well as the field professionals. For example, if a field professional has multiple times slots available, but some of those times are unavailable for a user, the system may offer the user one of the time slots that are available to both the field professional and the user. The system includes a memory, a network interface, and a processor connectable to the network interface. In some embodiments, the system may be implemented as
task scheduling unit 150. -
FIG. 23 is a flowchart of anexample process 2300 for a scheduling method for field professionals, consistent with the present disclosure. In some embodiments,server 152 may implementprocess 2300. For example,processing device 202 may receive data from I/O system 210 ornetwork interface 206, and then execute instructions or program code stored inmemory interface 204 ordatabase 154, in which the instructions or program code implement algorithms ofprocess 2300. The algorithms ofprocess 2300 may be implemented as one or more ofanalysis module 441,forecasting module 442,planning module 443, orscheduling module 444.Process 2300 includes the following steps. - At
step 2302, a user request for an on-site service is received. The request may be received in a variety of ways, including directly from a user, for example, via a website. Alternatively, the request may be entered by a member of the customer service unit 120, or by a manager. The request may be for an on-site, location-based service by a field professional, such as, for example, performing veterinary procedures on a farm, or installing internet equipment at a house. The request may be accompanied by a time period, provided by the user along with the request or by a company as a standard of service for a type of on-site service. - At
step 2304, a set of possible time slots for providing the on-site service is identified based on a schedule of a set of field professionals. The time slot may be identified by any method. For example, time slots in a time period may be examined sequentially to see if an appointment could occur in each time slot. - At
step 2306, information indicating an availability of the user to accept the on-site service is retrieved. This information may take on many different forms. For instance, the information may be from at least one online source. The online source may be, for example, social media or a publicly viewable calendar. The information may be direct, such as a user publicly posting their work hours, or the information may be derived from user patterns, such as analysis of a user's social media posting history showing that no posts were made between 8:00 and 9:00 on weekdays, indicating that the user is likely commuting to work during that time. In accessing this information, user permission to crawl the at least one online source may be requested and, if the user approves, the user permission may be accepted as well. In some embodiments, the request may only occur if a search of publicly available information yields insufficient information. - The information may also be retrieved from a profile associated with the user. This profile may be stored in the system's database. The profile may also be an online profile, created by a user when establishing a relationship with the field professional company. The data in the profile may be supplied directly by the user, or the data may be created by the company based on past answers of the user to proposed times for on-site services. For example, if a user always declines time slots before 10:00, a profile may be created for the user that records that appointments before 10:00 should not be offered. Alternatively, the profile may record the user's directly inputted choice that appointments after 12:00 should not be offered. In this manner, the user's profile may or may not be directly viewable or editable by the user.
- At step 2308 a subset of possible time slots for providing the on-site service is determined based on the retrieved information indicative of an availability of the user. The subset may be determined by comparing the information from
step 2306 to the set of time slots fromstep 2304. The set of possible time slots for providing the on-site service may include times in which field professionals can arrive to a location associated with the user, and the subset of possible time slots for providing the on-site service may include times in which field professionals can arrive to the location and there is a likelihood that the user will be present at the location. Mutually exclusive times may be ignored, with remaining times forming the sub-set. For example, the set of possible time slots of when a field professional is available fromstep 2304 may include 8:00 on Monday, Tuesday, and Wednesday. The information fromstep 2306 may show that the user is only available at 8:00 on Tuesday, Wednesday, and Thursday. Thus, the intersection of the two sets, namely, 8:00 on Tuesday and Wednesday, form the subset of possible time slots. The subset of possible time slots may be less than 25% of the set of possible time slots, either by cumulative time, such as a subset of 1.5 hours of time slots in comparison to a set of 8 hours of time slots, or by total number, such as one time slot, regardless of duration, in a subset and five time slots in a set. - Determining the subset of possible time slots for providing the on-site service may be based on profiles of other users. Behavior analytics may reveal that other users with similar profiles have a pattern of appointment preferences. For example, if a requesting user's profile shares a corporate address with many other users who prefer appointments after 4:00 on weekdays, the subset of appointments may be determined based on appointments after 4:00 on weekdays. This could happen even if the requesting user has not indicated that he prefers appointments after 4:00 on weekdays. Similar analysis of profiles of other users, such as information about demographic data, spending with the company, or types of services requests, may be used to determine the subset as well.
- Furthermore, determining the subset of possible time slots for providing the on-site service may be based on information associated with a weather forecast. For example, if the on-site service requires work outside, time slots should not be offered for periods when bad weather is expected. A weather forecast may be near term, such as rain being forecast for Tuesday, or long term, such as snow being expected at a service location between November and March that prevents installation of a large piece of equipment.
- Additionally, determining the subset of possible time slots for providing the on-site service may be based on information associated with the request. For example, if a user requests the service at an address known to be for the user's work location, either by self-identification by the user or by looking up the address associated with an incoming call, the subset of times may be determined to be during work hours. Alternatively, if the user requests service using a home phone number rather than a work phone number, the subset of times may be determined to be outside of work hours.
- At
step 2310, a time is proposed for providing the on-site service based on a time slot selected from the subset of possible time slots. The proposed time may be delivered directly to the user or indirectly to the user via a member of the customer service unit 120. Alternatively, the time may not be delivered to the user at all, but instead may be saved for further processing. In some embodiments, at least one time slot associated with a field professional may be selected based on a location associated with the user and locations of tasks previously assigned to the field professional. That is, if there are many time slots in the sub-set, and some of them are preceded by appointments far from the location associated with the request and others are preceded by appointments close to the location associated with the request, the time slots preceded by appointments closest to the requested location may be preferred. Alternatively, the distances may be in relation to appointments immediately following the time slot. In this way, a company may prefer to suggest a time slot when there is already a field professional scheduled in proximity to the user's location. After the time is proposed, a task may be scheduled for a field professional after the user accepts the proposed time. -
FIG. 24 is a flowchart of anexample process 2400 for a scheduling method for field professionals for on-site services in cases when a user cannot keep an appointment. Atstep 2402, a time is proposed to a user and, atstep 2404, the user accepts the proposed time and the appointment may be scheduled. - At
step 2406, online activities of the user are monitored to determine a likelihood that the user will not be available to accept the on-site service at the proposed time. For example, the user may make a public post on social media about traveling to China on Monday but has an appointment scheduled for Tuesday, or, after granting access to private accounts, the system may find hotel reservations for the same day as an appointment to install equipment. Atstep 2408, the process may use this information to determine a likelihood that the user will not be available to accept the on-site service at the proposed time. If it is likely that the user will be available still despite the online activities,step 2408 is No and the process proceeds to step 2410. - At
step 2410, the process retrieves updated information indicative of the availability of the user to accept the on-site service. This updated information may be information the user provides directly to the field professional company, for instance, by email, website, or phone call. The updated information may also contain updated user availability for a different appointment time. - At
step 2412, after receiving any updated information or determining that it is likely the user will not be available withstep 2408 being Yes, the system determines if a previously scheduled appointment of the user needs to be rescheduled. This determination may be based on the retrieved updated information, or on the likelihood determination fromstep 2408, or a combination of both. The determination may include comparing the new unavailability with the previously scheduled appointment. If the user will be unavailable for a small portion of the appointment, or if the appointment does not need the user to be present for the service to be performed, the process may determine that the appointment does not need to be rescheduled, andstep 2412 is No. In this case, the process returns to monitoring online activities of the user atstep 2406. - However, if
step 2412 is Yes, for instance because the user must be home to let a field professional into the house or to supervise the field professional's work, then the proposed time for providing the on-site service may be updated from the previously scheduled appointment atstep 2414. Inprocess 2400, any combination ofsteps step 2406 is omitted and a previously scheduled appointment does not need to be rescheduled such thatstep 2412 is No, the process may return to retrieve updated availability information or may simply stop. -
FIG. 25 is a flowchart of anexample process 2500 for a scheduling method for field professionals, consistent with the present disclosure. Atstep 2502, a request for a service is received from a user. The request may be received directly from a user, for example, via a website. Alternatively, the request may be entered by a member of the customer service unit 120, or by a manager. The request may be for an on-site, location-based service by a field professional, or the request may be for a remote, location-agnostic service, such as, for example, setting up a virtual private network. - At
step 2504, a first possible time slot for providing the service is identified. The first possible time slot may be associated with a first field professional. The first possible time slot may be determined by examining the schedule of a particular field professional, or the first possible time slot may be determined by examining all schedules of all field professionals. In other words, the time slot may be the first time slot because it is associated with a first field professional, or the time slot may be the first time slot because it is the first available slot overall, regardless of which field professional it is associated with. Atstep 2506, a second possible time slot different from the first possible time slot may be identified for a second field professional to provide the service. The second possible time slot may be associated with a second field professional. The second possible time slot may be identified in the same manner as the first possible time slot. The second possible time slot may be at least one day later than the first possible time slot. Alternatively, the second possible time slot may be in an afternoon and the first possible time slot may be in a morning of a day. - At
step 2508, information indicative of an availability of the user to accept the service is retrieved. The information may be from at least one online source. The online source may be social media, or a publicly viewable calendar. The information may be direct or derived from analysis. The information may be retrieved from a profile associated with the user, as well, which may be for instance private data obtained from the user's accounts with the user's permission, public data from social media or governmental records, historical appointment information, demographic data, or profiles of similar users. - At
step 2510, a proposed time associated with the second possible time slot may be provided when the retrieved information suggests that the user will not be available for the service during the first time slot. For example, a likelihood may be determined that the user will be unavailable during the first possible time slot based on historical appointment information. If a user has never accepted an appointment offered after 12:00, the user may be likely to be unavailable for a new appointment during a first time slot of 12:30. Additionally, profiles of other users with similar demographic data, such as age, gender, or income, may be used to determine a likelihood that the user will be unavailable during the first possible time slot. For instance, if the user is a 30 year old male with an income greater than some threshold, and other 30 year old males with similar incomes are found to decline appointments during working hours, the user may be likely to be unavailable during a first possible time slot that falls during working hours. The user may be provided the proposed time associated with the second possible time slot based on the likelihood that the user will be unavailable during the first possible time slot. The likelihood may be above some threshold set by the company. The determination of whether to provide a proposed time associated with the second possible time slot may also be based on if the service is location-based, such that the user must be present for the service to occur, or location-agnostic, such that the user does not need to be present for the service to occur. - J. Scheduling Tasks from Customer Location
- When a field professional provides a service to a user, sometimes the task assigned to the field professional cannot be completed in one visit. This may occur for a variety of reasons. For example, the field professional may not have the proper tools, supplies, or training on hand to complete a task. Other times, a user may request the incorrect service. For example, a user with a faulty internet connection may assume that a field professional needs to fix a modem, but when the field professional inspects the problem, the field professional may discover that an underground line is broken, requiring an entirely different service to correct the issue. In other cases, additional problems may arise during the service. For example, a field professional servicing an air conditioner may plan on replacing refrigerant in the system, but, while performing this service, the field professional may discover a dangerous ground fault in the air conditioner system that could start a fire. In some situations, inclement weather may prevent the service being performed. These examples illustrate that a field professional may realize, in the course of performing a task in the field, that an additional appointment will be needed to fully address the user's needs.
- The following disclosure describes methods and systems that enable scheduling of a repeat, or follow-up, appointment with a user. The system may receive data from a field professional located in the field at a customer's location. The received data may indicate that an additional visit at the customer is needed. The system may take into consideration other requirements and provides the field professional with at least one time slot for offering the customer. The system includes a memory, a network interface, and a processor connectable to the network interface. In some embodiments, the system may be implemented as
task scheduling unit 150. -
FIG. 26 is a flowchart of anexample process 2600 for a scheduling method for repeat visits by field professionals, consistent with the present disclosure. In some embodiments,server 152 may implementprocess 2600. For example,processing device 202 may receive data from I/O system 210 ornetwork interface 206, and then execute instructions or program code stored inmemory interface 204 ordatabase 154, in which the instructions or program code implement algorithms ofprocess 2600. The algorithms ofprocess 2600 may be implemented as one or more ofanalysis module 441,forecasting module 442,planning module 443, orscheduling module 444.Process 2600 includes the following steps. - At
step 2602, a user request for an on-site service is received. The request may be received directly from a user, for example, via a website. Alternatively, the request may be entered by a member of the customer service unit 120, or by a manager. The request may be for an on-site, location-based service by a field professional, such as, for example, performing veterinary procedures on a farm, or installing internet equipment at a house. The request may be accompanied by a time period within which the service should be performed, provided by the user along with the request or by a company as a standard of service for a type of on-site service. - At
step 2604, information is transmitted to a field professional. The information may reflect an assignment to provide the on-site service requested by the user atstep 2602. The information may be transmitted using the network interface. The information may include details about the assignment, such as time, expected duration, required tools and equipment, and location of the service. The information may also include directional instructions to the location associated with the on-site service. The directional instructions may be driving instructions. In some embodiments the directional instructions may also include instructions on navigating a site. For example, if a field professional is needed to install a sensor at a large oil refinery plant, the directional instructions may include a driving route to the entrance of the facility, as well as directions inside the facility to the installation site, such as to install the equipment ontank 3 behind the second berm on the north side of the plant. The directions may be provided by dispatchers or managers at the field professional company, by other field professionals, or by the user requesting the service. - At
step 2606, an indication may be received that an additional visit is required to complete the on-site service. The indication may be received from the field professional or the user while the field professional is in the field at the user's location. The indication may be received by an automated system via anetwork interface 206, by a manager, a member of the customer service unit 120, or another field professional. The indication may be sent from a communication device associated with the user, such as a smart phone app, a phone call to the customer service unit 120, or via a website. Alternatively, the indication may be sent from a communication device associated with the field professional, such as fieldprofessional communication device 180A. The indication may also include a time estimation of work required in the additional visit. The time estimation may include the time required on site to perform the service, as well as the travel time required. The indication may include an estimated travel duration derived from navigation software or field professional experience. The indication may be based on a field professional's estimate of the time required, or the indication may be based on known times required for types of services. For example, a field professional may input a type of service needed, such as replacing a valve. An automated system may access a database containing times according to tasks, find that, for instance, valve replacements require an hour, and attach the time to the indication automatically. The indication may also provide information about when the additional visit may occur. For example, if a field professional is installing cabinets and knows that glue must dry for three days before a next step may be completed, the field professional may provide this information in the indication. - Furthermore, the indication may also include details of spare parts required in the additional visit, and task details of the additional visit may be updated to include the spare parts. Similarly, the indication may also include details of what tools are required in the additional visit, and the task details of the additional visit may be updated to include the required tools. The field professional may also indicate that spare parts or tools must be ordered. The indication may also include details of what field professional skills are needed to complete the on-site service of the additional visit. The indication may include at least two of a time estimation of the work required in the additional visit, details of spare parts required in the additional visit, details of tools required in the additional visit, and details of skills of a field professional required in the additional visit.
- At
step 2608, a schedule of the field professional may be accessed to identify at least one available time slot to schedule an additional visit in the future. The at least one available time slot may be identified within a predefined time period. For example, the predefined time period may cause only time slots within four workdays to be considered. The predefined time period may be determined based on the nature of the task, such that some urgent requests may lead to quicker appointment times. - Furthermore, when identifying an available time slot, the time estimation may be taken into account. For example, if the field professional or a system identifies that a farm veterinarian will require two hours to perform, free time slots in the field professional's schedule that are shorter than two hours may be ignored. Alternatively, identifying the available time slot may include reassigning a task previously assigned to the field professional to clear a time slot associated with the time estimation in a schedule of the field professional. For example, if a septic tank repair is estimated to require five hours and a septic tank repairman has an opening from 8:00 to 12:00, the septic tank repairman's appointment at 12:00 may be reassigned to 1:00 so that the 8:00 to 1:00 time slot is cleared. The additional visit may take place during this time with the time slot associated with the time estimation cleared. Alternatively, previously assigned task may be reassigned to a different field professional to clear the time slot in the original field professional's schedule. In some embodiments, ff a schedule of the field professional is full during a predefined time period, the tasks in the schedule of the field professional may be checked to see which tasks may be reassigned to a different field professional.
- In some embodiments, the additional visit may be by a different field professional with a different skill set. For example, a cable television installer may know that an electrician is needed to complete installation of a cable box. In this case, the cable installer may send an indication that an additional visit is required by a different field professional, and a future schedule of a different field professional may be accessed to identify a time slot.
- If the task requires a field professional with a required skill set, a schedule of a field professional having the required skill set may be accessed to identify an available time slot. In this way, a situation wherein a field professional arrives at a location but cannot complete the required work because he does not have the necessary skills may be avoided, increasing user convenience and satisfaction while also reducing costs from wasted field professional time and travel. When accessing the schedule of a field professional having the required skill set, a next time where the field professional having the required skill set is scheduled to arrive an area proximate to the location may be identified. The proximity may vary according to company and user requirements. For field professional services that span an entire country, for instance, an area proximate to the location may be hundreds of miles away. For companies with smaller service areas, the area proximate may be only a few miles. Alternatively, the area proximate to the location may be measured as a traveling duration rather than a distance.
- Furthermore, if spare parts or tools are required in the additional visit, identifying the available time slot may include confirming that the spare parts or tools required in the additional visit are available. For example, if a spare part or tool must be ordered from a manufacturer or transferred from a warehouse, there may be a delay before a field professional is able to complete the additional visit. Thus, appointments that would occur before a shipping delay is over may be ignored so that only time slots that occur after the required parts or tools become available are considered.
- At
step 2610, at least one proposed time for the additional visit associated with the identified time slot is provided. The proposed time for the additional visit associated with the identified time slot may be provided to the user through a communication device associated with the user while the field professional is at the user's location. Additionally, the proposed time for the additional visit associated with the identified time slot may be provided to the field professional through a communication device associated with the field professional while the field professional is at the user's location. The proposed time may be provided to the same person who provided the indication instep 2606. It may also be provided to the other person who did not provide the indication instep 2606. Furthermore, the indication may be provided to the same or different device type that provided the indication. The indication may also be provided to multiple devices. Furthermore, information reflecting an assignment associated with the additional visit may be transmitted to the field professional while the field professional is at the location. In this way, the user and field professional may have prompt confirmation that the additional visit will occur so that the task may be completed. The information may include the date and time for the additional visit. - Further illustration of the steps of
process 2600 may be understood with reference to the steps ofprocess 2700 inFIG. 27 .Process 2700 may occur in conjunction withprocess 2600.Process 2700 begins atstep 2702 with receiving an indication, while the field professional is at a location in the field where a service is being performed, that an additional visit is required to complete the on-site service. Atstep 2704, a plurality of available time slots is identified. The time slots may be for a single or a plurality of field professionals. The plurality of available time slots may be identified by stepping through the entirety of a set time period. For example, every time slot that does not have an appointment may be identified for every field professional in a one-week period. Alternatively, the plurality may include a set number of available time slots, regardless of the time range the time slots define. For example, three time slots may be required for the plurality, even if sixth months of schedule must be analyzed before finding three available time slots. In some embodiments, the plurality may be set by processor time. For example, the plurality may include all available time slots found in five seconds of analysis, thereby providing a user prompt service. - At
step 2706, proposed times for the additional visit associated with the identified plurality of available time slots are provided. The proposed times may be provided to the field professional, the user, or both. Additionally, the proposed times may be provided directly to the field professional or user via a communication device, or the proposed times may be provided to a member of the customer service unit to provide to the field professional or user. - At
step 2708, the user selection indictive of a preferred time is received. Alternatively, the field professional may provide an indication of a preferred time as well. The selection may be received by providing a list of the plurality of time slots, or a portion thereof, to the user, for instance by displaying the proposed time slots on a smart phone app or on a website. The user may select which of the proposed time slots he prefers. If a preferred time was selected,step 2708 would by Yes, and theprocess 2700 stops. However, if the user indicates that none of the proposed times are preferred,step 2708 is No, andprocess 2700 may proceed to step 2710. - At
step 2710, information is retrieved indicative of an availability of the user. This information may be retrieved directly from the user by prompting the user for availability information. For example, the user may indicate that time slots after 3:00 would be acceptable. Alternatively, atstep 2710, information about the user may be retrieved from a profile that reflects the user's appointment history and demographics. - At
step 2712, a subset of possible time slots for the additional visit is determined, based on the retrieved information indicative of an availability of the user. Mutually exclusive times may be ignored, with remaining times forming the subset. For example, if the plurality of available time slots comprised 3:00 on Tuesday, 4:00 on Wednesday, and 1:00 on Thursday, and the retrieved information showed that the user was unavailable before 3:00 on weekdays, the subset of possible time slots may be 3:00 on Tuesday and 4:00 on Wednesday. - At step 2714, proposed times for the additional visit associated with the determined subset of possible time slots are provided. The proposed times may be provided to the user or the field professional. After providing the proposed times, user acceptance of one of the times may be received, and an appointment may be scheduled for that time.
- In some embodiments,
steps - K. Scheduling Tasks Using Customer Feedback
- Field professionals often provide one of the main interactions between a company and a customer. The relationship between the company and the customer is often shaped by the quality of the service provided by a field professional. Understanding a customer's perception of the quality of service provided by the field professional can therefore be used to improve the relationship between the customer and the company by improving future customer satisfaction. For example, if a customer is very pleased with a service provided by a field professional, a company may decide to assign the same field professional to perform future services. Alternatively, if a customer is dissatisfied with a service provided by a field professional, a company may decide to not assign that same field professional to perform future services for the customer. Customer satisfaction may be based on quality of service, professionalism, or personal interactions, for example. By tailoring field professional assignments to past customer satisfaction, a company may maintain good customer satisfaction or improve poor customer satisfaction, thereby retaining and adding users.
- The following disclosure describes methods and systems that enable scheduling of a field professional based on data including customer satisfaction associated with prior service. The system may receive data from a customer during or after a service is completed. Based on that data, the system may decide whether to assign the same field professional or a different field professional for future tasks associated with the same customer. The system includes a memory, a network interface, and a processor connectable to the network interface. In some embodiments, the system may be implemented as
task scheduling unit 150. -
FIG. 28 is a flowchart of anexample process 2800 for a scheduling method for repeat visits by field professionals consistent with the present disclosure. In some embodiments,server 152 may implementprocess 2800. For example,processing device 202 may receive data from I/O system 210 ornetwork interface 206, and then execute instructions or program code stored inmemory interface 204 ordatabase 154, in which the instructions or program code implement algorithms ofprocess 2800. The algorithms ofprocess 2800 may be implemented as one or more ofanalysis module 441,forecasting module 442,planning module 443, orscheduling module 444.Process 2800 includes the following steps. - At
step 2802, a customer request for at least one on-site service associated with a location is received. The request may be for a first on-site service, for example, or one in a series of services. The request may be received directly from a customer via a website. Alternatively, the request may be entered by a member of the customer service unit 120, or by a manager. The request may be for an on-site, location-based service by a field professional, such as, for example, conducting a medical evaluation prior to purchasing life insurance or installing a septic tank. The request may be accompanied by a time period within which the service should be performed, provided by the customer along with the request or by a company as a standard of service for a type of on-site service. - At
step 2804, a field professional is assigned to at least one task of providing the at least one on-site service at the location. The assignment may be transmitted to the at least one field professional using the fieldprofessional communication device 180A, for example, by email, text message, or phone call. The assignment may include details about the assignment, such as time, expected duration, required tools and equipment, and location of the service. The at least one field professional may be assigned randomly, or based on criteria such as skillset and availability. - At step 2806, data associated with the on-site service is obtained following completion of the at least one on-site service. The data is further illustrated by reference to
FIG. 29 , showing that the data associated with service may be based on five types of data sources, discussed below. -
Data source 2902 shows that the data associated with the on-site service may be determined based on a sentiment analysis of a recording of an interaction between a field professional and the user during the at least one on-site service. For example, the fieldprofessional communication device 180A may record a conversation between a customer and a field professional. The audio recording may be later analyzed to identify key words indicating customer sentiment about the interaction between the field professional and customer during a visit. Alternatively, tone of voice may be analyzed to determine if a customer is showing negative emotions, such as anger or frustration, or positive emotions, such as happiness, during conversations with the field professional. Alternatively, a phone call between a customer an any member of the company, including a field professional or a customer service representative, may be recorded and similarly analyzed. The recording may be made during a visit, but analyzed at the same or a different time. In some embodiments, the information is digitally signed by the customer to ensure authenticity in later processing. -
Data source 2904 shows that following completion of the at least one on-site service, feedback may be received from the customer. The data associated with the at least one on-site service may be determined based on the received feedback. The feedback may be solicited from the customer immediately after the service by the field professional, or may be solicited by the company by an email, phone call, or text message after the service completes. Alternatively, the feedback may be unsolicited, and provided by the customer without prompting. The feedback may be, for example, a star rating, such as three out of four stars, or a level of satisfaction, such as options for very satisfied, satisfied, not satisfied, and the like. -
Data source 2906 shows that following completion of the at least one on-site service, metadata information associated with the at least one on-site service may be received. Metadata may be information or other indications that are automatically sent without a field professional or customer explicitly deciding to send it. For example, if a field professional has a task to set up an internet connection, the time of the first login from the customer's address may be metadata information showing at least the task is in progress at the time. In the case of an electrician, for example, the times at which electricity is turned off and turned on may be metadata information. Thus, metadata may include time information, and may show that a field professional has arrived, started a task, completed a task, different phases of a task, or left the location. Metadata information may also location information showing where the field professional was at different times. Time and location information may be compared to the appointment time and the expected job duration to show the punctuality and efficiency of a field professional. In some embodiments, metadata information associated with the at least one on-site service may be received from at least one communication device associated with the at least one field professional. For example, the metadata information may include GPS readings of a cell phone carried by a field professional, or cell site location information. Furthermore, the metadata information may also include information about messages sent by the field professional, such as information showing any addresses that sent messages to or received messages from the field professional. Message address information may show how many times a field professional had to contact another person for assistance, or, in some cases, if a field professional was distracted from performing the task due to sending and receiving messages. -
Data source 2908 shows that following completion of the on-site service, data associated with the at least one on-site service may be determined from posts that the user published in a social network. For example, a customer may post information on a social networking website indicating satisfaction with the service provided, such as thanking the company for good service. A customer may also post information showing dissatisfaction, such as posting a complaint. The customer's post may be discovered by finding the customer on a social networking site by using known information about the customer, such as email address and name. Alternatively, a customer's post may be found by the customer directing the message to the company, such as tagging a company's profile in a post about the quality of service. A user's post may also appear on a website that hosts reviews of businesses, and a company may link reviews to recently performed service. -
Data source 2910 shows after the on-site service was completed, data about the on-site service may be received from the field professional. The data may be submitted by the fieldprofessional communication device 180A, or by a form filled out by the field professional, and may include information such as any issues encountered during the service and the field professional's estimation of the customer's satisfaction. It may also include details on what service was performed, for example, recording that the field professional administered a vaccine to all of the calves on a farm over three months old or details on any infrastructure that was installed, so that a future service may have records of past services. -
Element 2912 shows that data from any combination of the sources illustrated asdata sources satisfaction 2914 from a work of the field professional. For example, algorithms may be used to determine the ratio of positive words to negative words used by the customer, or weight may be given to customer satisfaction or reviews. Different data may have more significance than others. For example, a social network post directed to a company directly complaining of a service may have more impact on the determined level of satisfaction than metadata showing that the field professional arrived at a site on time and completed the service quickly. - Returning to
FIG. 28 , atstep 2808, an additional customer request for an additional service associated with the same location is received. For example, the additional request may be for a second service, after a first service. The task of providing the second service may be a location-agnostic task associated with the first on-site service. For example, if an internet modem was installed during a first task, a second task may require changing connection settings. The second task may be accomplished from any location by logging into a modem and changing the settings, such that the task may be location-agnostic. Alternatively, the task of providing the second service may be a location-based task independent of the first on-site service. For example, a first task may be installing an internet modem, and a second task may be installing a cable television connection, such that the second task is independent of the first on-site service and is performed at a specific location. The additional service may also be location-based and dependent on the prior on-site service, such as completing an installation or correcting an error in earlier work. The request may be made by the same customer or someone with a relationship with the customer, such as a spouse. - After the request is received, information including data associated with the at least one on-site service is retrieved at
step 2810. The information may be saved indatabase 154, for instance. The information may also contain expected durations of different services and field professional availability and skillsets. Atstep 2812, a field professional is assigned to perform the additional service based on the retrieved information. For example, the same field professional that performed a first task may be assigned to provide a second service based on the retrieved information. -
Step 2812 may be further illustrated by reference toFIG. 30 .FIG. 30 shows process 3000 for assigning an additional service based on retrieved information. After data is retrieved atstep 3002, the process compares the difference in time between the previous service and the next request for service. If a time difference between a first time when the first on-site service was provided and a second time when the second request is received is below a predefined period of time,step 3004 if Yes, and the same field professional may be assigned to accomplish the task. In other words, ifstep 3004 is Yes, the process may skipstep 3006. For example, if a mobile veterinarian administers medicine to a sick cow on a farm and the customer the next day requests additional medical attention because the cow is not recovering, the same veterinarian may be assigned to the task. By assigning the same field professional to subsequent tasks that are requested within a predefined period of time, the field professional may provide better, quicker service and the customer have greater satisfaction because there would be continuity of care and familiarity with the user's issues. If, however, the difference is greater than a predefined period, such as a month later, the process proceeds to step 3006, because there may be a reduced benefit of familiarity due to the delay between a first and second service. - At
step 3006, the level of satisfaction from the work of the field professional is compared to a threshold. The threshold may be a numerical calculation based on the data, or a qualitative determination. Alternatively, the determination may be made by a manager assessing the data. The level of satisfaction may be customer-dependent, such that only the requesting customer's level of satisfaction from prior work with the field professional is compared to the threshold. Alternatively, the threshold may be customer dependent, for instance, premium customers may be sent field professionals with high satisfaction scores across many customers. If the level of satisfaction from the work of the field professional is less than a threshold,step 3006 is No, and a new field professional may be assigned to the task atstep 3008. In this way, a company may avoid sending a field professional to the same customer who already was disappointed by the field professional's service. However, if a certain field professional or plurality of field professionals provided the at least one on-site service, and the level of satisfaction from the work of the certain field professional or plurality of field professionals is greater than a threshold,step 3006 is Yes, and the certain field professional or plurality of field professionals may be assigned to perform the additional on-site service. In this way, users may continue having high levels of satisfaction by having the same field professional for each subsequent services. - At
step 3010, the on-site service is analyzed to determine if it included a plurality of on-site services provided by a plurality of field professionals. If there were two or more,step 3010 is Yes, and the process selects which of the plurality of field professionals to assign to perform the additional on-site service based on the data associated with the on-site service. The selected group may be a single field professional, or may be a subset of the plurality of field professionals that performed the at least one on-site service. For example, if three electricians worked together to install a hot tub at a hotel, the level of customer satisfaction of one electrician may be higher than the level of customer satisfaction of the other two electricians. If the hotel then requests service for the hot tub, the first electrician may be selected to perform the service because he had a higher level of customer satisfaction. Alternatively, if a plumber and an electrician installed a hot tub at a hotel, and a motor on the hot tub pump failed, the electrician may be selected to perform the service because the data shows that an electrician is needed to service a motor, not a plumber. Once a selection is made, the process then proceeds to step 3014. Alternatively, if only a single field professional performed the at least one on-site service, the process may proceed directly to step 3014 without performingstep 3012. - At
step 3014, the process determines if the field professional or plurality is available to provide the service. This determination may be based partly on a time period within which the service must or should be performed, determined either by company standards or customer request that the service be provided within some amount of time. If the certain field professional's schedule is full during a predefined time period, a task previously assigned to the certain field professional may be reassigned to enable assigning the certain field professional to the additional on-site service atstep 3016. Similarly, if a plurality of field professionals is selected atstep 3012, the schedule of the plurality or a schedule of each individual in the plurality may be analyzed and tasks reassigned so each individual of the plurality may be assigned the additional on-site service. - At
step 3018, the field professional or the plurality of field professionals may be assigned to perform the additional service. While performingprocess 3000, any of the steps may be omitted as desired by a company. For example, a company may omit determining if the difference in time between the previous service and the next service is less than a predefined period of time because, for instance, the types of services offered by the company do not benefit from having the same field professional perform subsequent tasks. -
FIG. 31 shows aprocess 3100 of suggesting a field professional to a user. After selecting a field professional based on the data associated with the at least one on-site service atstep 3102,step 3104 determines if the additional service is of a different type than the on-site service already performed. If the additional service is of a different type than the at least one on-site service,step 3104 is Yes, and a different field professional is selected atstep 3106. A suggestion of a different field professional for the additional service may then be presented atstep 3108. The different field professional may be selected based on a necessary skillset needed to perform the additional service. However, if the additional service is of the same type as the at least one on-site service,step 3104 is No, and, atstep 3108, the field professional selected instep 3102 based on the data associated with the at least one on-site service may be suggested for the additional on-site service. The field professional may be suggested to a manager or customer service representative atstep 3108, or directly to the user. - For example, if data associated with a first service performed shows that a certain field professional planted apple trees for a customer, and a customer requests a second service to plant more apple trees, the services may be of the same type, and
step 3104 is No. The same field professional therefore may be suggested to the customer based on data associated with the first service. However, if the customer requests a second service to cut down other trees to provide more sunlight to the apple trees, the second service may be of a different type from the first service. In this case,step 3104 is Yes, and a different field professional may be suggested to the user. Different types of services may be determined by a company based on the skillset needed to perform a service, such that, for example, all tasks that can be completed by an electrician are the same type. - After a field professional is suggested at
step 3108,process 3100 determines if the suggestion was accepted atstep 3110. If the suggestion was accepted,step 3110 is Yes, and the field professional is assigned to the task atstep 3112. However, if the suggestion was declined,step 3110 is No, and the system may return to step 3106 and determine a different field professional. This cycle may continue until a suggestion is accepted atstep 3110. Once a suggestion is accepted, the corresponding field professional may be assigned to perform the service atstep 3112. In this manner, a customer may have the same field professional if the customer was satisfied with the field professional's work, or may decline the same field professional if the customer was unsatisfied with the first field professional's work. The customer may also choose between multiple field professionals until a field professional is satisfactory to the customer. Alternatively, a manager may also choose between multiple field professionals to choose the optimal field professional to perform a task. - L. Systems and Methods for Fixing Schedule Using a Remote Optimization Engine
- Scheduling tasks for field professionals requires a system to predict values of numerous scheduling parameters. One example of these scheduling parameters is the “task duration,” the time it takes for a field professional to complete a task at the client's location. Another parameter is the “travel duration,” the time it takes for a field professional to travel to the client's location. Allocating a time period for a certain task significantly shorter than the actual task duration (or the actual travel duration) may result in dispatchers having to take immediate action to fix the schedule, postponing tasks, or requiring more field professionals to meet the demand. These implications may attribute to poor customer service. On the other hand, allocating a time period for the certain task significantly longer than the actual task duration (or the actual travel duration) may result in under-utilization of field resources, post revenue, or poor customer service. The following discussion refers to task duration and travel duration; however, a person skilled in the art would recognize that values of other scheduling parameters may be predicted and used by the disclosed system.
-
FIG. 32 shows a bar graph illustrating actual task duration distribution of single task type. As shown, the task duration may vary significantly. Factors that may influence the task duration may include different characteristics of the field professionals (e.g., skills, experience, etc.), the time of day, the weather, the location of the task, the comments from the client at the time of scheduling, and more. When a fixed value of 45 minutes is assigned by default to all tasks from this task type, only about 30% of the tasks are within the margin of error of ten minutes of the default value, about 40% of the tasks takes between 1 to 2.5 hours, and about 25% of the tasks takes less than 30 minutes. Therefore, taking a naive approach of assigning a predetermined value for the scheduling parameter task duration would result in an unoptimized schedule. - The present disclosure discloses a system (e.g., system 100) with a optimization engine that takes into consideration different factors for predicting the task duration and other scheduling parameters for a specific task. Consistent with the present disclosure, the system may constantly or periodically receive information for calculating the scheduling parameters. In one example, the received information may be associated with past task durations (e.g., last month when Bob was assigned to this type of task it took him 70 minutes on average, but this month his average is about 57 minutes). In another example, the information may include traffic data associated with travel duration predictions (e.g., last week it was estimated to take 20 minutes on average to travel from point A to point B between 10:00 and 15:00; this week it is estimated to take 15 minutes to travel from point A to point B between 10:00 and 15:00).
- In some embodiments, the system may provide schedule optimization services to different service providers. An example configuration for these embodiments may include a central server with an optimization engine and a plurality of local servers, each with its own native scheduling engine. The central server may be separate or remote from the local server. Namely, different servers may host the optimization engine and the native scheduling engines. In some cases, this separation is important because service providers (associated with the local servers) may not wish to share details on their clients with third party services (such as the schedule optimization service providing the central server). Because the optimization engine may have access to more updated information regarding different scheduling parameters, the optimization engine may provide more precise results than the native scheduling engines. However, the local servers cannot simply use the resources of the central server without sharing confidential or private information. The following disclosure describes a process by which local servers can benefit from the optimization engine without sharing details on their customers. In other words, the present disclosure shows a technical solution that provides an improvement to the functioning of a computerized system with optimization engine by communicating scheduling data between the central server and one or more local servers.
-
FIG. 33 is a schematic illustration of asystem 3300 for scheduling tasks to field professionals.System 3300 may include acentral server 3305 and a plurality of local servers 3330 (e.g., alocal server 3330A, and alocal server 3330B).Central server 3305 may include at least one memory (e.g. a memory device 3310), a communication interface (e.g., a network interface 3320), and at least one processor (e.g., a processor 3315) connectable to the communication interface and the at least one memory. Similarly, each of local servers 3330 may include at least one memory (e.g. amemory device 3335A andmemory device 3335B), a communication interface (e.g., anetwork interface 3345A and anetwork interface 3345B), and at least one processor (e.g., aprocessor 3340A and aprocessor 3340B). In the following discussion, the functionality of the components oflocal server 3330A are described in detail.Local server 3330B is assumed to have similar components with similar functionalities. -
System 3300 may include one or more local servers 3330 for communicating with users and scheduling tasks to field professionals. The memory device oflocal server 3330A may be configured to store data associated with scheduled tasks. For example,memory device 3335A may be configured to storetask data 3336A,scheduling data 3337A, andclient data 3338A. In one embodiment,task data 3336A may include information about tasks that were scheduled during a defined period of time, such as dates, times, task type, task location, skills requirement per task, tools requirement per task, spare parts requirement per task, etc. The defined period of time may be more than a week, more than a month, more than a year.Scheduling data 3337A may include a plurality of scheduling parameters associated with thenative scheduling engine 3341A. The scheduling parameters may include, for example, estimated tasks duration times for different task types, estimated travel duration times for different rides at different times of the day, and more.Client data 3338A may include details of the clients associated with the scheduled tasks, such as client profiles (e.g., name, age, gender, profile photos, work place), contact details (e.g., contact information, phone number, email address, home address), client history (e.g., details about last services provided, such as service feedbacks, complaints, or comments), and more. Consistent with the present disclosure,task data 3336A may include general information that can be shared withcentral server 3305 andclient data 3338A may include private information about the clients that should not be shared withcentral server 3305. - The processor of
local server 3330A may be configured to schedule tasks to fieldprofessionals 110 using anative scheduling engine 3341A. The communication interface oflocal server 3330A may be configured to communicate withfield professionals 110,users 130, andcentral server 3305. Specifically,network interface 3345A may receive a set of requests for on-site assistance fromusers 130 and real-time information from a set of field professionals. The term “a set of field professionals” in this disclosure refers to one or more field professionals. The communication interface oflocal server 3330A may also be configured to transmittask data 3336A andscheduling data 3337A tocentral server 3305 and to avoid transmittingclient data 3338A. -
System 3300 illustrated inFIG. 33 also includescentral server 3305 for updating a scheduling engine that schedules tasks to field professionals.Central server 3305 may be configured to access data associated with a scheduling engine (e.g., anative scheduling engine 3341A 3316 and/or anative scheduling engine 3341B). For the purpose of the following discussion, a distinction is made between the types of memory associated withcentral server 3305.Memory 3318 is the primary storage of central server and it is a type of memory which temporarily stores data (also referred to as a volatile memory). The primary storage may be directly associated withprocessor 3315. Examples of the primary storage may include Random Access Memory (RAM), Dynamic Random-Access Memory (DRAM), Synchronous Dynamic Random-Access Memory (SD RAM).Memory 3318 may also be associated with a memory device that permanently stores a predefined set of instructions for internal operation of thecentral server 3305.Memory device 3310 is the secondary storage ofcentral server 3305 and it is a type of memory which is non-volatile and persistent in nature. It allows a user to store data that may be instantly and easily retrieved, transported, and used by applications and service. Examples of the secondary storage may be a magnetic hard disk, an optical disk, or another form of storage for large amounts of data.Central server 3305 may be synchronized with a cloud storage service. - In one embodiment, the secondary storage of central server 3305 (i.e., memory device 3310) may store
scheduling data 3311 and aprediction model 3312. In one embodiment,scheduling data 3311 may include information associated with previously completed tasks scheduled by at least one scheduling engine other thannative scheduling engine 3341A. For example,scheduling data 3311 may include information associated with tasks scheduled bynative scheduling engine 3341B. The information may include specific details about the scheduled tasks and/or statistics about the scheduled tasks. In another embodiment,scheduling data 3311 may be associated with traffic predictions. For example,scheduling data 3311 may include estimated travel durations, weather forecasts, details regarding public events that may cause atypical traffic conditions (e.g., parades, marathons, and demonstrations), and more. In another embodiment,scheduling data 3311 may be associated with task duration predictions. In this embodiment,scheduling data 3311 may be associated with a task type, a time of day, a customer type, a task location, skills of field professionals, and more.Scheduling data 3311 may include that collection of data be used for determining aprediction model 3312. - In addition, memory device 33310 of central server 3335 may be configured to store a prediction model (e.g., prediction model 3312). The term “prediction model” refers to a specific model associated with task scheduling derived by applying a prediction method to a collection of data. The prediction method may include a combination of methods from the fields of statistics, machine learning, artificial intelligence, and data mining. Consistent with the present disclosure,
central server 3305 can train and updateprediction model 3312 based on data received fromfield professionals 110,users 130, local servers 3330, and/orother data sources 3350. Consistent with the present disclosure,processor 3315 may updateprediction model 3312 based on data that periodically received fromlocal server 3330A and/orlocal server 3330B. A different prediction model may include a different version of prediction model, i.e., different values for the same scheduling parameters. - In some embodiments, the processor of
central server 3305 may be configured to utilize anoptimization engine 3316 and an in-memory processing module 3317 for checking performances ofnative scheduling engine 3341A. As used herein, the term “optimization engine” refers to software, firmware, hardware, or a combination thereof for generating a task assignment plan for a set of field professionals. In one embodiment, the optimization engine may be associated with software instructions and a prediction model that may be stored in the secondary storage. When the software instructions are executed, at least some of the data stored in the secondary storage is loaded byprocessor 3315 into the primary storage. Thereafter,processor 3315 may be configured to execute the software instructions associated with the optimization engine in the primary storage. - The term “in-memory processing module” refers to software, firmware, hardware, or a combination thereof for processing in a stateless manner at least part of the data received from
local server 3330A. In-memory processing module 3317 enables directly loading the data received fromlocal server 3330A into the primary storage (e.g., memory 3318) without passing into the secondary storage. Although in-memory processing requires implementation of a large primary storage, it eliminates the need for retrieving data from the secondary storage (e.g., memory device 3310). Accordingly, the term “processing in a stateless manner” refers to a type of data processing that does not keep track of configuration settings, transaction information, or any other historical information about the processed data. Whenprocessor 3315 processes data received fromlocal server 3330A, at least some of the data is stateless (i.e., it does not maintain state). Specificity,central server 3305 prevents at least part of the data received fromlocal server 3330A from maintaining state. In other words,central server 3305 prevents at least part of the data received fromlocal server 3330A from being saved in the secondary storage. - The communication interface of
central server 3305 may be configured to communicate with one or more local servers 3330,field professionals 110,users 130, anddata source 3350.Data source 3350 may be associated with a volatile or non-volatile, magnetic, semiconductor, tape, optical, removable, non-removable, or other type of storage device or tangible or non-transitory computer-readable medium. In one embodiment,data source 3350 may provide traffic data, map data, and toll road information, which may be used for task scheduling. The traffic data may include historical traffic data and real-time traffic data regarding a certain geographical region. In one embodiment, the traffic data may be used to, for example, calculate estimate travel durations and determine an optimal route for a particular field professional. Real-time traffic data may be received from a real-time traffic monitoring system, which may be integrated in or independent fromdata source 3350. The map data may include map information used for navigation purposes, for example, for calculating potential routes and guiding professionals to locations associated with the tasks. The toll road information may include toll charges regarding certain roads and any change or updates thereof. Toll road information may be used to calculate optimal routes for the field professionals to locations associated with the tasks. -
FIG. 34 is a message flow diagram showing example communications between different elements of a scheduling system in accordance with aprocess 3400. In the following description, reference is made to certain components ofsystem 3300 for purposes of illustration. It will be appreciated, however, that other implementations are possible and that other components may be utilized to implement methods disclosed herein. -
Process 3400 starts whencentral server 3305 requests scheduling data from data source 3350 (message 3402). Thereafter,central server 3305 may receive scheduling data from data source 3350 (message 3404). The scheduling data may be used to update the optimization engine. For example, a certain road may be under maintenance and travel duration is expected to be longer. Independently to actions performed bycentral server 3305,local server 3330A may receive requests for on-site services from a plurality ofusers 130. In one embodiment, each of the requests may require a field professional to travel to different locations associated with a corresponding user.Local server 3330A may use its native scheduling engine to generate task schedule. Thereafter,local server 3330A may send the scheduling data associated with its native scheduling engine and/or task data to central server 3305 (message 3406 and message 3408). -
Central server 3305 may process in a stateless manner the received task data using the optimization engine. In one embodiment,processor 3315 may detect at least one task thatlocal server 3330A, using its native scheduling engine, had scheduled in an unoptimized manner. In one example, a task scheduled in an unoptimized manner may be a task in which the estimated task duration is determined to be longer (or shorter) than the task duration currently allocated in the schedule. In another example, a task scheduled in an unoptimized manner may be a task in which the estimated travel duration to the task is determined to be longer (or shorter) than the travel duration currently allocated in the schedule. Thereafter,processor 3315 may identify a factor that causes the native scheduling engine oflocal server 3330A to schedule tasks in the unoptimized manner, provide to thelocal server 3330A information such as the identified factor (message 3410). After processing in a stateless manner, the task data fromlocal server 3330A,processor 3315 may update its prediction model (prediction model 3312). In one embodiment, updating the prediction model may take into account the identified factor that caused the native scheduling engine oflocal server 3330A to schedule tasks in the unoptimized manner. - In some embodiments,
local server 3330A may use the information received fromcentral server 3305 to update its native scheduling engine.Local server 3330A may also review the previously scheduled set of tasks to identify at least one task scheduled in an unoptimized manner. Alternatively,central server 3305 may also transmit details of at least one task determined to be scheduled in an unoptimized manner. Consistent with the present disclosure, the scheduling system prefers not to make schedule changes that require contacting clients that had already scheduled a service and change their appointment times. Accordingly,local server 3330A may determine a likelihood that the task scheduled in an unoptimized manner will require dispatchers to take immediate action for fixing the schedule. And in some cases,local server 3330A may cause a schedule change associated with the identified task.FIG. 35 illustrates an example of the schedule change andFIG. 36 illustrates an example of decision tree for changing the schedule. -
FIG. 35 is a schematic illustration of twodaily schedules local server 3330A to four field professionals (Arnold, Bruce, Chuck, and Donald) between 8:00 and 16:00 of a workday. A person skilled in the art would recognize that an actual scheduling system can manage the daily schedules of more than 10 field professionals, more than 50 field professionals, and/or more than 100 field professionals. Theupper schedule 3500A shows details of tasks thatlocal server 3330A had assigned to each of the field professionals using the native scheduling engine. Thelower schedule 3500B shows details of tasks thatlocal server 3330A assigned to each of the field professionals using an updated version of native scheduling engine. In this disclosure, the term “updated version of native scheduling engine” may refer to different scheduling engines, different versions of a same scheduling engine, or a scheduling engine with different values of scheduling parameters. Originally, as shown in theupper schedule 3500A, Arnold was assigned totasks tasks tasks tasks -
Local server 3330A may use the updated native scheduling engine on the previously scheduled set of tasks to identify one or more tasks scheduled in an unoptimized manner. For example,local server 3330A may determine that 1) in Arnold's schedule,task 3502 was originally assigned with a longer task duration than a time it is estimated to take; 2) in Bruce's schedule,tasks 3513 and 3514 were originally assigned with a shorter task duration than the times they are estimated to take; 3) in Chuck's schedule,task 3524 was originally assigned with a shorter task duration than a time it is estimated to take; and 4) in Donald's schedule,task 3532 was originally assigned with a shorter task duration than a time it is estimated to take. In view of the new estimations of the task durations (determined using the updated native scheduling engine),local server 3330A may change the schedule to prevent a situation in which dispatchers have to take immediate action to fix the schedule. Specifically, as shown in thelower schedule 3500B,local server 3330A had updated the estimated task durations, reassignedtask 3524 from Chuck to Arnold, reassignedtask 3532 from Donald to Bruce, and rescheduled task 3514 to a different day. -
FIG. 36 is a flowchart of an example process 3600 used by a processing device oflocal server 3330A (e.g., processor 3340), according to embodiments of the present disclosure. Process 3600 begins when the processing device determines a likelihood that a task scheduled using the native scheduling engine will result in a failure to complete another task (block 3602). Thereafter, the processing device may determine whether the likelihood is greater than a threshold (decision block 3604). If the likelihood is less than the threshold (i.e., changing the schedule is not necessary but may improve utilization of field resources), the processing device may determine if changing the schedule would require changing task time (decision block 3606). Typically changing a task time would require contacting a client and may lead to negative customer experience. When changing the schedule does not require changing the task time, the processing device is configured to cause the schedule change associated with the task (block 3608). For example, this type of schedule change may include reassigning tasks to different field professionals and does not require changing the task time. When changing the schedule requires changing the task time, the processing device is configured to avoid causing the schedule change associated with the task (block 3610). If the likelihood that a task previously scheduled will cause a failure to complete another task is greater than the threshold, the processing device may use the updated native scheduling engine to identify alternative task times (block 3612). The alternative task times may be offered to the client. Thereafter, the processing device is configured to cause the schedule change associated with the task (block 3614). -
FIG. 37 depicts anexample method 3700 in accordance with an embodiment from the perspective of a central server (e.g., central server 3305).Method 3700 may be used for updating a scheduling engine of a local server (e.g.,local server 3330B) that schedules tasks to field professionals. For purposes of illustration, in the following description reference is made to certain components ofsystem 3300. It will be appreciated, however, that other implementations are possible and that other components may be utilized to implement the exemplary method. It will also be readily appreciated that the illustrated method can be altered to modify the order of steps, delete steps, or further include additional steps. - At
step 3702, a processing device (e.g., processor 3315) may access stored data (e.g., scheduling data 3311) associated with an optimization engine (e.g., optimization engine 3316). Atstep 3704, the processing device may periodically receive from a remote server (e.g.,local server 3330B) a data associated with a native scheduling engine (e.g.,native scheduling engine 3341B) (e.g.,task data 3336B and/orscheduling data 3337B). In one embodiment, the processing device may receive from the remote server data associated with tasks that were scheduled during a defined period of time. The period of time associated with the scheduled tasks may be defined by the processing device, by the remote server, or by an operator ofsystem 3300. In some examples, the processing device may periodically receive from the remote server data associated with tasks that were scheduled during a period of less than a month, a period of less than two months, a period of less than three months, a period of more than two days, a period of more than ten days, and a period of more than twenty days. - At
step 3706, the processing device may process in a stateless manner the data periodically received from the remote server using optimization engine to update a prediction model. Consistent with the present disclosure, processing the data associated with the scheduled tasks in a stateless manner may be done by avoiding storing inmemory device 3310 the data associated with scheduled tasks. Alternatively, processing the data associated with the scheduled tasks in a stateless manner may be done by avoiding storing inmemory device 3310 personal details included in the data associated with scheduled tasks. In one embodiment, the method may include detecting that the native scheduling engine scheduled a task in an unoptimized manner by determining that a field professional assigned to the task is estimated to arrive at a location associated with the task before or after a time estimated by the native scheduling engine. For example, the native scheduling engine scheduled a first task to start at 11:00 AM, but the optimization engine determines that a first field professional assigned to the first task will not arrive to the location associated with the first task before 11:25 AM. In another embodiment, detecting that the native scheduling engine scheduled a task in an unoptimized manner may include determining that a field professional assigned to the task is estimated to complete the task before or after a time estimated by the native scheduling engine. For example, the native scheduling engine reserved in the schedule 2.5 hours for completing a second task, but the optimization engine determines that a second field professional assigned to the second task will complete the second task in less than an hour and may be available for an additional task. In yet another embodiment, detecting that the native scheduling engine scheduled a task in an unoptimized manner may include determining that a field professional assigned to the task does not have a skill set required to complete the task on time. In one example, a third field professional may be assigned to a third task of installing a certain product, but the optimization engine determines that the third field professional did not complete the training for installing that certain product. In a further embodiment, detecting that the native scheduling engine scheduled a task in an unoptimized manner may include determining that other field professionals may compete the task faster than the field professional currently assigned to the task. In one example, this type of task takes a fourth field professional 35 minutes more than the average time of other field professionals, and it is better to assign the third field professional to other types of tasks. In some embodiments, the processing device may identify at least one factor that causes the native scheduling engine to schedule tasks in the unoptimized manner. With reference to the three examples above, the at least one factor that caused the native scheduling engine to schedule tasks in an unoptimized manner may include inaccurate estimations of travel durations, inaccurate estimations of task durations, inaccurate skill requirements per task, and/or inaccurate statistics on field professionals. In one embodiment, the processing device may identify a combination of factors that causes the native scheduling engine to schedule tasks in the unoptimized manner. - At
step 3708, the processing device may transmit information associated with the updated prediction model to the remote server for enabling improvement of the native scheduling engine. Improving the native scheduling engine may include updating the native scheduling engine based on the identified at least one factor. Consistent with the present disclosure, the information transmitted to the remote server may be associated with a plurality of scheduling parameters. For example, the information transmitted to the remote server may include indications of inaccurate estimations driving durations native scheduling engine, indications of inaccurate estimations of task durations, and indications of inaccurate skill requirements per task. The native scheduling engine may assign different task durations for a plurality of task types, different task durations for a plurality of field professionals, different task durations for a plurality of customer types, different task durations for time of day, different task durations for a plurality of areas of task locations, different task durations for a plurality of skills of the field professional, and more. In one embodiment, the local server may update the native scheduling engine by changing at least one value of the plurality of scheduling parameters. For example, originally the native scheduling engine oflocal server 3330B assumed it will take Bob 68 minutes to complete a certain task type. But using the updated native scheduling engine the local server may determines that there is 80% likelihood that it will takeBob 50 minutes to complete the task and 20% likelihood that it will take Bob 60 minutes to complete the task. - In addition, the processing device may transmit to the remote server details about the at least one task that the native scheduling engine had scheduled in an unoptimized manner. The details about the at least one task may include, for example, the task reference number, the time and date of the task, the field professional assigned to the task, the location of the task, the customer associated with the task, and more. According to embodiments of the present disclosure, the processing device may also transmit to the remote server at least one recommendation for optimizing scheduling of tasks by the native scheduling engine. In one example, the at least one recommendation may include a suggestion to reassign the task that the native scheduling engine had scheduled in an unoptimized manner to a different field professional. In another example, the at least one recommendation may include a suggestion to reschedule the task that the native scheduling engine had scheduled in an unoptimized manner to a different time or a different date. In another example, the at least one recommendation may include a warning. Specifically, the processing device may determine a likelihood that the at least one task that the native scheduling engine had scheduled in an unoptimized manner will result in a failure to complete a task, and when the likelihood is greater than the threshold, the processing device may transmit a warning to the remote server.
- Consistent with some embodiments, the processing device may obtain data about at least one environmental condition. The processing device may obtain the data about at least one environmental condition from a data source (e.g.,
data source 3350A). The term “environmental condition” refers to a condition that may have a physical effect on a daily schedule of a field professional. The environmental condition may include natural or man-made conditions. The natural environmental conditions may include, for example, flood, hurricane, thunderstorm, earthquake, and more. The man-made environmental conditions may include, for example, atypical traffic conditions, construction, fires, and more. The processing device may determine a likelihood that the at least one environmental condition was not accounted for by a current version of the native scheduling engine and transmit an update to a remote server (e.g.,local server 3330A). In one example, the processing device may transmit information for updating a current version of the native scheduling engine. - Consistent with other embodiments, the processing device may periodically receive data associated with tasks scheduled by the native scheduling engine. The term “periodically” in this context refers to the transmission of data from the remote server being performed more than once or in successive instances and does not necessarily imply regular or uniform interval. For example, the processing device may receive first data associated with tasks scheduled by the native scheduling engine during a first time period (e.g., a week), and receive second data associated with tasks scheduled by the native scheduling engine during a second time period (e.g., 10 days) subsequent the first time period. The first and the second time period may or may not overlap. In one example, the first time period and the second time period may be between one day and one hundred days. In some embodiments, a duration of the first time period may be selected such that a size of the first data is lower than a threshold associated with an ability of the at least one processor to process in stateless manner. Specifically, the threshold may be determined based on a size of a RAM memory associated with the at least one processor. For example, the size of the data received may be less than 100% of the size of the
memory 3318, less than 90% of the size of thememory 3318, less than 75% of the size of thememory 3318, or less than 50% of the size of thememory 3318. -
FIG. 38 depicts anexemplary method 3800 in accordance with an embodiment from the perspective of a local server (e.g.,local server 3330A).Method 3800 is used for scheduling tasks to field professionals. For purposes of illustration, the in the description of also this method, reference is made to certain components ofsystem 3300. It will be appreciated, however, that other implementations are possible and that other components may be utilized to implement the exemplary method. It will also be readily appreciated that the illustrated method can be altered to modify the order of steps, delete steps, or further include additional steps. - At
step 3802, a processing device (e.g.,processor 3340A) may receive a plurality of requests for on-site service from a plurality of users (e.g., users 130), wherein each request is associated with a different location. Atstep 3804, the processing device may schedule a set of tasks from the plurality of requests using a native scheduling engine (e.g.,native scheduling engine 3341A)). In one embodiment, the processing device may estimate travel durations between locations associated with the set of tasks. The travel durations of the field professionals may depend on accurate estimates of prevailing and emerging traffic conditions. As such, the processing device may utilize advanced traffic models to analyze traffic data, including real-time traffic data and historical traffic data to estimate the travel durations. Consistent with the present disclosure, different versions of native scheduling engine may use different scheduling data. When different versions of native scheduling engine are being used different estimations of travel durations may be determined. For example, when using first scheduling data,native scheduling engine 3341A may estimate that a specific ride will take 37 minutes, but when using second scheduling data,native scheduling engine 3341A may estimate that a specific ride will take 52 minutes. - In another embodiment, the processing device may estimate task durations associated with the set of tasks. As mentioned above, the task durations may be determined based on at least one of: the task type, the field professional, the customer type, the time of day, and the task area. Consistent with the present disclosure, when the native scheduling engine uses different scheduling data, different estimations of task durations may be determined. For example, a first version of
native scheduling engine 3341A may estimate that a specific task will be completed in 25 minutes, but an updated second version ofnative scheduling engine 3341A may estimate that the specific task will be completed in 38 minutes. In other embodiments, the processing device may determine the requirements to complete each of the set of tasks and assign field professionals accordingly. The requirements may include the skills required to complete a task, the list of tools required to complete, and/or a list of parts required to complete. The requirements may also change when the native scheduling engine uses different scheduling data. - At
step 3806, the processing device may update the native scheduling engine based on information received from a remote server (e.g., central server 3805). In one embodiment, the information from a remote server I may be received in response to sending the remote server data associated with the set of scheduled tasks (e.g.,task data 3336A). This embodiment is described in detail with reference tosteps 3704 to 3712 ofFIG. 37 . Alternatively, the information from a remote server may be received periodically from the remote server. Alternatively, the information from a remote server may be received from the remote server after detecting a trigger: for example, after the remote server identifies an environmental condition that requires a change in the native scheduling engine. In addition, the processing device may receive from the remote server at least one recommendation for optimizing scheduling of future tasks. In one example, the at least one recommendation may include a suggestion to reassign a task to a different field professional. In another example, the at least one recommendation may include a suggestion to reschedule a task to a different time or a different date. In another example, the at least one recommendation may include a suggestion associated with a desired scheduling weight. The desired scheduling weight may be a value (e.g., a numeric, textual, alphabetic, or symbolic value) that indicates a level of desirability of scheduling certain task types bylocal server 3330A. - At
step 3808, the processing device may use the updated native scheduling engine on the previously scheduled set of tasks to identify a task scheduled in an unoptimized manner. In a first embodiment, the processing device may use the updated native scheduling engine to determine that a field professional assigned to a task is estimated to arrive at a location associated with the task before or after a time previously estimated by the processing device. For example, originally the native scheduling engine had scheduled a first task to start at 11:00 AM, but later the updated native scheduling engine determines that the first field professional assigned to the first task will not arrive to the location associated with the first task before 11:40 AM. In a second embodiment, the processing device may use the updated native scheduling engine to determine that a field professional assigned to a task is estimated to complete the task before or after a time previously estimated by the processing device. For example, originally the native scheduling engine had reserved in the schedule 2.5 hours for completing a second task, but later the updated native scheduling engine determines that a second field professional assigned to the second task will complete the second task in less than an hour and may be available for an additional task. In a third embodiment, the processing device may use the updated native scheduling engine to determine that a field professional assigned to a task does not have a skill set required to complete the task. For example, originally the native scheduling engine I had assigned a third field professional to a third task of installing a certain product, but later the updated native scheduling engine determines that the third field professional did not complete the training for installing that certain product. - At
step 3810, the processing device may cause a schedule change associated with the identified task. In one embodiment, the identified task was previously assigned to a first field professional and causing the schedule change may include reassigning the identified task to a second field professional. For example, with reference to the lower schedule inFIG. 35 , the task identified as being scheduled in an unoptimized manner wastask 3532 and the schedule change may include reassigningtask 3532 from Donald to Bruce. In another embodiment, the identified task was previously assigned to a first field professional and causing the schedule change may include reassigning a different task previously assigned to the first field professional to a second field professional thereby enabling the first field professional to complete the identified task. For example, with reference to the lower schedule inFIG. 35 , the task identified as being scheduled in an unoptimized manner wastask 3523 and the schedule change may include reassigningtask 3524 from Chuck to Arnold. In another embodiment, the identified task is scheduled at a certain time and causing the schedule change may require rescheduling the identified task to a different time. For example, with reference to the lower schedule inFIG. 35 , the task identified as being scheduled in an unoptimized manner was task 3514 and the schedule change may include rescheduling task 3514 to a different time. In a related embodiment, rescheduling the identified task to a different time may include suggesting a user one or more alternative times selected by the updated native scheduling engine. - Consistent with the present disclosure, the processing device may periodically transmit to the remote server (e.g., central server 3805) data associated with a plurality of scheduled tasks. As mentioned above, this data is used by an optimization engine to determine the information that may be used for updating the native scheduling engine. In some embodiments, the size of the periodically transmitted data may be less than a threshold to enable processing the data in stateless manner. Specifically, the threshold may be determined based on a size of a RAM memory associated with the at least one processor of the remote server. For example, the size of the data received may be less than 100% of the size of the
memory 3318, less than 90% of the size of thememory 3318, less than 75% of the size of thememory 3318, or less than 50% of the size of thememory 3318. - M. Assigning Tasks Based on Real-Time Conditions
- A scheduling system should take into consideration real-time conditions that affect a schedule for a field professional. These real-time conditions may include an unplanned event likely to interfere with the field professional completing a task (e.g., user cancellation of an appointment, malfunction of a tool, traffic, etc.), and a window of opportunity for scheduling additional tasks to the field professional (e.g., shorter-than-estimated travel durations, shorter-than-estimated task durations, user cancellation of an appointment, etc.). Upon considering the real-time conditions, the disclosed system may identify several optional tasks that may be assigned to the field professional. In a first embodiment, the system may present the optional tasks to the field professional and assign a task based on the field professional's selection.
FIGS. 40A and 40B illustrate user interfaces associated with the first embodiment. In a second embodiment, the system may use an artificial intelligence technology on historical data that may be indicative of dispatchers' preferences to identify possible tasks to assign to the field professional, to identify a group of field professionals as candidates for doing certain tasks, or to learn details (e.g., skills) on the field professionals.FIG. 41 illustrates software modules associated with the second embodiment. - The following disclosure describes how
system 100 dynamically changes the schedule of field professionals based on real-time information. As used herein, the term real-time information may refer to information or data collected at the time an event occurs or soon after the event occurs. The real-time information may include data relevant to determining the capability or the progress of a field professional's in arriving at a location associated with a task at a scheduled time and/or in completing on-site services associated with scheduled tasks. The real-time information may be collected from at least one source, such as, but not limited to, a mobile device (e.g., a mobile telephone, a personal digital assistant (PDA), a laptop computer, a tablet computer), an IoT device (e.g., including at least one of: a temperature sensor, a barometer, an altimeter, a visible light sensor), a global positioning system (GPS), a radio beacon, a wireless local area network (WLAN) station, a vehicle information and communication system (VICS), a traffic information broadcast system, a vehicle tracking and telemetry system, a weather monitoring system (WMS), social network and news websites, and more. In one embodiment, the real-time information may reflect location information associated with the field professional. Based on the location information, system 100 (alone or with reference to other internal or external systems) may determine if a field professional is at a location associated with one of the tasks in the schedule or en route to a scheduled task. In another embodiment, the real-time information may reflect task updates (e.g., field professional 110 may use a dedicated communication device or a dedicated application to provides real-time updates, such as “arrived at destination” and “5 minutes delay in completing the task”). In yet another embodiment, the real-time information may include updates from different data sources outsidesystem 100 that may affect the progress of field professional 110 (e.g., traffic updates, weather updates, user's social profiles, etc.). - Consistent with the present disclosure, the real-time information may reflect required changes to a schedule of a field professional. As discussed below with reference to
FIG. 39A ,system 100 may determine, from the real-time information, existence of an unplanned event likely to interfere with the field professional completing at least one task from the daily schedule. In addition, as discussed below with reference toFIG. 39B ,system 100 may determine, from the real-time information, a window of opportunity to assign an additional task to the field professional. -
FIG. 39A depicts a planned timeline and an actual timeline of a first field professional 110 (e.g., Bart). Originally, as illustrated in the planned timeline, Bart was assigned with five tasks: task A (scheduled to start at 8:30 AM and estimated to end at 9:30 AM), task B (scheduled to start at 10:00 AM and estimated to end at 11:00 AM), task C (scheduled to start at 11:30 AM and estimated to end at 12:30 PM) task D (scheduled to start at 1:00 PM and estimated to end at 2:00 PM), and task E (scheduled to start at 2:30 PM and estimated to end at 3:00 PM). InFIG. 39A , each of the tasks that Bart was assigned to is associated with a different location, and the planned timeline includes periods of time between the tasks that correspond to the estimated travel duration times. - In the actual timeline, it is shown that Bart had completed tasks A and B according to the planned schedule, and encountered an
unplanned event 3900 on the way to a location associated with task C. In the following example,unplanned event 3900 is a flat tire, but a person skilled in the art would recognize that there may be nearly unlimited different types of unplanned events that may interfere with the field professional's work and may prevent completion of one or more scheduled tasks.Steps 3902 to 3908 may be implemented bysystem 100 after Bart had encounteredunplanned event 3900. Atstep 3902,system 100 may receive real-time information associated with Bart. In this example, the real-time information may include a message from Bart that he had a flat tire. Atstep 3904,system 100 may determine existence of an unplanned event likely to interfere with task C. For example,system 100 may estimate that it will takeBart 20 minutes to fix the flat tire, and based on the current traffic conditions, he is expected to arrive to the location associated with task C around 11:50 AM. Thus, the flat tire event is likely to interfere with task C scheduled to start at 11:30 AM. Accordingly,system 100 may reassign task C to a different field professional or reschedule task C to a different date.System 100 may identify a group of optional tasks (e.g., task F, task G, task H, task I, and task J). The optional tasks may include repair and maintenance services of IoT devices or different location-agnostic tasks. Atstep 3906,system 100 may present Bart some of the identified tasks (e.g., task F, task G, task H) as alternatives to task C. Atstep 3908, upon detecting Bart's selection,system 100 may assign Bart with task F. After Bart has completed task F, he can continue with his planned schedule and complete tasks D and E. -
FIG. 39B depicts a planned timeline and an actual timeline of a second field professional 110 (e.g., Lisa). Originally, as illustrated in the planned timeline, Lisa was assigned with five tasks: task A (scheduled to start at 8:30 AM and estimated to end at 9:30 AM), task B (scheduled to start at 10:00 AM and estimated to end at 11:45 AM), task C (scheduled to start at 12:45 PM and estimated to end at 1:30 PM) task D (scheduled to start at 2:00 PM and estimated to end at 3:00 PM), and task E (scheduled to start at 3:30 PM and estimated to end at 4:30 PM). InFIG. 39 , each of the tasks that Lisa was assigned to is associated with a different location, and the planned timeline includes periods of time between the tasks that correspond to the estimated travel duration times. - In the actual timeline, it is shown Lisa had completed task A according to the planned schedule and completed task B much earlier than estimated. Consequently, a window of
opportunity 3950 had opened. In the following example, window ofopportunity 3950 was instigated when Lisa completed task B earlier than estimated, but a person skilled in the art would recognize that there may be other causes and/or combination of causes responsible for windows of opportunity. For example, a customer may cancel an appointment, the travel duration takes less time than estimated, and more.Steps 3952 to 3958 may be implemented bysystem 100 after Lisa has completed task B. Atstep 3952,system 100 may receive real-time information about Lisa's progress. For example, Lisa may use a dedicated application on her smartphone to provide a real-time update “task completed.” Atstep 3954,system 100 may determine a window of opportunity. Determining the window of opportunity may include determining a duration of the window of opportunity. Atstep 3956,system 100 may identify a plurality of optional tasks (e.g., task F, task G, and task H). Atstep 3908,system 100 may automatically select task F and assign it to Lisa. After Lisa has completed task F, she can continue with her planned schedule and complete tasks D and E. -
FIGS. 40A and 40B depict two graphical user interfaces (GUIs) according to embodiments of the present disclosure. The GUIs may be part of a dedicated app installed in fieldprofessional communication device 180A. Specifically,FIG. 40A depicts aGUI 4000 that enables field professional 110 to provide real-time information tosystem 100; andFIG. 40B depicts aGUI 4010 that enables field professional 110 to select an optional task from a list of optional tasks identified bysystem 100. -
GUI 4000 inFIG. 40A may include a map area displaying a current location of field professional 110 relative to the location associated with a next task in the daily schedule.GUI 4000 may also present the estimated time of arrival for the next task's location. Below the map area,GUI 4000 displays the fields “Next Task,” “Current Status,” and “Event Type.” The field “Next Task” may present the next task's ID number. Field professional 110 may obtain additional details on the next task by pressing the ID number. For example, the additional details thatGUI 4000 may present to field professional 110 may include: information about the customer (e.g., name, address, phone number, etc.), information about the scheduled on-site service (type of service, required parts, etc.), and more. The field “Current Status” may be automatically completed by the system, for example, based on location data received fromcommunication devices 180A. Alternatively, the field “Current Status” may be manually completed by field professional 110 by entering updates such as: “arrived at location,” “task completed,” and more. The field “Event Type” may include details on an unplanned event likely to interfere with at least one task from the daily schedule. In one embodiment, the details may include a time estimation of the expected delay due to the unplanned event.GUI 4000 may also include a “send” button for transmitting the event reporting tosystem 100. -
GUI 4100 inFIG. 40B may present to field professional 110 a list of optional tasks identified bysystem 100. In one embodiment, field professional 110 may be prompt to select an optional task from the list whensystem 100 determines existence of an unplanned event likely to interfere with a task from the daily schedule. In another embodiment, field professional 110 may be prompt to select an optional task from the list whensystem 100 determines a window of opportunity to assign an additional task to the field professional.GUI 4010 may include afeature 4012 to refresh the list, as some of the optional tasks may be concurrently scheduled by the system, by dispatchers, or by other field professionals. Field professional 110 may change the presentation parameters of the list of optional tasks identified bysystem 100. For example,GUI 4010 may include afeature 4014 for sorting the plurality of optional tasks. InFIG. 40B the optional tasks are sorted based on their distance, i.e., the distance of a location of an optional task from a current location of field professional 110. A person skilled in the art would recognize that field professional 110 may be able to sort the plurality of optional tasks according to other parameters, for example, based on task type (e.g., location-agnostic tasks or location-based tasks), based on client type (e.g., private customers or industrial customers), based on estimated task duration, based on due date, and more. -
FIG. 41 illustrates amemory 4100 containing software modules and databases consistent with the present disclosure. In some embodiments,memory 4100 may be part ofserver 152. Alternatively,memory 4100 may be stored in an external storage communicatively coupled withserver 152, such as one or more databases or memories accessible overnetwork 170. Further, in other embodiments, the components ofmemory 4100 may be distributed in more than one server. As shown,memory 4100 may include aninput module 4102, an optionaltask identification module 4104, atask selection module 4106, and anoutput module 4108.Modules Memory 4100 may also include or be connected to a plurality of databases, such as a pendingrequests database 4110 which may store details on requests for on-site services (e.g., requests that were not yet scheduled); afield professionals database 4112 which may store data on each field professional (e.g., skills, qualifications, experience, shifts times, ranking); and a historical assignment database 4114 which may store data associated with assignments of tasks for a plurality of field professionals when windows of opportunity are identified. For example, historical assignment database 4114 may store data indicative of past dispatchers' preferences regarding assignments of additional tasks. - Consistent with the present disclosure,
input module 4102,optional task identification 4104,task selection module 4106, andoutput module 4108 may cooperate to perform multiple operations. For example,input module 4102 may provide tooptional task identification 4104 an identification of a window of opportunity associated with a specific field professional.Optional task identification 4104 can interact with pendingrequests database 4110,field professionals database 4112, and anexternal data source 4116 configured to store updated information, such as traffic conditions, weather conditions, etc. In one implementation,optional task identification 4104 can process the accessed data and forward totask selection module 4106 details of plurality of optional tasks that the specific field professional can complete during the window of opportunity.Task selection module 4106 can interact withfield professionals database 4112 and historical assignment database 4114, and select which task assign to the specific field professional.Output module 4108 may receive an identification of the selected task fromtask selection module 4106 and may change the daily schedule of the specific field professional accordingly. -
Input module 4102 can receive a set of requests for on-site service from a plurality of users and receive real-time information about a progress of a field professional assigned to a set of tasks associated with a subset of requests. The requests for the on-site services may be associated with different locations. In a case whereinput module 4102 is part ofserver 152,input module 4102 can receive the real-time information vianetwork interface 206 transmitted from one or more communication devices (e.g., fieldprofessional communication device 180A, customerservice communication device 1808, oruser communication device 180C). In some embodiments, the real-time information about the progress of a specific field professional may reflect the likelihood that the specific field professional will complete the daily schedule of assigned tasks. Based on the real-time information,input module 4102 may determine existence of an unplanned event likely to interfere with the specific field professional completing at least one task from the daily schedule. In addition,input module 4102 may determine existence of a window of opportunity to assign an additional task to the specific field professional. The window of opportunity may (or may not) be associated with the unplanned event.Input module 4102 can then transmit data identifying the determined window of opportunity associated with a specific field professional to optionaltask identification module 4104 for processing. - Optional
task identification module 4104 may receive the data identifying the determined window of opportunity frominput module 4102 and detect a plurality of optional tasks for the specific field professional. Optionaltask identification module 4104 may access pendingrequests database 4110 to learn which tasks are available for scheduling. The tasks available for scheduling may include tasks associated with unassigned requests and tasks that were scheduled to deferred dates due to lack of field professionals' availability. Thereafter, optionaltask identification module 4104 may apply one or more criteria for determining a plurality of optional tasks relevant for the specific field professional. In one embodiment, the one or more criteria may include distance of a task's location to a current location of the specific field professional. In another embodiment, the one or more criteria may include the current traffic conditions along a route to a task's location. In another embodiment, the one or more criteria may include the current weather conditions at a task's location. In another embodiment, the one or more criteria may include skills of the specific field professional. In another embodiment, the one or more criteria may include a scheduling weight indicating a desired ratio between the types of scheduled tasks. In another embodiment, the one or more criteria may include details associated with the tasks and/or details associated with the customer (e.g., only IoT device customers). In another embodiment, the one or more criteria may include a predicted task duration. The predicted task duration may be used by the system to determine if a task should be offered to a field professional. For example, the system may determine that a first field professional may be assigned to a certain task since the predicted duration for him would be 60 minutes while a second field professional may not be assigned to the certain task as the system estimates the predicted duration for him would be 75 minutes. -
Task selection module 4106 may receive the data identifying the plurality of optional tasks from optionaltask identification module 4104 and select at least one of the plurality of optional tasks for assignment.Task selection module 4106 may select the at least one optional task by processing of information using artificial intelligence (AI) technology and Machine learning (ML) technology. Specifically,task selection module 4106 may include AI software instructions that enable a processing device to perform at least one of learning of information, inference of information, and perception of information. Moreover,task selection module 4106 may include ML software instructions that enable a processing device to process a large amount of information (big data), such as information stored in an associated database (e.g., historical assignment database 4114). Using the AI and ML technologies,task selection module 4106 can process a large amount of information to select at least one of the plurality of optional tasks for assignment. The processing of information is an operation that grasps characteristics, rules, and judgment criteria of information, quantifies relationship between information and information, and predicts new data using a quantified information.Task selection module 4106 may identify at least one optional task that the field professional may be able to complete during the window of opportunity, based on the patterns learned by processing the information. For example,task selection module 4106 may determine a pattern associated with past dispatchers' preferences regarding assignment of additional tasks and may select the at least one optional task based on the determined pattern. In one embodiment,task selection module 4106 may also rank the plurality of optional tasks that the field professional can complete during the window of opportunity according to a likelihood that a human dispatcher would select each task.Task selection module 4106 can then transmit data identifying the at least one optional task tooutput module 4108 for processing. -
Output module 4108 can determine whether to automatically assign the specific field professional to the at least one task selected bytask selection module 4106. In casetask selection module 4106 had identified a group of optional tasks that meet the selection criteria,output module 4108 can determine to present the group of optional tasks to the specific field professional and to prompt the specific field professional to choose an optional task. Upon assigning an additional task to the specific field professional,output module 4108 may update historical assignment database 4114 to reflect the selected task assignment. -
FIG. 42 is a flowchart of anexample process 4200 for scheduling tasks to field professionals executed by a processing device ofsystem 100, according to embodiments of the present disclosure. For purposes of illustration, in the following description, reference is made to certain components ofsystem 100. It will be appreciated, however, that other implementations are possible and that other components may be utilized to implement the exemplary method. It will also be readily appreciated that the illustrated method can be altered to modify the order of steps, delete steps, or further include additional steps. - At
step 4202, a processing device (e.g., processing device 202) provides a field professional information about a daily schedule of assigned tasks associated with a set of requests for on-site services. Atstep 4204, the processing device receives real-time information reflecting a likelihood the field professional will complete the daily schedule of assigned tasks. Consistent with the present disclosure, the processing device may receive the real-time information from a customer service unit (e.g., customer service unit 120), from a user device (e.g., the customer'scommunication device 180C), or from a field professional device (e.g.,communication device 180A). For example, when the real-time information is associated with an event of a user's cancellation of an appointment, the real-time information may be received from any of the communication devices mentioned above. Specifically, users may call to the customer service unit and inform that they need to cancel the appointment; users may interact withsystem 100 directly via a website that has a feature to cancel appointments (e.g., a link to the website may be provided to the users by system 100); users may interact withsystem 100 by responding to a message (e.g., a verification SMS, email or Interactive voice response (IVR) message with a cancellation request; and the field professional may call the user and learn that the user forgot about the appointment. Thereafter, the field professional may use a dedicated app to cancel this appointment. - At
step 4206, the processing device determines from the real-time information existence of an unplanned event likely to interfere with the field professional completing at least one task from the daily schedule. The unplanned event may have been resulted from a situation associated with the user, from a situation associated with the field professional, or from environmental conditions. In one embodiment, the unplanned event may include user cancellation of an appointment associated with a task in the daily schedule of the field professional. For example, when the user is stuck at work and cannot make it home in time for the appointment with the field professional. In another embodiment, the unplanned event may include a significant delay of the field professional to the appointment with the user. For example, when the field professional had a flat tire on the way to a location associated with a next task and expected to be 30 minutes late. In another embodiment, the unplanned event may include atypical traffic conditions associated with a driving route to a location of a task in the daily schedule of the field professional. For example, when the driving route had a road blocked for repair and the field professional or the user will not be able to get in time to the location associated with the appointment. In this embodiment, the real-time information associated with the atypical traffic conditions may be received from traffic control services or directly from the field professional. In another embodiment, the unplanned event may include atypical weather conditions at a location associated with a task in the daily schedule of the field professional. Examples for atypical weather conditions may include heavy rain, heat wave, a hurricane, flooding, and more. The atypical weather conditions may prevent the field professional from getting to the location associated with the appointment or prevent the field professional from completing the task. In another embodiment, the unplanned event may include lack of parts associated with a task in the daily schedule of the field professional. For example, when the field professional had used unexpectedly a replacement part that was planned to be used in a future task, and now a scheduled task cannot be completed. In another embodiment, the unplanned event may include a malfunction of a tool needed for completion of a task in the daily schedule of the field professional. For example, when a tool needed in a scheduled task unexpectedly broke in a previous task. - At
step 4208, the processing device identifies and present a plurality of optional tasks to the field professional based on the determination atstep 4206. In identifying the plurality of optional tasks, the processing device may access at least one database of unscheduled tasks (e.g., tasks associated with recent requests) or scheduled tasks that may be rescheduled on-the-fly (e.g., repair and maintenance services for IoT devices). The plurality of optional tasks may include at least one location-agnostic task that includes a remote communication session with a customer (e.g., remote support session) and at least one location-agnostic task that does not involve communicating with customers (e.g., completing reports of past tasks). In order to present the field professional with the most relevant available tasks, the processing device may filter one or more irrelevant tasks. In one embodiment, the processing device may identify the plurality of optional tasks by taking into account a specific skill set of the field professional and confirming that the field professional is capable to perform each assignment of the plurality of optional tasks. In another embodiment, the processing device may identify the plurality of optional tasks by taking into account a current location of the field professional and confirm that each location associated with the plurality of optional tasks is within a predefined distance from the current location of the field professional (e.g., less than five miles). In another embodiment, the processing device may identify the plurality of optional tasks by considering traffic conditions (e.g., current and predicted traffic conditions) and estimate how much each assignment of the plurality of optional tasks would affect the rest of the daily schedule of the field professional. In addition, the processing device may rank the plurality of optional tasks based on the different considerations discussed above, and present only a part of the plurality of optional tasks based on their ranking. For example, a task associated with a closer location may have a higher ranking. - At
step 4210, the processing device assigns the field professional to a selected task and unassign the at least one task. In a first embodiment, unassigning the at least one task may include rescheduling the at least one task to a different time. Consistent with the first embodiment, the processing device may determine existence of an unplanned event likely to interfere with the field professional completing a single task from the daily schedule and reschedule the single task to a different time. For example, the single task may be scheduled to a different day based on the field professional's availability and/or the customer's availability. In a second embodiment, unassigning the at least one task may include assigning the at least one task to a different field professional. Consistent with the second embodiment, the processing device may determine existence of an unplanned event likely to interfere with the field professional completing a single task from the daily schedule and reassign the single task to another field professional. For example, the on-site service associated with the at least one task may be provided to the user at the scheduled time, but by a different field professional. In some cases, the processing device may determine existence of an unplanned event likely to interfere with the field professional completing a plurality of tasks from the daily schedule. For example, the field professional may be involved in a car accident on the way to a first task of the day. In these cases, the processing device may reschedule at least some of the plurality of task to different dates and/or reassign at least some of the plurality of tasks to different field professionals. -
FIG. 43 depicts anexample method 4300 for scheduling tasks to field professionals executed by a processing device ofsystem 100, according to embodiments of the present disclosure. For purposes of illustration, in the following description, reference is made to certain components ofsystem 100. It will be appreciated, however, that other implementations are possible and that other components may be utilized to implement the exemplary method. It will also be readily appreciated that the illustrated method can be altered to modify the order of steps, delete steps, or further include additional steps. - At
step 4302, a processing device (e.g., processing device 202) receives a set of requests for on-site service, each request may be associated with a different location. The set of requests for on-site service may include at least one request received from a user (e.g., user 130) and at least one request received from an IoT device (e.g., IoT device 140) without any user intervention. Atstep 4304, the processing device may receive real-time information about a progress of a field professional assigned to a set of tasks associated with a subset of requests. In one embodiment, the processing device may receive real-time information from a communication device associated with the field professional. For example, the field professional may use a dedicated application or a dedicated communication device to provide real-time updates, such as “arrived location,” “task completed,” and more. In another embodiment, the processing device may receive real-time information from a device associated with the on-site service. For example, the processing device may receive updates directly from an IoT device being repaired. - At
step 4306, the processing device dynamically determines a window of opportunity to assign an additional task to the field professional. Consistent with the present disclosure, the processing device may determine the window of opportunity from real-time information that includes traffic conditions in a geographic area associated with a current location of the field professional. The traffic conditions may include real-time traffic conditions and predicted traffic conditions. In another embodiment, the processing device may determine the window of opportunity from real-time information that includes task status updates transmitted from a communication device of the field professional. In another embodiment, the processing device may determine the window of opportunity from real-time information that includes current location information derived at least partially from a location circuit communication device of the field professional. In another embodiment, the processing device may determine the window of opportunity from real-time changes in the daily schedule of the field professional. In another embodiment, the processing device may determine the window of opportunity from a user cancellation of a task in a daily schedule of the field professional. In another embodiment, the processing device may determine the window of opportunity from a completion of a task in a daily schedule of the field professional faster than estimated. This embodiment is illustrated inFIG. 39 . In another embodiment, the processing device may determine the window of opportunity from arriving at a location associated with a task in a daily schedule faster than estimated. In another embodiment, the processing device may determine the window of opportunity from reassignment of a task in a daily schedule of the field professional to a different field professional. - In order to identify windows of opportunity, the processing may periodically check if there are differences between estimated conditions (e.g., traffic conditions, work progress, etc.) and the current conditions. For example, when the daily schedule of a field professional was determined, the estimated task duration of task A was estimated to be 30 minutes, and the travel duration between the location associated with task A and the location associated with task B was estimated to be 45 minutes. Upon arriving at the location associated with task A, the field professional updates the processing device that the on-site service associated with task A would be completed in 10 minutes. Thereafter, the processing device may determine, based on the real-time traffic conditions and the current location of the field professional, that the travel duration from the location associated with task A and the location associated with task B would take only 20 minutes. Thus, the field professional will have a window of 45 minutes before task B starts.
- At
step 4308, the processing device identifies a plurality of optional tasks that the field professional is determined to be able to complete during the window of opportunity. In some embodiments, to identify the plurality of optional tasks, the processing device may check if the field professional can start one of the tasks associated with the subset of requests earlier than a scheduled time. Checking if the field professional can start a task earlier may include asking a customer associated with the task or identifying that completing the task does not require a presence of a user (e.g., repairing an IoT device that is not located within a user's property). With reference to the example above, the processing device may receive a confirmation from customer associated with task B that the field professional can start task B earlier. In other embodiments, the real-time information may include a current location of the field professional and traffic conditions in the geographic area. The processing device may use the traffic conditions in the geographic area and the current location of the field professional to identify the plurality of optional tasks. For example, the processing device may follow rules for identifying optional tasks, such as only location-agnostic tasks, tasks within five miles radius from the current location of the field professional, or tasks within 15 minutes' drive from the current location of the field professional. The rules may be associated with the duration of the window of opportunity. For example, when the window of opportunity is more than 60 minutes, allow up to 15 minutes' drive, but when the window of opportunity is less than 45 minutes, allow up to 10 minutes' drive. - At
step 4310, the processing device automatically selects one of the optional tasks for assignment to the field professional based on historical data. Consistent with the present disclosure, the processing device may be associated with a memory device (e.g., database 154) configured to store historical data indicative of past dispatchers' preferences regarding assignment of additional tasks. The memory device may also store historical data indicative of past field professionals' preferences regarding assignment of additional tasks. For example, the received selection of the field professional as described instep 4210 above. In some embodiments, the historical data may include details on a plurality of past windows of opportunity, and the at least one processor is configured to identify a past window of opportunity similar to a current window of opportunity, and to select the task based on the past dispatchers' preferences regarding assignment of a task associated with the past window of opportunity. The details on the plurality of past windows of opportunity may include times, durations, information about the field professionals associated with the plurality of past windows of opportunity (e.g., skills, experience, working hours, etc.), and information about the optional tasks that each of the field professionals could have completed during a corresponding past window of opportunity. In additional embodiments, the processing device may determine a pattern associated with the past dispatchers' preferences regarding assignment of additional tasks, and select the task based on the determined pattern. For example, the processing device may determine that an hour before shift ends, a human dispatcher always selects a location-agnostic task. In addition, the processing device may rank the plurality of optional tasks that the field professional can complete during the window of opportunity according to a likelihood that a human dispatcher would select each task. The ranking of the plurality of optional tasks may also be based on other parameters to enable greater optimization of scheduling of tasks for all the field professionals. - At
step 4312, the processing device assigns the field professional to the selected task. In one embodiment, the selected additional task may be a location-agnostic task associated with a request for remote assistance received before the window of opportunity. Specifically, the selected additional task may be being available to provide at least one location-agnostic service for requests received during the window of opportunity. In another embodiment, the selected additional task may be a location-based task associated with a location in proximity to a current location of the field professional (e.g., less than a mile). In addition, the selected additional task may be one that is estimated to end before the field professional is required to start driving towards a location of a next scheduled task. For example, with reference to the example illustrated inFIG. 39 , task F is estimated to end before Lisa needs to start driving towards a location associated with task C. - N. Tasks Scheduling Using Connected Devices
- The Internet of Things (IoT) has grown well beyond smart watches and security cameras. In fact, the IoT trend is changing the future of business with its now billions of “things.” Some of these things have sensors for monitoring other things. While many IoT devices have the functionality of alerting users when a malfunction occurs or is predicted to occur, they still rely on their users to repair them or repair the things they monitor. The following disclosure provides a solution that will enable IoT devices to autonomously schedule on-site service, for example, without any user intervention.
- Consistent with the present disclosure, a system that schedules tasks to field professionals (e.g., system 100) may receive a request from a connected device that includes an indication of an urgency level. The system may take into consideration other requests (e.g., from human customers) and schedules a visit of a field professional within a time period that corresponds with the urgency level. The urgency level can be determined from information derived from the connected device and the scheduled visit (e.g., for repair or maintenance) may be given a precedence in the task schedule relative to other previously scheduled tasks. In one example, the connected device may periodically send performance data to a server, the server may analyze the performance data, determine that maintenance service is in needed, and cause scheduling of an on-site service (the server may or may not be part of the system that assigns tasks to field professionals). In another example, the connected device may monitor a living being (e.g., elderly people, livestock), and may cause scheduling of a visit of a health care provider without an approval of the monitored being.
- As used herein, terms like “connected device” or “IoT device” refer to any device (e.g., an appliance, a sensor, etc.) that has an addressable interface (e.g., an Internet protocol (IP) address, a Bluetooth identifier (ID), a near-field communication (NFC) ID, etc.) that can transmit information, for example, to a processing device (e.g., processing device 202) using a network such as a local ad-hoc network or the Internet. A connected device may have a passive communication interface, such as a quick response (QR) code, a radio-frequency identification (RFID) tag, an NFC tag, or the like, or an active communication interface, such as a modem, a transceiver, a transmitter-receiver, or the like. The connected device may have a particular set of attributes (e.g., a device state or status, such as whether the connected device is on or off, open or closed, idle or active, available for task execution or busy, a cooling or heating function, an environmental monitoring or recording function, a light-emitting function, a sound-emitting function, etc.) that can be embedded in and/or controlled/monitored by a central processing unit (CPU), microprocessor, or the like. Consistent with the present disclosure, a connected device can encompass the range from the simplest IoT devices to the most robust legacy Internet accessible devices. For example, connected devices may include, but are not limited to, refrigerators, toasters, ovens, microwaves, freezers, dishwashers, dishes, hand tools, clothes washers, clothes dryers, furnaces, air conditioners, thermostats, televisions, light fixtures, vacuum cleaners, sprinklers, electricity meters, gas meters, thermometers, humidity sensors, soil sensors, security cameras, motion detection lights, traffic sensors, wearable devices, fitness bracelets, continuous glucose monitor devices, connected inhalers, an ingestible sensors, coagulation testing devices, asthma monitor devices, cell phones, desktop computers, laptop computers, tablet computers, personal digital assistants (PDAs), etc.
-
FIG. 44 is a diagram showing atimeline 4400 illustrating the chronological events that happen when a processing device (e.g., processing device 202) schedules a first request from a human customer and a second request from a connected device to at least one field professional, according to disclosed embodiments. As illustrated,timeline 4400 includes asplitting point 4414 to two optional timelines (First Time Period and Second Time Period) that correspond with the urgency level of the second request of the connected device. The manner and order in which events are shown intimeline 4400 are chosen for convenience and clarity of presentation and is not intended to limit the disclosed embodiments. - Initially, at
step 4402, a processing device may receive a first request for a service. The requested service may be a location-based service (e.g., it may include a repair of a device in a customer's house) or a location-agnostic service (e.g., it may include remote accessing a customer's device). According to some embodiments of the present disclosure, the first request may be autonomously received from a connected device; but in the example illustrated inFIG. 44 , the first request is received from a human customer. Thereafter, atstep 4404, the processing device may schedule a first task for providing the requested service to the human customer. In the illustrated example the processing device scheduled the task associated with the first request on date “A.” - At step 4406, the processing device may receive a second request for a service. The service autonomously requested by the connected device may also be a location-based service (e.g., it may include a repair of the connected device or a repair of a device monitored by the connected device) or a location-agnostic service (e.g., it may include updating a software or fixing a bug). In cases where the first request is also from a connected device, the connected devices associated with the first and second requests may be from different types or associated with different owners. At step 4408, the processing device may determine an urgency level associated with the second request. The term “urgency level” as used herein refers to a determination of the need of the connected device for the service so that the connected device can continue functioning without sacrificing performance. In some cases, the connected device may include in the request an indicator of the urgency level. In other cases, the connected device may include data (e.g., measurements, reports, etc.) in the request and the processing device will derive from the received data the urgency level. At step 4410, the processing device may determine a time period that corresponds with the urgency level. In the figure, the first optional time line illustrates a case where the determined time period ends after date “A,” and the second optional time line illustrates a case where the determined time period ends before date “A.” At step 4412, the processing device may schedule a second task associated with the second request from the connected device to date “B.” In the illustrated example date “B” may be before date “A,” after date “A,” or on the same day.
- In one embodiment, illustrated in the first optional timeline after splitting
point 4414, the processing device may schedule a task associated with the second request at the second scheduled date (date “B”) being after the first scheduled date (date “A”). This optional timeline describes a case when the time period that corresponds with the associated urgency level ends after the first scheduled date (date “A). In another embodiment, illustrated in the second optional timeline after splittingpoint 4414, the processing device may schedule a task associated with the second request at the second scheduled date (date “B”) being before the first scheduled date (date “A). This optional timeline describes a case when the time period that corresponds with the associated urgency level ends before the first scheduled date (date “A). In yet another embodiment, not shown in the figure, the processing device may schedule the task associated with the second request at the first scheduled date, for example, the task associated with the second request may be scheduled instead of the task associated with the first request. This scenario may occurred when the urgency level associated with the request of the connected device is higher than a threshold. In this scenario, the processing device may reschedule the task associated with the first request to a different date. In some embodiments, the processing device may prefer to reschedule tasks of connected devices (rather than rescheduling tasks of human customers) to a different date within their corresponding determined time periods. - At
step 4416, which takes place on date “A,” a field professional may provide the service associated with first request, and atstep 4418, the processing device may receive a confirmation that the first task has been completed. Similarly, atstep 4420, which takes place on date “B,” a field professional may provide the service associated with the second request, and atstep 4422, the processing device may receive a confirmation that the second task has been completed. The decision whether the second task should be scheduled for a date before or after date “A,” may be based on the determined time period that is associated with the urgency level of the connected device. -
FIG. 45 shows five locations (4500, 4502, 4504, 4506, 4508) associated with tasks that were previously scheduled in response to a first set of requests. Each of these task is associated with different task details (request date, task estimated duration, task scheduled date assigned to field professional, and customer type). On June 6, the system received a second request from a connected device for an on-site service at another location (4510) in proximity to the first five locations (4500, 4502, 4504, 4506, 4508). In one example, the determined time period associated with the second request is five days. For efficiency reasons, the system may aim to schedule nearby tasks on the same date and to the same field professional. Accordingly, the processing device may identify optional pending tasks associated with a location in proximity to the location associated with the second request. For example, the on-site service associated with the second request may be scheduled on the same date as the on-site services scheduled forlocations locations - Consistent with the present disclosure, the processing device may determine, based on the time period, that the on-site service for the connected device can be scheduled on a particular day when a first request is scheduled. Thereafter, the processing device may assign a single field professional to provide the on-site services at
first location 4506 and at thesecond location 4510 on the (same) particular day. In one embodiment, the processing device may determine that the second location is in proximity to the first location when an estimated driving duration between the second location and the first location is less than 60 minutes, less than 45 minutes, less than 30 minutes, or less than 15 minutes. In another embodiment, the processing device may determine that the on-site service for the connected device can be scheduled on the (same) particular day by comparing the estimated driving duration to a threshold associated with the urgency level. For example, for urgent services the threshold may be 2 hours, for less urgent services the threshold may be 1 hour. The term “threshold” is used here to denote a reference value, a level, a point, or a range of values, for which, when the driving duration is below it, the processing device may allow the on-site service for the connected device to be scheduled on the certain date. - With reference to the example illustrated in
FIG. 45 , prior to scheduling the on-site service for the connected device atlocation 4510, the processing device may confirm that Bruce and Chuck have the skills required to complete the on-site service. In this example both Bruce and Chuck have the required skills. Therefore, the processing device may check if Bruce and Chuck have time availability in their daily schedule. Assuming Bruce's schedule is full, the processing device may schedule the on-site service associated with the second request to Chuck on June 9th. In some cases, the processing device may determine that the connected device inlocation 4510 may be accessed without the presence of its owner. If this is the case, the processing device may use real-time data from field professionals to reschedule the on-site service for the connected device. For example, on June 8 the processing device may reschedule the on-site service after learning that Bruce had completed the on-site service inlocation 4504 after 20 minutes instead of the estimated 55 minutes. The processing device may identify a window of opportunity for Bruce to complete the on-site service for the connected device inlocation 4510 and reschedule the on-site service associated with the second request to Bruce on June 8th. -
FIG. 46 is a flowchart of anexample method 4600 for scheduling tasks to field professionals executed by a processing device ofsystem 100, according to embodiments of the present disclosure. For purposes of illustration, in the following description reference is made to certain components ofsystem 100. It will be appreciated, however, that other implementations are possible and that other components may be utilized to implement the exemplary method. It will also be readily appreciated that the illustrated method can be altered to modify the order of steps, delete steps, or further include additional steps. - At
step 4602, a processing device (e.g., processing device 202) receives a first request for an on-site service, wherein the first request includes information identifying a location associated with a customer. In one embodiment, the first request for the on-site service may be received directly from a human customer. In another embodiment, the first request for the on-site service may be received from a connected device associated with a human customer. - At
step 4604, the processing device schedules a task associated with the first request to be performed by a field professional on a first scheduled date. The term “scheduled date” is meant to include date and/or time, as appropriate. In one example, the scheduled date may include a time range (e.g., between 1:00 PM to 5:00 PM). In another example, the scheduled date may include an exact time (e.g., 11:15 AM). In one embodiment, the processing device may schedule the task associated with the first request on the first scheduled date based on the information identifying the location associated with the customer. For example, when the location associated with the customer is next to a public school, the processing device may avoid scheduling services at the times when school ends. In addition, the location may provide details for selecting the most fitting field professional. For example, one of the field professionals may have more experience completing on-site services in the type housings found at the location identified in the request. In another embodiment, the processing device may determine the first scheduled date based on an availability (and/or predicated availability) of the human customer. For example, the processing device may retrieve information indicative of an availability of the human customer at the location for accepting the on-site service (e.g., from social network, online source, past answers), and propose at least one time slot for providing the on-site service based on retrieved information. - At
step 4606, the processing device receives a second request from a connected device for an on-site service. The request may include a wide range of data formats, such as messages, reports, measurements, and other feedback generated by the connected device. In one embodiment, the request from the connected device may include a data stream with values of a plurality of parameters associated with a plurality of software-driven components of the connected device or of a device monitored by the connected device. In this embodiment, the processing device may process the data stream to determine that the connected device is in need of an on-site service. In another embodiment, the request from the connected device may include identification of a condition of a software-driven component that requires an on-site service. The second request may be associated with a repair service or a maintenance service for the connected device. For example, the data stream from the connected device may be indicative of a failure of one of the components of the connected device. Alternatively, the second request may be associated with a repair service or a maintenance service for a device monitored by the connected device. For example, a single connected device may monitor a plurality of devices and the data steam from the connected device may be indicative of a failure of one of the monitored devices. - Consistent with the present disclosure, the second request may have an associated urgency level determined by information received from the connected device. In one embodiment, the connected device may determine the urgency level by itself and may include the associated urgency level in the request for on-site service. In another embodiment, the processing device may determine the urgency level from the information received from the connected device. For example, the request from the connected device may include information indicative of a condition of at least one component (or a group of components) of the connected device or a condition of at least one device (or a group of devices) monitored by the connected device. In addition, the processing device may determine the urgency level from the information received from the connected device and historical data associated with the connected device. For example,
database 154 may include historical data associated with a plurality of connected devices, such as past status updates; the processing device may use the historical data to predict an upcoming malfunction of one of the components of the connected device or of a device monitored by the connected device. In this example, the determined urgency level corresponds to the predicated upcoming malfunction. - In some embodiments, the processing device may determine a time period that corresponds with the associated urgency level of the on-site service for the connected device. For example, assuming the urgency level is a value on a scale of one to ten where “ten” is very urgent and “one” is not urgent, a length of time period may be inversely proportionate to the urgency level, e.g., when the urgency level is “three” the time period may be thirty days and when the urgency level is “nine” the time period may be two days. Thus, as urgency level increases the time period may decrease. Furthermore, the processing device may also determine the time period based on the urgency level and based on the type of the connected device. The type of the connected device may be associated with the manufacture of the connected device, the owner of the connected device, the category of the connected device, the location of the connected device, and the pending tasks of the connected device. For example, a connected device of a municipality may receive a higher priority than a connected device of an individual. In other words, two connected devices with a same urgency level may be assigned with two different time periods. In another embodiment, the processing device may receive one or more updates associated with the urgency level from the connected device, and may change the time period based on the received updates. For example, the updates from a connected device may indicate a change in status of at least one component of the connected device (or change in status of at least one device monitored by the connected device), which may require rescheduling the on-site service to an earlier date. Therefore, after receiving the updates, the processing device may determine again the urgency level and/or the time period. In one embodiment, the processing device may confirm that the scheduled date for the on-site service associated with the connected device is within the determined time period (e.g., within a second time period determined based on the received updates).
- At
step 4608, the processing device schedules a task associated with the second request to be performed on a second scheduled date based on the associated urgency level. The second scheduled date may be before the first scheduled date, after the first scheduled date, or on the same date. In some embodiments, the processing device may schedule the task associated with the second request to a field professional other than the field professional scheduled for the task associated with the first request. Alternatively, the processing device may assign the same field professional to provide on-site services associated with the first and second requests. In some instances, a single field professional may be assigned where the first request is from a human customer and the second request is from a connected device. For example, when a field professional completes a first task associated with a human customer earlier than estimated and he/she has time before departing to a next task, the processing device may assign the field professional a second task associated with a connected device in its proximity (e.g., within 10 minutes' drive). In additional embodiments, the processing device may determine accessibility of the connected device and schedule the task associated with the second request based on the accessibility of the connected device. The accessibility of the connected device may be for time periods in which the field professional can complete the on-site service to the connected device. For example, when the connected device is located outdoors, the task can be scheduled as early as 6:00 AM. But when the connected device is located within a company premises, the task can be scheduled only during the opening hours. - At
step 4610, the processing device receives confirmation that the task associated with the first request and the task associated with the second request have been completed. A confirmation in this context may refer to a message sent to the processing device after an on-site service is completed. In some non-limiting examples, the confirmation may be received from the at least one field professional assigned to the task associated with the first request and to the task associated with the second request. Alternatively, the confirmation may be received from the connected device and/or the customer. - O. Scheduling Parts Delivery
- Some on-site services provided by field professionals require specific parts for completion. Every so often, while in the field, field professionals discover that they need a certain part to complete an on-site service. The following disclosure describes methods and systems for scheduling delivery of parts to field professionals currently in the field. In the context of this disclosure, “parts” may refer to any type of component or hardware utilized in connection with an on-site service by a field professional. In a first embodiment, the delivered parts may include replacement parts; for example, technicians scheduled to repair electrical devices may require different components for repairing the devices, such as, cables, fuses, switches, circuits, and more. In a second embodiment, the delivered parts may include disposables; for example, a medical service provider scheduled to visit patients may use a variety of disposables parts, such as syringes, needles, sutures, staples, packaging, tubing, catheters, medical gloves, gowns, masks, adhesives, and more. In a third embodiment, the delivered parts may include tools; for example, some on-site services require the field professionals to use certain tools not part of the default inventory, such as a driller for reinforced concrete or a dialysis machine. Field professionals assigned to provide on-site services may start their day with an inventory of parts that is configured to enable completion of the tasks scheduled for that day. Yet, it is not uncommon that during the day some parts are unexpectedly needed. In one case, a field professional arrives at a location associated with a scheduled task and learns that a specific part not found in her inventory (e.g., a tool) is needed to complete the on-site service. In another case, a field professional may unexpectedly be required to use parts in one task (e.g., replacement parts or disposables) meaning that the field professional may not be able to compete a later task.
-
FIG. 47 is a schematic illustration to explain a field professional's use of parts throughout a workday.FIG. 47 depicts adaily schedule 4700 that shows the times and durations of each of tasks A, B, C, and D assigned to a field professional byserver 152 between 8:00 and 16:00 of a workday. In the illustrated example the field professional may be a computer technician and each task indaily schedule 4700 includes an indication of the one or more parts expected to be used in each task. In one embodiment,server 152 may predict which parts the field professional will need to use in each task based on details derivable from a request for the on-site service. For example,server 152 may predict that task A would require replacing a motherboard; task B would require replacing a hard disk drive; task C would require replacing a Graphics Processing Unit (GPU); and task D would require replacing a different motherboard. A person skilled in the art would recognize that the above example is simplified, and an actual repair service may involve substantially more parts (e.g., more replacement parts, specific tools, etc.). - Based on the prediction of parts that the field professional will need to use in each task, an inventory of parts 4710 may be assigned to the field professional. In the illustrated example, inventory 4710 includes
GPU 4712,motherboards hard disk drive daily schedule 4700, the field professional had to unexpectedly useGPU 4712 for completing task A, althoughGPU 4712 was intended to be used in task C. In order to be able to complete task C,server 152 may schedule a delivery ofGPU 4720 to the field professional. The different alternatives for deliveringGPU 4720 to the field professional are described below with reference toFIG. 48 . -
FIG. 48 is a schematic map that illustrates possible parts delivery points along a travel path of a field professional. With reference toFIG. 47 , field professional 4800 may be assigned to tasks A, B, C, D for providing technical service at locations A, B, C, and D. The route of field professional 4800 is schematically illustrated in a solid line and the different parts-delivery options are illustrated in dashed lines. Consistent with the present disclosure,server 152 may determine that field professional 4800 needs an additional part (e.g., a GPU) not currently in its assigned inventory to complete one of the scheduled tasks. For example, when field professional 4800 completed the on-site service associated task A,server 152 may receive in real-time an indication of the updated inventory of parts currently available to field professional 4800. From the received indication,server 152 may determine that in completing task A field professional 4800 unexpectedly used a certain part (e.g., GPU 4712) needed to complete task C. Accordingly,server 152 may schedule a task for delivery of the at least one additional part (e.g., GPU 4720) to field professional 4800. In the illustrated example, the at least one additional part can be delivered from two storage locations; namely, the first storage facility and the second storage facility. - Consistent with embodiments of the present disclosure,
server 152 may determine a location for delivering at least one part to the field professional based on locations of scheduled tasks in a daily schedule of the field professional and/or based on a current location of field professional 4800 determined from a GPS receiver integrated withcommunication devices 180A. In addition, the determined location may include a location between a current location of field professional 4800 and a location of the task where the part is needed. For example,server 152 may determine that the part needed for task C may be delivered to location A (option 4802), to a point between location A and location B (option 4804), or to location B (option 4806). In one embodiment,server 152 may instructfield professional 4800 to wait before departing to a next task when the at least one part is scheduled to be delivered to the field professional at the location associated with the current task. For example, with regards tooption 4806,server 152 may instruct field professional 4800 to wait at location B before departing to location C. - In some cases,
server 152 may select which storage facility will provide the at least one additional part to field professional 4800. The determination may be based on the current location of field professional 4800, the traffic conditions (current and predicted), the parts inventory in each storage facility, and other scheduling costs associated with the part delivery. For example,server 152 may determine that the at least one additional part (e.g. GPU 4720) will be delivered to location C from the second storage facility (option 4808) based on traffic conditions. In one embodiment,server 152 may also identify another field professional has the at least one additional part (e.g. GPU 4720) currently available in his/her inventory of parts, and organize a meet-up between the two field professionals. For example, a field professional 4810 may receive a task of meeting with field professional 4800 at a point between location B and location C (option 4812). In an alternative embodiment, the task for delivering the at least one additional part to field professional 4800 may include instructing field professional 4800 to purchase the least one additional part (e.g. GPU 4720) at a specific store that may be located next to field professional 4800 (option 4814). -
FIG. 49A is a flowchart of anexample method 4900 for scheduling parts delivery executed by a processing device ofsystem 100, according to embodiments of the present disclosure. For purposes of illustration, in the following description, reference is made to certain components ofsystem 100. It will be appreciated, however, that other implementations are possible and that other components may be utilized to implement the exemplary method. It will also be readily appreciated that the illustrated method can be altered to modify the order of steps, delete steps, or further include additional steps. - At
step 4902, a processing device (e.g., processing device 202) may receive a set of requests for on-site services. The on-site services associated with at least some of the requests require parts. As mentioned above, the term “parts” may refer to any type hardware being utilized during an on-site service by a field professional. For example, the parts may include replacement parts, disposables, or tools. Atstep 4904, the processing device may schedule a set of tasks corresponding to the set of requests for a field professional. The scheduling of the tasks may be based on the skills of the field professional and the expected availability of the parts. In one embodiment, the processing device may determine the expected availability of parts based on data associated with previously scheduled tasks and offer time slots for users for the on-site services based on the expected availability of the parts. In one example, where the parts include a certain component of an electric device, the processing device may predict that the certain component may be out-of-stock by Tuesday. Accordingly, the processing device may offer a user requesting the service time slots on Wednesday. In another example, where the parts include a certain tool, the processing device may determine that the certain tool is already scheduled to be used on Tuesday at a location far from the location associated with a current request. Accordingly, the processing device may offer a user requesting the service time slots on Wednesday. - At
step 4906, the processing device may determine a set of parts that the field professional is likely to require to complete the set of tasks. In one embodiment, the processing device may determine which parts the field professional would need for completion of the set of tasks based on details of the requests for the on-site services. Consistent with the present disclosure, the processing device may determine information indicative of the types of parts required to complete the task from the requests for the on-site service. The information may include the type of task, the location of the task, the weather predicted at the time of the task, and more. For example, installing Internet connection may require different replacement parts when the location is a private property or an apartment house. In another embodiment, the processing device may determine which parts the field professional would need for completion of the set of tasks based on historical data indicative of the previous parts used in tasks similar to the scheduled set of tasks. For example, a certain neighborhood may experience poor infrastructure and completing some services in that neighborhood requires certain parts. - In another embodiment, the processing device may determine the set of parts that the field professional is likely to require using a task-to-parts database. The task-to-parts database (e.g., part of database 154) may correlate different types of tasks with one or more parts. In one example, the data structure of records in the task-to-parts database may include a set of tuples. Some tuples may contain information related to tasks and any specific work related to performing each task, and some tuples may contain information related to any components or parts related to each specific work item. In this way, the data structure can be accessed to quickly identify the parts for each task to support identification of parts not currently on hand in a field professional's available inventory when on-site. In yet another embodiment, the processing device may determine the set of parts that the field professional is likely to require using a customer database that may be stored locally by the customer or stored in
database 154. The processing device may access the customer database to determine if the customer has some parts that the field professional may need during the on-site service. For example, the processing device may determine that for a certain patient the field professional does not need to bring a dialysis machine because the patient has his own dialysis machine. - At
step 4908, the processing device may determine that the field professional needs an additional part not currently in the field professional's assigned inventory to complete the set of tasks. The field professional's assigned inventory or individual inventory refers to a group of parts readily available to a field professional while the field professional is traveling between different locations associated with different tasks. In one embodiment, more applicable when the parts are disposables or replacement parts, the processing device may receive in real time an indication of an inventory of parts currently available to the field professional. The inventory of parts may be updated after each task in a daily schedule of tasks is completed. For example, the processing device may determine the individual inventory from updates from the field professional or from sensors (e.g., weight sensors, image sensors) that monitor the inventory of parts. In another embodiment, the processing device may receive from the field professional, while the field professional is at a location associated with a current task, a request for a specific part needed for completion of the current task. Upon receiving the request, the processing device may schedule a task for delivery in the field of the requested part to the location associated with a current task to enable the field professional to complete the current task. For example, when the field professional is a medical professional, a nurse may determine that a certain tool (e.g., an inhalator) is needed during a check-up with a patient. - At
step 4910, the processing device may schedule a task for delivery in the field of the at least one additional part to the field professional. In one embodiment, the processing device may schedule the delivery task to ensure timely arrival of the additional part at a location associated with the task determined to require the additional part to complete that task. As illustrated inFIG. 48 , the additional part may be delivered before or after the field professional arrives at the location associated with the task determined to require the additional to complete that task. In another embodiment also illustrated inFIG. 48 , the processing device may schedule the delivery task of the at least one additional part to arrive at a location along a route assigned to the field professional. Consistent with the present disclosure, the scheduling delivery of the at least one additional part may include booking or assigning an autonomous vehicle (e.g., a drone or an autonomous car) for delivering the at least one additional part. The autonomous vehicle may be part of a transportation service, such as Uber™, Lyft™ and Via™. -
FIG. 49B depicts arelated method 4950 for scheduling parts delivery used by a processing device ofsystem 100, according to embodiments of the present disclosure. For purposes of illustration, in the following description reference is made to certain components ofsystem 100. It will be appreciated, however, that other implementations are possible and that other components may be utilized to implement the exemplary method. It will also be readily appreciated that the illustrated method can be altered to modify the order of steps, delete steps, or further include additional steps. - At
step 4952, a processing device (e.g., processing device 202) may receive a set of requests for on-site services, wherein the on-site services of at least some of the requests require parts. Atstep 4954, the processing device may schedule a set of tasks corresponding to the set of requests for a field professional. In one embodiment, a task associated with a certain request may be associated with a set of parts needed for completion of the set of tasks. The set of parts may include parts from a first type of parts and a second type of parts (e.g., replacement parts and tools). In one example the field professional may be a technician and the set of parts may include communication hardware (e.g., cables, switches) and a concrete drilling tool (e.g., concrete demolition hammer). The system may cause a delivery of either the first type of parts, the second type of parts, or both. In another example, the field professional may be a nurse and the set of parts may include a disposable medical product (e.g., drugs, stoma bags) and a medical device (e.g., a dialysis machine). - At
step 4956, the processing device may provide data indicative of expected parts that the field professional would need for completion of the set of tasks. The data indicative of expected parts may include at least one list of parts; for example, a list of tools needed for completion of the set of tasks, a list of replacement parts needed for completion of the set of tasks, and a list of disposables needed for completion of the set of tasks. In some cases, the processor may determine the data indicative of expected parts based on historical data about parts used in previous tasks similar to the scheduled set of tasks. In one embodiment, the data indicative of expected parts may be associated with tasks for that day and may be provided before the field professional departs to the field. - At
step 4958, the processing device may receive from the field professional, while the field professional is at a location associated with a current task, a request for at least one additional part. The request may be indicative of a specific part needed for completion of the current task or a specific part needed for completion of a future task. Consistent with the present disclosure, the request may be initiated by the field professional or by an electronic device associated with the field professional (e.g.,communication devices 180A). In some embodiments, the request may include an explicit identification of the at least one additional part or data indicative of the current status of the individual inventory of the field professional. For example, the request may include data indicative of parts that were unexpectedly used in at least one earlier task. In another embodiment, the processing device may determine that the at least one additional part is associated with a future task and it cannot be delivered in time to the field professional. Accordingly, the processing device may reassign that future task to another field professional having the at least one additional part. In some cases, even if a part may be delivered to the field professional before the future task, it may still be beneficial to reassign the future task to another field professional instead of scheduling the part delivery. The processing device may decide whether to schedule a delivery of the at least one additional part or reassign the future delivery based on real-time data, such as other field professionals current location and their pending tasks. - At
step 4960, the processing device may schedule a task for delivery in the field of the requested at least one additional part to the field professional. In one embodiment the at least one additional part can be delivered from a plurality of storage locations (e.g., the first and second storage facilities depicted byFIG. 48 ). The processing device may select one of the plurality of storage locations for providing the at least one additional part. In addition, the selection of the storage location for providing the at least one additional part may be based on a predicted demand for parts and/or real-time information about the current demand for said parts. For example, the first storage facility may be closer to a current location of the field professional and has eight pieces of the required parts, whereas the second storage facility has only five pieces. Nevertheless, the processing device may select the second storage facility because all the eight pieces from the first storage facility are predicted to be used tomorrow, and the next supply of the pieces to the first storage facility is scheduled for the next week. - The foregoing description has been presented for purposes of illustration. It is not exhaustive and is not limited to the precise forms or embodiments disclosed. Modifications and adaptations will be apparent to those skilled in the art from consideration of the specification and practice of the disclosed embodiments. Additionally, although aspects of the disclosed embodiments are described as being stored in memory, one skilled in the art will appreciate that these aspects can also be stored on other types of computer readable media, such as secondary storage devices, for example, hard disks or CD ROM, or other forms of RAM or ROM, USB media, DVD, Blu-ray, or other optical drive media.
- Computer programs based on the written description and disclosed methods are within the skill of an experienced developer. The various programs or program modules can be created using any of the techniques known to one skilled in the art or can be designed in connection with existing software. For example, program sections or program modules can be designed in or by means of .Net Framework, .Net Compact Framework (and related languages, such as Visual Basic, C, etc.), Java, C++, Objective-C, HTML, HTML/AJAX combinations, XML, or HTML with included Java applets.
- Moreover, while illustrative embodiments have been described herein, the scope of any and all embodiments having equivalent elements, modifications, omissions, combinations (e.g., of aspects across various embodiments), adaptations and/or alterations as would be appreciated by those skilled in the art based on the present disclosure. The limitations in the claims are to be interpreted broadly based on the language employed in the claims and not limited to examples described in the present specification or during the prosecution of the application. The examples are to be construed as non-exclusive. Furthermore, the steps of the disclosed methods may be modified in any manner, including by reordering steps and/or inserting or deleting steps. It is intended, therefore, that the specification and examples be considered as illustrative only, with a true scope and spirit being indicated by the following claims and their full scope of equivalents.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/725,904 US20200210919A1 (en) | 2018-12-27 | 2019-12-23 | Systems and methods for assigning tasks based on real-time conditions |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862785423P | 2018-12-27 | 2018-12-27 | |
US201962871397P | 2019-07-08 | 2019-07-08 | |
US16/725,904 US20200210919A1 (en) | 2018-12-27 | 2019-12-23 | Systems and methods for assigning tasks based on real-time conditions |
Publications (1)
Publication Number | Publication Date |
---|---|
US20200210919A1 true US20200210919A1 (en) | 2020-07-02 |
Family
ID=71122214
Family Applications (17)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/726,019 Abandoned US20200210959A1 (en) | 2018-12-27 | 2019-12-23 | Methods and systems for offerring service times based on user profile |
US16/725,676 Abandoned US20200210932A1 (en) | 2018-12-27 | 2019-12-23 | Methods and systems for using customer feedback in future scheduling |
US16/726,095 Active US11823104B2 (en) | 2018-12-27 | 2019-12-23 | Systems and methods for scheduling connected device |
US16/724,972 Active US11593728B2 (en) | 2018-12-27 | 2019-12-23 | Systems and methods for scheduling tasks |
US16/724,616 Abandoned US20200210936A1 (en) | 2018-12-27 | 2019-12-23 | Systems and methods for task scheduling based on real-time conditions |
US16/725,063 Abandoned US20200210962A1 (en) | 2018-12-27 | 2019-12-23 | Methods and systems for identifying causes for unscheduled tasks |
US16/725,508 Abandoned US20200210965A1 (en) | 2018-12-27 | 2019-12-23 | Methods and systems for self-appointment |
US16/725,164 Active 2040-02-25 US11354610B2 (en) | 2018-12-27 | 2019-12-23 | Methods and systems for scheduling location-based tasks and location-agnostic tasks |
US16/725,823 Abandoned US20200210938A1 (en) | 2018-12-27 | 2019-12-23 | Systems and methods for fixing schedule using a remote optimization engine |
US16/726,068 Abandoned US20200210939A1 (en) | 2018-12-27 | 2019-12-23 | Systems and methods for assigning tasks based on real-time conditions |
US16/724,905 Active 2040-02-04 US12026647B2 (en) | 2018-12-27 | 2019-12-23 | Systems and methods for using predicted demand to optimize task scheduling |
US16/725,759 Active US11551167B2 (en) | 2018-12-27 | 2019-12-23 | Systems and methods for fixing schedule using a remote optimization engine |
US16/725,984 Abandoned US20200210943A1 (en) | 2018-12-27 | 2019-12-23 | Systems and methods for scheduling parts delivery |
US16/725,412 Active US11615353B2 (en) | 2018-12-27 | 2019-12-23 | Methods and systems for offerring service times based on system consideration |
US16/725,333 Abandoned US20200210963A1 (en) | 2018-12-27 | 2019-12-23 | Methods and systems for appointment booking |
US16/725,904 Abandoned US20200210919A1 (en) | 2018-12-27 | 2019-12-23 | Systems and methods for assigning tasks based on real-time conditions |
US16/724,670 Abandoned US20200210961A1 (en) | 2018-12-27 | 2019-12-23 | Systems and methods for work capacity planning |
Family Applications Before (15)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/726,019 Abandoned US20200210959A1 (en) | 2018-12-27 | 2019-12-23 | Methods and systems for offerring service times based on user profile |
US16/725,676 Abandoned US20200210932A1 (en) | 2018-12-27 | 2019-12-23 | Methods and systems for using customer feedback in future scheduling |
US16/726,095 Active US11823104B2 (en) | 2018-12-27 | 2019-12-23 | Systems and methods for scheduling connected device |
US16/724,972 Active US11593728B2 (en) | 2018-12-27 | 2019-12-23 | Systems and methods for scheduling tasks |
US16/724,616 Abandoned US20200210936A1 (en) | 2018-12-27 | 2019-12-23 | Systems and methods for task scheduling based on real-time conditions |
US16/725,063 Abandoned US20200210962A1 (en) | 2018-12-27 | 2019-12-23 | Methods and systems for identifying causes for unscheduled tasks |
US16/725,508 Abandoned US20200210965A1 (en) | 2018-12-27 | 2019-12-23 | Methods and systems for self-appointment |
US16/725,164 Active 2040-02-25 US11354610B2 (en) | 2018-12-27 | 2019-12-23 | Methods and systems for scheduling location-based tasks and location-agnostic tasks |
US16/725,823 Abandoned US20200210938A1 (en) | 2018-12-27 | 2019-12-23 | Systems and methods for fixing schedule using a remote optimization engine |
US16/726,068 Abandoned US20200210939A1 (en) | 2018-12-27 | 2019-12-23 | Systems and methods for assigning tasks based on real-time conditions |
US16/724,905 Active 2040-02-04 US12026647B2 (en) | 2018-12-27 | 2019-12-23 | Systems and methods for using predicted demand to optimize task scheduling |
US16/725,759 Active US11551167B2 (en) | 2018-12-27 | 2019-12-23 | Systems and methods for fixing schedule using a remote optimization engine |
US16/725,984 Abandoned US20200210943A1 (en) | 2018-12-27 | 2019-12-23 | Systems and methods for scheduling parts delivery |
US16/725,412 Active US11615353B2 (en) | 2018-12-27 | 2019-12-23 | Methods and systems for offerring service times based on system consideration |
US16/725,333 Abandoned US20200210963A1 (en) | 2018-12-27 | 2019-12-23 | Methods and systems for appointment booking |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/724,670 Abandoned US20200210961A1 (en) | 2018-12-27 | 2019-12-23 | Systems and methods for work capacity planning |
Country Status (2)
Country | Link |
---|---|
US (17) | US20200210959A1 (en) |
WO (1) | WO2020140038A1 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220116263A1 (en) * | 2019-09-25 | 2022-04-14 | Microsoft Technology Licensing, Llc | Service issue prioritisation based on impact using software telemetry |
US11354610B2 (en) | 2018-12-27 | 2022-06-07 | Clicksoftware, Inc. | Methods and systems for scheduling location-based tasks and location-agnostic tasks |
US11416791B2 (en) * | 2019-02-22 | 2022-08-16 | American Express Travel Related Services, Inc. | Optimizing user task schedules in a customer relationship management platform |
US20230185646A1 (en) * | 2021-12-10 | 2023-06-15 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method for early warning of failure, electronic device and non-transitory computer-readable storage medium |
US20230259892A1 (en) * | 2022-02-17 | 2023-08-17 | Solar Turbines Incorporated | Digital platform based multifaceted risk assessment for extension of turbomachinery service intervals |
Families Citing this family (104)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9779375B2 (en) * | 2013-03-15 | 2017-10-03 | Wal-Mart Stores, Inc. | Flexible store fulfillment |
US10298740B2 (en) * | 2014-01-10 | 2019-05-21 | Onepin, Inc. | Automated messaging |
US9648164B1 (en) * | 2014-11-14 | 2017-05-09 | United Services Automobile Association (“USAA”) | System and method for processing high frequency callers |
US20180186599A1 (en) * | 2016-12-29 | 2018-07-05 | Mcp Usa, Llc | Process and method for uniform maintenance for conveyance apparatuses |
US11416116B2 (en) * | 2018-01-31 | 2022-08-16 | Salesforce.Com, Inc. | Generation of mobile device notifications |
US11409363B2 (en) * | 2018-05-30 | 2022-08-09 | West Texas Technology Partners, Llc | Augmented reality hand gesture recognition systems |
WO2020006010A1 (en) * | 2018-06-25 | 2020-01-02 | Ahmann Robert D | Automated warehouse system and method for optimized batch picking |
KR102045540B1 (en) * | 2018-08-28 | 2019-11-15 | 윤성민 | An Employment Creation System and Its Method through Work Forms Set by Collective Intelligence Convergence |
US11257035B2 (en) * | 2018-09-10 | 2022-02-22 | Sap Se | Splitting a task hierarchy |
WO2020114584A1 (en) * | 2018-12-05 | 2020-06-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and technician allocating system for allocating a field technician |
JP7224371B2 (en) * | 2018-12-27 | 2023-02-17 | 本田技研工業株式会社 | Management method and server device |
US11281936B2 (en) * | 2018-12-31 | 2022-03-22 | Kofax, Inc. | Systems and methods for identifying processes for robotic automation and building models therefor |
US20220122011A1 (en) * | 2019-02-07 | 2022-04-21 | Volvo Truck Corporation | Method and system for operating a fleet of vehicles |
WO2020165108A1 (en) * | 2019-02-11 | 2020-08-20 | Fresenius Medical Care Deutschland Gmbh | System for sharing dialysis services |
US11488078B2 (en) * | 2019-04-12 | 2022-11-01 | ShiftX LLC | System and method for time slot assignment |
US11354609B2 (en) * | 2019-04-17 | 2022-06-07 | International Business Machines Corporation | Dynamic prioritization of action items |
CA3144144A1 (en) * | 2019-07-15 | 2021-01-21 | Miles GORDENKER | Technician dispatching method and system |
US20210103879A1 (en) * | 2019-10-03 | 2021-04-08 | Viceroy, Inc. | System and method for labor scheduling and jobsite management |
US20220391800A1 (en) * | 2019-11-05 | 2022-12-08 | Team Industrial Services, Inc. | Maintenance methods and systems for fluid containment assets |
US11019207B1 (en) | 2019-11-07 | 2021-05-25 | Hithink Royalflush Information Network Co., Ltd. | Systems and methods for smart dialogue communication |
US11368323B2 (en) * | 2019-12-16 | 2022-06-21 | Zensar Technologies Limited | System and a method for facilitating meeting content for attending a meeting |
US20210201247A1 (en) * | 2019-12-30 | 2021-07-01 | Avaya Inc. | System and method to assign action items using artificial intelligence |
US11429423B2 (en) * | 2020-01-07 | 2022-08-30 | Kyndryl, Inc. | Workload scheduling with localized virtual network resources |
US11663534B1 (en) * | 2020-01-10 | 2023-05-30 | State Farm Mutual Automobile Insurance Company | Artificial intelligence systems and methods configured to predict team management decisions |
US11521141B1 (en) | 2020-01-10 | 2022-12-06 | State Farm Mutual Automobile Insurance Company | Task management user interface (GUI) |
US11392866B2 (en) * | 2020-02-17 | 2022-07-19 | Dish Ukraine L.L.C. | Devices, systems and methods for managing technician logistics |
EP4111394A4 (en) * | 2020-02-26 | 2024-01-31 | Soham Inc | Improved employee schedule forecasting |
US12045695B2 (en) * | 2020-02-28 | 2024-07-23 | Shanghai United Imaging Intelligence Co., Ltd. | System and methods for privacy preserving cross-site federated learning |
JP7269901B2 (en) * | 2020-03-26 | 2023-05-09 | 本田技研工業株式会社 | Service providing system, control device, and matching method |
JP7521226B2 (en) * | 2020-03-27 | 2024-07-24 | 日本電気株式会社 | Information processing device, information processing method, and program |
US20210334682A1 (en) * | 2020-04-23 | 2021-10-28 | Oracle International Corporation | Machine learning systems for managing inventory |
US11520832B2 (en) * | 2020-05-15 | 2022-12-06 | Disney Enterprises, Inc. | Dynamic management system for notification and response to emergent events |
EP4158572A2 (en) * | 2020-06-01 | 2023-04-05 | Trax Technology Solutions Pte Ltd. | Systems and methods for retail environments |
US11489733B2 (en) * | 2020-06-15 | 2022-11-01 | At&T Intellectual Property I, L.P. | System and method for moveable cloud cluster functionality usage and location forecasting |
SG10202006372SA (en) * | 2020-07-01 | 2021-10-28 | Grabtaxi Holdings Pte Ltd | Communications apparatus and method for estimating potential demand for improved forecasting and resource management |
US12073244B2 (en) | 2020-07-21 | 2024-08-27 | Waymo Llc | Task scheduling for agent prediction |
US11507428B2 (en) * | 2020-07-30 | 2022-11-22 | Hubstar International Limited | System and method for resource allocation |
US11409561B2 (en) | 2020-07-31 | 2022-08-09 | Hubstar International Limited | System and method for schedule optimization |
JP7132983B2 (en) * | 2020-07-31 | 2022-09-07 | 本田技研工業株式会社 | Matching support system and matching support method |
US11605041B2 (en) * | 2020-08-13 | 2023-03-14 | Bank Of America Corporation | Machine learning based decision model to open and close enterprise facilities |
US20220083927A1 (en) * | 2020-09-17 | 2022-03-17 | Raymond Cordero Vargas | System for client and resource management in the electronic device repair industry |
US20220083950A1 (en) * | 2020-09-17 | 2022-03-17 | YourMechanic, Inc. | System and method for skilled marketplace scheduling |
US11756005B2 (en) * | 2020-09-21 | 2023-09-12 | ANI Technologies Private Limited | Scheduling vehicle maintenance at service centers |
US20220092519A1 (en) * | 2020-09-23 | 2022-03-24 | GetSwift, Inc. | Delivery management system with integrated worker management and scheduling |
US20220101273A1 (en) * | 2020-09-30 | 2022-03-31 | Commonwealth Edison Company | Methods and systems for forecasting estimated time of restoration during service interruption |
US20220122042A1 (en) * | 2020-10-19 | 2022-04-21 | ABA Schedules, LLC | Systems and methods for calculating and dynamically reconfiguring resource-constraint scheduling using visual representations on graphical user interface |
US11833661B2 (en) * | 2020-10-31 | 2023-12-05 | Google Llc | Utilizing past contact physics in robotic manipulation (e.g., pushing) of an object |
US20220156668A1 (en) * | 2020-11-13 | 2022-05-19 | The Experts Bench Inc. | Generating scores to evaluate usage of marketing technology |
WO2022108542A1 (en) * | 2020-11-23 | 2022-05-27 | Ulak Ceren | Customer relationship management system |
US11922530B2 (en) * | 2020-11-24 | 2024-03-05 | Verizon Connect Development Limited | Systems and methods for utilizing models to determine real time estimated times of arrival for scheduled appointments |
US20220170758A1 (en) * | 2020-12-02 | 2022-06-02 | Metropolitan Life Insurance Co. | Smart scheduling and mitigating disruptions based on environment conditions |
US20220198365A1 (en) * | 2020-12-21 | 2022-06-23 | Hi5Talent LLC | System and method for management of a talent network |
CA3160985A1 (en) * | 2020-12-21 | 2022-06-21 | Intuit Inc. | Expert matching through workload intelligence |
US20220199236A1 (en) * | 2020-12-23 | 2022-06-23 | TeleSpecialists, LLC | Methods and apparatus for a telecare communication system |
US12124996B2 (en) | 2021-01-07 | 2024-10-22 | Disney Enterprises, Inc. | Node-based control and collaboration systems |
US11907873B1 (en) * | 2021-01-12 | 2024-02-20 | Wells Fargo Bank, N.A. | Systems and methods for business syndicate geolocated skill matching |
CN112650187B (en) * | 2021-01-22 | 2022-04-05 | 北京理工大学 | Workshop scheduling method, device and system |
US11138038B1 (en) * | 2021-01-29 | 2021-10-05 | Snowflake Inc. | Adaptive freepool size prediction |
US20220270025A1 (en) * | 2021-02-23 | 2022-08-25 | Isom IP, LLC | Employee Scheduler |
US20220277263A1 (en) * | 2021-02-26 | 2022-09-01 | Fiix Inc. | System and method for predictive inventory |
US12073369B2 (en) * | 2021-03-16 | 2024-08-27 | International Business Machines Corporation | Spatio-temporal calendar generation |
US11900284B2 (en) * | 2021-03-18 | 2024-02-13 | Intuit Inc. | Dynamic scheduling system with performance- based access |
US11657345B2 (en) * | 2021-03-24 | 2023-05-23 | International Business Machines Corporation | Implementing machine learning to identify, monitor and safely allocate resources to perform a current activity |
CN113023873B (en) * | 2021-03-30 | 2022-07-15 | 重庆工商大学 | Intelligent management system and method for sewage treatment |
US11315679B2 (en) * | 2021-05-12 | 2022-04-26 | Cigna Intellectual Property, Inc. | Systems and methods for prediction based care recommendations |
US20220366338A1 (en) * | 2021-05-13 | 2022-11-17 | At&T Intellectual Property I, L.P. | Contextual presentation of multiple steps in performing a task |
US20220383268A1 (en) * | 2021-05-26 | 2022-12-01 | Microsoft Technology Licensing, Llc | Interactive focus session insights |
US12014298B2 (en) * | 2021-05-28 | 2024-06-18 | Walmart Apollo, Llc | Automatically scheduling and route planning for service providers |
US20220398539A1 (en) * | 2021-06-11 | 2022-12-15 | Mothership Transports Corporation | Double approval workflow management system and method |
CN113256186B (en) * | 2021-07-15 | 2021-10-19 | 西南交通大学 | High-speed rail dispatcher comprehensive capacity evaluation method and system |
US11615424B2 (en) * | 2021-07-21 | 2023-03-28 | Shopify Inc. | Systems and methods for dynamically conducting messaging campaigns responsive to customer events |
US11336732B1 (en) | 2021-07-26 | 2022-05-17 | Schneider Electric USA, Inc. | IoT licensing platform and architecture |
CA3227939A1 (en) * | 2021-08-04 | 2023-02-09 | Yoky Matsuoka | Systems and methods for generating and curating tasks |
CN115719100A (en) * | 2021-08-24 | 2023-02-28 | 爱德万测试股份有限公司 | Cloud instrument reservation system and method |
WO2023034949A1 (en) * | 2021-09-02 | 2023-03-09 | Yohana Llc | Systems and methods for dynamic chat streams |
US20230109075A1 (en) * | 2021-10-06 | 2023-04-06 | Lean Station Pte. Ltd | Method for dynamically updating a project plan using an ai model and historical data |
US20230124682A1 (en) * | 2021-10-20 | 2023-04-20 | Koninklijke Philips N.V. | Automatic distribution of fault-finding among remote service engineers |
US20230135380A1 (en) * | 2021-10-29 | 2023-05-04 | Microsoft Technology Licensing, Llc | Intelligent scheduling service |
US20230186251A1 (en) * | 2021-11-08 | 2023-06-15 | Super Home Inc. | System and method for covering cost of delivering repair and maintenance services to premises of subscribers including predictive service |
CN113869808B (en) * | 2021-12-03 | 2022-03-01 | 青岛盈智科技有限公司 | Task balance scheduling method, device and system |
US20230222406A1 (en) * | 2022-01-07 | 2023-07-13 | Accenture Global Solutions Limited | Utilizing optimization solver models for sequential automated workforce scheduling |
US20230229991A1 (en) * | 2022-01-18 | 2023-07-20 | State Farm Mutual Automobile Insurance Company | Exporting workforce management service records and non-iteratively revising task assignments |
US11847542B2 (en) * | 2022-02-09 | 2023-12-19 | My Job Matcher, Inc. | Apparatuses and methods for classifying temporal sections |
US20230259888A1 (en) * | 2022-02-11 | 2023-08-17 | Kyndryl, Inc. | Blockchain-based appointment management |
CN114739843B (en) * | 2022-03-10 | 2023-05-02 | 内蒙古锐信工程项目管理有限责任公司 | Construction monitoring method for building engineering supervision based on big data |
US20230325787A1 (en) * | 2022-04-06 | 2023-10-12 | Aspen Ventures Limited | Systems and methods for maintenance calendaring |
US12094014B2 (en) * | 2022-04-27 | 2024-09-17 | Procore Technologies, Inc. | Computer systems and methods for dynamic pull planning |
JP2023167228A (en) * | 2022-05-11 | 2023-11-24 | オムロン株式会社 | Production management support system |
US11763223B1 (en) | 2022-05-18 | 2023-09-19 | Realization Technologies, Inc | System for generating and maintaining a resource deployment map over a communications network |
SE2230153A1 (en) * | 2022-05-19 | 2023-11-20 | Volvo Lastvagnar Ab | Planning of a mission by geographical position and equipment allocation |
US11824794B1 (en) * | 2022-05-20 | 2023-11-21 | Kyndryl, Inc. | Dynamic network management based on predicted usage |
US20230394400A1 (en) * | 2022-06-02 | 2023-12-07 | Oracle International Corporation | Machine learning system and method for simulating sequence of activities based on weather risk |
CN114897429B (en) * | 2022-06-07 | 2024-02-02 | 平安科技(深圳)有限公司 | Task allocation method, device, equipment and storage medium suitable for customer service communication |
US20240020597A1 (en) * | 2022-07-15 | 2024-01-18 | Ukg Inc. | Systems and methods for extended horizon time-sequences |
US20240020651A1 (en) * | 2022-07-15 | 2024-01-18 | Hsin-Ya Hung | Social networking method with global scheduling capabilities |
US20240031250A1 (en) * | 2022-07-25 | 2024-01-25 | Honeywell International Inc. | System and method for identifying performance issues with service providers that provide a service to support a security system of a facility |
US20240037510A1 (en) * | 2022-07-27 | 2024-02-01 | Here Global B.V. | Method and apparatus for determining appointment attendance probability |
CN114971428B (en) * | 2022-07-28 | 2022-10-21 | 广州平云小匠科技有限公司 | Multi-source work order data-based engineer busy pre-estimation method and system |
CN115171358B (en) * | 2022-09-06 | 2022-11-29 | 湖南警察学院 | According to personnel state information scheduling Internet of things alarm system |
US20240232747A9 (en) * | 2022-10-25 | 2024-07-11 | Cisco Technology, Inc. | Personas detection and task recommendation system in network |
CN116187724B (en) * | 2023-04-27 | 2023-07-14 | 成都秦川物联网科技股份有限公司 | Intelligent gas platform work order linkage processing method, internet of things system and storage medium |
CN116934249A (en) * | 2023-07-10 | 2023-10-24 | 漳州年盛信息技术有限公司 | Smart city management system based on big data and artificial intelligence |
CN118333341B (en) * | 2024-06-12 | 2024-09-03 | 盛银数科(沈阳)技术有限公司 | Task allocation method and system for supervision reporting platform |
CN118504945B (en) * | 2024-07-18 | 2024-10-25 | 湖南中图通无人机技术有限责任公司 | Unmanned aerial vehicle sharing scheduling method and system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030033184A1 (en) * | 2000-10-03 | 2003-02-13 | Moshe Benbassat | Method and system for assigning human resources to provide services |
US20180253680A1 (en) * | 2017-01-19 | 2018-09-06 | Intelligrated Headquarters, Llc | Static warehouse area sizing and slotting of a multi-mode forward area |
US20200184494A1 (en) * | 2018-12-05 | 2020-06-11 | Legion Technologies, Inc. | Demand Forecasting Using Automatic Machine-Learning Model Selection |
US20200372431A1 (en) * | 2018-02-15 | 2020-11-26 | Panasonic Intellectual Property Management Co., Ltd. | Model generating device, demand forecasting device, demand forecasting method, and program |
Family Cites Families (208)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5093813A (en) | 1984-01-05 | 1992-03-03 | Levine Alfred B | Multiple mode electronic scheduler |
US5467268A (en) | 1994-02-25 | 1995-11-14 | Minnesota Mining And Manufacturing Company | Method for resource assignment and scheduling |
JP3756954B2 (en) | 1995-07-11 | 2006-03-22 | 株式会社 日立製作所 | Service provision system |
GB9606194D0 (en) | 1996-03-23 | 1996-05-29 | Int Computers Ltd | Appointment booking and scheduling system |
US5945919A (en) | 1996-05-30 | 1999-08-31 | Trimble Navigation Limited | Dispatcher free vehicle allocation system |
DE69703938T3 (en) * | 1996-11-22 | 2007-05-16 | (at)Road Ltd., Ipswich | RESOURCES ALLOCATION |
US6049776A (en) | 1997-09-06 | 2000-04-11 | Unisys Corporation | Human resource management system for staffing projects |
US6321133B1 (en) | 1998-12-04 | 2001-11-20 | Impresse Corporation | Method and apparatus for order promising |
US6430562B1 (en) | 1999-03-01 | 2002-08-06 | Electronic Data Systems Corporation | Integrated resource management system and method |
US7127412B2 (en) | 1999-06-07 | 2006-10-24 | Pointserve, Inc. | Method and system for allocating specific appointment time windows in a service industry |
CN1252154C (en) * | 1999-07-22 | 2006-04-19 | 沃纳-兰伯特公司 | Pullulan film compositions |
EP1124196A3 (en) | 2000-02-11 | 2003-05-14 | General Electric Company | Web-based equipment sales and service network and method |
AU2001245544A1 (en) | 2000-03-10 | 2001-09-24 | Charles P Jones | Vehicle scheduling system |
AU2001235814A1 (en) | 2000-03-31 | 2001-10-15 | British Telecommunications Public Limited Company | Handling unscheduled tasks in a scheduling process |
US7487105B2 (en) | 2000-03-31 | 2009-02-03 | Mdsi Software Srl | Assigning customer orders to schedule openings utilizing overlapping time windows |
US8489669B2 (en) | 2000-06-07 | 2013-07-16 | Apple Inc. | Mobile data processing system moving interest radius |
AU2001268365A1 (en) | 2000-06-14 | 2001-12-24 | Verticore Technologies | Device and method for organizing and presenting worker tasks in a network-based portal environment |
IL137305A (en) | 2000-07-13 | 2005-08-31 | Clicksoftware Technologies Ld | Method and system for sharing knowledge |
US8190463B2 (en) | 2000-09-06 | 2012-05-29 | Masterlink Corporation | System and method for managing mobile workers |
US7593751B2 (en) | 2000-09-18 | 2009-09-22 | Field Data Management Solutions, Llc | Conducting field operations using handheld data management devices |
US7440906B1 (en) * | 2001-09-04 | 2008-10-21 | Accenture Global Services Gmbh | Identification, categorization, and integration of unplanned maintenance, repair and overhaul work on mechanical equipment |
AU2002223271A1 (en) | 2000-11-15 | 2002-05-27 | Spc Holdings Pty Limited | Collaborative commerce hub |
US8781873B2 (en) | 2001-04-02 | 2014-07-15 | Siebel Systems, Inc. | Method and system for scheduling activities |
US20020194047A1 (en) * | 2001-05-17 | 2002-12-19 | International Business Machines Corporation | End-to-end service delivery (post-sale) process |
US20030130820A1 (en) | 2002-01-07 | 2003-07-10 | Lane George H. | Work order system |
US8812339B1 (en) | 2002-07-24 | 2014-08-19 | Jack D. Stone, Jr. | System and method for scheduling tasks |
US20040158568A1 (en) | 2002-12-12 | 2004-08-12 | Renzo Colle | Scheduling resources for performing a service |
US20040133889A1 (en) | 2002-12-12 | 2004-07-08 | Renzo Colle | Scheduling tasks across multiple locations |
US20040165580A1 (en) | 2003-02-25 | 2004-08-26 | Stillman Scott Traynham | Checking of broadband network components |
US7350213B2 (en) * | 2003-06-19 | 2008-03-25 | Sap Ag | System and method for dynamic selection of stateless/stateful software components |
US9141935B2 (en) | 2003-09-19 | 2015-09-22 | RPM Industries, LLC | Service operation data processing using checklist functionality in association with inspected items |
US20050119927A1 (en) | 2003-12-02 | 2005-06-02 | International Business Machines Corporation | Accounting for traveling time within scheduling software |
US8219436B2 (en) | 2003-12-24 | 2012-07-10 | Time Warner Cable, Inc. | Online installation scheduling system and method for cable services |
US20050177409A1 (en) | 2004-02-10 | 2005-08-11 | Barni Meghan M. | Method and computer system for schedule bidding |
US7984443B2 (en) | 2004-07-22 | 2011-07-19 | Computer Associates Think, Inc. | System and method for normalizing job properties |
US7478085B2 (en) | 2005-04-01 | 2009-01-13 | Microsoft Corporation | Ability for developers to easily find or extend well known locations on a system |
US7624024B2 (en) * | 2005-04-18 | 2009-11-24 | United Parcel Service Of America, Inc. | Systems and methods for dynamically updating a dispatch plan |
EP1938227A4 (en) | 2005-10-14 | 2012-01-18 | Carrier Web Llc | System and method for real-time management of mobile resources |
US20070255631A1 (en) | 2005-11-28 | 2007-11-01 | Douglas Schmidt | Product catalog management system and method |
US20070192157A1 (en) | 2006-02-15 | 2007-08-16 | Elizabeth Ann Gooch | Interactive system for managing, tracking and reporting work and staff performance in a business environment |
US20070250377A1 (en) | 2006-04-05 | 2007-10-25 | Proofpoint Systems, Inc. | Performance analysis support system |
US20070282656A1 (en) | 2006-06-06 | 2007-12-06 | Jeffery Battcher | Dynamic appointment tracking |
US8185422B2 (en) | 2006-07-31 | 2012-05-22 | Accenture Global Services Limited | Work allocation model |
US7895071B2 (en) | 2006-08-14 | 2011-02-22 | Hrl Laboratories, Llc | System and method for multi-mission prioritization using cost-based mission scheduling |
IL177617A (en) | 2006-08-22 | 2013-11-28 | Israel Beniaminy | System for mobile workforce, vehicle, asset and service management |
US20080114638A1 (en) * | 2006-11-10 | 2008-05-15 | Inspection Management Systems, Inc. | Parameter-based appointment scheduling system and method |
EP1978468A1 (en) | 2007-04-04 | 2008-10-08 | Sap Ag | A method and a system for secure execution of workflow tasks in a distributed workflow management system within a decentralized network system |
US20080313005A1 (en) | 2007-06-15 | 2008-12-18 | Edgelnova International, Inc. | System and method for real-time scheduling of human and non-human resources |
US20090006173A1 (en) | 2007-06-29 | 2009-01-01 | International Business Machines Corporation | Method and apparatus for identifying and using historical work patterns to build/use high-performance project teams subject to constraints |
US8804941B2 (en) | 2007-07-13 | 2014-08-12 | Plumchoice, Inc. | Systems and methods for hybrid delivery of remote and local technical support via a centralized service |
US8140366B2 (en) | 2008-01-04 | 2012-03-20 | Frontline Technologies, Inc. | Method, system and program product for filling job orders |
US20110022441A1 (en) | 2008-02-29 | 2011-01-27 | Gavin Robertson | Scheduling apparatus and method |
US20090234689A1 (en) | 2008-03-12 | 2009-09-17 | Clicksoftware Technologies Ltd. | Method and a system for supporting enterprise business goals |
US7996241B2 (en) | 2008-05-12 | 2011-08-09 | Solomon Zak | Process, knowledge, and intelligence management through integrated medical management system for better health outcomes, utilization cost reduction and provider reward programs |
US8244565B2 (en) * | 2008-05-14 | 2012-08-14 | Accenture Global Services Limited | Individual productivity and utilization tracking tool |
US8612271B2 (en) | 2008-10-02 | 2013-12-17 | Certusview Technologies, Llc | Methods and apparatus for analyzing locate and marking operations with respect to environmental landmarks |
US8370244B1 (en) | 2008-09-25 | 2013-02-05 | Broadridge Financial Solutions, Inc. | Method and system relating to social media technologies |
US20100169133A1 (en) | 2008-12-29 | 2010-07-01 | Clicksoftware Technologies Ltd. | Method to enable optimizing towards goals |
US20120253551A1 (en) | 2009-01-30 | 2012-10-04 | Sammy Halimi | Systems and Methods for Providing Telematic Services to Vehicles |
US8612276B1 (en) | 2009-02-11 | 2013-12-17 | Certusview Technologies, Llc | Methods, apparatus, and systems for dispatching service technicians |
US20100257015A1 (en) | 2009-04-01 | 2010-10-07 | National Information Solutions Cooperative, Inc. | Graphical client interface resource and work management scheduler |
US20100287025A1 (en) * | 2009-05-06 | 2010-11-11 | Brian Fletcher | Mobile resource task scheduling |
US8321253B2 (en) * | 2009-06-09 | 2012-11-27 | Accenture Global Services Limited | Technician control system |
US8364513B2 (en) | 2009-06-09 | 2013-01-29 | Accenture Global Services Limited | Technician control system |
CA2885962A1 (en) | 2009-06-25 | 2010-09-01 | Certusview Technologies, Llc | Methods and apparatus for assessing locate request tickets |
US9378511B2 (en) * | 2009-07-15 | 2016-06-28 | International Business Machines Corporation | Real-time appointment of enterprise mobile agents in response to customer requests |
US8996659B2 (en) | 2009-07-24 | 2015-03-31 | Plumchoice, Inc. | Systems and methods for providing remote services using a cross-device database |
US20110112943A1 (en) | 2009-11-09 | 2011-05-12 | Dietz Jay B | Location-based mobile workforce management system |
US20110119604A1 (en) | 2009-11-19 | 2011-05-19 | Clevest Solutions Inc. | System and method for a configurable and extensible allocation and scheduling tool |
US8548442B2 (en) | 2010-01-11 | 2013-10-01 | Microsoft Corporation | Syndication of multiple service instances |
JP2011165173A (en) | 2010-01-18 | 2011-08-25 | Canon Inc | Information processing apparatus, method of operating information processing apparatus, and storage medium |
US9378476B1 (en) | 2010-08-10 | 2016-06-28 | Workflex Solutions Llc | Method and apparatus for real time automated intelligent self-scheduling |
US20130304533A1 (en) | 2011-07-11 | 2013-11-14 | ClearCare, Inc. | System and apparatus for generating work schedules |
US20130253971A1 (en) | 2010-10-19 | 2013-09-26 | ClearCare, Inc. | System and apparatus for generating work schedules |
EP2636004A4 (en) | 2010-11-05 | 2017-10-11 | Timetrade Systems, Inc. | A vailability-based contact routing and scheduling system |
US8462502B2 (en) | 2010-11-09 | 2013-06-11 | Hitachi, Ltd. | Structural fabric of a storage apparatus for mounting storage devices |
US20120203457A1 (en) | 2011-02-04 | 2012-08-09 | The Casey Group | Systems and methods for visualizing events together with points of interest on a map and routes there between |
CN102737020B (en) | 2011-03-31 | 2014-08-27 | 国际商业机器公司 | Method for initializing multi-tenant database, and apparatus thereof |
US9785897B2 (en) | 2011-04-07 | 2017-10-10 | Infosys Limited | Methods and systems for optimizing efficiency of a workforce management system |
US20120290428A1 (en) | 2011-05-09 | 2012-11-15 | Clicksoftware Technologies Ltd | Centralized commerce and the implementation of enterprise software applications |
US20120330710A1 (en) | 2011-06-27 | 2012-12-27 | Salesforce.Com, Inc. | Methods and systems for integrating timing and location into appointment schedules |
US20130041783A1 (en) | 2011-08-11 | 2013-02-14 | General Electric Company | System and method for dynamic spare part management |
US9740999B2 (en) | 2011-10-11 | 2017-08-22 | Mobiwork, Llc | Real time customer access to location, arrival and on-site time data |
US20130090968A1 (en) | 2011-10-11 | 2013-04-11 | Stephen Borza | Methods of employee scheduling and management |
US8606611B1 (en) | 2011-10-13 | 2013-12-10 | Intuit Inc. | Scheduling via multiple dimensions including worker, time, and location |
US9594597B2 (en) | 2011-10-24 | 2017-03-14 | Plumchoice, Inc. | Systems and methods for automated server side brokering of a connection to a remote device |
US9875448B2 (en) | 2011-11-30 | 2018-01-23 | At&T Intellectual Property I, L.P. | Mobile service platform |
CN105612738B (en) | 2012-02-16 | 2019-03-22 | 柯惠有限合伙公司 | Multifunctional conference system and method |
US9244951B2 (en) | 2012-03-08 | 2016-01-26 | International Business Machines Corporation | Managing tenant-specific data sets in a multi-tenant environment |
US20130275166A1 (en) | 2012-04-13 | 2013-10-17 | International Business Machines Corporation | Closed loop performance management for service delivery systems |
US11082371B2 (en) | 2012-04-27 | 2021-08-03 | Calendar Research Llc | Appointment negotiation systems and methods |
US20130339980A1 (en) | 2012-06-14 | 2013-12-19 | Clicksoftware Technologies Ltd | Composite application enabling workflow between unmodified constituent applications |
US20140006620A1 (en) | 2012-06-27 | 2014-01-02 | International Business Machines Corporation | System, method and program product for local client device context-aware shared resource and service management |
US8849688B2 (en) | 2012-07-02 | 2014-09-30 | International Business Machines Corporation | System for assignment routing, delegation and reassignment |
US20150161555A1 (en) * | 2012-07-10 | 2015-06-11 | Google Inc. | Scheduling tasks to operators |
US9886695B2 (en) | 2012-07-27 | 2018-02-06 | Salesforce.Com Inc. | Sales force automation system and method for real-time traveling salesperson location tracking and account visit selection |
US20140114717A1 (en) | 2012-09-05 | 2014-04-24 | Moose Loop Holdings, LLC | Task Schedule Modification |
US20140122143A1 (en) | 2012-10-30 | 2014-05-01 | Trimble Navigation Limited | Optimizing resource assignment |
US20140236663A1 (en) * | 2012-11-13 | 2014-08-21 | Terry Smith | System and method for providing unified workflows integrating multiple computer network resources |
CA2798022A1 (en) | 2012-12-04 | 2014-06-04 | Hugh Hull | Worker self-management system and method |
US20140164042A1 (en) | 2012-12-11 | 2014-06-12 | Chad Halvorson | Network-based scheduling application |
US20140195295A1 (en) | 2013-01-10 | 2014-07-10 | Schlumberger Technology Corporation | Task management system and method |
US10102487B2 (en) | 2013-03-11 | 2018-10-16 | American Airlines, Inc. | Reserve forecasting systems and methods for airline crew planning and staffing |
US9595019B1 (en) | 2013-03-13 | 2017-03-14 | Allstate Insurance Company | Parts inventory management |
US20140279081A1 (en) | 2013-03-15 | 2014-09-18 | Qualcomm Incorporated | Mobile devices, methods and computer systems for ensuring that a pickup order is freshly prepared when a consumer arrives to pick it up |
US20140278689A1 (en) | 2013-03-15 | 2014-09-18 | International Business Machines Corporation | Accommodating schedule variances in work allocation for shared service delivery |
US20140330605A1 (en) | 2013-05-03 | 2014-11-06 | General Electric Company | System and method for monitoring and scheduling a workforce |
US20140337479A1 (en) | 2013-05-10 | 2014-11-13 | Peter Stangas | Communications tool for requesting, tracking, and/or managing services |
US20140372160A1 (en) | 2013-06-14 | 2014-12-18 | Microsoft Corporation | Context-aware mobile crowdsourcing |
US10937004B2 (en) | 2013-08-22 | 2021-03-02 | Core De Vie, Llc | Behaviorally informed scheduling systems and methods |
US20150066782A1 (en) | 2013-08-28 | 2015-03-05 | PragmaTech Ltd. | Computer monitoring, servicing, and management of remote equipment and assets |
US9189766B2 (en) | 2013-09-10 | 2015-11-17 | EnergySavvy Inc. | Real time provisional evaluation of utility program performance |
WO2015044860A1 (en) * | 2013-09-24 | 2015-04-02 | Koninklijke Philips N.V. | System for optimizing workflow for efficient on-site data collection and determination of energy analysis and method of operation thereof |
US20150134386A1 (en) | 2013-11-08 | 2015-05-14 | Prachi Prasad Jogalekar | Collectively optimizing group schedules to minimize project completion time and cost |
US20150134388A1 (en) | 2013-11-12 | 2015-05-14 | Kyruus, Inc. | Methods and systems for providing, by a referral management system, dynamic scheduling of profiled professionals |
WO2015089207A1 (en) * | 2013-12-11 | 2015-06-18 | Uber Technologies, Inc. | Optimizing selection of drivers for transport requests |
US9984574B2 (en) * | 2014-01-21 | 2018-05-29 | Tribal Rides, Inc. | Method and system for anticipatory deployment of autonomously controlled vehicles |
US10083409B2 (en) | 2014-02-14 | 2018-09-25 | Bby Solutions, Inc. | Wireless customer and labor management optimization in retail settings |
US9911088B2 (en) | 2014-05-01 | 2018-03-06 | Microsoft Technology Licensing, Llc | Optimizing task recommendations in context-aware mobile crowdsourcing |
US10366346B2 (en) | 2014-05-23 | 2019-07-30 | DataRobot, Inc. | Systems and techniques for determining the predictive value of a feature |
US20150348046A1 (en) | 2014-05-27 | 2015-12-03 | Derbywire Inc. | Systems and Methods for Performing Secure Commercial Transactions |
US20170140307A1 (en) | 2014-06-27 | 2017-05-18 | o9 Solutions, Inc. | Plan modeling and task management |
US9282430B1 (en) | 2014-07-30 | 2016-03-08 | Allstate Insurance Company | Roadside assistance service provider assignment system |
US11263401B2 (en) * | 2014-07-31 | 2022-03-01 | Oracle International Corporation | Method and system for securely storing private data in a semantic analysis system |
US20160132816A1 (en) | 2014-11-11 | 2016-05-12 | QMerit, Inc. | Unified Workforce Platform |
US20160140507A1 (en) | 2014-11-18 | 2016-05-19 | Intrenational Business Machines Corporation | Optimizing service provider schedule and route |
US9984111B2 (en) | 2015-04-08 | 2018-05-29 | Oracle International Corporation | Process metadata triggers and events |
US10339382B2 (en) | 2015-05-31 | 2019-07-02 | Fieldbit Ltd. | Feedback based remote maintenance operations |
US10275535B1 (en) | 2015-06-04 | 2019-04-30 | United Services Automobile Association (Usaa) | Obtaining user feedback from social media data |
US10114670B2 (en) | 2015-06-05 | 2018-10-30 | The Boeing Company | Point-of-use-toolkit |
JP6698108B2 (en) | 2015-06-09 | 2020-05-27 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | Method and system for load balancing care requests for work management |
US10997565B2 (en) | 2015-06-10 | 2021-05-04 | Square, Inc. | Consolidation of calendar appointments |
US9916177B2 (en) | 2015-08-19 | 2018-03-13 | International Business Machines Corporation | Predictive workload scheduling with integrated analytics |
GB201515318D0 (en) | 2015-08-20 | 2015-10-14 | Servicepower Business Solutions Ltd | Infeasible schedules in a quantum annealing optimisation process |
US9933271B2 (en) | 2015-08-21 | 2018-04-03 | Gt Gettaxi Limited | System for directing a driver to a passenger based on a destination location specified by the driver |
GB201515319D0 (en) | 2015-08-28 | 2015-10-14 | Servicepower Business Solutions Ltd | Interact calculation in a quantim annealing optimisation process |
WO2017048516A1 (en) | 2015-09-17 | 2017-03-23 | Super Home Inc. | Home maintenance and repair information technology methods and systems |
WO2017058932A1 (en) | 2015-09-28 | 2017-04-06 | Skytree, Inc. | Improved user interface for unified data science platform including management of models, experiments, data sets, projects, actions, reports and features |
US20170109704A1 (en) | 2015-10-19 | 2017-04-20 | Recycle Track Systems Inc. | System and method for scheduling and facilitating waste removal |
JP6811578B2 (en) | 2015-11-16 | 2021-01-13 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | Movement information providing method, movement information providing device, and moving information providing program |
GB2544487A (en) | 2015-11-17 | 2017-05-24 | Servicepower Business Solutions Ltd | Methods and apparatuses for quantum annealing tuning |
US20170147985A1 (en) | 2015-11-25 | 2017-05-25 | International Business Machines Corporation | Predicting an outcome of the execution of a schedule |
US20170178259A1 (en) | 2015-12-18 | 2017-06-22 | Hipmunk, Inc. | Automatic selection of calendar-based, multiple user options |
US9953389B2 (en) | 2015-12-29 | 2018-04-24 | Gt Gettaxi Limited | System for preemptively navigating drivers to passengers based on passenger device activity |
US9989374B2 (en) | 2015-12-31 | 2018-06-05 | Gt Gettaxi Limited | System for generating travel route to be serviced by primary transportation service and secondary transportation service |
AU2016277775A1 (en) | 2016-01-04 | 2017-07-20 | Accenture Global Solutions Limited | Data processor for projects |
US20170193459A1 (en) | 2016-01-06 | 2017-07-06 | International Business Machines Corporation | Scheduler responsive to personality profile |
CA2954114A1 (en) * | 2016-01-07 | 2017-07-07 | Tangerine Bank | An improvement to the performance of a remotely managed customer service system |
US10430739B2 (en) | 2016-01-26 | 2019-10-01 | International Business Machines Corporation | Automatic solution to a scheduling problem |
EP3211548A1 (en) | 2016-02-29 | 2017-08-30 | Siemens Aktiengesellschaft | System, method and a computer program product for system state and policy based scheduling of queries |
WO2017187223A1 (en) | 2016-04-25 | 2017-11-02 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for automating physical equipment replacement and maintenance |
US20190199733A1 (en) | 2016-05-17 | 2019-06-27 | Arctic Alliance Ltd | Artificial intelligence data processing system and method |
US11562300B2 (en) | 2016-06-10 | 2023-01-24 | Conduent Business Services, Llc | System and method for optimal automated booking of on-demand transportation in multi-modal journeys |
US10685332B2 (en) | 2016-06-24 | 2020-06-16 | Intel Corporation | Contextual model-based event scheduling |
US10163078B2 (en) * | 2016-06-30 | 2018-12-25 | The Boeing Company | Aircraft non-periodic maintenance scheduling system |
EP3479317A4 (en) | 2016-07-04 | 2019-11-27 | Bhutani, Varun | A task management system and a method thereof |
US10719777B2 (en) | 2016-07-28 | 2020-07-21 | At&T Intellectual Propery I, L.P. | Optimization of multiple services via machine learning |
US10387811B2 (en) | 2016-08-29 | 2019-08-20 | International Business Machines Corporation | Optimally rearranging team members in an agile environment |
US20180101809A1 (en) | 2016-10-06 | 2018-04-12 | International Business Machines Corporation | Real-time update of a mobile workforce schedule |
US20180107965A1 (en) | 2016-10-13 | 2018-04-19 | General Electric Company | Methods and systems related to allocating field engineering resources for power plant maintenance |
US10831450B2 (en) | 2016-10-26 | 2020-11-10 | Soroco Private Limited | Systems and methods for discovering automatable tasks |
US20180137594A1 (en) | 2016-11-17 | 2018-05-17 | Gt Gettaxi Limited | System and method for reserving drivers for a transportation service and navigating drivers to service transportation requests |
US10929808B2 (en) | 2017-01-17 | 2021-02-23 | International Business Machines Corporation | Estimation of node processing capacity for order fulfillment |
US20180247207A1 (en) | 2017-02-24 | 2018-08-30 | Hitachi, Ltd. | Online hierarchical ensemble of learners for activity time prediction in open pit mining |
US10810511B2 (en) | 2017-02-23 | 2020-10-20 | Sap Se | Data input in an enterprise system for machine learning |
US20180285831A1 (en) | 2017-03-31 | 2018-10-04 | Honeywell International Inc. | Automatic work order generation for a building management system |
US11755960B2 (en) | 2017-05-04 | 2023-09-12 | Lyft, Inc. | System and method for reserving drivers with minimum fare offers and navigating drivers to service transportation requests |
US10032181B1 (en) | 2017-05-24 | 2018-07-24 | Uber Technologies, Inc. | Determining a topological location of a client device using received radio signatures |
US20180349829A1 (en) | 2017-06-01 | 2018-12-06 | Vaughn Peterson | Method for Optimizing Employee Work Assignments |
US11270246B2 (en) | 2017-06-05 | 2022-03-08 | Accenture Global Solutions Limited | Real-time intelligent and dynamic delivery scheduling |
US10733548B2 (en) * | 2017-06-16 | 2020-08-04 | Snap-On Incorporated | Technician assignment interface |
US20180365624A1 (en) | 2017-06-20 | 2018-12-20 | Walmart Apollo, Llc | Anonymized allocations-based workforce management system |
CN110462610B (en) | 2017-08-05 | 2022-12-27 | 辟博股份有限公司 | Professional service recommendation system |
US20190050786A1 (en) | 2017-08-10 | 2019-02-14 | Dassault Systemes Americas Corp. | Task Assisted Resources Assignment Based On Schedule Impact |
US10936985B2 (en) | 2017-08-27 | 2021-03-02 | Avantgarde Llc | Computerized workforce management system for improving an organization's capacity to fulfill its mission |
US11416835B2 (en) | 2017-09-25 | 2022-08-16 | Ncr Corporation | Automated enterprise bot |
US20200249047A1 (en) | 2017-10-25 | 2020-08-06 | Ford Global Technologies, Llc | Proactive vehicle positioning determinations |
AU2018202759A1 (en) | 2017-10-31 | 2019-05-16 | Grand Performance Online Pty Limited | A system, method and computer program for optimising and allocating resources in a space for defined periods of time |
US10783482B2 (en) | 2017-12-08 | 2020-09-22 | Capital One Services, Llc | Data structure management for product preparation and delivery |
US20190180868A1 (en) | 2017-12-11 | 2019-06-13 | UBQ, Inc. | Optimizing emergency department resource management |
US11158018B2 (en) | 2017-12-11 | 2021-10-26 | Verizon Patent And Licensing Inc. | Forecasting simulator |
US20190180218A1 (en) | 2017-12-12 | 2019-06-13 | Einthusan Vigneswaran | Methods and systems for automated multi-user task scheduling |
US10775806B2 (en) | 2017-12-22 | 2020-09-15 | Lyft, Inc. | Autonomous-vehicle dispatch based on fleet-level target objectives |
US20190220828A1 (en) | 2018-01-17 | 2019-07-18 | Salesforce.Com, Inc. | Methods and systems for re-configuring a schedule of a preventive maintenance plan |
US20190279131A1 (en) | 2018-03-09 | 2019-09-12 | Toolots, Inc | Virtual firm technology - abstraction of workers |
US11288412B2 (en) | 2018-04-18 | 2022-03-29 | The Board Of Trustees Of The University Of Illinois | Computation of point clouds and joint display of point clouds and building information models with project schedules for monitoring construction progress, productivity, and risk for delays |
US20190353494A1 (en) | 2018-05-17 | 2019-11-21 | Otis Elevator Company | Route recommendation system for field service technicians |
US20190362294A1 (en) | 2018-05-24 | 2019-11-28 | The Fin Exploration Company | Systems and computer-implemented methods for dynamic and automatic resource management |
CN109146116A (en) | 2018-06-13 | 2019-01-04 | 浙江大学 | A kind of construction method of ability to work model, its calculation method of parameters, and labour's assessment prediction device based on the model |
US20190385125A1 (en) | 2018-06-15 | 2019-12-19 | Serveture LLC | Method and system for managing workforce |
US20200005222A1 (en) | 2018-06-27 | 2020-01-02 | Sap Se | Dynamic load optimization |
US10552773B1 (en) | 2018-09-07 | 2020-02-04 | Lyft, Inc. | Efficiency of a transportation matching system using geocoded provider models |
US11023900B2 (en) | 2018-09-07 | 2021-06-01 | Dell Products L.P. | Routing customer feedback and service request |
US12008493B2 (en) | 2018-09-13 | 2024-06-11 | Hitchpin, Inc. | System and methods for selecting equipment and operators necessary to provide agricultural services |
US11416830B2 (en) | 2018-09-25 | 2022-08-16 | Salesforce.Com, Inc. | Method and system for automatically creating action plans based on an action plan template |
US10452441B1 (en) | 2018-10-15 | 2019-10-22 | Accenture Global Solutions Limited | Determining an allocation of computing resources for a job |
US20200134529A1 (en) | 2018-10-30 | 2020-04-30 | Salesforce.Com, Inc. | Intelligent priming of mobile device for field service |
US10613899B1 (en) * | 2018-11-09 | 2020-04-07 | Servicenow, Inc. | Lock scheduling using machine learning |
US11182707B2 (en) * | 2018-11-19 | 2021-11-23 | Rimini Street, Inc. | Method and system for providing a multi-dimensional human resource allocation adviser |
US11694130B2 (en) | 2018-11-21 | 2023-07-04 | Honda Motor Co., Ltd. | System and method for assigning an agent to execute and fulfill a task request |
US11687850B2 (en) | 2018-11-21 | 2023-06-27 | Honda Motor Co., Ltd | System and method for processing a task request to be executed and fulfilled |
WO2020110131A1 (en) | 2018-11-27 | 2020-06-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and crew allocation system for allocating a field technician for executing a work order |
US11126939B2 (en) | 2018-12-06 | 2021-09-21 | At&T Intellectual Property I, L.P. | Telecommunication network customer premises service dispatch optimization |
US20200184407A1 (en) | 2018-12-10 | 2020-06-11 | At&T Intellectual Property I, L.P. | Telecommunication network customer premises service scheduling optimization |
US11308564B2 (en) | 2018-12-10 | 2022-04-19 | Airbnb, Inc. | Hierarchical generation of booking probability |
US20200210959A1 (en) | 2018-12-27 | 2020-07-02 | Clicksoftware, Inc. | Methods and systems for offerring service times based on user profile |
US20210065259A1 (en) | 2019-09-04 | 2021-03-04 | Jimmy Luong | Method, system and computer program product for selecting and tracking a service provider in response to a customer request |
US20220036320A1 (en) | 2020-07-31 | 2022-02-03 | Dell Products L. P. | Prediction of failure recovery timing in manufacturing process |
-
2019
- 2019-12-23 US US16/726,019 patent/US20200210959A1/en not_active Abandoned
- 2019-12-23 US US16/725,676 patent/US20200210932A1/en not_active Abandoned
- 2019-12-23 US US16/726,095 patent/US11823104B2/en active Active
- 2019-12-23 US US16/724,972 patent/US11593728B2/en active Active
- 2019-12-23 US US16/724,616 patent/US20200210936A1/en not_active Abandoned
- 2019-12-23 US US16/725,063 patent/US20200210962A1/en not_active Abandoned
- 2019-12-23 US US16/725,508 patent/US20200210965A1/en not_active Abandoned
- 2019-12-23 US US16/725,164 patent/US11354610B2/en active Active
- 2019-12-23 US US16/725,823 patent/US20200210938A1/en not_active Abandoned
- 2019-12-23 US US16/726,068 patent/US20200210939A1/en not_active Abandoned
- 2019-12-23 US US16/724,905 patent/US12026647B2/en active Active
- 2019-12-23 US US16/725,759 patent/US11551167B2/en active Active
- 2019-12-23 US US16/725,984 patent/US20200210943A1/en not_active Abandoned
- 2019-12-23 US US16/725,412 patent/US11615353B2/en active Active
- 2019-12-23 US US16/725,333 patent/US20200210963A1/en not_active Abandoned
- 2019-12-23 US US16/725,904 patent/US20200210919A1/en not_active Abandoned
- 2019-12-23 US US16/724,670 patent/US20200210961A1/en not_active Abandoned
- 2019-12-27 WO PCT/US2019/068748 patent/WO2020140038A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030033184A1 (en) * | 2000-10-03 | 2003-02-13 | Moshe Benbassat | Method and system for assigning human resources to provide services |
US20180253680A1 (en) * | 2017-01-19 | 2018-09-06 | Intelligrated Headquarters, Llc | Static warehouse area sizing and slotting of a multi-mode forward area |
US20200372431A1 (en) * | 2018-02-15 | 2020-11-26 | Panasonic Intellectual Property Management Co., Ltd. | Model generating device, demand forecasting device, demand forecasting method, and program |
US20200184494A1 (en) * | 2018-12-05 | 2020-06-11 | Legion Technologies, Inc. | Demand Forecasting Using Automatic Machine-Learning Model Selection |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11354610B2 (en) | 2018-12-27 | 2022-06-07 | Clicksoftware, Inc. | Methods and systems for scheduling location-based tasks and location-agnostic tasks |
US11551167B2 (en) | 2018-12-27 | 2023-01-10 | Clicksoftware, Inc. | Systems and methods for fixing schedule using a remote optimization engine |
US11593728B2 (en) | 2018-12-27 | 2023-02-28 | Clicksoftware, Inc. | Systems and methods for scheduling tasks |
US11615353B2 (en) | 2018-12-27 | 2023-03-28 | Clicksoftware, Inc. | Methods and systems for offerring service times based on system consideration |
US11823104B2 (en) | 2018-12-27 | 2023-11-21 | Clicksoftware, Inc. | Systems and methods for scheduling connected device |
US12026647B2 (en) | 2018-12-27 | 2024-07-02 | Clicksoftware, Inc. | Systems and methods for using predicted demand to optimize task scheduling |
US11416791B2 (en) * | 2019-02-22 | 2022-08-16 | American Express Travel Related Services, Inc. | Optimizing user task schedules in a customer relationship management platform |
US20220358447A1 (en) * | 2019-02-22 | 2022-11-10 | American Express Travel Related Services Company, Inc. | Optimizing user task schedules in a customer relationship management platform |
US20220116263A1 (en) * | 2019-09-25 | 2022-04-14 | Microsoft Technology Licensing, Llc | Service issue prioritisation based on impact using software telemetry |
US11632286B2 (en) * | 2019-09-25 | 2023-04-18 | Microsoft Technology Licensing, Llc | Service issue prioritisation based on impact using software telemetry |
US20230185646A1 (en) * | 2021-12-10 | 2023-06-15 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method for early warning of failure, electronic device and non-transitory computer-readable storage medium |
US20230259892A1 (en) * | 2022-02-17 | 2023-08-17 | Solar Turbines Incorporated | Digital platform based multifaceted risk assessment for extension of turbomachinery service intervals |
Also Published As
Publication number | Publication date |
---|---|
US20200210937A1 (en) | 2020-07-02 |
US11615353B2 (en) | 2023-03-28 |
US11593728B2 (en) | 2023-02-28 |
US20200210933A1 (en) | 2020-07-02 |
US20200210964A1 (en) | 2020-07-02 |
US20200210963A1 (en) | 2020-07-02 |
WO2020140038A1 (en) | 2020-07-02 |
US20200210938A1 (en) | 2020-07-02 |
US20200210943A1 (en) | 2020-07-02 |
US20200210918A1 (en) | 2020-07-02 |
US20200210962A1 (en) | 2020-07-02 |
US20200210965A1 (en) | 2020-07-02 |
US20200210939A1 (en) | 2020-07-02 |
US20200210961A1 (en) | 2020-07-02 |
US20200210931A1 (en) | 2020-07-02 |
US11823104B2 (en) | 2023-11-21 |
US20200210921A1 (en) | 2020-07-02 |
US20200210932A1 (en) | 2020-07-02 |
US20200210959A1 (en) | 2020-07-02 |
US11354610B2 (en) | 2022-06-07 |
US12026647B2 (en) | 2024-07-02 |
US11551167B2 (en) | 2023-01-10 |
US20200210936A1 (en) | 2020-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11593728B2 (en) | Systems and methods for scheduling tasks | |
US20200234220A1 (en) | Smart building automation system with employee productivity features | |
US8612276B1 (en) | Methods, apparatus, and systems for dispatching service technicians | |
US20190303831A1 (en) | Method for determining and providing analysis of impact severity of event on a network | |
US8321253B2 (en) | Technician control system | |
Gans et al. | Telephone call centers: Tutorial, review, and research prospects | |
US8364513B2 (en) | Technician control system | |
US20120203586A1 (en) | Field Service Networking Platform | |
US20060031110A1 (en) | Method and system for assigning human resources to provide services | |
US20150142489A1 (en) | Optimizing onsite vendor business | |
US20210065123A1 (en) | Clean technology infrastructure platform and services | |
Thi Nguyen | Quantitative analysis of ambulance location-allocation and ambulance state prediction | |
JP2019067386A (en) | Management system | |
US11244756B1 (en) | Integrated system and method for receiving and processing real-time digital data concerning transportation and service monitoring scheduling | |
Farahmand | Data-driven Decision Support System (DSS) for Bus Services | |
Hadlock et al. | Optimizing management of emergency gas leaks: a case study in business analytics | |
Djemai | The impact of fields force automation technology on coordination: the cases of intervention technicians of France Télécom | |
Entezari et al. | A Robust Framework for Addressing Routing and Scheduling Challenges in Home Health Care | |
Abbasi | Facility Location Modeling: Decentralization of Saskatoon Homecare Agency | |
Willoughby et al. | Facility location modeling: decentralization of Saskatoon homecare agency |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: CLICKSOFTWARE, INC., MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MONOVICH, AMIT;KOLODNER, YOAV;SHAPIROV, ALEXANDER;SIGNING DATES FROM 20191222 TO 20191223;REEL/FRAME:051359/0926 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |