Multiple Relationships Break Views in Smart Folders

Description

If you use a smart folder to show a drill down of OrganizationMeetings, where you have a View added below Organization to show all of Tasks associated with Organization, you will not be guaranteed to see all of Tasks associated with Organization. You can only see all of Tasks associated with Organization if there is only a single relationship between Tasks and Organization. If more than one relationship exists, then Fibery seems to choose one of the relationships to use for filtering the view, which cannot be controlled (is it alphabetical?). This results in uncertain behavior of Fibery.

This same behavior of choosing a relationship for filtering might have some impact on hierarchical lists, but haven’t evaluated that yet.

Use Case

So, here is the data model I have:

  • Organization
    • Tasks (Combined): Collects all manually assigned tasks and tasks associate through meetings into one relationship via auto-linking (1…*)
    • Tasks (Manual) (1…*)
    • Tasks (via Meeting (Participate)): Lookup through meeting for tasks likely associated with the organization (1…*)
  • Task
    • Assignees
    • Organization (combined): This field uses automapping to lookup the Organization (Manual).Name if it exists, then falls back to Organization (via Meeting Organization (Participating)) (1)
    • Organization (via Meeting Organization (Participating)) (1)
    • Organization (Manual) (1)
  • Meeting
    • Tasks (1…*)
    • Organization (Participating) (1)
  • User
    • Organization (1)
    • Tasks (1…*)

My workflow is to take notes for the meeting in the meeting description and to create linked Tasks to the Meeting by highlighting the text and choosing to create a Task. Because I am working in a meeting, the Task is automatically associated with the Meeting. However, I might get a random one-off task for that Organization. So, I have another relationship to allow direct assigning a task being for an Organization.

I have all the relationships setup, working how I would expect them to, except they seem to confuse Fibery.

Smart Folder (no filters applied):
This is configured to go from all Organizations → Meetings. I then added a board view below Organization and set to show up for all Organizations (Open Tasks). This has been built so I can show all Marketing-related tasks when I’m having a meeting with Marketing, no matter if it was manually created or created in a previous meeting.

View within Smart Folder for Tasks Type
You’ll see that there is an implicit filter applied to filter to Tasks (Manual), which is one of the 3 relationships I defined above between Tasks and Organization. This is no way that I can tell to get Fibery to use a specific relationship for filtering.

Missing Tasks

You’ll also see that a single Task is showing up without any other filtering applied in the above image. However, if I open the Marketing entity, you can see that only one Task is associated with that specific relationship, but there are 14 Tasks I have with the Combined relationship field that should be showing up.

I believe I described this issue in CHANGELOG: February 25 / Hierarchical Lists (beta), some improvements, but it wasn’t created as a stand-alone issue. I encountered this limitation again today, so wanted to follow-up.

App Details
I can’t seem to share this template in a way that maintains the formulas and smart folder configuration I have in place. Since the formulas don’t seem to be shared with the app template, it ended up working correctly for me based on the order that the fields were added? It seems to pick the first relationship you see in the Type editor view. Meetings App

Here are the details.

Organization Name Combined (Recipient) Formula: This uses a manually assigned organization name first, otherwise uses the organization name from the Meeting. This field is then used in another relationship to automap manual assigned tasks and tasks inferred from meetings into one relationship field.

If(IsEmpty([Organization (Manual)]) = false,[Organization (Manual)].Name,If(IsEmpty(Meeting) = false,Meeting.[Organization (Participating)].Name,""))

1 Like

My hypothesis is that the field that fibery is using the last updated or created relationship, or something like that. This might explain why my views were working previously, but then randomly broke when I made some updates to the relationships to simplify things a bit. I was about to start a meeting with our Marketing team when I realized all of the Tasks that were showing before were now missing :grimacing:.

