Systems and methods for facilitating communications among customer relationship management users
Inventors
Kraljevic, Tom • Rodriguez, III, Fernando • Vallabhaneni, Geetha
Assignees
Interested in licensing this patent?
MTEC can help explore whether this patent might be available for licensing for your application.
Abstract
A method for synchronizing Customer Relationship Management data between a Software as a Service (“SaaS”) CRM provider and a mobile device. This method enables both read and write access from the mobile device whether a network connection to the SaaS provider is available or not. The method involves creating a local mobile device database to track portions or all of the SaaS provider database. In the case where a network separation occurs and the device and SaaS databases diverge, the synchronization method may be used to make the mobile device database and the SaaS database consistent and coherent again. In one embodiment, multiple local database tables are used to represent a single SaaS CRM table to facilitate synchronization, and a status indicator is used to visually and quickly convey status to the mobile user.
Core Innovation
The invention manages data in a customer relationship management system and a related client application by issuing a query from the client application to the customer relationship management system, where the query requests data from a table in a server database, and updating the data to a table in a local database. The approach also updates the local database table with locally obtained client application data, and then sends the locally obtained client application data from the local database table to the customer relationship management system to update the server database table. The local database table includes a representation, with a sync table representing the database synced table in final updated form.
The system supports bidirectional synchronization between a client local SQL database and a SaaS customer relationship management provider, including Salesforce, with online and offline modes. The local database models CRM entities, SObjects, using per-SObject table groups that include main, synced, orig, and todelete/tosync groups, along with shared support tables to manage create and convertLead and delete operations, including tmpId swapping. The representation is used to reconcile a final updated form of server data while maintaining local change tracking.
The invention further provides an interruptible, restartable synchronization algorithm using time-windowed queries and explicit retrieval of deleted and modified data from the server, followed by conflict handling using a three-way-diff resolve among main versus _orig versus _synced. It includes a QueryWave approach that uses chunked SOQL waves to avoid timeouts when retrieving server-side changes. A user interface component is provided via an OnlineIndicator to show online versus offline state and indicate pending local updates during synchronization.
Claims Coverage
The independent claims are clm-00001, clm-00009, clm-00018, and clm-00026. Across these claims, the core claim coverage centers on issuing and receiving queries between the client application and CRM server database, updating a local database table with locally obtained client application data, and using a local representation that includes a sync table representing the database synced table in final updated form.
Bidirectional query-driven local sync with a sync table in final updated form
Issuing a query from the client application to the customer relationship management system requesting data from a table in a server database; updating the data to a table in a local database; updating the local database table with locally obtained client application data; and sending the locally obtained client application data from the local database table to the customer relationship management system to update the server database table, wherein the local database table comprises a representation including a sync table representing the database synced table in final updated form.
Receiving query-driven server updates and locally obtained updates into a sync representation
Receiving a query from the client application requesting data from a table in a server database; and receiving locally obtained client application data from the local database table to update the server database table, wherein the local database table comprises a representation including a sync table representing the database synced table in final updated form.
Non-transitory medium for executing the sync method with a sync table representing final updated form
Storing software instructions that execute a method including issuing a query from the client application to the customer relationship management system requesting data from a table in a server database and updating the data to a table in a local database; updating the local database table with locally obtained client application data; and sending the locally obtained client application data from the local database table to the customer relationship management system to update the server database table, wherein the local database table comprises a representation including a sync table representing the database synced table in final updated form.
Non-transitory medium for receiving query-driven server data and local updates into a sync representation
Storing software instructions that execute a method including receiving a query from the client application requesting data from a table in a server database; and receiving locally obtained client application data from the local database table to update the server database table, wherein the local database table comprises a representation including a sync table representing the database synced table in final updated form.
The independent claims collectively cover a synchronization framework where client-side querying and server-side data receipt are coupled with local database updates and server database updates using a local representation that includes a sync table representing the database synced table in final updated form.
Stated Advantages
Not explicitly described in patent.
Documented Applications
Bidirectional CRM-to-mobile synchronization for a SaaS CRM provider, including Salesforce, supporting online and offline use.
Use of a synchronization interface via an OnlineIndicator UI to show online versus offline state and pending local updates.
Interested in licensing this patent?