Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
INSTALLATION LIFECYCLE MANAGEMENT SYSTEM
Document Type and Number:
WIPO Patent Application WO/2020/237343
Kind Code:
A1
Abstract:
A computer-implemented installation service management system provides end to end tracking and control of an installation job from the initial lead to a post-installation survey. In addition to assigning participants in the steps of the overall job process, the system tracks the progress of individual tasks and of the overall job process, automatically schedules subsequent steps, provides centralized resources supporting the various steps and tracks and controls the completion of the steps. The resources include modules for delivering product information, securing quotations and supplying and executing contracts and delivering them to mobile devices, scheduling re-measure visits, installations and inspections.

Inventors:
STUART MIKE (CA)
LABBEE PASCAL (CA)
PERERA ANDREA (CA)
Application Number:
PCT/CA2019/050734
Publication Date:
December 03, 2020
Filing Date:
May 29, 2019
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
PEAK INNOVATIONS INC (CA)
International Classes:
G06Q10/06; G06Q10/10
Foreign References:
CN108053180A2018-05-18
US20130268388A12013-10-10
US20170221072A12017-08-03
US20180240055A12018-08-23
Attorney, Agent or Firm:
SMITHS IP (CA)
Download PDF:
Claims:
CLAIMS

1. A management system for a plurality of participants in a home installation job, the system comprising: a server; a database connected to the server; a plurality of devices in wireless communication with the server, wherein each of the devices is associated with one of the participants and comprises a graphical user interface, and wherein each of the devices is configured to access one or more portals served by the server for display on the graphical user interface; wherein the one or more portals are configured to accept input from one or more of the devices regarding the job; wherein said database records a predetermined job process comprising sequential job steps and milestones indicative of the completion of a given step; wherein the server, in response to input from the one or more of the devices, is configured to track a status of the job process, the status being recorded in the database; wherein the server, in response to determining the status of the job, is further configured to provide prompts to one or more of the devices in relation to the job, the prompts being communicated to the one of more devices; and, wherein the server, in response to a milestone having been reached, is configured to automatically initiate an action to undertake a next step in the job process.

2. The management system of claim 1 , wherein said action is the automated scheduling of an appointment for one of said participants (“said one participant”), said scheduling comprising: the server polling a calendar application associated with said participant, said calendar application recording available appointment times for said one participant, and said server selecting one of said appointment times; said server dispatching an email to a customer offering said one of said appointment times; receiving an email from said home owner accepting said appointment time; and, dispatching a confirmation of appointment to said home owner and to said one participant.

3. The system of claim 1 wherein, in response to receipt of data comprising information comprising a type of home installation job and an address of a potential customer, said server is configured to access said database to assign a sales representative to said potential customer as a function of said type, said address and a record of geographical regions assigned to a plurality of sales representatives.

4. The system of claim 1 wherein said predetermined job process comprises the steps of: recognizing a lead to a potential home installation customer; a later step of assigning a sales representative, scheduling a sales representative appointment and electronically communicating an identity of said sales representative to said potential home installation customer; a later step of preparing a contract for said home installation job; a later step of assigning a re-measure contractor, scheduling a re measure appointment and electronically confirming said re-measure appointment to said customer; a later step of initiating an order process for ordering materials for said home installation job; a later step of assigning an installer, scheduling an installation appointment and electronically confirming said installation appointment to said customer; and wherein said server is configured to perform the foregoing steps automatically upon determining that corresponding milestones have been reached in said job process.

5. A home installation service management platform for sales and installation service calls, comprising: a server; a plurality of mobile devices associated with respective participants in a potential home installation job, said mobile devices being in wireless communication with said server; a database comprising a record of a predetermined job process comprising a plurality of sequential steps in said home installation job from receipt of a lead for a potential home installation job to completion of said home installation job, said record further comprising milestones for a plurality of said steps, said milestones indicative of a status of said step; said server being configured to accept data from said mobile devices, to monitor said milestones and, in response to determining that a milestone has been reached, automatically undertaking an action associated with a step subsequent to a step associated with said milestone; said server being configured to prepare and serve to one of said mobile devices a display selected from among the group comprising a quotation, a contract, a schedule, a scheduled appointment, a prompt to take certain action during an appointment.

6. The platform of claim 5 wherein said data comprises a plurality of data sets received from said mobile device at different times in the course of an appointment.

7. The platform of claim 6 wherein said server further comprises instructions that when executed cause the server to retain copies of said data sets and of said display and to serve said display to said mobile device upon request from said mobile device.

8. The platform of claim 6, said mobile device being configured with a plurality of software modules, each of said modules being independently selectable by a graphical user display, said modules comprising at least two modules from the group comprising a quotation module, a contract module and a scheduling module, wherein said quotation module is configured to accept product information that is manually entered on said device and to transmit a request for a quotation to said server, wherein said contract module is configured to accept an indication of acceptance of a quotation that is manually entered on said device and to transmit a request for a contract to said server, and wherein said scheduling module is configured to transmit a request for appointment availabilities in response to a manual request entered on said device.

Description:
TITLE OF INVENTION

INSTALLATION LIFECYCLE MANAGEMENT SYSTEM

FIELD OF THE INVENTION

This invention relates to system architectures and methods for managing and tracking home installation services.

BACKGROUND OF THE INVENTION A variety of home improvement products require professional installation. For example, this is typically the case with roofing, siding, gutters, decks, fences, windows, and doors.

Prior to undertaking the actual installation, the installation service company will typically dispatch a sales representative to the customer’s home to discuss with the customer the selection of products to be used in the installation, to evaluate the scope of the home improvement project, to provide a quote to the customer, to secure an order and/or payment from the customer, and eventually to schedule an appointment for the actual installation. The process of doing so can be cumbersome and drawn-out. For example, a miscellany of product catalogs, quotation documents, order forms, or contract documents are often brought to the customer’s premises by the customer representative. The handling of bulky product catalogs or the management and filling out of the other documents involved in the project can be awkward for both the representative and the customer. In some cases, it is necessary to adjourn the customer service call while the representative develops or validates a quotation (including securing a quotation from the manufacturer of the product to be installed), confirms a customer’s qualification, or retrieves and fills out order forms or contracts for eventual signing by the customer. Similarly, the availability of an installation crew might not be determined until the representative either makes appropriate enquiries of scheduling staff or registers the order for the installation project so that the job can be scheduled in due course. In most cases, the customer is told to expect a follow-up call to schedule the installation. As might be expected, every adjournment of the sales process carries a risk of losing the order as the customer reconsiders the project or its cost, becomes interested in alternative products or service suppliers, or due to other intervening events.

In order to be able to quote an overall installation cost to a customer, there is the need to secure a manufacturer’s quotation for the products and materials involved in an installation. Simply referring to manufacturer price lists is not practical as many of the products to be installed as home improvements involve a degree of customization. For example, in the case of windows, different types, styles, frames, glass, grillwork, colours, and treatments are available, and the specific size of the window must be chosen to accommodate the opening in which it is to be fitted. As a result, itemized manufacturers' price lists are often not applicable. To address this, many manufacturers provide proprietary quotation software to enable a representative to interact with the software so as to effectively build the product specifications to the point that a quotation can be generated by the software. A representative will typically install multiple proprietary quotation software programs from a variety of different manufacturers on the representative’s laptop, notebook, or other portable computing device. Although prevalent in the industry, there are a number of drawbacks to that approach. It is necessary for the representative to keep all of such software updated. The failure to do so can result in invalid quotations. In addition, there is a need to log into each manufacturer's software application, which may involve different user names and passwords for each manufacturer. Manufacturers’ quotation software involves varying approaches to updating the manufacturers’ pricing. In cases where the user is expected to normally trigger a pricing update by polling a server controlled by the manufacturer, there may be latency problems with the price information used to secure the quotation unless the representative is particularly diligent in regularly updating the pricing. Some currently popular portable computing devices have operating systems that are constrained as to the type of applications that can be run on the systems. For example, an iPad will often only be able to run Apple applications, while an Android-based device may only be able to run certain types of applications compatible with that operating system. The quotation software suffers another limitation. If the quotation software is being used in the presence of the customer, the customer might be expected to see the product price quotation, but the representative will need to add a labour or service fee on top of the product price. There might also be preferential pricing that is somewhat sensitive from the point of view of the installation company. It is known to try to address that problem by incorporating into the manufacturer's quotation application a provision for a product mark-up or the addition of a service fee so as to generate an overall quotation that can be presented to the customer. Such an approach involves arranging for each of the potential manufacturers to incorporate appropriate calculations to reflect the installation company's service fee and to account for any private discounts. In some cases, the setting of such a fee is not straightforward and can be challenging to implement in an automated system. There are also limitations on the usefulness of the quotation software from the point of view of retrieving previously supplied quotes. The quotes obtained by the representative may be for different alternative products and/or from different manufacturers. When it is desired to retrieve a previous quote in which a customer might show interest, the representative has no convenient means of retrieving the quotes relating to a particular customer and manufacturer. Frequently, the representative will be forced to generate a new quote (unless he printed off a copy of a previous quote and hopefully organized it in such a manner that it can be retrieved at a later date). Once a customer has accepted a quotation, an order must be confirmed or a contract entered into, typically including a form of payment. This can require the representative to prepare a written order or contract identifying the customer, the products to be used, the scope of work, pricing, payment details and other information. The process, whether done on the spot or during an adjournment of the service call and sale process, can be tedious and is subject to transcription errors. If such errors do occur, the installation will be delayed or losses will be incurred.

One aspect that is typically prone to transcription errors is the recordation of credit card information. These types of errors are especially severe as they usually result in a complete stoppage to the sales process. This problem may be further compounded by additional recordation and transmission steps owing to privacy concerns that disallow the permanent electronic storage of sensitive personal information. More specifically, full credit card information on a hand written costumer contract is redacted by the installation services company prior electronic storage. Redaction is typically effected by highlighting the credit card information with a light reflective marker that will appear blacked out once electronically scanned but remains readable to the eye. Also typically, after electronic storage, the credit card information will be required in typed electronic format for processing by a financial services company or other entity. The handwritten credit card information must be manually inputted for temporary electronic storage and transfer each time it is thus required. In sum, transcription errors may occur at the initial field stage, and may occur multiple times at the data entry stage.

