Patent ID: 12197480

The use of the same or similar reference numerals in different figures indicates similar, related, or identical items.

The use of cross-hatching or shading in the accompanying figures is generally provided to clarify the boundaries between adjacent elements and also to facilitate legibility of the figures. Accordingly, neither the presence nor the absence of cross-hatching or shading conveys or indicates any preference or requirement for particular materials, material properties, element proportions, element dimensions, commonalities of similarly illustrated elements, or any other characteristic, attribute, or property for any element illustrated in the accompanying figures.

Additionally, it should be understood that the proportions and dimensions (either relative or absolute) of the various features and elements (and collections and groupings thereof) and the boundaries, separations, and positional relationships presented therebetween, are provided in the accompanying figures merely to facilitate an understanding of the various embodiments described herein. Accordingly, they may not necessarily be presented or illustrated to scale and are not intended to indicate any preference or requirement for an illustrated embodiment to the exclusion of embodiments described with reference thereto.

DETAILED DESCRIPTION

Embodiments described herein relate to content collaboration platforms with native tables that are configured to dynamically populate and/or update. The tables, referred to as dynamic object tables, may retrieve content (e.g., page content) from the content collaboration platform and automatically populate attributes from that content directly in the cells of the dynamic object tables. Updates to the page content may also be automatically updated within the table. Embodiments described herein also include systems and methods for embedding those dynamic object tables within pages of the content collaboration platform. Within the embedded object of the page, the user can edit, filter, and sort the dynamic object table without toggling to the dynamic object table interface.

Content collaboration platforms are useful tools for collaborating and working together as a team in real time. Often, content collaboration platforms are a central hub for teams to access documents which, in turn, draw information from many sources in one, convenient place. As a central hub, users of content collaboration platforms can quickly view, comment, and link to content. In many cases, users opt for using tables as an efficient way to organize and view data. For example, a document in a content collaboration platform may include a write-up explaining the scope of a project, embedded in-line frames with a table showing project metrics from another platform, other links showing metadata from publicly-available websites, and the like.

However, in many cases, the contents of a table are static. For example, in some cases, users may create a table within a page to track a particular's team's progress in a project. While this snapshot is convenient for showing only the information expressly provided by a user, generating this explicit or static content for each page is time consuming and the information may be easily outdated as the project progresses. Moreover, users that may wish to leverage the table for other purposes need to make copies of the table to prevent changing the content in the table. This results in more storage space and time needed to show different aspects (e.g., a filtered view, views with certain columns hidden, a sorted view) of the same table, and more time is needed for switching between desktop applications to edit and/or filter the content. This can cause frustration in users and a diminished user experience.

The content collaboration platform described herein includes dynamic object tables which are native to the content collaboration platform. Dynamic object tables are tables that can include dynamically-updating content that may be external or internal to the content collaboration platform. For example, a dynamic object table can include references to pages of the content collaboration platform as well as attributes from those pages or sources. These attributes may be automatically extracted and updated within the dynamic object table. In many cases, the dynamic object table can include linked content to external platforms and associated metadata (e.g., fields, attributes).

More plainly, a dynamic object table is a way for teams to organize and visualize information, which can be updated in real time and/or periodically. In this configuration, users can create standalone dynamic object tables and embed those tables, as a native item, within pages of the content collaboration platform. Because it is a native object, the user can modify, view, sort, and edit items in the embedded content without toggling away from the page. For example, a dynamic object table may include graphical objects corresponding to content items for pages in the content collaboration platform in a first column and a “status of the page” attribute in a second column. In this example, the “status of the page” attribute may be automatically populated by the dynamic object table using data from the corresponding page that is linked to the second column (e.g., the content items in the first column). Then, the user may edit a cell of the second column to, for instance, change a status from “in progress” to “done.” In this example, the status of the page in the content collaboration platform may be updated and, subsequent to updating the status within the page, the update may be reflected in the dynamic object table. In some examples, data can be updated within the dynamic object table main view or via an embedded item of the dynamic object table within the page.

In some embodiments, embedded dynamic object tables may be sorted and/or filtered. For example, a user may filter by a value of a column, assignee, or other criteria. In this configuration, users that wish to tailor a dynamic object table to certain items in the table can do so without toggling away from the page. Once a user sorts and/or filers a table, the view can be saved within the page. Thus, if a user navigates back to the page and/or if other users navigate to the page, the sorted and/or filtered view is shown. Similarly, the dynamic object table may be embedded in other pages and filtered under different criteria. Thus, a user navigating to the multiple pages with an embedded dynamic object table that links to the same source sees different views of the embedded table, depending on the filter criteria on each one. In other words, the views of the embedded dynamic object table in different pages (or in different embedding instances) may be independent of each other. Thus, multiple users can leverage the same dynamic object table for different views without affecting linked versions of the table and without affecting the underlying dynamic object table document.

