[go: up one dir, main page]

WO2008124049A1 - Système de gestion de la relation client avec notes rapides, étiquetage hiérarchique et interface utilisateur basée sur des métadonnées - Google Patents

Système de gestion de la relation client avec notes rapides, étiquetage hiérarchique et interface utilisateur basée sur des métadonnées Download PDF

Info

Publication number
WO2008124049A1
WO2008124049A1 PCT/US2008/004378 US2008004378W WO2008124049A1 WO 2008124049 A1 WO2008124049 A1 WO 2008124049A1 US 2008004378 W US2008004378 W US 2008004378W WO 2008124049 A1 WO2008124049 A1 WO 2008124049A1
Authority
WO
WIPO (PCT)
Prior art keywords
quicknote
application
tags
user interface
tag
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/US2008/004378
Other languages
English (en)
Inventor
Majed Itani
Jacob Taylor
Ajay Gupta
John Roberts
Clinton Oram
Vineet Dhyani
Roger Smith
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sugarcrm Inc
Original Assignee
Sugarcrm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sugarcrm Inc filed Critical Sugarcrm Inc
Publication of WO2008124049A1 publication Critical patent/WO2008124049A1/fr
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Definitions

  • a business software system and method are described and in particular a software- based system and method for providing customer relationship management is described.
  • CRM Customer relationship management
  • typical known CRM systems include Microsoft® CRM, SalesForce, a CRM product provided by SalesForce.com, Netsuite CRM, and SAP Business One CRM.
  • conventional CRM systems have significant limitations that include a lack of flexibility, high costs, and a closed-source structure which is embedded into the traditional product offerings. These limitations have led to a failure rate of over 70% with traditional CRM implementations.
  • the business application may be a software based customer relationship management system.
  • Figure IA is a diagram illustrating a customer relationship management system that incorporates the various features of the invention.
  • Figure IB illustrates more details of the customer relationship management system that incorporates the various features of the invention
  • Figure 2 is a diagram illustrating an example of the user interface of the system in Figures IA and IB;
  • Figure 3 illustrates an example of a quicknote on a user interface of the customer relationship management system application
  • Figure 4 is an exemplary user interface that illustrates a method for creating a new quicknote on the user interface
  • Figure 5 illustrates an example of the user interface of a back side of a quicknote
  • Figure 6 illustrates an example of a user interface for browsing tags and articles with an article preview of a hierarchical tagging system
  • Figure 7 illustrates an example of a user interface for creating a new tag of the hierarchical tagging system
  • Figure 8 illustrates an example of a user interface for adding a root tag of the hierarchical tagging system
  • Figure 6 illustrates a tag select and add user interface of the hierarchical tagging system
  • Figure 10 illustrates a method for metadata driven user interface generation
  • Figure 11 illustrates an exemplary user interface of the CRM system with required fields defined by the metadata
  • Figure 12 illustrates an exemplary user interface of the CRM system with a drop down menu defined by the metadata
  • Figure 13 an exemplary user interface of the CRM system for defining field level security of the CRM system using metadata.
  • the system and method are particularly applicable to an open source customer relationship management software system and it is in this context that the system and method will be described. It will be appreciated, however, that the algorithms, data structures, processes and modules of the system and method have greater utility since these modules, algorithms, data structures and processes disclosed herein can be equally applied to other non- open source CRM systems, as well as other business software application systems as well as other database software systems.
  • the described system is an implementation in a customer relationship management (CRM) and groupware system.
  • CRM and groupware system is the Sugar Enterprise version 4.5 commercially available from SugarCRM me.
  • the system may be implemented using a base class known as SugarBean, and a data retrieval API.
  • a base class known as SugarBean
  • a few of the methods provided in the base class include methods for building list queries, saving, and retrieving individual items. Each specific type of data creates a subclass of this base class.
  • the base class is called SugarBean in the illustrative example that is described below. There is at least one subclass of SugarBean for each module.
  • SugarBeans also are used for creating database tables, cleaning out database tables, loading records, loading lists, saving records, and maintaining relationships.
  • SugarBean subclass is a Contact subclass.
  • the Contact subclass is a simple object that fills in some member variables on the SugarBean and leverages SugarBean for much of its logic and functionality.
  • the security associated with the Contact subclass is automatically created for Contact by SugarBean that contains, among other things, the functions and processes that are shared by the other modules.
  • Another example of a SugarBean subclass is Users which is a module that is security related and contains the list of users as well as users who should not have row level security (described below in more detail) applied to them. For this reason these modules have the bypass flag set to skip adding the right join for verifying security.
  • the SugarCRM Sugar Professional system is a web based system with many concurrent users.
  • Figure IA is a diagram illustrating a customer relationship management (CRM) system 100 that is an example of a software-based business software application.
  • the system 100 may be implemented as a software system and the elements shown in Figures IA and IB are thus implemented as a plurality of lines of computer code that may be executed by a processor of a computer system, such as a server computer wherein the various lines of computer code are stored in a memory associated with the computer system and the system interfaces with a database 110 that stores the data associated with the system 100.
  • CRM customer relationship management
  • the system may have one or more clients 102, such as a browser application executed on a typical computing device (a browser client session), that accesses the system over a communications network 103 such as the Internet, a cellular network, a wireless network and the like.
  • the computing devices may include a laptop, table or desktop computer system, a PDA, a mobile phone, a portable wireless email device and the like.
  • the client's 102 interactions with the system are managed and go through a set of one or more controllers 104.
  • the controllers 104 are the entry-point into the system for an entity that is using the system wherein the entity may be a person who accesses the system, such as by using a browser application, a computing device or a software program that uses this entry point.
  • the controllers 104 take care of functions and operations including, for example, session tracking, session security and user authentication.
  • the controllers also, for each user, prepare the screen/user interface or the wrapper for the content and determine which module of the application the user is trying to access and get the requested module to process the request.
  • the system has one or more modules 106 that are components of application functionality and provide certain functionality to the entity accessing the system.
  • the modules 106 of the exemplary CRM system shown in Figure IA may include, by way of example, a portal module, a calendar module, an activities module, a contacts module, an accounts module, a leads module, an opportunities module, a quotes module, a products module, a cases module, a bug tracker module, a documents module, an emails module, a campaigns module, a project module, an RSS module, a forecasts module, a reports module and a dashboard module.
  • the system may include different, more or fewer modules and the systems with those other combination of modules are within the scope of the system and method.
  • each of these modules provides a different functionality to the users of the system so that, for example, the calendar module provides a calendaring functionality to the CRM system that is instantiated with the system.
  • the system may also include an administration module that handles the typical administrative functions of the system.
  • each module contains a subclass of a SugarBean base object 108 and each module references the SugarBean to retrieve the data from the database 110 required for display and uses certain functions and operations instantiated in the SugarBean base object.
  • FIG 2 is a diagram illustrating an example of the user interface 120 of the system in Figures IA and IB.
  • the user interface may include a home tab 121 (that is selected in Figure 2) that provides a general overview of Cases, Opportunities, Appointments, Leads, Tasks, Calendar, Team Notices, and Pipeline for the particular user since each user interface is customized for each user based on the access levels and parameters associated with that particular user.
  • the home tab may also include shortcuts to enter various different types of data, and a quick form for new contacts.
  • the home tab also provides a quick overview of what customer tasks and activities that the user needs to focus on today.
  • the portal module (selected using a "My portal" tab 122), contains a series of shortcuts which can link to any web site chosen by the user that may include e-mail, forums, or any other web-based application, allowing the system to become a single user interface for multiple applications.
  • the calendar module may be selected by a calendar tab 124 and allows the user to view scheduled activities (by day, week, month or year), such as meetings, tasks, and calls.
  • the system also allows the user to share his/her calendar with coworkers which is a powerful tool for coordinating the daily activities.
  • the activities module is selected using an activities tab 126 and allows the user to create or update scheduled activities, or to search for existing activities.
  • the system allows the user to manage the myriad of calls, meetings, notes, emails and tasks that the user needs to track in order to get the job done.
  • the tasks are for tracking any action that needs to be managed to completion by a due date
  • the notes allow the user to capture note information as well as upload file attachments
  • the calls allow the user to track phone calls with leads and customers, meetings are like calls, but also allow the user to track the location of the meeting and emails allow the user to archive sent or received email messages and to send or receive email messages.
  • the contacts module is accessed by a contacts tab 128 and allows the user to view a paginated contact list, or search for a contact.
  • the user can click on a specific contact to zoom in on the detailed contact record and, from a specific contact record, the user may link - - to the related account, or leads, opportunities, cases, or direct reports (related contacts).
  • contacts are the people with whom the organization does business.
  • the system allows the user to track a variety of contact information such as title, email address, and other data. Contacts are usually linked to an Account, although this is not required.
  • the accounts module may be accessed using an accounts tab 130 and the user may view a paginated account list, or search for an account.
  • the user can click on a specific account to zoom in on the detailed account record and, from a specific account record, the user may link to related contacts, activities, leads, opportunities, cases, or member organizations.
  • Accounts are the companies with which the organization does business and the system allows the user to track a variety of information about an account including website, main address, number of employees and other data. Business subsidiaries can be linked to parent businesses in order to show relationships between accounts.
  • the leads module may be accessed by a leads tab 132 that permits the user to view a paginated list of leads, or search for a specific lead.
  • the user can click on an individual lead to zoom in on the lead information record and, from that detailed lead record, the user can link to all related activities, and see the activity history for the lead.
  • Leads are the people or companies with whom the organization might do business in the future. Designed to track that first point of interaction with a potential customer, leads are usually the hand off between the marketing department and the sales department. Not to be confused with a contact or account, leads can often contain incomplete or inaccurate information whereas contacts and accounts stored in Sugar Enterprise are core to many business processes that require accurate data. Leads are typically fed into the Sugar Enterprise stem automatically from your website, trade show lists or other methods.
  • the opportunities module is accessed by an opportunities tab 134 and permits the user to view a paginated list of opportunities, or search for a specific opportunity.
  • the user can click on an individual opportunity to zoom in on the opportunity information record and, from that detailed opportunity record, the user can link to all related activities, see the activity history for the opportunity, and link to related leads and contacts.
  • Opportunities track the process of selling a good or service to a potential customer. Once a selling process has commenced with a lead, a lead should be converted into a contact and possibly also an account for example among other items. Opportunities help the user manage the selling process by tracking attributes such as sales stages, probability of close, deal amount and other information.
  • the quotes module may be accessed by a quotes tab 136 and permits the user to view a paginated list of customer quotes, or search for a specific quote. The user can click on an individual quote to zoom in on the detailed quote information.
  • a quote is formed by referencing product and pricing from a catalog of products you may create.
  • a presentation quality Portable Document Format (PDF) representation of the quote may be created to fax or email to a client.
  • Quotes may be associated with , for example, Accounts, Contacts, or Opportunities among other modules in the system and the system is not limited to a quote being associated with any particular set of modules.
  • the products module may be accessed by a products tab 138 and permits the user to view a paginated list of products, or search for a specific product.
  • the user can click on an individual product to zoom in on the detailed product information.
  • a product is used when assembling a customer quote.
  • the cases module may be accessed using a cases tab 140 and may permit the user to view a paginated list of cases, or search for a specific case.
  • the user can click on an individual case to zoom in on the case information record and, from that detailed case record, the user can link to all related activities, see the activity history for the case, and link to related contacts.
  • the cases are the handoff between the sales department and the customer support department and help customer support representatives manage support problems or inquiries to completion by tracking information for each case such as its status and priority, the user assigned, as well as a full trail of all related open and completed activities.
  • a dashboard (such as that shown for example in Figure 2B) module may be accessed using a dashboard tab 142 and permits the user to view a dashboard of the information in the CRM system.
  • the documents module may show the user a list of documents that the user can access, view and/or download.
  • the user can also upload documents, assign publish and expiration dates, and specify which users can access them.
  • the email module allows the user to write and send emails and to create Email Templates that can be used with email-based marketing campaigns.
  • the user can also read, compose, save drafts, send and archive emails.
  • the campaigns module helps the user implement and track marketing campaigns wherein the campaigns may be telemarketing, web banner, web tracker, mail or email based. For each Campaign, the user can create the Prospects list from the Contacts or Leads or outside file sources.
  • the projects module helps the user manage tasks related to specific projects.
  • Tasks - - can be assigned to different users and assigned estimated hours of effort and, as tasks are in progress and completed, users can update the information for each task.
  • the RSS module permits the user to view the latest headlines provided by your favorite Really Simple Syndication (RSS) feeds. These feeds provide news or other web content that is distributed or syndicated by web sites which publish their content in this manner.
  • RSS Really Simple Syndication
  • the forecasts module shows the user his/her committed forecast history and current opportunities. For managers, the user can view your team's rolled up forecasts.
  • the reports module shows the user a list of saved custom reports not yet published, as well as a list of Published Reports. Saved reports may be viewed, deleted or published, and published reports may be viewed, deleted or un-published. Clicking on the name of a report zooms to the detailed definition of the report criteria (fields to be displayed, and filter settings) for that report, permitting the user to alter the criteria, and re-submit the report query.
  • the dashboard module displays a graphical dashboard of the user's Opportunity Pipeline by Sales Stage, Opportunities by Lead Source by Outcome, Pipeline by Month by Outcome, and Opportunities by Lead Source. The system also supports users putting graphs from their reports directly on their dashboards.
  • the system also includes the database 110 that contains the data of the system and a security module 112 (row level security) that implements the security methods to control access to the data in the database 110 since the database is shared by all users of the system and the data must be segregated based on the users and their access level to different pieces of data.
  • the system may also include a database abstraction layer 114 that is coupled between the database 110 and the SugarBean object 108 and acts as an interface between the database 110 and the SugarBean object 108.
  • the SugarBean object 108 provides the base logic required for retrieving, making available and writing information to/from the database and each module creates subclasses of SugarBean (an example of which was described above) to provide module specific details, module specific data and module specific data views.
  • the SugarBean 108 makes calls that populate the row level security information into the SQL engine/database management system that retrieves the data.
  • the module uses a template mechanism 118 and a theme 116 to produce the requested presentation (user interface) for the user.
  • the template mechanism reformats the data from the database 110 into a particular form while the theme adjusts the user interface according to the user's preferences.
  • the system may perform that request as will now be described.
  • the request of the user is directed to controller named index.php that handles most of the logic for the main application.
  • the controller loads the current user information, verifies authentication and session information for the particular user session, loads the language for the user (based on the user preferences) and generates some of the user interface shell.
  • the controller then calls the contact module and request the detail view for the specified contact.
  • the contact module retrieves the requested contact using the Sugarbean.
  • the SugarBean verifies row level security for the requested contact at this point (with assistance from the security module 112. If the record is not retrieved successfully, then the process aborts and the user is not allowed to view the data for the record.
  • the Contact module uses the templating mechanism, such as for example XTemplate or Smarty, in the template mechanism 118 and the code for the current user's theme (retrieved by the theme module 116) is used to create the user interface for the presentation of the particular Contact data to the particular user.
  • the resulting user interface then is sent back to the computing device with of client that requested it.
  • Figure IB illustrates more details of the customer relationship management system 100.
  • the system may interface with a typical browser application 103 (being executed by a computing device) that can access the system 100 over the web.
  • a typical browser application 103 being executed by a computing device
  • the system may further comprise an application programming interface (APIs) portion 105, that may preferably use the well known simple object access protocol (SOAP), to interface with other existing system and applications.
  • APIs application programming interface
  • SOAP simple object access protocol
  • the APIs may be used to interface to an email plug-in 109, such as an SugarCRM Plug-In for Microsoft Outlook®, that enhances the email program to allow it to interact with the system 100.
  • the system 100 in one implementation, is implemented on a web server application 107 (that may be the well known Apache web server that includes US functionality) that generates dynamic web pages (using the known PHP language).
  • the web server and the other elements of the system may be implemented as software running on one or more servers wherein the servers may use various different operating system as shown in Figure IB.
  • the system 100 may also have an email module 111 capable of sending email via a local program (that may preferably be sendmail) or an email server leveraging the SMTP protocol.
  • a software application may include a quicknote functionality.
  • the quicknote functionality may be incorporated into the customer relationship management system shown in Figures IA, IB and 2 above and the quicknote functionality will be described with reference to the customer relationship management system although the quicknote functionality can be used with other systems and software applications or other web pages.
  • Figure 3 illustrates an example of a quicknote 150 that appears on a user interface of the customer relationship management system application.
  • the quicknote is a dynamic note that can be created on any web page and any web page may have zero or more quicknotes associated with the web page.
  • the default quicknote allows a user to set a title for the note as well as a body of text/html (as shown in Figure 3), but the note structure is a plugin-based structure that allows people to create their own note types.
  • Some of these quicknote types could be an rss feed note as well as video feed note that allows users to share videos with other users.
  • the modules 106 may include a quicknote module that, in the exemplary embodiment, may be a plurality of lines of computer code that are executed by a processing unit that also executes the CRM application lines of computer code.
  • the quicknote module may provide the quicknote functionality and generate the quicknotes described above and below.
  • Each quicknote (such as the exemplary quicknote shown in Figure 3) may be able to be resized to any size and can be dragged anywhere on the page to a particular portion of the page.
  • a quicknote Once a quicknote is saved, it will keep those properties and appear in the same position whenever the page is loaded, unless the note has been dismissed or is hidden (put into a dismissed state or a hidden state that is stored in a data structure containing the quicknote). If a note has been dismissed, it will not be displayed on any user interface unless another user who is on the note replies to the note and then the note appears with the latest reply on top as described below in more detail.
  • a dismissed note may use a fade animation to indicate to a user that it has been or is being dismissed.
  • a note is hidden, then the note is moved offscreen until the unhide button is pressed on a quick notes menu 152 on the left hand side of the screen as shown in Figure 3.
  • a user can either hide an individual note, all notes on the screen, or all notes in the system. When a user hides a note, the note may be animated as moving off the screen. If a user saves the note in a new position, the note will then appear in the new position when the web page/user interface is next loaded by the system. If a user wants the note to stay on the screen but take up less room, the user can collapse the note so only the title of the note appears. The user can collapse the note by clicking on a collapse button that may appear in a note menu 154 at the top of the note as shown in Figure 3.
  • the note menu 154 has actions for saving, collapsing, hiding, dismissing, and flipping the note over for more information. If the user flips the note over, an animated action of the note flipping over may be shown to the user and, on a back 170 of the note, appears information (shown in Figure 5) of who sent the note, who received the note, when it was created, when the newest reply was created and other properties of the note such as if it should follow users.
  • the quicknote module may allow a user to set the properties of the quicknote as shown in Figure 4.
  • a new note user interface 160 may be shown that allows the user to select (using a select menu 162) to whom the note is to be assigned. For example, the note can be assigned to the user (self), other users, or entire teams as shown. If a note is assigned to the user who created the note, it remains editable.
  • both the original sender and the recipient have the ability to reply to that note.
  • a reply becomes a page within the note with the newest reply on top and both the original sender and the original recipient will be able to view the note and the replies to the note.
  • a team or group is the recipient of the note, then everyone on the team at the time the note is sent will receive the note, and each one of those people on the team/group have the ability to reply to the note.
  • notes that are sent appear in one color (system or user defined) and notes that are received appear in another color to make it easy for a user to keep track of what is incoming and outgoing.
  • a user wishes to use a quicknote as a notepad or wishes to send users something urgent they may use a follow me feature 164 which, when enabled, causes the note to appear on every page the user visits.
  • the normal behavior of a quicknote if "follow me” is not enabled, is for the quicknote to only appear on the page it was created on.
  • the quicknote module may also account for the age of a quicknote. For example, as a quicknote becomes older (each quicknote has a time from creation property), the quicknote color begins to fade and curled paper images are displayed in the corner of the note.
  • a software application may include a hierarchical tagging system and method.
  • the hierarchical tagging system and method may be incorporated into the customer relationship management system shown in Figures IA, IB and 2 above and the hierarchical tagging system and method will be described with reference to the customer relationship management system although the hierarchical tagging system and method can be used with other systems and software applications.
  • the customer relationship management system shown in Figures IA, IB and 2 may be incorporated into the customer relationship management system shown in Figures IA, IB and 2 above and the hierarchical tagging system and method will be described with reference to the customer relationship management system although the hierarchical tagging system and method can be used with other systems and software applications.
  • the modules 106 of the system shown in Figure 1 may include a hierarchical tagging module and the database 110 may include data associated with the hierarchical tagging system.
  • the user interface of the customer relationship management system may include a knowledge base tab that permits the user to access the knowledge base which includes the hierarchical tagging system.
  • the hierarchical tagging system and method permits zero, one, or more tags to be associated with each piece of content or articles so that a user of the application system maybe able to modify/add tags to an article/piece of content, search based on tags, etc.
  • any number of tags may be created and linked to articles and each tag can either be flat (no sub- tags below or parent tags above for the particular tag) or hierarchical (wherein the tag has one or more parent tags and/or one or more child tags) and there is no inherent limit on the depth level of the tag hierarchy. For manageability reasons, an administrative limit may be imposed on the depth level of the tag hierarchy.
  • the hierarchical tagging system may allow multiple tags with the same name at different locations in the tags tree and each instance has a different meaning (although the system does not permit two tags with the same name (label) to have the same parent tag).
  • the hierarchical tagging module may include a tag translation unit that internationalizes the displayed tags.
  • the tags are also translated into the language of the foreign country.
  • Figure 6 illustrates an example of a user interface 1150 for browsing tags and articles with an article preview of a hierarchical tagging system.
  • the user interface may include a hierarchical tag portion 1152 that shows the tags and permits the user to select a particular tag.
  • the user interface also may have an article list portion (underneath the preview popup) that lists all articles that have been associated with the currently selected tag. This article list may potentially include items associated with child tags of the current tag.
  • the user interface also has an article preview portion 1 154 that permits the user to quickly view one of the articles in the list by hovering over it with the mouse.
  • the article quick preview pop-up may also be triggered by clicking on an icon or a link on the article list
  • the hierarchical tagging system and method for each tag, may track the number of articles associated with each tag (the number in parentheses in the hierarchical tag portion 1152 in the exemplary embodiment).
  • the user interface also permits the user to search for articles by tags and the user can use a partial name from a tag to find the associated articles.
  • the hierarchical tagging system may also permit the user to provide partial tag hierarchies to locate tags and articles associated with them. As an example, to find a tag called
  • the tree interface of the tags shown in the hierarchical tag portion 1152 allows a user to move articles from one tag to another and can be used to associate multiple articles with a tag.
  • the hierarchical tag portion 1152 also may permit the user to delete tags that 1) may not have any articles and 2) may not have any sub-tags with articles.
  • the hierarchical tagging system provides a user interface 1160 shown in Figures 7-9 in which the user can create tags and find tags for an article.
  • Figures 7 and 8 illustrate an example of the user interface 1160 wherein the user creates a new tag in a new tag screen 1162.
  • the user can add a new root tag into the tags of the system or may be administrator or role restricted.
  • Figure 9 illustrates a tag select and add 1170 user interface of the hierarchical tagging system that is part of the same user interface shown in Figures 7-8. Using this screen, the user is able to search based on the existing tags in the system.
  • the hierarchical tagging system may also allow tags to be linked to other parent tags, such as "my favorite tags", which refers to a collection of other tags. This feature allows the monitoring of collections of tags of interest without needing to maintain duplicate lists.
  • the hierarchical tagging system may also include a listing of new tags and/or tags with new articles associated therewith.
  • the hierarchical tagging system may also support a deprecated flag for a tag and allow for a link to the new tag that should be used. This feature may be used when moving tag naming conventions. For example, "/PHP" may be deprecated with a link to "/Languages/PHP".
  • a user interface for tagging items can allow a link directly to the new name.
  • Figure 10 illustrates architecture 2150 for implementing a metadata-driven user interface method for the CRM system shown in Figure IA and IB.
  • the method may be further extended to support generalized software application components, which may require high levels of flexibility and customization. While loosely based on the known Model-View- Controller (MVC) prototype, this method allows for hybrid implementations, extensive data processing, heterogeneous view and layout patterns, customization integration and merge, and other features not currently available in current UI frameworks. This design is especially appropriate in the context of a highly customizable service application environment.
  • the general design encompassing the components of the metadata-driven user interface method provides for extensions to each of the core components of the MVC architecture by defining a convention-based, fall-through discovery algorithm for employing components within the CRM application.
  • the Application may be configured to load the user information, languages, themes from the theme module 116, and possibly other components and perform a processing operation (process() 2154).
  • the preprocess operation may handle any setup logic that would need to be performed before the controller 104 is called.
  • the preProcessO may handle the SetTimeZone when a user first logs into the system and the application.
  • preProcess() may be invoked on the Controller . This method is empty by default in SugarController, but this gives the developer an opportunity to contribute any special logic prior to the action being handled by the controller itself. Cascading Controller
  • the controller 104 is the base of all of the classes in an application in a SugarController 2160 class.
  • the controller can be implemented on multiple levels within the application, which can be identified by the location of the controller within the application structure, to provide higher flexibility and customization at various points in the application.
  • the CascadingController may allow the application to provide multiple modes of handling for various parts of the system.
  • the application may utilize a ControllerFactory to load the appropriate controller by calling a ControllerFactory operation 2156 to select a controller (2158) wherein the one or more controllers may be stored in a data store (such as a database 110).
  • the ControllerFactory will go through a discovery algorithm for handling the action, for example the following logic might be used to load the Cascading Controller.
  • SugarApplication 2152 will call a preprocess operation on the controller, which allows the user to inject any logic prior to action handling. Then, SugarApplication will call loadbean() 2162 on the controller (that, among other operations, loads the module language 2164) and then execute on the controller using a module controller 2166.
  • the module controller may then select an action (2168) by calling a process() operation.
  • the process() operation goes through an execution algorithm for handling the action, for example the following logic may be used for handling an action:
  • action configuration file action_file_map is used.
  • This file may be obtained via a merge of multiple action configuration files that provide concentric level of custom configuration definitions. For example: ' custom/modules/ ⁇ my_module>/action_file_map.php ' , modules/ ⁇ my_module>/action_file_map.php', and
  • the action_file_map array is checked for ⁇ my_action> to determine if there is a generic file to be included at this point. (2172) If there is a generic file, then the systems bypasses all view handling logic and just includes the file. This is meant to allow for generic handling files like subpanels and popups.
  • the action must set the $controller->view parameter. Once control passes through the process() it will return to execute(). Execute() will check if a redirect url has been set. If one has been set in an action, then redirect to the URL, otherwise if a redirect has not been set, then check if the view field has been set. If the view field has been set, then call a ViewFactory operation 2174 to obtain the appropriate view. Once the controller has the view, the system may call $view->process().
  • ViewFactory will accept as a parameter the view as set in the controller and find the appropriate view.
  • the ViewFactory 2174 may build the appropriate view based on a discovery algorithm, such as defined by the following logic: 1) check if custom/modules/ ⁇ my_module>/views/view. ⁇ my_view>.php exists - -
  • Each of these views will extend a default SugarView 2176. But in addition a developer can also extend an instance view. For example OOTB Sugar has defined view.list.php which is meant to handle ListViews and extends the SugarView. Thus, for the views, there could be two hierarchies.
  • SugarView.php l_ I include/MVC/View/views/view.list.php l_
  • view. ⁇ view>.config.php files which allow for customization of the view by defining whether to show the header, javascript, footer, search, subpanels.
  • each view may also define a view configuration file view. ⁇ view>.config.php, which may have the following exemplary format and attributes:
  • a developer may utilize field modifiers at pre-runtime.
  • a developer is able to take advantage of the standard modifiers provided for each field, but is also able to add an additional property in the metadata, for example "+Field” or "+Button".
  • These modifiers allow the developer to add additional information to a metadata driven field without writing custom code or using the customCode metadata property.
  • a field may have more than one modifier as seen in the example above. For example, if a field has a button, the +Button attribute may be used to set properties of a field with a button. If a field does not have a button and the +Button attribute is used a button will be added next to the field if that field type supports it. It is up to the developer of a given field type to determine if they wish to support a certain attribute.
  • a developer may also use field modifiers at runtime that modify the value at run time. For example if a developer has an amount field and wishes amounts > 1000 to be displayed in green amounts ⁇ 600 to display in orange and amounts ⁇ 500 to display in red.
  • distinct field types may have different filters and modifiers that can be applied. For example, an email address that is marked as "do not email" is of field type email and may have a strike through style applied to it. These modifiers may be applied to all of the record or just the field itself. For example, in a list view a filter may be applied to the assigned user and if the assigned user is the same as the current user it may highlight the entire row.
  • the system may also provide dynamic user interface rewriting and generation that provide the ability to pragmatically manipulate the data/panel attribute of the template definition to reorder the view of the layout.
  • a required fields first transformation See Figure 11 for example
  • Other transformations could be applied based on field values for example a layout with fields related to a specific drop down value could have those fields highlighted or moved to a prominent area of screen real-estate or even removed entirely depending on the value of the drop down. (See Figure 12 for example).
  • the proposed system may allow for creating a fully object-oriented UI that provides each UI component with contextual application and rendering information. Based on these context parameters each component or field may have fully customizable renderer, which may determine the associated view configuration and type. For metadata fields this can be accomplished via a callback to a rendering function that will provide definitive logic to apply the appropriate type in a given context (typically based on the type of view itself). For example, consider a stock quote field that for edit views would render a text box for a symbol but on detail views that field would call a function and display either the stock value or a graph or any other information that is deemed relevant by the function. In this case, for a list view it may display the stock price, and a detail view may display a chart.
  • the system may also permit field level security.
  • the field level security provides administrators with a mechanism for controlling what fields a user has access to depending on the roles assigned to the user and the settings of field level access for those respective roles.
  • An example of the user interface for selecting the field level access is shown in Figure 13.
  • An example of the available access levels are as follows:
  • the most restrictive access may be used by default. This default may be overridden by a system wide configuration setting that an administrator can set to allow the least restrictive access to be used. In the example of the access levels above, "Not Set” is not a true access level so the least restrictive access level would be "Read/Write” and most restrictive access level is "None". Then, the user interface displayed to each user of the system will be adjusted accordingly depending on the level of user access. Thus, a field may not appear in a layout even if it is defined in that layout if a user does not have access to the particular field.
  • the system may also allow developers to define phantom fields for the field level security. For example, a developer adds a graph at the bottom of a page and wishes only people with certain rights to be able to view this field. To accomplish this, a developer can add a phantom field called cool graph to the field level security and could check against this phantom fields access level to determine if the graph should be shown or not. The administrator would be able to set the access level on these phantom fields as though they were normal fields.
  • the system may provide an interface to setup and administer metadata components of the model.
  • user-defined elements will be written into custom directories and would take automatically take precedence oven system-wide setting.
  • the model may also provide for the groupings of fields.
  • the grouping of fields allows for multiple fields to be grouped together so that an administrator has an easier time administrating them. For example, an administrator can define a group called address that would contain street_address, city address, state address, zip code, country and when the permissions for any of those fields is checked it would check against the address group instead of the individual field.
  • a group may be displayed in the same fashion as a field would be displayed.
  • Each new version of the application might include new and/or modified functionality that may conflict or overwrite customizations implemented on a previous version.
  • the system may implement a priority-based merge/resolution algorithm to resolve and remedy any issues arising from an upgrade process.
  • the original version is evaluated and all fields are removed that do not appear in either the new or the customized version, since we assume that those fields have been removed by either customization or the upgrade. If the field is present in both the custom and the new version, the location must be considered to position the field properly within the resulting view. The custom location would take priority as per reasoning above. All custom fields that are not in either version may be automatically copied as well. As the final step we overwrite the original files with the new files and write the resultant custom files out.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Data Mining & Analysis (AREA)
  • Economics (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

L'invention concerne un système d'application d'affaire qui peut comprendre un système et un procédé de notes rapides, un système et un procédé d'étiquetage hiérarchique et/ou un système et un procédé d'interface utilisateur basée sur des métadonnées.
PCT/US2008/004378 2007-04-03 2008-04-03 Système de gestion de la relation client avec notes rapides, étiquetage hiérarchique et interface utilisateur basée sur des métadonnées Ceased WO2008124049A1 (fr)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US92176607P 2007-04-03 2007-04-03
US92177807P 2007-04-03 2007-04-03
US60/921,778 2007-04-03
US60/921,766 2007-04-03
US92733207P 2007-05-02 2007-05-02
US60/927,332 2007-05-02

Publications (1)

Publication Number Publication Date
WO2008124049A1 true WO2008124049A1 (fr) 2008-10-16

Family

ID=39831258

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2008/004378 Ceased WO2008124049A1 (fr) 2007-04-03 2008-04-03 Système de gestion de la relation client avec notes rapides, étiquetage hiérarchique et interface utilisateur basée sur des métadonnées

Country Status (1)

Country Link
WO (1) WO2008124049A1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10606924B2 (en) 2016-11-18 2020-03-31 Microsoft Technology Licensing, Llc Contextual file manager
US10853808B1 (en) 2016-12-18 2020-12-01 Mark Lawrence Method and apparatus for controlled products

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030179232A1 (en) * 2002-03-25 2003-09-25 Fousek Daniel P. Custom drawing symbols
US20040064351A1 (en) * 1999-11-22 2004-04-01 Mikurak Michael G. Increased visibility during order management in a network-based supply chain environment
US20060195379A1 (en) * 2005-01-25 2006-08-31 David Abecassis Attention economy for attention to messages, tasks and resources
US20060277087A1 (en) * 2005-06-06 2006-12-07 Error Brett M User interface for web analytics tools and method for automatic generation of calendar notes, targets,and alerts

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040064351A1 (en) * 1999-11-22 2004-04-01 Mikurak Michael G. Increased visibility during order management in a network-based supply chain environment
US20030179232A1 (en) * 2002-03-25 2003-09-25 Fousek Daniel P. Custom drawing symbols
US20060195379A1 (en) * 2005-01-25 2006-08-31 David Abecassis Attention economy for attention to messages, tasks and resources
US20060277087A1 (en) * 2005-06-06 2006-12-07 Error Brett M User interface for web analytics tools and method for automatic generation of calendar notes, targets,and alerts

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10606924B2 (en) 2016-11-18 2020-03-31 Microsoft Technology Licensing, Llc Contextual file manager
US10853808B1 (en) 2016-12-18 2020-12-01 Mark Lawrence Method and apparatus for controlled products

Similar Documents

Publication Publication Date Title
US9268538B2 (en) Metadata driven user interface system and method
US8839232B2 (en) Customer relationship management portal system and method
CA2780646C (fr) Systeme et procede d'application d'un logiciel commercial
US9582806B2 (en) Customer relationship management system with hierarchical tagging
AU2014202725B2 (en) Methods and apparatus for translating forms to native mobile applications
US8539480B2 (en) Multi-instance “shadow” system and method for automated resource redundancy reduction across dynamic language applications utilizing application of dynamically generated templates
US20090070744A1 (en) CRM SYSTEM AND METHOD HAVING DRILLDOWNS, ACLs, SHARED FOLDERS, A TRACKER AND A MODULE BUILDER
US20080028021A1 (en) Customer relationship management system and method
WO2012040341A2 (fr) Procédé et appareil pour générateurs de points d'extrémité dynamiques et découverte et courtage d'objets distants dynamiques
US8239226B2 (en) Methods and apparatus for combining properties and methods from a plurality of different data sources
US8224853B2 (en) Methods and apparatus for updating a plurality of data fields in an electronic form
US20110252360A1 (en) Business software application system and method with productivity bar and expression engine
US10387130B1 (en) Metadata driven distributed application behavior system and method
WO2008124049A1 (fr) Système de gestion de la relation client avec notes rapides, étiquetage hiérarchique et interface utilisateur basée sur des métadonnées
US7996758B2 (en) Methods and apparatus for storing data associated with an electronic form
US20070143711A1 (en) Methods and apparatus for displaying a setup sequence
WO2007056656A2 (fr) Procedes et appareil de traitement d'objets metier, de formulaires electroniques et de flux de travaux
US20070143305A1 (en) Methods and apparatus for storing functions associated with an electronic form
US20080276190A1 (en) Customer Relationship Management System with Quicknotes
Xie et al. When social software meets business process management
Snyder et al. Working with Microsoft Dynamics CRM 3.0
US20070136367A1 (en) Methods and apparatus for dynamically modifying a business object definition
US20070130138A1 (en) Methods and apparatus for storing a collaboratively designed workflow process
FR3047819A3 (fr) Appareil pour des generateurs de points d'extremite dynamiques et decouverte et courtage d'objets distants dynamiques

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08742545

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08742545

Country of ref document: EP

Kind code of ref document: A1