The response time and performance of a representative in closing a sale or completing the service call may be evaluated and tracked. This is particularly so when leads are generated by a management system on behalf of a third party who the customer expects be responsible for the provision of the service. Such third party is typically interested in fast responsiveness to leads and a quick follow-through to close the deal and complete the installation. Sales representatives may be very diligent in responding to the communication of a new lead by attending on the customer within days or even hours. Similarly, the representative may be very prompt in generating product and service quotations, in arranging for pre-measuring of the project, and in returning to execute and prepare copies of a product and services contract. This standard of responsiveness may be repeated on a continuous basis, keeping the representative very busy.

Unfortunately, tracking the representative's responsiveness from attending on the customer to securing a signed order is dependent on the tracking system being made aware of the attendance, securing copies of the quotes and of the signed contracts. A management system may prompt the representative for status updates, however, for busy representatives who are continually on the road and visiting customer premises, the collection, organization and logging of the paperwork associated with a quotation or signed contract is a burden compared to the primary importance of visiting customers and closing a deal. As a result, such administrative paperwork is often delayed. As a result, the actual responsiveness of the sales representative is not reflected in the tracking of the representative's performance. Apart from the failure to credit the representative for responsiveness, if the contract is not logged promptly, the installation will also be delayed, resulting in customer frustration.

There may be discount policies in place in connection with the pricing of particular installation services. Some discounts might be discretionary on the part of the sales representative. In other cases, discounts may be set and controlled by the installation company, which may want to have very uniform discount practices and which will therefore have strict guidelines in relation to discounts. In such cases, there is nonetheless the possibility that the sales representative will wish to provide discounts on a relatively subjective basis, thereby frustrating the discount policies of the installation company.

After execution of the contract with the customer, and in some cases before a final price can be provided, a pre-installation visit by a remeasurement contractor may be required to more accurately measure the installation. This enables greater accuracy than a sales representative may have the time to achieve, yet it may be critical to providing an accurate work order for the product manufacturer.

Where a remeasurement is required, or to schedule the actual installation, the sales representative may typically discuss possible installation appointments with the customer. In some cases, the representative may be able to contact an installer on the spot, for example by telephone or electronically, and schedule a visit. However, when larger numbers of installations are involved, the ad hoc setting of appointments is problematic. Instead, the representative undertakes to have someone contact the customer at a later date. This hiatus allows the representative or the installation company to secure an estimate of when the manufacture of the product will be completed. Contact can then be made with the customer to schedule an appointment. It will be appreciated that this involves disengaging with the customer until such time as the job can be processed, the products and materials ordered, a manufacturing time estimate secured, and an installer contacted with the pertinent information to schedule a tentative appointment.

The prior systems also result in a distribution of the information relating to a specific job. The information may be recorded on paper, or perhaps electronically, but may be known initially only to the sales representative. Other sales representatives will not typically be privy to the same information regarding the job unless they communicate directly with the attending sales representative or an enquiry is made of a central processing facility for the various jobs. It may be necessary to contact an installer if the question relates to re-scheduling a job.

The foregoing touch on some of the inefficiencies in the prior systems of securing orders, executing contracts, and scheduling home improvement installation services. Other inefficiencies may be appreciated upon consideration of the invention, though perhaps not expressed herein. The problem addressed by this invention is disconnected interactions between service providers, customers, and service subsystems that fail to integrate installation processes with one another resulting in delays, errors, inefficiencies and loss or orders.

It is therefore an object of the present invention to overcome the aforementioned deficiencies. It is a further object of the present invention to allow the lead development process to mature into a scheduled installation order as smoothly as possible and to minimize the delays and inconvenience caused by the need to retrieve and secure various quotation documents, contracts, catalogues, and payment clearance instruments. The invention disclosed herein provides system architectures, protocols, and methods yielding a more convenient, efficient and rapid customer service call and installation process.

In this application, the end to end process from the receipt of a customer lead for an installation service, through the sales call, commitment, ordering, remeasuring, installation, inspection and customer survey will be referred to collectively as a“job”.

These and other objects of the invention will be better understood by reference to the detailed description of the preferred embodiment which follows. Note that not all of the objects are necessarily met by all embodiments of the invention described below or by the invention defined by each of the claims.

SUMMARY OF THE INVENTION

According to the invention, a management application oversees and coordinates the end-to-end process steps and activities from the receipt of a lead to a possible order up to a post-installation inspection and customer survey. The management application interfaces with the various participants in the job, providing resources, support, actions and prompts to ensure that the process unfolds smoothly. The management application maintains portals for the various participants providing access through participant devices to the support and functionality of the management application. The management application acts as a clearinghouse, records center and document generator for tracking the progress of the job and serving to the participant devices the various documents, information and prompts needed to progress the transaction and complete the job It is an essential feature of the invention to use a computer implemented system that serves to merge and expedite the previously discrete steps involved in a job, and to enable the monitoring and interactive features of the system, including notably a server serving and interfacing with a number of device clients and external resources and a database recording a sequence of steps in a job process.

According to the invention, a management application resides on a server and is configured with protocols and processes that control the end to end job process from the receipt of a lead for home installation services to the end of life of the home installation job.

In one aspect, the invention is a management system for a plurality of participants in a home installation job. The system comprises a server, a database connected to the server, and a plurality of devices in wireless communication with the server. Each of the devices is associated with one of the participants and comprises a graphical user interface. Each of the devices is configured to access one or more portals served by the server for display on the graphical user interface. The one or more portals are configured to accept input from one or more of the devices regarding the job. The database records a predetermined job process comprising sequential job steps and milestones indicative of the completion of a given step. The server, in response to input from the one or more of the devices, is configured to track a status of the job process and the status is recorded in the database. The server, in response to determining the status of the job, is further configured to provide prompts to one or more of the devices in relation to the job and the prompts are communicated to the one of more devices. The server, in response to a milestone having been reached, is configured to automatically initiate an action to undertake a next step in the job process. In a further aspect, the action is the automated scheduling of an appointment for one of the participants (“the one participant”). The scheduling comprises the server polling a calendar application associated with the participant, the calendar application recording available appointment times for the one participant, and the server selecting one of the appointment times. The scheduling further comprises the server dispatching an email to a customer offering the one of the appointment times, receiving an email from the home owner accepting the appointment time, and dispatching a confirmation of appointment to the home owner and to the one participant. In a further aspect, in response to receipt of data comprising information comprising a type of home installation job and an address of a potential customer, the server is configured to access the database to assign a sales representative to the potential customer as a function of the type, the address and a record of geographical regions assigned to a plurality of sales representatives.

In yet a further aspect, the predetermined job process comprises the steps of recognizing a lead to a potential home installation customer, a later step of assigning a sales representative, scheduling a sales representative appointment and electronically communicating an identity of the sales representative to the potential home installation customer, a later step of preparing a contract for the home installation job, a later step of assigning a re-measure contractor, scheduling a re-measure appointment and electronically confirming the re measure appointment to the customer, a later step of initiating an order process for ordering materials for the home installation job, and a later step of assigning an installer, scheduling an installation appointment and electronically confirming the installation appointment to the customer. The server is configured to perform the foregoing steps automatically upon determining that corresponding milestones have been reached in the job process. In another aspect, the invention is a home installation service management platform for sales and installation service calls. The platform comprises a server, a plurality of mobile devices associated with respective participants in a potential home installation job and being in wireless communication with the server, and a database comprising a record of a predetermined job process comprising a plurality of sequential steps in the home installation job from receipt of a lead for a potential home installation job to completion of the home installation job. The record further comprising milestones for a plurality of the steps, the milestones indicative of a status of the step. The server is configured to accept data from the mobile devices, to monitor the milestones and, in response to determining that a milestone has been reached, automatically undertaking an action associated with a step subsequent to a step associated with the milestone. The server is further configured to prepare and serve to one of the mobile devices a display selected from among the group comprising a quotation, a contract, a schedule, a scheduled appointment, a prompt to take certain action during an appointment.

In further aspect, the data comprises a plurality of data sets received from the mobile device at different times in the course of an appointment.

In a further aspect, the server further comprises instructions that when executed cause the server to retain copies of the data sets and of the display and to serve the display to the mobile device upon request from the mobile device.

In yet a further aspect, the mobile device is configured with a plurality of software modules, each of the modules being independently selectable by a graphical user display. The modules comprise at least two modules from the group comprising a quotation module, a contract module and a scheduling module. The quotation module is configured to accept product information that is manually entered on the device and to transmit a request for a quotation to the server. The contract module is configured to accept an indication of acceptance of a quotation that is manually entered on the device and to transmit a request for a contract to the server. The scheduling module is configured to transmit a request for appointment availabilities in response to a manual request entered on the device.

The foregoing was intended as a broad summary only and of only some of the aspects of the invention. It was not intended to define the limits or requirements of the invention. However, the scope of the claims should not be limited by the preferred embodiments set forth in the examples, but should be given the broadest interpretation as a whole.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will be described by reference to the detailed description of the preferred embodiment and to the drawings thereof in which:

Fig. 1 is a diagrammatic view of the system of the preferred embodiment; Fig. 2 is a block diagram of the functional components of one embodiment of a portable device used by participants;

Fig. 3 is a front view of the preferred embodiment of the portable device of Fig. 2;

Fig. 4 is a block diagram of the functional components of the server according to the preferred embodiment;

Fig. 5 is a block diagram showing the association of certain participant devices, the server and a calendar application;

Fig. 6 is a flowchart of the process for assigning a sales representative according to the preferred embodiment; Fig. 7 is a diagrammatic representation of exemplary store and sales rep coverage areas;

Fig. 8 is a flowchart of the overall job tracking process according to the preferred embodiment; Fig. 9A to 9C is a flowchart of an overall process according to the preferred embodiment; and,

Fig. 10A to 10G is a flowchart of a sample process flow for the lead to installation scheduling according to an embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

In the following detailed description, the preferred embodiment and various alternative embodiments of the invention are described. Each of the preferred and alternative features described herein is not necessarily part of the invention over which claims will be asserted but are included for a full specification of how to implement at least one practical embodiment of the invention.

System overview