As explained above, the dynamic object table may be native to the content collaboration platform. Accordingly, the dynamic object table may include native objects (e.g., pages from the content collaboration platform, whiteboard items within the content collaboration platform) and non-native objects (e.g., issue items from an issue tracking platform, action items from a project management platform). When a user input is received, a determination may be made whether the item is a native object or a non-native object. In cases where the input requested is a native object, data may be automatically populated and displayed within the dynamic object table. In cases where the input requested corresponds to a non-native object, the user may be authenticated (e.g., by providing user credentials, tokens, and the like). If the authentication is successful, the requested data (e.g., fields in an issue items) are retrieved. If the authentication fails, no data may be populated and/or an error message may be displayed. In some embodiments, non-native objects populated in a dynamic object table may be displayed upon successful authentication of a user accessing the table. However, in some examples, users without access to the external platforms may view the data imported within the dynamic object table.

These foregoing and other embodiments are discussed below with reference toFIGS.1-7. However, those skilled in the art will readily appreciate that the detailed description given herein with respect to these figures is for explanation only and should not be construed as limiting.

FIG.1shows an example simplified system diagram100of a system with a content collaboration platform configured to create and embed native dynamic object tables. The system100is depicted as implemented in a client-service architecture, though other implementations and architectures are possible. The system100may include a set of host servers, which may be one or more virtual or physical computing resources (e.g., as a cloud platform). More generally, the system100may include a backend system102which may, in turn, includes the infrastructure and services through which information technology (IT) and/or enterprise service management services are provided.

In some cases, a backend system102may be communicatively coupled via a network104to client devices106,108, and/or110. Client devices, such as devices106,108, and110, may be any suitable electronic device including laptops, tablets, smartphones, desktops, and the like. Each of the client devices106,108, and110may be associated with a different user having different user accounts, different permissions, and different access to the multiple platforms of the backend system102. The client devices106,108, and110may each be operable to instantiate different instances of a frontend application106a,108a, and110a, respectively, on each device. The frontend applications106a,108a, and110amay be of any of the platforms and/or services of the backend system102.

The backend system102may be configured to support infrastructure for one or more backend applications. These application may be associated with different software platforms that are part of or support the backend system102. Client devices106,108, and110can access applications or services of the backend system102via an authentication manager112. The authentication manager112may provide the authentication to each request before it is forwarded to other platforms or services. In some embodiments, the authentication manager112may be authentication instances which may be platform- or service-specific. More generally, the authentication manager112authenticates devices (e.g., client devices106,108, and110) based on, for example, user credentials. For example, the authentication manager112may receive usernames, passwords, pins, passphrases, biometric data, or other user-identifying information. The user authentication data may be stored and/or tracked using tokens, cookies, or other data elements. Upon successful authentication by the authentication manager112, the client devices10,108, and110may access the platforms and/or services of the backend system102.

In some embodiments, the backend system102includes a content collaboration platform114. As explained above, platforms, like the content collaboration platform114, may be accessed upon successful authentication by the authentication manager114. The content collaboration platform114may include multiple services, like the page creation service116and the dynamic object table service118, which allows users to create and share content in real time to enhance collaboration between teams. For example, via the page creation service116, users can create pages (e.g., electronic documents) that can include a variety of content. Content may include user-input text, tables, embedded dynamic object tables, links, in-line frames, pictures, videos, digital content, and the like.

Within the same content collaboration platform114, a dynamic object table service118is provided. The dynamic object table service118and the page creation service116are provided together in the content collaboration platform114to enhance user experience. As explained above, the dynamic object table service118is configured to generate tables. These tables may include linked content from pages (e.g., created via the page creation service116) of the content collaboration platform114. As an example, a user generating a dynamic object table may specify (e.g., in a column of the table) a data category from which to retrieve data, which may be retrieved from database services120. For example, the user may specify the “TITLE” of a page as the data category. An input-selection window, such as a drop down menu, with a listing of pages within the content collaboration platform may be displayed. The user may select a page which then populates a cell of the dynamic object table. In subsequent columns, the user may select different attribute categories, such as status, description, tags, and the like. Once an attribute category is designated to a column, content items from the selected pages are linked (e.g., across rows). In this configuration, content from columns with the selected attribute category automatically populates the attribute from the page. By automatically retrieving attributes from the page, a user can quickly populate the dynamic object table with the desired information. Importantly, the information is kept up to date. Thus, any changes to the underlying attribute shown in the table are updated in the table.