After exporting this as a shared app, then setting it back up in another workspace, Fibery chose a different and correct relationship to use for filtering. I loaded the shared Meetings app and fixed the broken links/formulas and ended up with Fibery choosing the correct relationship i wanted to use below. In our other workspace we are actually using it chooses Tasks (Manual), while below it chose Tasks (For Organization).

Compare to the Original Workspace

Hi there! I’m kind of in charge of smart folders and context views concept. We are still exploring this idea, so your feedback is really important.

The initial assumption was that several references between the same types are a quite rare case, so the algorithm chooses the shortest path between two types if it exists and then applies the filter. If there are many paths with the same length, honestly, we just choose randomly.

In the last update, we added a more obvious explanation of what filter is applied, but I know that it’s still not enough. In the ideal world, it must be the option to choose manually what reference to use. And I really want to provide this opportunity in the near future.

Does this solution sound good for you or you would like to see all the Tasks related to Organization together?

2 Likes

Hi, thanks for looking into this. Yeah, providing the selection as an option would definitely solve this issue for me. I like having some intelligence in apps like this, but if there is a chance that the wrong choice could be made, having an option to manually select is always appreciated. This might change when more automation is supported natively within Fibery, but I find that I use this pattern often to infer relationships, while at the same time providing a way to override or set the relationship directly.

Otherwise, I love smart folders and context views for their ability to configure a consistent set of views for all the entities we might add in the future. My general suggestion would be to always expose any kind of special behaviors associated with them so it can be manually configured or disabled. In this case I want to show a specific relationship, but someone else might find it useful to just disable the implied filtering via a relationship entirely for a context view.

I wanted to mention that I also have a ticket Add Documents and Views to Root of Smart Folder that would greatly enhance them in my use case. I like how I can click on the entity (e.g. Marketing) within the smart folder and I see all the information about Marketing. However, there is no way to provide similar contextual information at the root level of the Smart Folder.

Thanks again. I think Smart Folders are one of the stand-out Fibery features. They remind me of queries within Roam, in that they allow you to have a dynamic query to help in drilling into relevant parts of the data. I was going back and forth between using Coda and Fibery, but one of the turn offs was just that with Coda you end up having to manually maintain navigation and views like this. So, this will be a big time saver if these little limitations are addressed.

1 Like

I wanted to bump this thread. I’ve run into this issue in multiple places now, and it really hurts usability when there is only a random chance that a feature will work or not.

1 Like

Seems like another example of a relevant post you spent a lot of time on getting not much respect from the Fibery team…really a shame. I happen to have experience with online communities, and there is one overriding rule of thumb when running one: If you expect to have a successful community, you NEVER fail to respond to those taking time to post. If you can’t do it yourself, you need to find some volunteer moderators, or simply zealots for your community, that will do this, so your users feel welcome and heard. They are taking their valuable time to sign up, post, and thereby enhance YOUR community. They will ultimately turn on you if you don’t show you appreciate them.

I’ve voiced this sentiment many times here in the forum, and I have concerns that others will become frustrated as well if this trend isn’t changed.

1 Like

We are fixing this problem already.

1 Like

Just merged to the master, so the feature will be available in prod in 1-2 weeks.

1 Like

Thanks a bunch. I accessed one of my views by chance that was broken and the dropdown was available to fix it.

Just wanted to check, but I assume the one that I chose that is the last in the list of just “Tasks”, means that any task that is associated with my organization (Product) will show up. It appears to be the case, but just wanted to make sure I am interpreting that correctly.

For reference, here is my meetings model for anyone trying to understand what is being listed there.

The last one is for Lookup that you most likely have in Task.

Hello, again! Just want to make sure, that your needs were covered with this fix.

Hi,

I can’t seem to get the drop-down to select witch relation to filter by on context views (lists OR boards). Has the feature been disabled?

I tested it creating two DBs: DB Topics and DB Articles. They have two n-to-n relations, just so I can teste the feature. However, the dropdown doesn’t appear:

Neither can I see the option to use lookups as filters for the context view