Referring to Fig. 1 , in accordance with one embodiment of the invention, a customer 10 expresses an interest in an installation job. The job may include one or more of a door installation, a window installation, or a roofing installation. It is understood that the job may encompass the installation of other products as well. The customer 10 may express interest in the job in a number of ways. For example, the customer 10 may attend at a retail store 12 and express interest to an employee of the retail store 12. Alternatively, the customer 10 may access a website maintained by the retail store 12. Still alternatively, the customer 10 may initiate a phone call with the retail store 12. Regardless of the manner in which the customer 10 expresses interest in the job, certain initial lead information 14 regarding the job is recorded. The initial lead information 14 preferably includes at least the following: the name of the customer 10, contact information for the customer 10, the nature of the job, the location at which the job will be conducted and if applicable the particular store that generated the lead. In one embodiment, the initial lead information 14 is communicated to a third-party server 16, which may be maintained by the retail store 12.

The initial lead information 14 about the job forms the basis for a new lead. Once a lead has been created, the lead information 14 is communicated to a management application 18. According to one embodiment, the management application 18 comprises an application resident on a server 20. The third-party server 16 may transmit, through a network (e.g. the Internet), the lead to the management application 18 once the lead is created. Alternatively, the management application 18 may periodically connect to the third-party server 16, through the network, and download any new leapds created since the last time it was connected to the third-party server 16.

Once the lead information is received by the management application 18, the management application 18 begins processing the new job. The management application 18 acts as a clearinghouse, records center, document generator and coordinator for facilitating, tracking and promoting the progress of the job. In assisting in this function, the management application 18 may use a database 24 that is connected to the server 20. The database 24 is configured to store and retrieve data relating to the job as it progresses.

The management application 18 comprises a number of modules (best illustrated in Fig. 4), each of which may be run depending on the particular stage in which a lead is at. Specific modules support specific steps in the overall installation process and several of the modules are intended to be used in sequence through the process. Applications supporting the various modules are preferably accessed through website portals maintained by the server 20. The application includes a device-server communication engine 21.

Each of the participants involved in the lifecycle of the lead is preferably equipped with a remote, network communication-enabled device 28. The device 28 may be portable or stationary and are configured to communicate with the server 20 through a network connection, which may be the same as the network (e.g. the Internet) or some other suitable network. In the case where the device 28 is portable and intended to be carried by the participant from place to place, the device 28 is preferably capable of wireless network communications with the server 20 (e.g. using WiFi, cellular, and/or satellite communications).

In one embodiment, the device 28 comprises a graphical user interface (GUI) 30 that allows for interfacing and interacting with the management application 18 over the network. For example, the GUI 30 may comprise a web browser that is configured to accept input and display information from the management application 18 through one or more web applications running on the server 20. The GUI 30 may also include a virtual keyboard to allow the inputting of text data. Referring to Fig. 3, the GUI 30 may include icons representative of modules that may be run through the portal associated with the device (for example a sales representative portal for a sales representative device) available for access on the server 20 from the management application 18. The illustrated modules in Fig. 3 are Our Services 31 , Product Info 40, Create Quote 48, Create Contract 54, Waiver 33, Scheduling 32, Change Order 35, Records Center 37 (enabling access to the documentary resources of the management application 18 relating to job records), Settings 39 and Insurance Business 41. The system architecture and participants of the preferred embodiment are also illustrated in Fig. 1. Management application 18 hosts a number of portals 98, 100, 102, 104 for certain of the participants in the job. The participants include a sales representative 26, a project coordinator 64, a re-measure contractor 66 and an installer 82, order personnel 78, vendor servers 44 and an inspector 88. At least the sales representative, the project coordinator, the re-measure contractor and the installer each have a device used to access their respective portals. Referring to Fig. 5 the management application 18 also connects as needed to a calendar application 99 (which may be proprietary or a third-party application such as Google Calendar) to support the scheduling functions of the job management system of the invention. The sales representative 26, re-measure contractor 66 and installer devices 82 each connects to the calendar application 99 to upload their availability for job scheduling.

According to the preferred embodiment and by reference to Fig. 8, the management application 18 assigns (302) a job identification to each distinct job in respect of which lead information 14 is received. The process from the receipt of lead information 14 to a post-installation customer survey are characterized by a detailed process flow as represented in Fig. 9A-9C. Steps in the process are recorded in database 24. Upon identification of a new job, the job is associated with the process and the tracking and control process is automatically initiated (304).

The management application 18 controls the individual steps in the job process. In addition, the management application 18 runs the overall monitoring process 300 to determine whether each step 306 in the job is being completed according to a predetermined time 308 for the overall job and for each step in the job process. More specifically, target times per step 306 in the overall job process are predetermined and saved in the database 24. Quality control parameters 310 are used to assess whether each step has been satisfactorily completed and such parameters 310 are also saved in the database 24. The overall progress of the job is further tagged with milestones representing a particular stage of a given step in the job. When such milestones are reached, the monitoring process 300 is notified. The monitoring process 300 identifies (312) the next expected milestone according to the last known status of the job. If (314) the milestone is indicative of the completion of the entire job process, the monitoring process 300 ends (316). If not, the process 300 proceeds to assess (318) whether the timeline 308 and the quality control parameters 310 are being met for that step. The management application 18 may prevent a step from being marked as complete, implying that the participant responsible for that step has not completed their allotted task. In the event that the timeline 308 is not met or that the quality control parameters 310 have not been met or is at risk of not being met for a given step, the party responsible for the delayed step may be notified. Optionally other remedial action 320 is also taken, for example recording demerits to the account of the participant, not allowing the step to be marked as complete, or expediting the timeline for subsequent process steps. The monitoring process 300 iterates its process for each milestone associated with the job or within individual steps in the job.

Assignment of Sales Representative

Once the lead information 14 is received by the management application 18, the management application 18 immediately assigns a particular sales representative 26 to the lead. This may be accomplished using a sales representative assignment module 32 of the management application 18. In one embodiment illustrated in Fig. 7, where the retail store 12 is part of a larger chain or group, each retail store may be associated with a particular geographic service area and with one or more sales representatives 26a-26f within that geographic service area. The assignment of the particular sales representative 26 to the lead may be based, at least in part, on one or more of the following criteria: (1) the nature or type of the job; (2) the location at which the job will be conducted; and (3) the identity and location of the particular retail store 12. In one embodiment, the particular sales representative 26 may be assigned to the lead because the location for the job is within his or her service area and the nature of the job is one with which he or she is familiar. Referring to Fig. 6, in assigning a sales representative, the lead information 14 is first parsed (200) to determine the GPS coordinates of the intended job site, to determine (202) the store that generated the lead if applicable, and to extract (204) the type or nature of the job. Using the GPS coordinates of the job site extracted in step 200, database 24 is consulted to determine (206) which store’s region encompasses those coordinates.

For example, suppose that the retail store 12 is part of a chain of retail stores (i.e. retail stores 12a, 12b, 12c, each with their respective service areas), with each of the retail stores being associated with two sales representatives (i.e. sales representatives 26a, 26b with retail store 12a, sales representatives 26c, 26d with retail store 12b, and sales representatives 26e, 26f with retail store 12c). If the customer 10 is interested in a door installation at his or her home, and his or her home is located within the service area of retail store 12b, the sales representative assignment module 32 will assign either sales representative 26c or 26d to the lead. If, for example, sales representative 26c is familiar with windows installations and sales representative 26d is familiar with door installations, then the sales representative assignment module 32 will assign sales representative 26d to the lead.

In some circumstances, the identity of the particular retail store 12 may be relevant to the assignment of the sales representative 26 if the location at which the job will be conducted is outside of the geographic service area of the retail store 12 at which the customer 10 initially attends. For example, suppose that the customer 10 had originally attended at retail store 12a (even though his or her home is located within the service area of retail store 12b) and that retail store therefore generated the lead information 14. In this case, the sales representative 26 assigned to the lead may be associated with the retail store 12 at which the customer 10 attended (i.e. retail store 12a, even though the location at which the job will be conducted is outside of the geographic service area of retail store 12a). This may be because of sales commission purposes (i.e. retail store 12a at which the customer 10 attended would like to receive any sales commissions from the job even though the job is conducted outside of its geographic service area). The assignment module 32 determines (208) whether the store whose region encompasses the job site coincides with the store that generated the lead information. If there is a conflict, an appropriate decision rule is applied (210) by the assignment module 32. The appropriate sales representative is selected by consulting (212) the database 24 for sales representatives that handle the type of job involved and that qualify by region in which the job is located.

Once the sales representative 26 has been assigned, the sales representative assignment module 32 records (214) the assignment and identity of the sales representative 26. Scheduling of Appointment with Sales Representative

Once the sales representative assignment module 32 has assigned the appropriate sales representative 26 to the lead, the management application 18 immediately proposes an appointment between the customer 10 and the sales representative 26 at the location where the job is to be conducted. This may be done using a sales representative scheduling module 34 of the management application 18. Each sales representative 26 is preferably equipped with one of the portable devices 28. Through the GUI 30, each of the sales representatives 26 is able to connect to the server 20 to access a sales representative portal 98. The sales representative portal 98 may be a webpage that allows the sales representative 26 access to certain functionality relevant to the sales representative’s responsibilities in the job process (described below) through a web browser. Preferably, the sales representative portal 98 requires the entry of a unique username and password, which when entered by the sales representative 26, is recognized by the server 20 and causes the server 20 to allow the display of the sales representative portal 98 on the GUI 30.

When the sales representative 26 accesses the sales representative portal 98, the sales representative 26 is given the opportunity to view a calendar 99 displaying his or her scheduled appointments. The information in the calendar is based, at least in part, on information generated by the sales representative scheduling module 34.

Each of the sales representatives 26 is associated with certain sales scheduling data that is accessible by the management application 18. The sales scheduling data may comprise schedule information 106 and preferences information 108.

The schedule information 106 include the times and locations of already- scheduled appointments and other times that the sales representative 26 is not available (e.g. holidays, vacations, off-work hours, etc.). The schedule information 106 may be stored in the database 24 or it may be stored by a third- party service (e.g. Google Calendar) that the management application 18 is able to access. Preferably, the sales representative 26 is also able to access and edit the schedule information 106 as needed (e.g. to enter in vacations, etc.). If the schedule information 106 is stored in the database 24, the sales representative 26 may access and edit the schedule information 106 through the sales representative portal 98. If the schedule information 106 is stored in a third-party service, the sales representative 26 may access and edit the schedule information 106 either through the sales representative portal 98 or through some other suitable third-party application. The preferences information 108 comprises information that may be specific for each of the sales representatives 26. This may include information such as the standard length of time for an appointment, the length of buffers between appointments, etc. Preferably, the sales representative 26 is able to edit the preferences information 108 through the sales representative portal 98. When the new lead is received by the management application 18, and based in part on the sales scheduling data for the sales representative 26, the sales representative scheduling module 34 selects one or more possible times for the appointment. In one embodiment, the sales representative scheduling module 34 selects three possible times. Preferably, when selecting the possible time(s), the sales representative scheduling module 34 also takes into account the location of where the job is to be conducted and the locations of the already-scheduled appointments for the sales representative 26.