Similarly, the dynamic object table service118can be configured to retrieve content items from other platforms, such as the issue tracking platform122. The issue tracking platform122may manage issue items, such as those relating to IT issues. Each of the issue items may include a series of fields, which provide details on the issue item to reach resolution. For example, fields can include description, hardware, version of software, date initiated, status, assignee, and the like. The dynamic object table service118may be communicatively coupled to the issue tracking platform122. Upon receiving a user input designating a column as issue items from the issue tracking platform122, the dynamic table service118may retrieve content items representing issue items from the issue tracking platform122. Based on linking to the issue tracking platform, the user may select fields from the issue tracking platform122as a column category. Based on the corresponding issue item selected (e.g., across the same row), the selected field may be retrieved and populated within the designated column. Since the issue tracking platform122is not native to the content collaboration platform114, additional authentication and cross-referencing may be performed to accurately retrieve the desired fields and maintain those data items that are populated from the issue tracking platform122updated.

As another example, the dynamic object table service118may be communicatively coupled to additional platforms and services124. For example, the dynamic object table service118may be configured to retrieve content, such as attributes, metadata, fields, from platforms such as Kanban boards, source-code management systems, project management systems, help desks, directories, and the like.

In some embodiments, the dynamic object table service118may be configured to retrieve data from external platforms, such as registered external platforms126,128, and130. Retrieving data from external platforms, such as registered external platforms126,128, and130, enables users to consolidate information into a single interface. In this example, the dynamic object table service118may be communicatively coupled to an external connection service132. The external connection service132may retrieve and/or manage the user's credentials (e.g., via user profiles134) to be able to access the registered external platforms126,128,130. Further, the external connection service132may provide the application programming interface (API) gateway to communicate and/or to retrieve data from the registered external platforms126,128, and130and transmit the data to the content collaboration platform114and/or to the dynamic object table service118.

In the above configuration, the dynamic object table service118can retrieve and update data from platforms that are external to the backend system. Similar to explained above, this allows users to visually consolidate content in one place without toggling to multiple platforms to extract the information.

These foregoing embodiments depicted inFIGS.2A-7and the various alternatives thereof and variations thereto are presented, generally, for purposes of explanation, and to facilitate an understanding of various configurations and constructions of a system, such as described herein. However, it will be apparent to one skilled in the art that some of the specific details presented herein may not be required in order to practice a particular described embodiment, or an equivalent thereof.

Thus, it is understood that the foregoing and following descriptions of specific embodiments are presented for the limited purposes of illustration and description. These descriptions are not targeted to be exhaustive or to limit the disclosure to the precise forms recited herein. To the contrary, it will be apparent to one of ordinary skill in the art that many modifications and variations are possible in view of the above teachings.

FIGS.2A-2Edepict an example graphical user interfaces that enable the creating and adding of content items in a dynamic object table. By creating dynamic object tables in the content collaboration platform, users can specify content, such as pages, from the content collaboration platform and/or content from external platforms and retrieve data (e.g., attributes, metadata) from those content items. Thus, the dynamic object table automatically populates the designated data and automatically updates saving the user time and reducing scrivener errors.

FIG.2Ashows an example graphical user interface of an empty dynamic object table200a. This graphical user interface is part of a content collaboration platform (see, e.g,FIG.3) and may be accessed via a browser within a client device. As depicted, the dynamic object table200amay include a series of columns (e.g., columns202and204) and a series of rows (e.g., rows206,208, and210) having respective cells (e.g., cell212,214) where data is received. Each column (e.g., columns202and204) may have a designated category which defines the type of data to be input in the corresponding column. For example, column202may have the category202adesignated to a “page.” More specifically, the category202amay be a title of a page within the content collaboration platform. As shown in the figure, the designated category202ais represented by the graphical element which indicates to the user the acceptable input within the designated category. Similarly, column204may have the category204adesignated to an attribute category of the page from column202. More specifically, the category204amay be the “TAGS” attribute from the page of column202.

In some examples, the designated category for each column may be user-defined. As depicted, each column may include a drop down menu216. The drop down menu216may provide the user an option to edit fields216a, sort column216b, and filter216c. In some cases, the drop down menu216may appear upon a user hovering over the column204while the view of the menu216may be suppressed when the user is not navigating over the column204.

