A portion of the disclosure of this patent document contains or may contain material which is subject to copyright protection. The copyright owner has no objection to the photocopy reproduction by anyone of the entire patent document in exactly the form it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyrights whatsoever.
Often, web based applications need to send documents to users. Typically, documents are sent via email and/or web download. Occasionally, web based application servers cause fax transmissions to occur. However, these server-initiated fax transmissions suffer from certain drawbacks.
First, these fax transmissions appear to come from a central source (i.e., a fax number associated with the application server). However, if the server is providing a web based application used by multiple different companies, each of these companies may want their fax transmissions to appear to come from their company with their specific set of assigned phone numbers (e.g., the fax transmissions may be going to customers of the company).
Second, transmission charges associated with web based fax transmission are incurred by the company that owns the application server. This then creates additional overhead for the application server company and/or a billing burden for the application server company trying to recover these fax transmission fees.
In addition, many companies use business software systems, such as customer relationship management (CRM) software systems. The companies separately use other software systems, such as financial software systems. They use their business software systems to periodically generate reports, which include specific types of information. To effectively run their businesses, these companies have to periodically update their separate software systems with the information from these reports.
The reports are not importable into the separate software systems. As a result, these companies must perform manual steps to input information into their separate software systems. This results in a labor burden. In addition, the manual steps have risks of human error. Also, the lack of automation has the risk that updates might not occur regularly in accordance with an optimal schedule.
Therefore, there is a need to overcome, or otherwise lessen the effects of, these disadvantages and shortcomings.
The present disclosure provides methods and apparatus for delivering documents via fax transmission that overcome these problems. A web based application server transmits a document to a distribution management system. The distribution management system then translates the document if necessary (e.g., from a proprietary format to a PDF and a fax) and sends the translated document to one or more destinations such as email inboxes, printers, and fax machines.
For fax deliveries, the distribution management system sends the document to a particular client device that is associated with the fax destination. For example, the client device that actually transmits the fax may reside at a company, and the fax machine may be at a customer of that company. In this manner, fax transmissions appear to come from the correct source (not the distribution management system), and transmission charges associated with the fax are incurred by the appropriate company (not the company associated with the distribution management system).
The business management system or system, in one embodiment, enables users to generate and manage customer accounts, vendors, invoices, transactions, records, data and activities related to a business, including, but not limited to, an insurance agency management business. The system, in one embodiment, incorporates customer relationship management (CRM) functionality and structure.
In one embodiment, the system includes an output generator. The output generator produces business data files in a format which is importable into a separate, software-based system of the user. Depending upon the embodiment, the business data files can include financial data files, and the separate system can include a software-based financial management system which incorporates an accounting system. The outcome generator is configurable to automatically feed the business data files to a network access device accessible to the user. The user can retrieve the data files from the device and import them into the separate system.
In one embodiment, the business management system includes a data storage device storage device configured to store different categories of business data related to a business. The data storage device stores a plurality of data fields related to the customers, vendors and invoicing of the business. The data storage device is accessible, over a network, by a processor and one or more network access devices or electronic devices. The electronic devices each have at least one data storage destination, or they are each associated with at least one data storage destination.
The system has a first connection instruction set stored within the data storage device. The first connection instruction set is installable onto each of the electronic devices. The system has a second connection instruction set stored within the data storage device. The second connection instruction set is executable by the processor to establish and maintain a connection with each of the electronic devices without requiring input from users.
The system has a plurality of instructions stored within the data storage device. The instructions are executable by the processor to: (a) receive a plurality of settings and (b) send an output data file to the data storage destinations in accordance with the settings. The output data file has a format which is importable into a separate software-based system, including, but not limited to, an electronic financial management system.
In one embodiment, the settings include:
In one embodiment, the schedule setting specifies a recurring frequency for the processor to send the output data files to the data storage destinations. In one embodiment, the output data file has a plain text format. The plain text format is associated with a plurality of other data fields separated by breaks. In one embodiment, the output data file includes a Comma Separated Value (CSV) data file. In one embodiment, the output data file includes General Ledger (GL) accounting data.
In one embodiment, the instructions are executable by the processor to: (a) receive a selection of at least one of the categories of business data; (b) store a data file template based on the selection; and (c) generate the output data file according to the data file template.
In one embodiment, the instructions are executable by the processor to: (a) receive a selection of at least one of a plurality of file descriptor categories; (b) generate file descriptor data corresponding to the selection; and (c) send the file descriptor data in association with the output data file.
In one embodiment the business data includes different categories of financial data, the output data file includes General Ledger data, the output setting specifies at least one of the categories of the financial data to be included within the output data file, and the separate system is a financial management system. The instructions are executable by the processor to send the output data file to the data storage destination in accordance with the settings. The output data file has a format which is importable into a software-based financial management system.
Additional features and advantages of the present invention are described in, and will be apparent from, the following Brief Description of the Figures and Detailed Description.
Business Management System
The present system is most readily realized in a network communications system. A high level block diagram of an exemplary network communications system 100 is illustrated in
A detailed block diagram of an example computing device 102, 106, 108 is illustrated in
The memory 208 preferably includes volatile memory and non-volatile memory. Preferably, the memory 208 and/or another storage device 218 stores software instructions 222 that interact with the other devices in the system 100 as described herein. These software instructions 222 may be executed by the processor 204 in any suitable manner. The memory 208 and/or another storage device 218 may also store one or more data structures, digital data indicative of documents, files, programs, web pages, etc. retrieved from another computing device 102,106, 108 and/or loaded via an input device 214.
The example memory device 208 stores software instructions 222, screen files 224, and documents 226 for use by the system as described in detail below. It will be appreciated that many other data fields and records may be stored in the memory device 208 to facilitate implementation of the methods and apparatus disclosed herein. In addition, it will be appreciated that any type of suitable data structure (e.g., a flat file data structure, a relational database, a tree data structure, etc.) may be used to facilitate implementation of the methods and apparatus disclosed herein.
The interface circuit 212 may be implemented using any suitable interface standard, such as an Ethernet interface and/or a Universal Serial Bus (USB) interface. One or more input devices 214 may be connected to the interface circuit 212 for entering data and commands into the main unit 202. For example, the input device 214 may be a keyboard, mouse, touch screen, track pad, track ball, isopoint, and/or a voice recognition system.
One or more displays, speakers, and/or other output devices 216 may also be connected to the main unit 202 via the interface circuit 212. The display may be a cathode ray tube (CRTs), liquid crystal displays (LCDs), or any other type of display. The display generates visual displays of data generated during operation of the computing device 102, 106, 108. For example, the display may be used to display screen files received from the application server 106. The visual displays may include prompts for human input, run time statistics, calculated values, data, etc.
One or more storage devices 218 may also be connected to the main unit 202 via the interface circuit 212. For example, a hard drive, CD drive, DVD drive, flash memory drive, and/or other storage devices may be connected to the main unit 202. The storage devices 218 may store any type of data used by the computing device 102, 106, 108.
Each computing device 102, 106, 108 may also exchange data with other computing devices 102, 106, 108 and/or other network devices 220 via a connection to the communication channel(s) 116. The communication channel(s) 116 may be any type of network connection, such as an Ethernet connection, WiFi, WiMax, digital subscriber line (DSL), telephone line, coaxial cable, etc. Users 118 of the system 100 may be required to register with the application server 106. In such an instance, each 118 user may choose a user identifier (e.g., e-mail address) and a password which may be required for the activation of services. The user identifier and password may be passed across the communication channel(s) 116 using encryption built into the user's browser, software application, or computing device 102, 106, 108. Alternatively, the user identifier and/or password may be assigned by the application server 106.
A flowchart of an example process 300 for delivering documents is presented in
In general, the process 300 causes an application server 106 to transmit a document to the distribution management system 112. The distribution management system 112 then translates the document if necessary. For example, the distribution management system 112 may translate the document to and/or from a proprietary format, a spreadsheet format, a delimited format such as a comma separated values (CSV) format, a word processing format, a PDF format, and/or a fax format). The distribution management system 112 then sends the document and/or the translated document to one or more destinations such as email inboxes, printers, and fax machines 120. For fax deliveries, the distribution management system 112 sends the document to a particular client device 102 that is associated with the fax destination. For example, the client device 102 that actually transmits the fax may reside at a company, and the fax machine 120 may be at a customer of that company. In this manner, fax transmissions appear to come from the correct source (not the distribution management system 112), and transmission charges associated with the fax are incurred by the appropriate company (not the company associated with the distribution management system 112).
More specifically, the application server 106 begins the example process 300 by dynamically delivering an application to a plurality of client devices (block 302). Preferably, the application server 106 may transmit data indicative of screen displays to a framework application running on the client device 102. For example, the application server 106 may transmit data indicative of screen displays for an insurance agency application to the client device 102. In response to users 118 at the client devices 102, the application server 106 receives events and data from the framework applications running on the client devices 102. For example, a user 118 may click a mouse on a drop down menu at the client device 102. As a result, the client device 102 sends an event to the application server 106. The application server 106 then responds to the client device 102 with data to populate the drop down menu. If the user 118 selects an item from the drop down menu, the client device 102 sends data indicative that selection to the application server 106. In this back-and-forth manner, the business logic of one or more applications is delivered from the application server 106 to the client devices 102.
When executing these applications, the application server 106 may retrieve data from a local database 107 and/or a remote database 110 via a database server 108. For example, the application server 106 may retrieve the data to populate the drop down menu in the example above. In another example, the application server 106 may store data entered by a user 118 in a database 107, 110 for later retrieval and display at a client device 102.
Often, the application server 106 may need to send one or more documents to a plurality of users 118 (block 304). For example, the application server 106 may need to send a monthly report to several different users 188. Next, the distribution management system 112 determines one or more delivery modes for the document by looking up previously stored user preferences (block 306) and looks up any necessary routing information (block 308).
Some users 118 may want to have the report delivered directly to their local printer 228. Accordingly, the distribution management system 112 sends the print job directly to the associated client device 102 (block 310). The distribution management system 112 is given access to each user's printers via the framework application running on that user's client device 102.
Some users 118 may want to have the report delivered via email and/or to a fax machine 120. Preferably, one distribution management system 112 is used by multiple companies (e.g., hundreds). For example, the application server 106 may be serving a software application used by ABC Co. and XYZ Co. Each of these companies may need to send documents to their customers. For example, ABC Co. may need to send a monthly report to ABC Co. Customer, and XYZ Co. may need to send a monthly report to XYZ Co. Customer.
Preferably, communications from the distribution management system 112 to a customer should appear to come from the company associated with that customer, not from the distribution management system 112. Accordingly, emails are sent to directly to users 118 from the distribution management system 112 via the network 116 using an “from” email address indicative of the company associated with the customer (block 312). However, to prevent the email from being captured by a spam filter, the email address is not spoofed. For example, the sender's email address may be documents_for_abc@dms.com for documents that need to appear to come from ABC Co. and documents_for_xyz@dms.com for documents that need to appear to come from XYZ Co. In other words, the example email messages are actually being sent from the “dms.com” domain. However, the full email address of the sender changes depending on the destination.
In addition, the “reply” email address changes depending on the destination. However, in this case, spam filters are generally not an issue. Therefore, the reply email address is set to the actual companies email address. For example, the reply email address may be user@abc.com for documents that need to appear to come from ABC Co. and user@xyz.com for documents that need to appear to come from XYZ Co.
In order to make faxes of documents appear to come from the company associated with a customer, the distribution management system 112 routes faxes through a fax card 122 in a client device 102 of the company (blocks 314 and 316). The distribution management system 112 is given access to each user's fax card (if installed) via the framework application running on that user's client device 102. Preferably, the framework application is downloaded from the application server 106 and installed on the client device 102.
An example of a complete fax communication path 124 is illustrated in
In summary, persons of ordinary skill in the art will readily appreciate that methods and apparatus for delivering documents have been provided. The foregoing description has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the exemplary embodiments disclosed. Many modifications and variations are possible in light of the above teachings. It is intended that the scope of the invention be limited not by this detailed description of examples, but rather by the claims appended hereto.
In one embodiment illustrated in
In the example illustrated in
In the example illustrated in
In one embodiment illustrated in
The output generator 428, in one embodiment, includes the device-side instruction set or device-side module 430 and the system-side instruction set or system-side module 432. The data storage device of the system 400 stores a downloadable copy of the device-side module 430. The device-side module 430, described in detail below, is installable onto one or more of the network access devices 410. Using client-server terminology, the devices 410 have the roles of clients, and the device-side module 430 is installable on the client-side. The system-side module 432, described in detail below, resides in the data storage device of the system 400. Using client-server terminology, the processor 408 has the role of the server, and the system-side module 432 is installable on the server-side.
In one embodiment, the device-side module 430 includes a data interface program or channel computer program loadable into the memory or data storage device of the network access device 410. The system-side module 432, residing within the system 400, includes a counterpart channel computer program executable by the processor 408. When the device-side module 430 is installed on a device 410, it is executable to interact with the system-side module 432. The interaction enables the system processor 408 to feed output files to the device 410 without requiring a login or other action from the user.
In one embodiment, the communication or connection modules 430 and 432 are associated with a channel or data port. Based on the instructions of the modules 430 and 432, the system processor 408 establishes and maintains a connection with the device 410. The system processor 408 sends, pushes or otherwise feeds the output files through the data port to the device 410.
In one embodiment, the network access device 410 has a Microsoft Windows® operating system. The operating system implements a set of communication protocols, such as the TCP/IP protocol suite on which the Internet runs, which includes the Transmission Control Protocol (TCP) and the Internet Protocol (IP). The system processor 408, as directed by connection modules 430 and 432, functions with the TCP/IP stack of the device 410 and the system-side connection module 432 to maintain or persist a connection with the device 410. With each output from the generator 428, the system processor 408 sends output files to the device 410 through a data port determined by the TCP/IP stack implementation on the device 410.
In one embodiment illustrated in
In this embodiment, the system 400 is operable by the system processor 408 to generate a plurality of graphical user interfaces accessible by one or more electronic devices 410 used by insurance agents. The example home interface 434, shown in
In one embodiment, to enable or configure the output generator 428, the user takes the steps described as follows:
In the Client-Install Step 1 of Table A, referring to
In the Registration Step 2 of Table A, the user may select the configure module 446 illustrated in
As illustrated in
In the example illustrated, the user registered two Internet Protocol (IP) addresses for two registered devices. In this example, the devices are servers of the user's insurance agency management firm. One server is located at the firm's West Coast data center, and the other server is located at the firm's East Coast data center. The first IP address is 172.16.39.18, and the second IP address is 192.168.59.1.
The system 400 displays an associate interface 470, illustrated in
In the Path Step 3 of Table A, continuing with the example illustrated in
Referring to
The user uses the links 490 to enter one or more network paths or data storage paths. In this example, the user entered the following network paths:
(a) \\fs-California\SomeFolder\
(b) \\fs-Iowa\SomeFolder\
(c) \\fs-NewYork\SomeFolder\
These paths specify data storage destinations within data recording mediums. The data recording mediums are within, or associated with, the registered devices 410. In one embodiment, the data recording mediums are hard drives, memory devices or other data storage devices of the registered devices 410. In such embodiment, the paths specify locations or destinations within the directories or folders of the registered devices 410.
The interface 482 also enables the user to associate each of the paths with one of the registered devices 410. In the example illustrated, the user elected to associate the \\fs-Iowa\SomeFolder\ path with the East Coast server. The same process would apply for associating paths with the West Coast server. After the user has specified the desired network paths for the registered devices 410, the user has completed the process of enabling or configuring the output generator 428 for use.
In the example described, the regional configuration for the East and West Coast data centers conforms to the architecture illustrated in
The architecture illustrated in
Referring to
In one embodiment illustrated in
In other circumstances, the agency management firm has an additional software-based system other than, or in addition to, a financial management system. Depending upon the type of the additional software-based system, the additional system may include or incorporate an online or offline, software-based system. The output generator 428 is operable to feed tabular business data files to the registered devices. The user can then import those tabular data files into the additional software system.
In one example, a national insurance agency management firm may have a main office and multiple satellite offices. The main office may have a main financial software system 494 with accounting functionality. Each satellite office uses the insurance agency management system 400. The main office may require the satellite offices to submit their financial data to the main office once per month or once per quarter. The output generator 428 enables the satellite offices to produce their financial data in a tabular format which is directly importable into the main financial software system 494.
Depending upon the embodiment, the financial data can include accounting information, accounting records or other data related to insurance policy management. In the embodiment illustrated in
In one embodiment, the system-side module 432 of the output generator 428 includes a plurality of computer-readable instructions related to managing the GL data files output by the output generator 428. The system processor 408, executing such instructions, generates a plurality of graphical user interfaces which enable the user to manage the production and output of these GL data files. In one embodiment illustrated in
In one embodiment, the system 400 stores one or more customizable, selectable data file templates. The user may select the Add symbol 502 to select a customizable, pre-stored data file template. The selectable edit symbol 504 enables the user to customize the template. For customization purposes, the data file mapping interface 496 enables the user to customize several categories of file data, including, but not limited to: (i) the GL Account Balance categories set forth in Table B below; (ii) the Totals categories set forth in Table C below; and (iii) the File descriptor categories set forth in Table D below. The GL Account Balance and Totals categories provide a plurality of data fields. In one embodiment, each such category corresponds to a different column in the tabular output file. The following tables B-D provide a list of the categories of data which the user can add to, or exclude from, the customizable template:
Using the data file mapping interface 496 and the customizable categories set forth in Tables B-D above, the user can define different data file templates, for example, templates X, Y and Z. For each template, the mapping interface 496 enables the user to enter a data output request or batch processing request. As a batch process, the system 400 feeds the output data files to the registered devices without requiring input or action from the user. The mapping interface 496 enables the user to specify a one-time data feed to the registered devices or automated, recurring data feeds to the registered devices. In one embodiment, for each template, the mapping interface 496 enables the user to specify the following batch settings for generating GL data files:
In one embodiment, the system 400 performs a General Ledger Consolidation (GLC) each time the output generator 428 outputs a GL data file. If, for example, the user sets the generator 428 to generate GL data files on a weekly basis, the system 400 would perform a GLC each week. In this embodiment, the system's most recently generated data file would include a comprehensive set of GL data, incorporating the data of the previous data file as well as any data changes or new data arising after the previous data file.
In one example, the user customizes a template with the following data categories for the column headings: Batch #, GL Account #, Agency, Branch, Department, Profit Center, Debit, Credit and GL Account Group Code. The output generator 428 produces a CSV data file populated with the financial GL data for such categories. The output generator 428 feeds that CSV file to a folder of a registered device. The user opens the folder, then opens the CSV file, and then saves a version of that file in Microsoft® Excel spreadsheet format as illustrated in
It should be appreciated than any suitable software program can be run to view or edit the saved CSV data files. The format of the data file generated by the output generator 428 is tabular or otherwise configured for arrangement in rows and columns. In one embodiment, the data file has a plain text form including a plurality of data fields separated by breaks. The breaks can include commas or other symbols or suitable data dividers. In the plain text form, the user can open the data file and edit the data in the data file through a suitable editor or word processor, whether stored locally on the electronic device's hard drive or accessible over a network, including, but not limited to, Microsoft® Excel, online Google® Sheets or any suitable CSV editor.
In one embodiment, the system 400 has a user control or permission module. The permission module provides different privileges or rights associated with different users or user categories. The rights determine whether a user can create, set or change any of the system's configurable options described above. For example, an administrator user may have all available rights, including the right to register new network access devices; the right to remove devices from registration; the right to add, edit or delete data storage paths for devices; the right to add, edit or delete the data file templates for the output files; the right to add, edit or delete the batch processing settings for the output files; and the right to add, edit or cancel the rights of other users. A user other than the administrator may have a limited version of these rights based on the decisions made by the administrator.
Methods
In one embodiment, the system 400 is implemented as a method. The method includes some or all of the functionality, steps and logic of the system 400. In one embodiment, the method includes the following steps:
Network
Referring to
Hardware
Referring to
In one embodiment, each of the one or more servers is a general purpose computer. In one embodiment, the one or more servers function to deliver webpages at the request of clients, such as web browsers, using the Hyper-Text Transfer Protocol (HTTP). In performing this function, the one or more servers deliver Hyper-Text Markup Language (HTML) documents and any additional content which may be included, or coupled to, such documents, including, but not limited, to images, style sheets and scripts.
The network access devices 410 can include any device operable to access the network 406, including, but not limited to, a server, personal computer (PC) (including, but not limited to, a desktop PC, a laptop or a tablet), smart television, Internet-enabled TV, person digital assistant, smartphone, cellular phone or mobile communication device. In one embodiment, each network access device 410 has at least one input device (including, but not limited to, a touchscreen, a keyboard, a microphone, a sound sensor or a speech recognition device) and at least one output device (including, but not limited to, a speaker, a display screen, a monitor or an LCD).
Software
In one embodiment, the servers and network access devices each include a suitable operating system. Depending upon the embodiment, the operating system can include Windows, Mac, OS X, Linux, Unix, Solaris or another suitable computer hardware and software management system. In another embodiment, one or more of the network access devices includes a mobile operating system, including, but not limited to, Android, BlackBerry, iOS, Windows Phone and Windows RT.
In one embodiment, each of the network access devices has a browser operable by their processors to retrieve, present and traverse the following: (a) information resources on the one or more servers of the system 400; and (b) information resources on the World Wide Web portion of the Internet.
In one embodiment, the computer-readable instructions, algorithms and logic of the system 400 (including the computer-readable instructions and logic) are implemented with any suitable programming or scripting language, including, but not limited to, C, C++, Java, COBOL, assembler, PERL, Visual Basic, SQL Stored Procedures or Extensible Markup Language (XML). The output generator 428 of the system 400 can be implemented with any suitable combination of data structures, objects, processes, routines or other programming elements.
In one embodiment, the data storage device of the system 400 holds or stores web-related data and files, including, but not limited, to HTML documents, image files, Java applets, JavaScript, Active Server Pages (ASP), Common Gateway Interface scripts (CGI), XML, dynamic HTML, Cascading Style Sheets (CSS), helper applications and plug-ins.
In one embodiment, the graphical interfaces of the system 400 are Graphical User Interfaces (GUIs) structured based on a suitable programming language. The GUIs include, in one embodiment, windows, pull-down menus, buttons, scroll bars, iconic images, wizards, the mouse symbol or pointer, and other suitable graphical elements. In one embodiment, the GUIs incorporate multimedia, including, but not limited to, sound, voice, motion video and virtual reality interfaces.
In an alternative embodiment, the processor of each network accesses device 410 is programmed to extract or parse data from an interface of the system 400. In one embodiment, the system 400 includes an extract Application Programming Interfaces (API) which is downloadable to the network access devices 410. The API facilitates data communication between the network access devices 410 and the system processor 408, enabling the processors of the network access devices 410 to automatically extract the output data files from the system 400.
Additional embodiments include any one of the embodiments described above, where one or more of its components, functionalities or structures is interchanged with, replaced by or augmented by one or more of the components, functionalities or structures of a different embodiment described above.
It should be understood that various changes and modifications to the embodiments described herein will be apparent to those skilled in the art. Such changes and modifications can be made without departing from the spirit and scope of the present invention and without diminishing its intended advantages. It is therefore intended that such changes and modifications be covered by the appended claims.
This application is a continuation-in-part of, and claims the benefit and priority of, U.S. patent application Ser. No. 12/207,425, filed on Sep. 9, 2008, and the entire contents of such application are hereby incorporated by reference. This application is related to the following commonly-owned, co-pending patent applications: U.S. patent application Ser. No. 12/207,449, filed on Sep. 9, 2008; U.S. patent application Ser. No. 12/207,448, filed on Sep. 9, 2008; U.S. patent application Ser. No. 12/207,442, filed on Sep. 9, 2008; U.S. patent application Ser. No. 13/536,593, filed on Jun. 28, 2012; U.S. patent application Ser. No. 13/612,117, filed on Sep. 12, 2012; U.S. patent application Ser. No. 13/857,686, filed on Apr. 5, 2013; and U.S. patent application Ser. No. 13/871,998, filed on Apr. 26, 2013.
Number | Date | Country | |
---|---|---|---|
Parent | 12207425 | Sep 2008 | US |
Child | 13902406 | US |