In one embodiment, the sales representative scheduling module 34 is able to access mapping information and predicted traffic data in order to determine the distances between the location of where the job is to be conducted and the locations of the already-scheduled appointments. For example, this information may be accessed using third-party sources (e.g. Google Maps). From this, the sales representative scheduling module 34 is able to determine predicted driving times among those locations. This will ensure that the sales representative scheduling module 34 does not select possible times for appointments that will be impossible or very difficult for the sales representative 26 to conduct (due to the predicted driving times).

The sales representative scheduling module 34 may also take into account the preferences information 108 (e.g. length of the appointment, buffers between appointments, etc.) in selecting the possible times for appointments.

In another embodiment, the sales representative scheduling module 34 is able to access mapping information in order to determine the locations of the already- scheduled appointments. From this, the sales representative scheduling module 34 will attempt to group appointments so that their respective locations are closer in proximity to each other. In order to do this, the sales representative scheduling module 34 may not select a first available time for an appointment even if the window of time is sufficient, if a second available time would result in a grouping of appointments with locations that are a certain proximity to each other. In this manner, the sales representative scheduling module 34 is able to optimize the scheduling of appointments to reduce the amount of travel time required of the sales representative 26.

For example, suppose the sales representative 26 is associated with two retail stores 12a, 12b, with each of the retail stores 12a, 12b having their own geographic service areas. Further suppose that the sales representative 26 already has a scheduled appointment with a first customer 10a in the geographic service area of retail store 12a at 2:00pm on a Monday. If the sales representative scheduling module 34 needs to schedule an appointment with a second customer 10b in the geographic service area of retail store 12b, the sales representative scheduling module 34 will not select as possible appointments 11 :00am or 5:00pm on Monday, even though there would be sufficient time for those possible appointments. Instead, the sales representative scheduling module 34 may select as possible appointments 11 :00am or 2:00pm on Tuesday. Suppose that second customer 10b chooses 11 :00am on Tuesday. Now, if the sales representative scheduling module 34 needs to schedule an appointment with a third customer 10c in the geographic service area of retail store 12a, the sales representative scheduling module 34 will attempt to optimize the schedule by selecting as possible appointments 11 :00am or 5:00pm on Monday. In particular, the sales representative scheduling module 34 will avoid selecting as a possible appointment 2:00pm on Tuesday.

Whenever possible, the sales representative scheduling module 34 will attempt to select possible appointments so as to cluster the locations of the appointments together.

Once the sales representative scheduling module 34 has selected one or more possible times for the appointment, this is communicated to the customer 10. This may be done through a sales appointment email that is automatically generated by the management application 18. The sales appointment email may also include the name and contact information for the sales representative 26.

The customer 10 is able to select one of the possible times in the sales appointment email by clicking on an appropriate embedded link in the sales appointment email. If none of the possible times are satisfactory to the customer 10, the customer 10 may advise the sales representative scheduling module 34 by clicking on another one of the embedded links in the sales appointment email. In this case, the sales representative scheduling module 34 will, based on similar criteria as described above, select additional possible times for the appointment and send another sales appointment email to the customer 10.

Once the customer 10 has selected one of the possible times, the sales representative scheduling module 34 updates the schedule information 106 for the sales representative 26 to reflect the new appointment. The information associated with the lead (e.g. the name of the customer 10, the location of where the job will be conducted, the nature of the job requested, etc.) is also part of the schedule information 106. Thereafter, the sales representative 26 will be able to view the new appointment (and his or her other already-scheduled appointments) through the sales representative portal 98. The sales representative scheduling module 34 preferably also sends a confirmation email to the customer 10 confirming the appointment.

The Sales Appointment

When the sales representative 26 meets with the customer 10 at the scheduled appointment, the sales representative 26 may enter the customer's name or address through the GUI 30, which communicates the information to the management application 18 on the server 20. In one embodiment, the management application 18 may be able to track the location of the device 28 carried by the sales representative 26 (e.g. using GPS antennae on the device 28) and may deduce which customer 10 is being visited by the sales representative 26, followed by a prompt to the GUI 30 requesting confirmation from the sales representative 28 that the appointment is being initiated with the customer 10.

The management application 18 can begin logging the contact with the customer 10 and track the progress of the lead through the interactions between the device 28 and the server 20. The management application 18 also correlates the information supplied by the inputs of the sales representative 26 through the GUI 30 to a particular lead.

A presentation module 40 may be run by the sales representative 26 to provide to the customer 10 an audiovisual outline of the installation process and may include promotional material relating to the home installation services company or the entity on whose behalf the home installation services company is acting (e.g. the retail store 12 that generated the lead). In one embodiment, the presentation module 40 also includes a prompt for entering the name or address of the customer 10, which may be used as the triggering event for the establishment of a session with the management application 18.

The sales representative 26 may initiate the presentation module 40 for viewing by the customer 10 through the GUI 30 on the device 28. The presentation module 40 includes an audiovisual introduction to the installation service supplier's services and quality of service and an outline of the sales and installation process that the customer 10 is about to undertake.

The presentation module 40 may include a menu of the general types of installation projects for selection by the sales representative 26. Each menu item further presents the customer 10 with an audiovisual outline of the general types of options available for the particular job that the customer 10 has in mind. This serves to narrow the specifications and parameters of the job. Each of the selections is communicated to the management application 18, thereby informing the management application 18 of further particulars of the type of job involved. The management application 18 may correlate such selection with the type of job recorded in the database 24, generating a verification prompt to the GUI 30 in the event of a discrepancy.

The contents of the presentation module 40 may be preloaded in memory on the device 28, with automatic updating of the content the management application 18 whenever the device 28 initiates a communication session with the server 20. As each session is initiated, the management application 18 polls the device 28 to determine the currency of the contents of the presentation module 40 that is loaded on the device 28 and downloads any updated version as may be required. Alternatively, the contents of the presentation module 40 may be entirely downloaded interactively in real-time from the management application 18, obviating the need to store the contents locally on the device 28 and avoiding the need to update locally-stored content on the device 28.

After discussion and refinement of the installation needs of the customer 10, the sales representative 26 causes the management application 18 to run a catalogue module 42, the contents of which the management application 18 displays on the GUI 30 on the device 28. The catalogue module 42 displays and demonstrates to the customer 10 potential products available for installation. The GUI 30 preferably presents a menu of possible product vendors available for the job. Selection of a given vendor triggers the opening of that vendor's catalogue of products.

The catalogues of vendor products that are presented by the catalogue module 42 are maintained current by the management application 18, the management application 18 determining from the device 28 which editions of the catalogues are currently saved on the device 28 and downloading updates as needed. Such updating of the catalogues may be performed any time the device 28 is in communication with the server 20, but according to the preferred embodiment, the updating is performed seamlessly at the initiation of each session with customers 10. Reference prices associated with the catalogue items, if available, are similarly updated and maintained current by management application 18. Alternatively, as in the case of the content of the presentation module 40, the content of the catalogue module 42 may be entirely downloaded interactively in real time from the server 20 in an ASP model, obviating the need to store the content locally on device 28 and avoiding the need to update locally- stored content on the device 28. In some cases, the individual vendor catalogues are maintained only on third- party vendor servers 44, and that may require certain applications to be run in order to access the catalogues. For example, where the pricing of a product is variable and dependent on product specifications, as is the case for windows and doors, the price cannot reasonably be determined until the product specifications are provided as prompted by a vendor quotation engine on the vendor servers 44. In such cases, the applications required to access the vendor catalogues are run on server 20 by the management application 18, and the resulting pages are served up to the GUI 30 on the device 28 by the management application 18. This arrangement allows the device 28 to access the catalogues of various vendors without requiring the vendor software to be loaded directly onto each of the devices 28. It also allows updates to the vendor software to be made at a single location, namely at the server 20 for effective access by all devices 28 that may be associated with the server 20.

Alternatively, the vendor software application may be made available to the device 28 and loaded on the device 28, in which case the device 28 runs the application with the management application 18 acting as the server, with the management application 18 providing network 22 access facilities to the vendor servers 44.

The sales representative 26 and the customer 10 are able to identify candidate product and materials options for the job, which are saved on the device 28 and are communicated to the management application 18. Once the customer 10 has settled on a particular suite of products for the job, the sales representative 26 tags the products through the catalogue module 42, the product selections being communicated to management application 18.

Generating a Quotation

The management application 18 uses a quotation module 48 to generate one or more quotations 50 for the customer 10 based on the products chosen by the customer 10 for the job. The quotation module 48 may be accessed through a quotation portal 105. The quotation portal 105 may be a webpage that allows the sales representative 26 access to various functionality (described below). Preferably, the quotation portal 105 requires the entry of a unique username and password, which when entered by the sales representative 26, is recognized by the server 20 and causes the server 20 to allow the display of the quotation portal 105 on the GUI 30.

The management application 18 may prompt the sales representative 26 to initialize the quotation portal 105 during the appointment. Alternatively, the sales representative 26 may choose to initialize the quotation portal 105 at an appropriate time. Once the quotation portal 105 has been initialized on the GUI 30, the quotation portal 105 may prompt the sales representative 26 to search for a particular lead. The sales representative 26 may do so by inputting an identifier (e.g. a numeric identifier) for the lead of interest. The quotation module 48 may then retrieve the information associated with the lead from the database 24. The quotation portal 105 displays on the GUI 30 a number of parameters with respect to the lead. Some of the parameters may already be prepopulated based on data regarding the lead that is already in the database 24 (e.g. the name of the customer 10, the location of the job, the identity of the retail store 12, etc.). Other parameters will need to be entered by the sales representative 26 in order for the quotation 50 to be as accurate as possible. Some of the parameters may be mandatory (e.g. dimensions of a door), while others may be optional (e.g. colours, in some instances).