FIG.2Bshows an example editing menu218for editing each column category. Depending on the category type, such as category types218a,218b, and218c, different options may be presented to the user. Each category enables a user to specify a content type (such as a page in a content collaboration platform, an issue item in an ITS) from which to pull data and what data attribute to retrieve. One category type may be attribute category218a, which is configured to retrieve attributes from the pages from the content collaboration platform linked to the row (or linked via other criteria). For example, an attribute category218amay include a page link, page status, page label, and page details. In some embodiments, the attributes are automatically updated in the cell of the column corresponding to the update. In other words, after specifying a “PAGE” (from the content collaboration platform), the attributes available to be retrieved from pages are presented (e.g., listed as page link, page status, page label, page details, in the figure).

As another example of a category type may be a field218bof an issue tracking system (ITS). Each of the fields (e.g., ITS issue, ITS issue detail) may be retrieved from the ITS and are linked to specific issue items input in a column of the dynamic object table. Similarly, the value of those fields can be updated automatically within each cell of the dynamic object table.

As another example, the user may elect the category type218c“FORMAT TYPE” to manually input data in the cells and format the manually-input data according to the selected category type. For example, upon selecting this category (e.g., tag, user, or link), user inputs are automatically formatted in accordance with the selection. As another example, a user typing a name in a cell may select from a drop down list of existing users and, if the user is not found, the dynamic object table may prompt the user to create a user card within the content collaboration platform. As another example, if the user is not found, the dynamic object table may generate an invitation dialog to invite the prospective user into the content collaboration platform (e.g., as a guest user, as a tenant user).

FIG.2Cshows an example graphical user interface menu220. As depicted, a user may link the selected category type (e.g., the “PAGE STATUS” attribute category220a) to particular columns. In this example, the user may choose from a menu220b(e.g., a drop down menu) to select the column (e.g., “TITLE” column) which is configured to receive content items from pages of the content collaboration platform as input.

In some embodiments, if the user changes a type (e.g., the “PAGE STATUS”), the user may be presented with a notification and/or warning220c. Because the values and/or strings within columns are automatically populated, changing the attribute designated to the column results in replacement of the data with the designated attribute. Due to this configuration, a user can easily toggle between attributes in a column and the data may be re-populated accordingly.

In some cases, as shown inFIG.2C, the user may also be presented with the option to enable editing220d. This option may allow a user to edit values of the cell directly within the dynamic object table. In this configuration, editing a value of a cell (which has been automatically populated) results in the underlying data of the page to also be updated. Thus, a user may quickly update a status of one or multiple cells without navigating to the particular page and manually editing it.

FIG.2Dshows an example graphical user interface of the dynamic object table200bincluding the selections from the menus shown inFIGS.2B and2C. As depicted, the first column202is configured to input content items from pages in the content collaboration platform. Accordingly, upon selection of a cell, such as cell212, a menu222may be displayed that includes a selection of content items (e.g., content items222a-d). Each of the content items222a-dcorrespond to a page of the content collaboration platform. In some cases, as depicted, the pages may be selected within the menu based on a last viewed criteria. In other embodiments, the pages may be selected to be display based on other criteria, including recently edited, favorites, alphabetical order, created by, tagged in, and the like. In some examples, a predictive algorithm, a machine learning algorithm, or the like may be used to generate a recommendation of the pages. For example, based on user logs, dynamic object table title, recently used pages, and the like, a set of recommendations for pages may be generated and displayed as content items within menu222.

FIG.2Eshows an example graphical user interface of the dynamic object table200cincluding a selection of a content item222cfromFIG.2D. As depicted, once a user selects a content item (e.g., content item222c), a graphical object224is inserted into cell212. In some examples, the graphical object224may be selectable and configured to redirect the user to the page that corresponds to the graphical object (e.g., the DATABASES GTM PLAN page). After inserting graphical object224, the contents of cell214automatically populate in accordance with the attribute category (e.g., PAGE STATUS) selected inFIG.2C. More specifically, data from the DATABASES GTM PLAN page is retrieved to populate the PAGE STATUS of cell214. In some embodiments, additional formatting, such as a color status indicator, may be retrieved and displayed within the cell. In some examples, when the status of the page changes, the content in cell214is updated in accordance with the change of the underlying page. In some cases, the cell may be highlighted to indicate to the user that a cell has been updated recently.