The quotation module 48 ensures that all of the mandatory parameters are entered before the quotation 50 can be generated. If one or more mandatory parameters are not entered by the sales representative 26, the quotation portal 105 prompts the sales representative 26 to enter the missing mandatory parameter(s). In one embodiment, the quotation portal 105 may also have the ability to display on the GUI 30 a drawing page to allow the sales representative 26 and/or the customer 10 to draw sketches of the job (e.g. doors, windows, etc.).

In another embodiment, the quotation module 48 performs some preliminary verification on the parameters entered by the sales representative 26 to ensure that the parameters fall within conventional ranges. The quotation module 48 may access data in the database 24 to compare whether the parameters entered by the sales representative 26 fall within conventional ranges. For example, if the sales representative 26 enters “24 inches” as the width of a door, the quotation module 48 may provide an alert (e.g. through the quotation portal 105) that the inputted width is outside the conventional range for a door. The quotation portal 105 may then prompt the sales representative 26 to confirm that the parameter is correct.

Once the sales representative 26 has entered all of the necessary mandatory parameters, the quotation module 48 is able to generate the quotation 50. In order to do so, the quotation module 48 may need to access pricing data 52. The pricing data 52 may comprise information such as vendor price lists, current promotions, current discounts, etc. The pricing data 52 may be located locally on the server 20 in the database 24. Alternatively, the quotation module 48 may need to communicate with the third-party vendor servers 44 in order to access the pricing data 52.

Based, at least in part, on the pricing data 52, the quotation module 48 generates the quotation 50 for the job. The quotation 50 preferably is in the form of an electronic document that includes appropriate logos, trademarks, letterhead, and entries identifying the customer 10, the job, and other pertinent information. The quotation 50 is displayed on the GUI 30 for review by the customer 10 and the sales representative 26. The quotation 50 may also be sent by email by the quotation module 48 to the customer 10. The quotation 50 preferably displays a price breakdown for the various products, the labour associated with the job, any other incidental fees, and applicable taxes. In addition, the quotation 50 may also display and take into account any current promotions or discounts that are applicable to the job. In another embodiment, the quotation 50 may also display any financing options that are available for the payment for the job.

A copy of the quotation 50 is also saved by the management application 18 in the database 24 and associated with the particular lead. In addition, the management application 18 updates the status of the lead to indicate that the quotation 50 has been given.

Creating the Contract

Once the quotation 50 has been generated and provided to the customer 10, the customer 10 may decide to proceed with the job. For example, the customer 10 may decide at the sales appointment to proceed with the job. Alternatively, the customer 10 may wish to consider the quotation 50 further and adjourn the sales appointment. If the customer 10 decides to adjourn the sales appointment, the sales representative 26 is able to record this through the GUI 30. This is communicated to the management application 18, which updates the lead to reflect that the customer 10 is considering the quotation 50. In one embodiment, the management application 18 is configured to cause the sales representative scheduling module 34 to generate a reminder for the sales representative 26 to contact the customer 10 to follow up after a set amount of time. This reminder may be in the form of a message that is displayed on the GUI 30 when the set amount of time has elapsed. If the customer 10 decides to proceed with the job (i.e. accepts the quotation 50), he or she may do so by advising the sales representative 26 accordingly. The sales representative 26 can record this through the GUI 30, which is then communicated to the management application 18. Alternatively, the customer 10 may signal acceptance of the quotation 50 using the email sent by the quotation module 48 containing the quotation 50. In this embodiment, the email containing the quotation 50 includes a hyperlink, comprising an identifier, for accessing the server 20. The identifier is also associated with a particular lead. The hyperlink is preferably labelled with text to indicate to the customer 10 that clicking on the hyperlink is an indication that the customer 10 wishes to accept the quotation 50. When the customer 10 clicks on the hyperlink in the email, the server 20 is able to recognize the identifier and passes it to the management application 18, which is able to match it with the appropriate lead.

The management application 18 updates the lead to reflect that the customer 10 has accepted the quotation 50.

The management application 18 uses a contract module 54 to generate a contract 56. In one embodiment, the contract module 54 may also be accessed through the quotation portal 105. This would allow the sales representative 26 to use the quotation portal 105 to generate both the quotation 50 and the contract 56. For example, in this embodiment, the quotation portal 105 would prompt the sales representative 26 to cause the contract module 54 to retrieve the quotation 50 from the database 24. Based on the quotation 50, the contract module 54 generates the contract 56. The contract 56 preferably is in the form of an electronic document that includes appropriate logos, trademarks, letterhead, and entries identifying the customer 10, the job, and other pertinent information (including any applicable contractual terms). If the sales representative 26 is present with the customer 10, the contract 56 may be displayed on the GUI 30 for review by the customer 10 and the sales representative 26. Alternatively, the contract 56 may also be sent by email by the contract module 54 to the customer 10. A copy of the contract 56 is also saved by the management application 18 in the database 24 and associated with the particular lead.

If the sales representative 26 is present with the customer 10 when the contract 56 is presented to the customer 10, the customer 10 may be invited to sign the contract 56 at that time. For example, the GUI 30 may be configured to allow for the input of a signature (e.g. by touch input) by the customer 10. Alternatively, if the customer receives the contract 56 by email, he or she may be invited to return an executed copy of the contract 56 by email. The executed copy of the contract 56 is transmitted to the server 20 and processed by the management application 18. An executed copy of the contract 56 may be saved by the management application 18 in the database 24 and associated with the particular lead.

If the customer 10 decides not to proceed with the job, he or she may do so by advising the sales representative 26 accordingly. The sales representative 26 can record this through the GUI 30, which is then communicated to the management application 18. The management application 18 records that the quotation 50 was not accepted by the customer 10 and proceeds to terminate the particular lead. A customer survey may be transmitted to the customer 10 by the management application 18 for feedback by the customer 10.

Processing Payment

Once the contract 56 has been executed, the management application 18 uses a payment module 58 to process and receive payment from the customer 10. The payment module 58 generates an invoice 60 that is transmitted to the device 28. The invoice 60 may also be sent by the payment module 58 to the customer 10 by email. The invoice 60 preferably displays the amount of payment from the customer 10 necessary to proceed with the job. This may represent an initial deposit or may represent the full cost of the contract 56, depending on the payment policies configured in the management application 18. A copy of the invoice 60 may be saved by the management application 18 in the database 24 and associated with the particular lead. If the sales representative 26 is present with the customer 10, the sales representative 26 can use the GUI 30 to process payment. The GUI 30 may be configured to display the invoice 60 and to allow for the input by the sales representative 26 of payment information (e.g. credit card information, etc.). Alternatively, the customer 10 may be directed to a website that allows for the customer 10 to enter payment information. The website may also allow the customer 10 to pay using financing options as well.

Once payment has been processed by the payment module 58, the payment module 58 may also credit the sales representative 26 with the appropriate commissions. The management application 18 may also update the status of the lead to reflect that payment has been processed.

Assigning a Project Coordinator

The management application 18 uses a project coordinator assignment module 62 to assign a project coordinator 64 to the lead. The project coordinator 64 is the person responsible for overseeing the overall progress of the job and of resolving any problems that arise.

Each project coordinator 64 is preferably also equipped with one of the portable devices 28. Through the GUI 30, each of the project coordinators 64 is able to connect to the server 20 to access a project coordinator portal 100. The project coordinator portal 100 may be a webpage that allows the project coordinator 64 access to various functionality (described below) through a web browser. Preferably, the project coordinator portal 100 requires the entry of a unique username and password, which when entered by the project coordinator 64, is recognized by the server 20 and causes the server 20 to allow the display of the project coordinator portal 100 on the GUI 30.

The assignment of the particular project coordinator 64 to the job may be based on one or more of the following criteria: (1) the nature of the job; and (2) the location at which the job will be conducted.

Once the project coordinator 64 has been assigned by the project coordinator assignment module 62, the job is updated to record the assignment of the project coordinator 64. Alternatively, the sales representative 26 may also manually assign the project coordinator 64 through the sales representative portal 98.

The project coordinator assignment module 62 may also transmit an email to the customer 10 informing the customer 10 of the assignment and identity of the project coordinator 64. Scheduling of Re-measure Contractor

For certain types of jobs, it may be necessary to arrange for a re-measuring or review of the dimensions and parameters for the job by a re-measure contractor 66. For these types of jobs, the management application 18 will prompt the project coordinator 64 (such as through the project coordinator portal 100) that a re-measure is required. The management application 18 may use a re-measure module 68 to assign the appropriate re-measure contractor 66 to the job. This assignment of the particular re-measure contractor 66 to the job may be based on one or more of the following criteria: (1) the nature of the job; and (2) the location at which the job will be conducted. Alternatively, the project coordinator 64 may manually select the particular re-measure contractor 66. In any event, the job is updated to record the assignment of the re-measure contractor 66 (if necessary).

Each re-measure contractor 66 is preferably also equipped with one of the portable devices 28. Through the GUI 30, each of the re-measure contractors 66 is able to connect to the server 20 to access a re-measure contractor portal 102. The re-measure contractor portal 102 may be a webpage that allows the re measure contractor 66 access to various functionality (described below) through a web browser. Preferably, the re-measure contractor portal 102 requires the entry of a unique username and password, which when entered by the re- measure contractor 66, is recognized by the server 20 and causes the server 20 to allow the display of the re-measure contractor portal 102 on the GUI 30.

Once the re-measure contractor 66 has been assigned, the re-measure module 68 will attempt to arrange an appointment between the re-measure contractor 66 and the customer 10. Each of the re-measure contractors 66 is associated with certain re-measure scheduling data 70 that is accessible by the management application 18. The re measure scheduling data 70 may comprise re-measure schedule information 110 and re-measure preferences information 112.

The re-measure schedule information 1 10 may include the times and locations of already-scheduled re-measure appointments and other times that the re measure contractor 66 is not available (e.g. holidays, work hours, etc.). The re measure schedule information 110 may be stored in the database 24 or it may be stored by a third-party service (e.g. Google Calendar) that the management application 18 is able to access. Preferably, the re-measure contractor 66 is also able to access and edit the re-measure schedule information 110 as needed (e.g. to enter in vacations, other appointments, etc.). If the re-measure schedule information 110 is stored in the database 24, the re-measure contractor 66 may access and edit the re-measure schedule information 1 10 through the re measure contractor portal 102. If the re-measure schedule information 110 is stored in a third-party service, the re-measure contractor 66 may access and edit the re-measure schedule information 110 either through the re-measure contractor portal 102 or through some other suitable third-party application.

The re-measure preferences information 112 comprises information that may be specific for each of the re-measure contractors 66. This may include information such as the standard length of time for a re-measure, length of buffers between re-measure appointments, etc. Preferably, the re-measure contractors 66 is able to edit the re-measure preferences information 112 through the re-measure contractor portal 102.

Based in part on the re-measure scheduling data 70 for the re-measure contractor 66, the re-measure module 68 selects one or more possible times for the re-measure appointment. In one embodiment, when selecting the possible time(s), the re-measure module 68 also takes into account the location of where the re-measure is to be conducted and the locations of the already-scheduled appointments for the re-measure contractor 66.

In one embodiment, the re-measure module 68 is able to access mapping information and predicted traffic data in order to determine the distances between location of where the re-measure is to be conducted and the locations of the already-scheduled appointments. From this, the re-measure module 68 is able to determine predicted driving times among those locations. This will ensure that the re-measure module 68 does not select possible times for re-measure appointments that will be impossible or very difficult for the re-measure contractor 66 to conduct (due to the predicted driving times). Once the re-measure module 68 has selected one or more possible times for the re-measure, this is communicated to the customer 10. This may be done by an email from, or by telephone with, the project coordinator 64.

The customer 10 is able to select one of the possible times. In the case where the one or more possible times are sent by email to the customer 10, the customer 10 can select one of the possible times by clicking on an appropriate embedded link in the email. If none of the possible times are satisfactory to the customer 10, the customer 10 may advise the re-measure module 68 by clicking on another one of the embedded links in the email. In this case, the re-measure module 68 will, based on similar criteria as described above, select additional possible times for the re-measure and send another email to the customer 10.

Once the customer 10 has selected one of the possible times, the re-measure module 68 updates the re-measure schedule information 110 for the re-measure contractor 66 to reflect the new appointment. The information associated with the job (e.g. the name of the customer 10, the location of where the job will be conducted, the nature of the job requested, etc.) is also part of the re-measure schedule information 110. Thereafter, the re-measure contractor 66 will be able to view the new appointment (and his or her other already-scheduled appointments) through the re-measure contractor portal 102. The re-measure module 68 preferably also sends a confirmation email to the customer 10 confirming the re-measure appointment.

The Re-measure Appointment

When the re-measure contractor 66 meets with the customer 10 at the scheduled appointment, the re-measure contractor 66 may enter the customer's name or address using the re-measure contractor portal 102, which communicates the information to the management application 18 on the server 20. In one embodiment, the management application 18 may be able to track the location of the device 28 carried by the re-measure contractor 66 (e.g. using GPS antennae on the device 28) and may deduce which customer 10 is being visited by the re measure contractor 66, followed by a prompt by the re-measure contractor portal 102 requesting confirmation from the re-measure contractor 66 that the appointment is being initiated with the customer 10.

During the re-measure appointment, the re-measure contractor 66 is able to access information and documents related to the job through the re-measure contractor portal 102. For example, the re-measure contractor 66 is able to retrieve and view documents such as the quotation 50 and the contract 56 by requesting that the re-measure module 68 access those documents from the server 20 and display them using the re-measure contractor portal 102.

Through the re-measure contractor portal 102, the re-measure contractor 66 is able to view the information entered by the sales representative 26 with respect to the dimensions and parameters for the job. The re-measure contractor 66 is then able to confirm that the dimensions and parameters for the job are accurate. If they are accurate, the re-measure contractor 66 is able to record this through the re-measure contractor portal 102. This information is preferably stored in the database 24 and associated with the appropriate job.

The re-measure contractor portal 102 is used to compare the dimensions and parameters that are recorded for the installation with templates and according to rules and formulae for the nature of the installation. For example if the contractor records door dimensions as 2 feet wide and 7 feet high, a rule or formula comparison undertaken by the application 18 may determine that the dimensions are not feasible for a human causing the application to prompt the contractor through the portal 102. The application 18 may also interactively prompt the contractor as required to avoid overlooking pertinent factors, such as whether a window frame has rotted. If there are problems or inconsistencies with the dimensions and parameters for the job or there are other issues with the job uncovered by the re-measure contractor 66, the re-measure contractor 66 is able to record these differences or issues using the re-measure contractor portal 102. The re-measure contractor portal 102 may prompt the re-measure contractor 66 to confirm any similarities and/or differences between the information recorded by the sales representative 26 and the re-measure contractor 66.

The re-measure contractor portal 102 may also allow the re-measure contractor 66 to upload any documents and/or photographs, which are then transmitted to the server 20 for storage in the database 24 and associated with the job. Based on the similarities and/or differences recorded by the re-measure contractor 66, the re-measure module 68 makes a determination as to whether the quotation 50 and the contract 56 are still valid. This determination may be based, at least in part, on one or more of the following criteria: (1) whether the amount of material required for the job is still adequate; (2) whether there are structural issues not recorded by the sales representative 26; and (3) whether there are changes to the scope and/or parameters of the job.

Alternatively, the project coordinator 64 may manually review, using the project coordinator portal 100, the similarities and/or differences recorded by the re measure coordinator 66 and provide a determination as to whether the quotation 50 and the contract 56 are still valid.

If the quotation 50 and the contract 56 are determined to be no longer valid, the management application 18 will alert the project coordinator 64. The management application 18 may also alert the sales representative 26, who may need to contact the customer 10 to discuss any possible changes. The management application 18 may cause one or more of the following modules to run again in order to resolve the matter: the sales representative scheduling module 34 (to schedule another appointment with the sales representative 26); the presentation module 40 (to display to the customer 10 any revised options for the job); the catalogue module 42 (to display to the customer 10 the catalogues of vendor products); the quotation module 48 (to generate a revised quotation); the contract module 54 (to generate a revised contract); and/or the payment module 58 (to process any additional payment). Any revised quotation and/or revised contract may also be stored in the database 26 and associated with the job for future retrieval by the management application 18.

Ordering of Materials

If the quotation 50 (or the revised quotation) is ready to proceed, the management application 18 uses an ordering module 76 to facilitate the ordering of the required materials for the job. The management application 18 communicates the quotation 50 (or the revised quotation) to one or more ordering personnel 78, who will place the appropriate order(s) with the third-party vendor servers 44. The quotation 50 (or the revised quotation) preferably contains all of the information required by the ordering personnel 78 to place the orders (i.e. the amounts and identity of the materials required for the job).

Once the ordering personnel 78 has placed the orders, the ordering personnel 78 is able to input to the ordering module 76 the details of the orders, which can then be stored in the database 24. In particular, the ordering personnel 78 is able to input to the ordering module 76 the estimated delivery dates for each of the orders.

If there are any problems with the orders with the third-party vendor servers 44, the ordering personnel 78 can record this into the ordering module 76, which in turn will alert the project coordinator 64. Scheduling of Installation The management application 18 uses an installer scheduling module 80 to arrange for the installation by an installer 82. The installer scheduling module 80 must first assign the appropriate installer 82 to the job. This assignment may be done immediately after the ordering personnel 78 has recorded the details of the orders with the vendors. Alternatively, this assignment may be done closer to the estimated delivery dates for the orders.

The assignment of the particular installer 82 to the job may be based on one or more of the following criteria: (1) the nature of the job; and (2) the location at which the job will be conducted. Alternatively, the project coordinator 64 may manually select the particular installer 82. In any event, the job is updated to record the assignment of the installer 82.

Each installer 82 is preferably also equipped with one of the portable wireless communication-enabled devices 28. Through the GUI 30, each of the installers 82 is able to connect to the server 20 to access an installer portal 104. The installer portal 104 may be a webpage that allows the installer 82 access to various functionality (described below). Preferably, the installer portal 104 requires the entry of a unique username and password, which when entered by the installer 82, is recognized by the server 20 and causes the server 20 to allow the display of the installer portal 104 on the GUI 30. In one embodiment, the installer portal 104 is identical to the re-measure contractor portal 102 such that both the installer 82 and the re-measure contractor 66 are able to use the same portal.

Once the installer 82 has been assigned, the installer scheduling module 80 will attempt to arrange a date for the installation between the installer 80 and the customer 10. Each of the installers 82 is associated with certain installer scheduling data that is accessible by the management application 18. The installer scheduling data may comprise installer schedule information 114 and installer preferences information 1 16. The installer schedule information 114 may include the times and locations of already-scheduled installations and other times that installer 82 is not available (e.g. holidays, work hours, etc.). The installer schedule information 114 may be stored in the database 24 or it may be stored by a third-party service (e.g. Google Calendar) that the management application 18 is able to access Preferably, the installer 82 is also able to access and edit the installer schedule information 114 as needed (e.g. to enter in vacations, other appointments, etc.). If the installer schedule information 114 is stored in the database 24, the installer 82 may access and edit the installer schedule information 114 through the installer portal 104. If the installer schedule information 114 is stored in a third- party service, the installer 82 may access and edit the installer schedule information 114 either through the installer portal 104 or through some other suitable third-party application.

The installer preferences information 116 comprises information that may be specific for each of the installers 82. This may include information such as the standard length of time for an installation, length of buffers between installations, etc. Preferably, the installer 82 is able to edit the installer preferences information 1 16 through the installer portal 104.

Based in part on the installer scheduling data for the installer 82, the installer scheduling module 80 selects one or more possible times for the installation. In one embodiment, when selecting the possible time(s), the installer scheduling module 80 also takes into account the location of where the installation is to be conducted and the locations of the already-scheduled installations for the installer 82.

In one embodiment, the installer scheduling module 80 is able to access mapping information and predicted traffic data in order to determine the distances between location of where the installation is to be conducted and the locations of the already-scheduled installations. From this, the installer scheduling module 80 is able to determine predicted driving times among those locations. This will ensure that the installer scheduling module 80 does not select possible times for installations that will be impossible or very difficult for the installer 82 to conduct (due to the predicted driving times).

Once the installer scheduling module 80 has selected one or more possible times for the installation, this is communicated to the customer 10. This may be done by an email from, or by telephone with, the project coordinator 64.