FIG.3depicts a graphical user interface300of a content collaboration platform with dynamic object tables. As depicted, the content collaboration platform graphical user interface300may include two main regions: a navigational panel302and a content panel304. The navigational panel302includes a page tree306having elements (e.g., elements308,310,312,314) that correspond to content from both pages and from dynamic object tables. Each of the elements308,310,312,314, may be arranged hierarchically. For example, element310(corresponding to a dynamic object table) may have a parent relationship with respect to element312(corresponding to a page). While a dynamic object table is shown as a parent element, pages may also be parent elements with respect to dynamic object tables and with respect to other pages. In some embodiments, the hierarchical arrangement of the page tree306is user-defined. The page tree306may list elements corresponding to pages and dynamic object tables within a space (e.g., based on a project, a user, and the like).

As mentioned above, because page and dynamic object tables are native to the content collaboration platform, both elements are displayed concurrently in the navigational panel302. In some embodiments, elements corresponding to pages, such as elements308and312, may have different graphical indicators than elements corresponding to dynamic object tables, such as elements310and314. These different graphical indicators help indicate to the user the element type. Each of the elements (e.g., elements308,310,312,314) may be selectable by the user. Upon selecting an element, such as element310, the contents of the element are displayed in the content panel304.

In some embodiments, a user may create new pages and/or dynamic object tables from the navigational panel302. For example, the user may select expandable menu316which displays a content creation menu318. The content creation menu318may include options to create native content, such as pages318aand dynamic object tables318b. After a user selection of an item from the content creation menu318, a new element is created within the navigational panel302, which is draggable to establish a parent/child relationship, and a blank content page or table is displayed within the content panel304.

As described above, the content panel304displays content from pages or dynamic object tables. The content of the dynamic object tables may have assigned categories which indicate where to pull content items from to automatically populate the table. As depicted inFIG.3, content from a dynamic object table, corresponding to element312of the page tree306, is displayed. As described as toFIGS.2A-2Eabove, each column of the dynamic object table may correspond to a category (such as a format type, an attribute category, a field) which defines where data is drawn from. For example, column320corresponds to an assignee format type which draws data from a user database of the content collaboration platform and/or from other platforms within an enterprise's system; column322corresponds to a page which draws information from particular documents in the content collaboration platform; column324corresponds to an attribute category which draws data from the page from column322; column326corresponds to an issue item and draws data from an ITS; and column328corresponds to a field from the issue item which draws in column326. As explained above, the columns whose underlying content is retrieved from native and non-native sources, may be populated by the dynamic object table service and updated in accordance with any changes to the specified attribute and/or field, respectively. In some cases, as shown for column326, issue items may displayed with an identifier (e.g., issue title or other identifying information) as well as additional information of the issue item. For example, issue status may be shown within the graphical object of the issue item (e.g., graphical object326a). The issue status may provide users additional information that is updated to keep the user appraised of the issue status.

For columns326and328, relating to an ITS, a system determines that this is a non-native application and, accordingly, authentication of the user is confirmed prior to retrieving data from the ITS. In some examples, user credentials are retrieved (e.g., via a pop-up window for the user to enter credentials). In other examples, an authentication token or other authentication protocol is used to validate user permissions in the ITS. Regardless of how the user is authenticated, based on the permissions of the user in the ITS, the issue items and underlying data within columns326and328may be displayed or restricted in the dynamic object table. In the case the issue item and underlying data is restricted to the user, the dynamic object table may display an error message or data may not be displayed as to the items (e.g., cells within columns326and328) to which the user does not have access. Thus, a user can still take advantage of the dynamic object table without viewing restricted content. In other embodiments, data for the ITS is populated and viewed based on the dynamic object table's creator access and certain fields may be visible regardless of other users' access to the ITS. In this embodiment, issue items may not be selectable to redirect to the ITS and visible fields may be limited to fields without sensitive information that may require authentication.

Back toFIG.3, within the content panel304, the dynamic object table may include a table menu330. The table menu330may be configured to filter, sort, search, change views, and so on. A filtered or sorted view of the dynamic object table may be saved and, in response to a user selection of selectable item332, the user may select a previously-saved view. In some examples, the saved views may be saved for any user to access.