The customer 10 is able to select one of the possible times. In the case where the one or more possible times are sent by email to the customer 10, the customer 10 can select one of the possible times by clicking on an appropriate embedded link in the email. If none of the possible times are satisfactory to the customer 10, the customer 10 may advise the installer scheduling module 80 by clicking on another one of the embedded links in the email. In this case, the installer scheduling module 80 will, based on similar criteria as described above, select additional possible times for the installation and send another email to the customer 10.

Once the customer 10 has selected one of the possible times, the installer scheduling module 80 updates the installer schedule information 1 14 for the installer 82 to reflect the new installation. The information associated with the job

(e.g. the name of the customer 10, the location of where the job will be conducted, the nature of the job requested, etc.) is also part of the installer schedule information 114. Thereafter, the installer 82 will be able to view the new installation (and his or her other already-scheduled appointments) through the installer portal 104. The installer scheduling module 80 preferably also sends a confirmation email to the customer 10 confirming the installation. The Installation

When the installer 82 meets with the customer 10 at the scheduled appointment, the installer 82 may enter the customer's name or address using the installer portal 104, which communicates the information to the management application 18 on the server 20. In one embodiment, the management application 18 may be able to track the location of the device 28 carried by the installer 82 (e.g. using GPS antennae on the device 28) and may deduce which customer 10 is being visited by the installer 82, followed by a prompt by the installer portal 104 requesting confirmation from the installer 82 that the appointment is being initiated with the customer 10. The management application 18 causes an installation module 90 to be executed. During the installation, the installer 82 is able to access information and documents related to the job through the installer portal 104. For example, the installer 82 is able to retrieve and view documents such as the quotation 50 and the contract 56 by requesting that the installation module 90 access those documents from the server 20 and display them using the installer portal 104. The installer 82 is also able to view any notes or comments (if any) made by the re-measure contractor 66 during the re-measure (if any).

The installer 82 is then able to proceed with performing the job. The installation module 90 may provide prompts to the installer 82 through the installer portal 104 during various stages of the installation. For example, the installation module 90 may prompt the installer 82 to take photographs before and after the installation. Such photographs may be uploaded using the installer portal 104 to the server 20 for storage in the database 24. The installer 82 may also input through the installer portal 104 any notes or comments regarding the installation for transmittal to the installation module 90.

Once the installation has been completed, the installer 82 can communicate this using the installer portal 104 to the installation module 90. The installation module 90 can then update the job to reflect the new status. The installation module 90 will then prompt, through the installer portal 104, the installer 82 to initiate a walkthrough of the job with the customer 10. The installer portal 104 will display on the GUI 30 a checklist that the customer 10 can acknowledge (such as through an electronic signature) that certain elements of the job have been completed.

Preferably, the installation module 90 will also cause the installer portal 104 to display on the GUI 30 a warranty activation document 86. The warranty activation document 86 indicates that the job has been completed to the satisfaction of the customer 10. The installation module 90 will prompt the installer 82 to request that the customer 10 sign (such as through an electronic signature) the warranty activation document 86. The executed copy of the warranty activation document 86 may be transmitted to the installation module 90 from the device 28 and stored in the database 24. Jobsite Inspections

Once the installation has been scheduled, the management application 18 will use an inspection module 92 to assign one or more inspection supervisors 88 to the job. Each of the inspection supervisors 88 is preferably also equipped with one of the portable wireless communication-enabled devices 28. The inspection supervisor 88 is tasked with visiting the sites for each of the jobs and with providing an assessment of the job. The inspection module 92 may provide to the device 28 the name of the customer 10 to which he or she has been assigned, along with the location of the job. This information may be displayed on the GUI 30. The inspection visit may be scheduled using the scheduling facility of the management application 18. When the inspection supervisor 88 arrives at the site of the job, the installer 82 may enter the customer's name or address through the GUI 30, which communicates the information to the inspection module 92 on the server 20. In one embodiment, the inspection module 92 may be able to track the location of the device 28 carried by the inspection supervisor 88 (e.g. using GPS antennae on the device 28) and may deduce which customer 10 is being visited by the inspection supervisor 88, followed by a prompt to the GUI 30 requesting confirmation from the inspection supervisor 88 regarding the identity of the customer 10.

As the inspection supervisor 88 conducts his or her inspection of the location of the job, the GUI 30 may prompt the inspection supervisor 88 to provide certain information or input to the inspection module 90. For example, the GUI 30 may prompt the inspection supervisor 88 to provide photographs of the job and/or an assessment of the state of completion of the job. This information may be transmitted to the inspection module 90 for storage in the database 24. The information transmitted to the inspection module 90 by the inspection supervisor 88 may be later viewed by the project coordinator 64 through the GUI 30 on the device 28 carried by the project coordinator 64. Based on that information, the project coordinator 64 may take any appropriate action necessary. Customer Survey Once the executed copy of the warranty activation document 86 has received by the management application 18, the management application 18 may use the payment module 58 to process any remaining payments required for the job.

In addition, the management application 18 uses a survey module 94 to generate a survey that is transmitted to the customer 10, preferably by email. Alternatively, the survey module 94 may transmit an email to the customer 10 with a hyperlink, comprising an identifier, for accessing the server 20. The identifier is also associated with the survey. When the customer 10 clicks on the hyperlink in the email, the server 20 is able to recognize the identifier and passes it to the survey module 94. The survey module 94 is then able to cause the appropriate survey to be displayed to the customer 10 for completion. The survey may be tailored to the type of job performed by the installer 82 and allows for the customer 10 to provide feedback on various aspects of the job.

Sample Process Flows Referring to Figs. 10A to 10G, a sample process flow for the present invention is depicted. The process begins when the customer 10 expresses interest in the job, such as by attending (500) at the retail store 12, accessing (502) a website maintained by the retail store 12, or telephoning (504) the retail store 12. The initial lead information 14 is received by the retail store 12 and may be communicated (506) to the third-party server 16. The initial lead information 14 is communicated (508) to the management application 18 on the server 20.

The management application 18, using the sales representative assignment module 32 assigns (510) the sales representative 26 to the lead, based on the criteria described above. The sales representative scheduling module 34 will then select (512) possible times for the appointment between the sales representative 26 and the customer 10, based on the criteria described above. The sales representative scheduling module 34 will then send (514) an email to the customer 10 listing the possible times. The customer 10 can then either decide (516) to select one of the proposed times or indicate that none of the proposed times are acceptable. If the customer 10 indicates that none of the proposed times are acceptable, the sales representative scheduling module 34 will select alternate possible times.

If the customer 10 selects one of the possible times, the sales representative scheduling module 34 records (518) the appointment in the calendar 99 associated with the sales representative 26. An email indicating the time of the appointment is also sent (520) to the customer 10. At the agreed-upon time, the sales representative 26 attends (522) at the appointment. The management application 18, through the quotation module 48, prompts the sales representative 26 to enter (524) the required information and parameters for the job. The management application 18 conducts a preliminary verification to ensure that the information and parameters entered are valid. From the information entered by the sales representative 26, the quotation module 48 is able to generate (526) the quotation 50.

The quotation 50 is presented to the customer 10 for acceptance (528). If the quotation 50 is not accepted, the job is cancelled (530). A customer survey is transmitted (532) to the customer 10, and the process ends (534). If the quotation 50 is accepted, the contract module 54 generates (536) the contract 56. The contract 56 is presented to the customer 10 for execution (538). Once executed, the payment module 58 processes and receives (540) any necessary payment from the customer 10. Any commissions payable to the sales representative 26 are released (542) at this time. The project coordinator assignment module 62 assigns (544) the project coordinator 64 to the job. Preferably, an email is sent (546) to the customer 10 advising the customer 10 of the identity of the project coordinator 64.

Depending on the type of job ordered, the management application 18 determines (548) whether a re-measure is required. If a re-measure is required, the re-measure module 68 assigns (550) the re-measure contractor 66 that will conduct the re-measure. The re-measure module 68 selects (552) possible times for the re-measure, based on the criteria described above. The re measure module 68 will then send (554) an email to the customer 10 listing the possible times. The customer 10 can then either decide (556) to select one of the proposed times or indicate that none of the proposed times are acceptable. If the customer 10 indicates that none of the proposed times are acceptable, the re-measure module 68 will select alternate possible times.

If the customer 10 selects one of the possible times, the re-measure module 68 records (558) the appointment in the calendar 99 associated with the re-measure contractor 66. An email indicating the time of the re-measure is also sent (560) to the customer 10.

At the agreed-upon time, the re-measure contractor 66 attends (562) at the re measure. The management application 18, through the re-measure module 68 prompts the re-measure contractor 66 to record (564) the necessary re-measure information and parameters for the job. The management application 18 may also conduct a preliminary verification to ensure that the information and parameters entered are valid.

Based on the information entered by the re-measure contractor 66, the management application 18 determines (566) whether there are sufficient discrepancies between the information recorded by the sales representative 26 and the information recorded by the re-measure contractor 66 to generate a warning. If there are sufficient discrepancies, the re-measure module 68 alerts (568) the project coordinator 64.

The re-measure module 68 may also determine (570) whether the quotation 50 is still valid. If the quotation 50 is no longer valid, the re-measure module 68 will prompt (572) the sales representative 26 to follow-up. The sales representative 26, after consulting with the customer 10, will indicate (574) whether a change order is required. If a change order is required, the management application 18 will prompt the sales representative 26 to use (576) the quotation module 48 to input any revised information or parameters for the job. The quotation module 48 is able to generate (578) the revised quotation for presentation (580) to the customer 10.

If the customer 10 does not accept the revised quotation, the job is cancelled (582). A customer survey is transmitted (584) to the customer 10, and the process ends (586). If the revised quotation is accepted, the contract module 54 generates (588) the revised contract. The revised contract is presented to the customer 10 for execution (590).

If a re-measure is not required or if there are not sufficient discrepancies between the information recorded by the sales representative 26 and the information recorded by the re-measure contractor 66, the required orders are generated (592). The required orders are placed (594) with the third-party vendors 44. The estimated delivery dates for the orders are obtained (596) and recorded (598) by the ordering module 76.

The management application 18 also uses the installer scheduling module 80 to assign (600) the installer 82 for the job, based on criteria described above. Once assigned, the installer scheduling module 80 selects (602) possible times for the installation, based on the criteria described above. The installer scheduling module 80 will then send (604) an email to the customer 10 listing the possible times. The customer 10 can then either decide (606) to select one of the proposed times or indicate that none of the proposed times are acceptable. If the customer 10 indicates that none of the proposed times are acceptable, the installer scheduling module 80 will select alternate possible times.

If the customer 10 selects one of the possible times, the installer scheduling module 80 records (608) the appointment in the calendar 99 associated with the installer 82. An email indicating the time of the installation is also sent (610) to the customer 10.

From time to time, the management application 18 will check (612) to see whether the estimated delivery dates recorded by the ordering module 76 are still accurate. If there is a delay, the management application 18 will alert (614) the project coordinator 64. In addition, depending on the length of the delay, the management application 18 makes a determination (616) as to whether the installation must be rescheduled. If the installation needs to be rescheduled, the installer scheduling module 80 repeats the previous steps in scheduling the installation.

If there is no delay in the delivery, or if the delay does not warrant rescheduling, the management application 18 tracks the delivery (618) of the products. At a pre-determ ined interval before the installation, a reminder email is transmitted (620) to the customer 10 reminding him or her of the scheduled installation.

At the agreed-upon time, the installer 82 performs (622) the installation. In addition, the inspection module 92 will assign (624) the one or more inspection supervisors 88 to the job. The inspection supervisor 88 conducts (626) inspections of the job and prepares (628) an inspection report. If the inspection report notes problems (630) with the job, the management application 18 alerts (632) the project coordinator 64. The management application 18 also prompts (634) the project coordinator 64 to follow-up with the installer 82 to see if corrective action is required.

If there are no problems noted with the job or if the installer 82 has taken the appropriate corrective action, the warranty activation document 86 is generated (636) by the installation module 90 for execution by the customer 10. The installation module 90 will ensure (638) that an executed copy of the warranty activation document 86 is recorded. If an executed copy of the warranty activation document 86 is not recorded, the installation module 90 alerts (640) the project coordinator 64. The installation module 90 also prompts (642) the project coordinator 64 to follow-up with the installer 82 to ensure that an executed copy of the warranty activation document 86 is recorded.

Once the executed copy of the warranty activation document 86 is recorded, the payment module 58 processes (644) any required payment from the customer 10. The survey module 94 transmits (646) the survey to the customer 10. Based on the results from the survey, the survey module 94 is able to determine (648) whether the customer 10 was satisfied with the job. If the customer 10 was determined to not have been satisfied, the survey module 94 will prompt (650) the project coordinator 64 to follow-up with the customer 10. The process then ends (652).

Referring to Fig. 10A-10G, a process flow implemented by another embodiment of the invention is illustrated.

The management application 18 residing at the server 20 receives (501) lead information, and uses it to assign to a sales representative 26 the potential lead and also immediately schedules an appointment with the customer 10 in accordance with the criteria described earlier. Using the sales representative portal 98, the management application 18 communicates (700) the potential lead to the device 28 associated with the sales representative 26. After receiving (702) the lead, the sales representative 26 attends (704) at the customer 10. The sales representative 26 accesses a record of the customer lead. The sales representative portal 98 may include the display of an appropriate icon that may be selected by the sales representative 26 to effectively report (706) to the management application 18 the initiation of the appointment. The sales representative portal 98 may prompt the sales representative 26 to enter the name or address of the customer 10. This causes the device 28 to communicate (708) with the server 20 to request the establishment of a session. The session is established enabling the exchange of data and the tracking (710) by the management 18 of the progress and recording such progress in the database 24.

The establishment of the session between the server 20 and the device 28 includes information identifying the customer 10, which in turn allows the management application 18 to extract further particulars of the customer 10, as to the nature of the project and identifying the party that generated the lead and on whose behalf (the“principal”) the customer service call may be conducted. For example, the input by the sales representative 26 of the name“Joaquim Romano” or alternatively simply an address, might be expanded (712) by the management application 18 as: Customer Joaquim Romano

555 Main Street

Thrashing, Minnesota

Project Window replacement

Lead principal Big Box Retailer A (St. Paul Store 222) Date January 1 , 2020

The information as to the lead principal is significant as it may govern the protocols to be followed in relation to how the quotation 50 or the contract 56 are created, their format, the prices, the terms, any expression of guarantees, and their other content. Such protocols may in fact be dictated by the principal for whom the service call is ultimately being conducted.

The expanded lead information may be communicated (714) to the device 28 for verification and reference purposes by the sales representative 26, in the course of which the currency of the lead information may also be verified (716). That functionality may conveniently be incorporated into the presentation module 40.

Similarly, the server 20 may poll (718) the device 28 to determine the currency of the product catalogues and of the information on the presentation module 40 on the device 28. The device 28 responds (720) by reporting the currency of the information. In the event that the information on the device 28 is not current, current information is uploaded (722). The progress of the session and of the lead continue to be tracked (724) by the management application 18. Once updated (if needed) the presentation module 40 runs (726) on the device 28. The presentation module 40, or alternatively, the catalogue module 42 may prompt (728) the sales representative 26 to narrow the specification of the type of product to be installed. The catalogue module 42 is then run (730) to allow the customer 10 to select (732) preferred products, for example by type, by grade, by colour, etc. from catalogue information. Alternatively, the catalogue module 40 may be directed to request (734) remote access to a catalogue maintained by the vendor server 44. In such case, the server 20 acts as a conduit (736) to communicate with the vendor server 44, typically over the network. As discussed above, the server 20 runs any required software and operating system to facilitate interaction with the vendor server 44 and to avoid the need to have such software and operating systems loaded onto the device 28. In a further alternative, the catalogue module 42 requests (742) access to the vendor catalogues that are stored in the database 24. These may require the server 20 to run (744) vendor-specified software or operating systems that are compatible with the vendor catalogues. In such cases, the server 20 returns (746) the information to the device 28 for display (747) thereon.

The customer 10 may select using the device 28 specific products the installation of which are being contemplated. Such products may be tagged (748) on the device 28. The tagged products are communicated (750) to the server 20, allowing the latter to determine the types of further specifications needed to plan the installation and to provide a quote. For example, the selection of a particular brand of window may still require a specification of the dimensions, type of frame, treatments, and colours. The determination (752) of what additional specifications are need in order to move forward may be derived from the proprietary vendor software engine run (754) from the server 20, or alternatively by the server 20 remotely accessing (756) the vendor server 44. The device 28 is then queried (758) as to the additional specifications that are needed. The sales representative 26 consults with the customer 10 and enters (760) the specifications on the device 28.

The quotation module 48 may then be run (e.g. through the sales representative portal 98). The sales representative 26 may request (764) the generation and transmission of the quotation 50 from the server 20.

The quotation module 48 may derive a quotation by running (766) proprietary vendor quotation software that has been loaded onto the server 20 in conjunction with accessing static vendor pricing information retained in the database 24, or by remotely accessing (768) the vendor server 44 where the quotation 50 is generated directly. Such interaction allows the server 20 to generate a product price quote. Conceivably, the proprietary vendor quotation software or the remote vendor quotation system are configured to include installation fees along with product pricing. In other cases, such systems deliver only a quote for product pricing, without installation or service fees.

The quotation module 48 may run natively on the server 20. The quotation module 48 also draws (772) on various parameters, discounts that may apply, and policies established by the principal in relation to the filling of installation orders and quotes.

Once generated, the quotation 50 is formatted according to the system’s, the vendor’s or the principal’s policies and is delivered (774) to the device 28 where it is displayed (776). The quotation 50 is also saved into the database 24. The device 28 may prompt the sales representative 26 to offer to the customer 10 to deliver (778) a copy of the quotation electronically to the customer 10 (e.g. by email). Alternatively, the quotation module 48 may automatically deliver an electronic copy of the quotation 50 to the customer 10. Upon approval (780) by the customer 10 of the quotation 50, the sales representative 26 runs (782) the payment module 58 through the sales representative portal 98. The payment module 58 communicates (784) a request to the server 20 which runs the payment module 58.

The payment module 58 prompts the sales representative 26 for an interaction with a customer payment medium (e.g. a credit card or other personal payment device). The customer payment medium is inserted into or wirelessly connects to the device media interface (786). The payment module 58 validates and authorizes (788) the payment transaction, which may involve an interaction (790) with a credit issuer or other third-party payment provider. Approval is then communicated (792) to the payment module 58.

The contract module 54 is then requested to be run (794), such as through the sales representative portal 98. Additional information as required is secured and filled using the sales representative portal 98 and is delivered (796) to the server 20 which runs (798) the contract module 54. The latter retrieves (800) information from the database 24 (which may include customer name, address and contact information, product specifications, and the quotation 50). The contract module 54 then draws (802) on formatting guidelines for the contract 56 and generates (804) a form of contract.

The contract 56 is delivered (806) to the device 28 and is stored (810) in the database 24. The customer 10 is then invited to execute (808) the contract 56, such as through the GUI 30. A copy of the executed version of the contract 56 is delivered (812) to the server 20, which stores (814) the copy in the database 24. The management application 18 continues to track the progress of the job, noting that a milestone of contract signature has been achieved by the sales representative 26.

Upon determination that the contract 56 has been executed, the server 20 causes the release (816) of any payment request corresponding to the earlier payment authorization.

In another embodiment, the payment module 58 may be run after the contract module 54 has been completed.

In the event that no re-measure is required, the products required for the installation may be ordered (818). This may result in the triggering (820) of the installer scheduling module 80, which retrieves (822) available installation dates and times corresponding to the installer 82 assigned to the job and selects one or more possible times for the installation. The installer scheduling module 80 delivers the possible times to the customer 10, who may receive (824) these electronically (e.g. through an e-mail). The customer 10 selects (826) one of the possible times, and the installer scheduling module 80 records (828) the time as having been set and updates (830) the calendar 99 accordingly. The time is then confirmed (832) to the customer 10.

The installer 82 completes (834) the installation. The installer portal 104 prompts (836) the installer to have the customer 10 execute the warranty activation document 86. A copy of the executed version of the warranty activation document 86 is delivered to the server 20, which stores the copy in the database 24. The management application 18 can then record the job as being completed (838).

The invention provides a means of closely tracking and controlling the job process from end to end, thereby expediting the job and minimizing ineffeciencies.

It will be appreciated by those skilled in the art that the preferred and alternative embodiments have been described in some detail but that certain modifications may be practiced without departing from the principles of the invention.