FIGS.4A and4Bshow example graphical user interfaces400that depict inserting a dynamic object table in a page of the content collaboration platform. Unlike dynamic object tables, pages in content collaboration platforms can include a variety of different data items, such as text408. Pages can also include embedded items from native pages or dynamic object tables, in-line frames, links, videos, multimedia, and the like. As shown inFIG.4A, a user may access a page via the navigational panel402by selecting element406within the page tree. Upon selection of element406, page content is displayed in the content panel404. In some cases, users are able to edit the page (e.g., transition to an “edit mode”). In edit mode, a user may input a link410, such as a URL, corresponding to the dynamic object table.

As shown inFIG.4B, upon adding the link to the dynamic object table, the dynamic object table412may be automatically embedded within the page. Because the dynamic object table412is native to the content collaboration platform, the embedded item may have the same functionality as the standalone dynamic object table item. For example, in edit mode of the page, a user may edit the content of the cells of the dynamic object table412. These edits may be saved and updated within the dynamic object table. Thus, if the user toggles to the dynamic object table element414, the edited content will be displayed.

Moreover, in some embodiments, a user may edit content relating to an attribute category within the dynamic object table embedded within the page. For example, a user may update cell412ahaving a “NOT STARTED” status to “IN PROGRESS.” In response to the edit input from the user, the status of the underlying page, HELP DOC TASK 4, may be automatically updated.

For non-native items, such as those relating to an ITS, an edit input may be locked from editing. In some embodiments, non-native items that have been manually edited may display a warning or other graphical indication to the user that the data has been manually input and is not being updated. In some embodiments, editing of non-native items may be enabled (e.g., via an API call).

FIGS.5A-5Dshow example graphical user interfaces500to illustrate how a user may apply different filters to the embedded dynamic object table within the page. As explained above, the graphical user interface may include a navigational panel502and a content panel504which provides the user navigational and/or viewing options. As shown inFIG.5A, a user may select different filter criteria from a filter menu506. For example, the filter menu may include a selectable sub-menu506awhich allows a user to select a column of the dynamic object table508under which to apply a filter criteria. As shown inFIG.5B, once the filter criteria is applied, a filtered dynamic object table512is presented and the filter parameters may be saved in view option510a. In an edit mode of a page, different filter criteria may be added by a user. When the page is in view mode (e.g., not configured to be edited), users may leverage existing filter criteria views510previously saved during the edit operation. In some embodiments, additional filter criteria may not be applied to other users' views while in view mode.

FIG.5Cshows an example view of a filtered dynamic object table512. As depicted, the filtered dynamic object table512shows only the filtered entries according to the saved view option510a. While this view is shown in this page, the underlying dynamic object table embedded in the page is not altered by the page view. Accordingly, other users can use the dynamic object table in its full state without changing the view of pages where the dynamic object table is embedded. An example of this is depicted inFIG.5D. As shown inFIG.5D, a user may navigate to a different page, such as page514ROLLOUT PLAN. In this example, the page514may also include the dynamic object table fromFIG.5Aexcept that a different filtering criteria has been applied. Accordingly, the second filtered dynamic object table516applies a READY FOR REVIEW criteria (saved in READY view510b) and thus only items that satisfy the criteria are displayed. When a user toggles between the pages ofFIGS.5C and5D, the different views with the different filtering criteria are preserved in their respective pages.

FIG.6shows an example graphical user interface600of a content collaboration platform. In this graphical user interface, the page HELP DOCUMENT TO-DO PAGE is a parent element without a hierarchical relationship with respect to the underlying dynamic object table element603within a page tree606of the navigational panel602. More specifically, the pages with embedded dynamic object tables may be in different spaces from the underlying dynamic object table and/or in the space without direct parent/child relationship with respect to the table. For example, as depicted, in some examples, a dynamic object table608may be embedded and displayed within the content panel604of a page regardless of its hierarchical relationship with element603. This configuration allows users to freely configure a space, pages, and the element tree without affecting the automatic population of the dynamic object table. As configured, in some embodiments, changes of a hierarchical relationship of a page does not alter the link in the dynamic object table. For example, if a user moves “HELP DOC TASK 1” from its current location within the page tree, the dynamic object table is configured to remain linked to the page regardless of its new location.

FIG.7shows a sample electrical block diagram of an electronic device700that may perform the operations described herein. The electronic device700may in some cases take the form of any electronic device, including client devices, and/or servers, or other computing devices associated with the system100fromFIG.1. The electronic device700can include one or more of a processing unit702, a memory704or storage device, input devices706, a display708, output devices710, and a power source712. In some cases, various implementations of the electronic device700may lack some or all of these components and/or include additional or alternative components.

The processing unit702can control some or all of the operations of the electronic device700. The processing unit702can communicate, either directly or indirectly, with some or all of the components of the electronic device700. For example, a system bus or other communication mechanism714can provide communication between the processing unit702, the power source712, the memory704, the input device(s)706, and the output device(s)710.

The processing unit702can be implemented as any electronic device capable of processing, receiving, or transmitting data or instructions. For example, the processing unit702can be a microprocessor, a central processing unit (CPU), an application-specific integrated circuit (ASIC), a digital signal processor (DSP), or combinations of such devices. As described herein, the term “processing unit” is meant to encompass a single processor or processing unit, multiple processors, multiple processing units, or other suitably configured computing element or elements.

It should be noted that the components of the electronic device700can be controlled by multiple processing units. For example, select components of the electronic device700(e.g., an input device706) may be controlled by a first processing unit, and other components of the electronic device700(e.g., the display708) may be controlled by a second processing unit, where the first and second processing units may or may not be in communication with each other.

The power source712can be implemented with any device capable of providing energy to the electronic device700. For example, the power source712may be one or more batteries or rechargeable batteries. Additionally, or alternatively, the power source712can be a power connector or power cord that connects the electronic device700to another power source, such as a wall outlet.

The memory704can store electronic data that can be used by the electronic device700. For example, the memory704can store electronic data or content such as, for instance, audio and video files, documents and applications, device settings and user preferences, timing signals, control signals, and data structures or databases. The memory704can be configured as any type of memory. By way of example only, the memory704can be implemented as random access memory, read-only memory, Flash memory, removable memory, other types of storage elements, or combinations of such devices.

In various embodiments, the display708provides a graphical output, for example, associated with an operating system, user interface, and/or applications of the electronic device700(e.g., a chat user interface, an issue-tracking user interface, an issue-discovery user interface, etc.). In one embodiment, the display708includes one or more sensors and is configured as a touch-sensitive (e.g., single-touch, multi-touch) and/or force-sensitive display to receive inputs from a user. For example, the display708may be integrated with a touch sensor (e.g., a capacitive touch sensor) and/or a force sensor to provide a touch- and/or force-sensitive display. The display708is operably coupled to the processing unit702of the electronic device700.

The display708can be implemented with any suitable technology, including, but not limited to, liquid crystal display (LCD) technology, light emitting diode (LED) technology, organic light-emitting display (OLED) technology, organic electroluminescence (OEL) technology, or another type of display technology. In some cases, the display708is positioned beneath and viewable through a cover that forms at least a portion of an enclosure of the electronic device700.

In various embodiments, the input devices706may include any suitable components for detecting inputs. Examples of input devices706include light sensors, temperature sensors, audio sensors (e.g., microphones), optical or visual sensors (e.g., cameras, visible light sensors, or invisible light sensors), proximity sensors, touch sensors, force sensors, mechanical devices (e.g., crowns, switches, buttons, or keys), vibration sensors, orientation sensors, motion sensors (e.g., accelerometers or velocity sensors), location sensors (e.g., global positioning system (GPS) devices), thermal sensors, communication devices (e.g., wired or wireless communication devices), resistive sensors, magnetic sensors, electroactive polymers (EAPs), strain gauges, electrodes, and so on, or some combination thereof. Each input device706may be configured to detect one or more types of input and provide a signal (e.g., an input signal) corresponding to the detected input. The signal may be provided, for example, to the processing unit702.

As discussed above, in some cases, the input device(s)706may include a touch sensor (e.g., a capacitive touch sensor) integrated with the display708to provide a touch-sensitive display. Similarly, in some cases, the input device(s)706include a force sensor (e.g., a capacitive force sensor) integrated with the display708to provide a force-sensitive display.

The output devices710may include any suitable components for providing outputs. Examples of output devices710include light emitters, audio output devices (e.g., speakers), visual output devices (e.g., lights or displays), tactile output devices (e.g., haptic output devices), communication devices (e.g., wired or wireless communication devices), and so on, or some combination thereof. Each output device710may be configured to receive one or more signals (e.g., an output signal provided by the processing unit702) and provide an output corresponding to the signal.

In some cases, input devices706and output devices710are implemented together as a single device. For example, an input/output device or port can transmit electronic signals via a communications network, such as a wireless and/or wired network connection. Examples of wireless and wired network connections include, but are not limited to, cellular, Wi-Fi, Bluetooth, IR, and Ethernet connections.

The processing unit702may be operably coupled to the input devices706and the output devices710. The processing unit702may be adapted to exchange signals with the input devices706and the output devices710. For example, the processing unit702may receive an input signal from an input device706that corresponds to an input detected by the input device706. The processing unit702may interpret the received input signal to determine whether to provide and/or change one or more outputs in response to the input signal. The processing unit702may then send an output signal to one or more of the output devices710to provide and/or change outputs as appropriate.

As used herein, the phrase “at least one of” preceding a series of items, with the term “and” or “or” to separate any of the items, modifies the list as a whole, rather than each member of the list. The phrase “at least one of” does not require selection of at least one of each item listed; rather, the phrase allows a meaning that includes, at a minimum, one of any of the items, and/or at a minimum one of any combination of the items, and/or at a minimum one of each of the items. By way of example, the phrases “at least one of A, B, and C” or “at least one of A, B, or C” each refer to only A, only B, or only C; any combination of A, B, and C; and/or one or more of each of A, B, and C. Similarly, it may be appreciated that an order of elements presented for a conjunctive or disjunctive list provided herein should not be construed as limiting the disclosure to only that order provided.

One may appreciate that although many embodiments are disclosed above, the operations and steps presented with respect to methods and techniques described herein are meant as exemplary and accordingly are not exhaustive. One may further appreciate that alternate step order or fewer or additional operations may be required or desired for particular embodiments.

Although the disclosure above is described in terms of various exemplary embodiments and implementations, it should be understood that the various features, aspects, and functionality described in one or more of the individual embodiments are not limited in their applicability to the particular embodiment with which they are described, but instead can be applied, alone or in various combinations, to one or more of the embodiments of the invention, whether or not such embodiments are described and whether or not such features are presented as being a part of a described embodiment. Thus, the breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments but is instead defined by the claims herein presented.

The foregoing examples and description of instances of purpose-configured software, whether accessible via API as a request-response service, an event-driven service, or whether configured as a self-contained data processing service are understood as not exhaustive. In other words, a person of skill in the art may appreciate that the various functions and operations of a system such as described herein can be implemented in a number of suitable ways, developed leveraging any number of suitable libraries, frameworks, first or third-party APIs, local or remote databases (whether relational, NoSQL, or other architectures, or a combination thereof), programming languages, software design techniques (e.g., procedural, asynchronous, event-driven, or any combination thereof), and so on. The various functions described herein can be implemented in the same manner (as one example, leveraging a common language and/or design), or in different ways. In many embodiments, functions of a system described herein are implemented as discrete microservices, which may be containerized or executed/instantiated leveraging a discrete virtual machine, that are only responsive to authenticated API requests from other microservices of the same system. Similarly, each microservice may be configured to provide data output and receive data input across an encrypted data channel. In some cases, each microservice may be configured to store its own data in a dedicated encrypted database; in others, microservices can store encrypted data in a common database. Whether such data is stored in tables shared by multiple microservices or whether microservices may leverage independent and separate tables/schemas can vary from embodiment to embodiment. As a result of these described and other equivalent architectures, it may be appreciated that a system such as described herein can be implemented in a number of suitable ways. For simplicity of description, many embodiments that follow are described in reference to an implementation in which discrete functions of the system are implemented as discrete microservices. It is appreciated that this is merely one possible implementation.

It may be further appreciated that a request-response RESTful system implemented in whole or in part over cloud infrastructure is merely one example architecture of a system as described herein. More broadly, a system as described herein can include a frontend and a backend configured to communicably couple and to cooperate in order to execute one or more operations or functions as described herein. In particular, a frontend may be an instance of software executing by cooperation of a processor and memory of a client device. Similarly, a backend may be an instance of software and/or a collection of instantiated software services (e.g., microservices) each executing by cooperation of a processor resource and memory resources allocated to each respective software service or software instance. Backend software instances can be configured to expose one or more endpoints that frontend software instances can be configured to leverage to exchange structured data with the backend instances. The backend instances can be instantiated over first-party or third-party infrastructure, which can include one or more physical processors and physical memory devices. The physical resources can cooperate to abstract one or more virtual processing and/or memory resources that in turn can be used to instantiate the backend instances.

The backend and the frontend software instances can communicate over any suitable communication protocol or set of protocols to exchange structured data. The frontend can, in some cases, include a graphical user interface rendered on a display of a client device, such as a laptop computer, desktop computer, or personal phone. In some cases, the frontend may be a browser application and the graphical user interface may be rendered by a browser engine thereof in response to receiving HTML served from the backend instance or a microservice thereof.