Entity view customization

Hey guys,

I was wondering, like in Airtable, when you create a view you can edit the record view as well. In Fibery the entity view is universal for all views. A workflow that really is limited now are our forms.

We would like to create records for all the forms in one DB. But it gets really confusing when you open the record.

Is this something that is coming?

Could you explain the question differently, I am not sure I’m getting the problem…

Related: Individual Layouts for a node, hide fields etc

What I mean is 1 database with multiple forms but the entitiy view changes depending on the view. Like in Airtable:

CleanShot 2023-02-05 at 14.09.17

1 Like

If the entity-view variation to be displayed can be determined by a field/formula/filter, including WHO is viewing, and what groups/roles they belong to - that would be amazing :grinning:
and yes, it would go a long way to answering my need for polymorphism.


Some old related threads:

2 Likes

We want the same and we are facing the same problem.

We have one ‘Form’ database that we linked to the contact database.

Let’s say you create 3 different forms.

  • one to onboard a client
  • one to gather feedback
  • one with dietary requirements for an event

In the current situation you need to add all fields to the form database.

If you open the form entity you’ll see the fields of all 3 forms. Which makes it really messy.

Unfortunately that’s one of the reasons that my clients can’t use Fibery’s form functionality.

Yes that would be awesome and unlock so much possibilities in process automations :partying_face:

1 Like

Why do you use a single ‘form’ database to collect data for three different purposes?

Why not have an ‘client’ db, a 'feedback db, and a ‘dietary requirements’ db, each with their own form?

What if you have 10 forms? 10 databases?

1 Like

Well, if you need to collect 10 distinct types of data, then why not?

I want an overview on contact level. The contact database already has 20+ relations currently.

And we have all kind of automations (link the correct contact, trigger the correct workflow, auto create tasks based on formula category) and permissions.

I don’t want to duplicate that.

When forms are integrated in the CRM solution then you really only want one form database.

So currently our clients still use Google forms, which we then send to Fibery via workarounds. Which sucks :sweat_smile:

2 Likes

@Chr1sG The most common use case for this is for intake of multiple entities at the same time.
Example: a new project/client form should be concise and easy for the end user. It may collect Contact, Company, and Project data at the same time.
In HubSpot, NetSuite, or Salesforce you would create a single form with questions that map back to all three databases.
In database apps, a third-party app or a new data type can collect all values in one place then trigger a create or update workflow to record data in multiple databases.

2 Likes

This is a different case I think.
I agree that having a single form that allows collecting data of different types would be useful, but @YvetteLans’s examples (onboard a client, gather feedback, request dietary requirements) seem to be three different forms to be used on three different occasions (the data is unconnected and not collected at the same time). Which was why I was digging into why she used a single ‘form’ entity.
Or perhaps she did mean that all three pieces of information would be collected at the same time? :person_shrugging:

@Chr1sG - a possible Forms solution for “create-and-link” related entities:

  • In Forms currently, a relation field just shows a dropdown to select an existing entity.
  • Why not add a :heavy_plus_sign: button there to allow the user to create and link a new entity?
  • For a to-many relation, the button could be used multiple times.
  • The form creator/editor can specify an existing Form for the related Type that will be presented when the user wants to create & link a new entity with the :heavy_plus_sign: button.
1 Like

Hi Chris,

I don’t know if I understand you correctly, but I only want 1 Form database.

Because:

When I want to create 3 (or 10) forms, then I need to add all different fields from those 3 forms in that one Form database.

So the entity view will look like this

(but then imagine that you have 3 different forms with each 10 questions)

That’s really messy, right?

The only solution is to create a database for each form but as mentioned above, that’s far from ideal (since you then have 3 ‘form databases’ linked to the contact database)

Or you need to leave the form entity view empty and only create views for each form where you then decide which columns you want to show and hide.

But that’s also weird since we do have other relations in that form (like link to task database, note database etc.)

I understood what you were describing
but when you say this:

it is a statement about what you think the solution should be (i.e. 1 ‘form’ database which is used for all data collection)

Whereas I am trying to understand what the underlying need is, since it may be better solved with a different solution.

To me, a ‘form’ is not something that should be a database. A ‘form’ is a method of collecting data. So is entity view in fact (as well as being a method of displaying data).

The decisions about what should be a database will normally be informed by the data that is to be collected/managed, not by the means of collecting it/displaying it.

So for example, you write that

but is it really ‘the only solution’?

At the moment, we should look at why you couldn’t have a Contact database, and then have 3 different forms connected to it, one form for each distinct purpose (onboarding, gathering feedback, recording dietary requirements)*

*assuming that these pieces of data should logically all be part of the contact db, rather than linked dbs

I can imagine that when you are collecting these pieces of information, there are occasions when you actually want to update an existing entity, rather than create a new entity each time new information is submitted, so perhaps we should dig into that.

So…
Is there a need for a mechanism to allow external users to submit information, to be associated with an existing record? i.e. an ‘update’ submission. Probably yes.
Does this have to be via a form? Who knows?
What if external users could have limited access to their own corresponding Contact entity in Fibery, so that they can add info/make changes (in a limited way) at any time?

Maybe form view is useful because you can make fields ‘required’ (which you can’t on entity view) so perhaps we need to think about a mechanism to tie a form submission to an existing entity? Or maybe think about ‘required’ fields on entity view?

Anyway, my point is that we should think about what is the underlying need, rather than directly naming a specific preferred implementation.

And with respect to @helloitse’s comment, it seems like she is asking for the ability for a user to submit data that is to be used across more than one database (Company, Contact and Project).
Which seems not to be the same as your need.

Agree, thanks for asking!

I think there is a little misunderstanding.

Currently the information is only saved in the form entity. So:

  • Form has name, address.
  • Based on some logic we then fill in that data in a contact entity (or not since we don’t always want to overrule data).

Why? Because not all fields that a user fills in belongs to 1 database.

:point_up_2:t2: So I do think we have the same need.

Let me clarify our situation with examples and use cases.

Maybe our set-up is wrong/not logic.

Currently there are a lot of workflows/processes attached. In our workspace the workflow is more important than which data is collected/managed.

Automations

  • A form is filled in by a human. We link the form to a contact.
  • Each form has a category. User can create a ‘task template’ for each category. When a new form is filled in, then auto tasks will be created based on the form category.
  • Sometimes the submitted form contains information that can be handy as inspiration for content, such as a blog post or sharing a review online.

Braindump & inbox

  • New submitted forms are on the ‘braindump & inbox’ page.
  • User will then decide what to do with the form if that’s not yet automatically done via the above automations.

Use cases

  • Ideally we want to gather as much data as possible via forms.
  • We sell 3 products. For each product we have different forms. Some examples:
  • Weekly check in for for a coach program
  • CRM stuff (name, address, etc.)
  • Special occasion stuff (dietary requirements for an event etc.)
  • Onboarding forms for each product
  • Review forms for each product
  • Feedback forms for each product

Current set-up

  • 1 Form database
  • We link form entities to contacts, products, client projects, etc. So that those entity pages are clear and compact (which is already a challenge since there are so many linked databases)
  • All information is only in the form entity available.

So I don’t have a ‘feedback’ database, ‘review’ database, etc. You can easily gather information for 20 different purposes (even way more but let’s say 20).

If I create a database for each and every purpose, I then:

  • Need to link all those databases to the Braindump & inbox page where a user processes the forms.
  • I need to create workflows/automations for each and every database.
  • When I want to auto create tasks and link contact, product, client projects, I need relations with those 20 databases.

etc.

Besides workflow/process and automations, it also feels natural to just have one form database. So that you will see:

  • On a contact level all forms that have been submitted for that contact (either during onboarding, weekly check-in, review). Without having 20 containers extra on that page.
  • On a product level all feedback, reviews, etc. In only one container.
  • Same for client projects, event page, etc.

But I’m really curious what you think the set-up should be. We don’t use forms to update existing records at the moment; only to gather information.

1 Like

I get what you mean that you don’t update existing records, and only ‘gather information’
but when you list your use cases, some of them sound like they are used to gather information that will augment an existing record, especially since you talk about

My point is, that if you’re collecting dietary information, there is a difference between

  • collecting a contact’s details (for the first time) including their dietary preferences, and
  • collecting the dietary preferences for a contact (who already exists)

In both cases, you are only gathering ‘new information’, but in the second case, you need to not only collect the new information about dietary preferences, but also who they relate to. The dietary information is new, but the who part is not new.

Given Fibery’s current limitations, someone might think,

"Ideally I would have fields on the Contact database for dietary preferences, but I can’t use a form view to populate these fields for an existing Contact, so I can do type 1 data collection, but not type 2.
To work around this, I will create a Dietary prefs db, linked 1:1 to Contact db. I will use an email field in the Dietary prefs db, and use auto-linking to connect Dietary prefs to a Contact.
I’ll make a dietary prefs form, and any time someone submits a form, they need to remember to include in the form submission their email address.
In that way, it will get linked to the right Contact"

Now, what if they also want to collect info on a Contact’s pet.
They do the same thing - create a Pet db, link it to Contact, set up a form view and require an email for any submission, and auto-relate.
…
and so on.

But this isn’t the only way to do it.

Someone else might approach this challenge and think,

“It’s crazy having all these extra dbs, so I will add the needed fields on the Contact db (for dietary prefs, for pets, and so on) and then create a single db, called Auxiliary info which also contains all these fields. It will have multiple form views (one for each type of submission) and when these submissions are received, I will use automations to transfer data from the Auxiliary info entity fields to the Contact entity fields”

This sounds a bit like what you’re doing, from what I understand, and I don’t blame you for doing that, if it is the least worst workaround in your workspace.
I am not even sure I could ever fully understand your clients’ needs well enough to be able to determine all the pros and cons of any given workaround :slight_smile:

Perhaps for you, it feels intuitive that a form is type of data, whereas for me, a form is a data entry mechanism :person_shrugging:
So my toes curl when I read

:grimacing:

Having said all that, as far as I understood this topic, as started by @StevenSkillit the original problem is how to display (and be able to edit) data from the same database in different ways (different entity views).

I don’t know the extent to which this is overlapping, a superset or a subset of the problem(s) that you and others are experiencing with collecting data from external users.

Finally, there are so many things being worked on (or planned to be worked on), e.g.
multiple entity views with different layouts, public sharing of entity view, custom access levels, etc.
that I wonder whether some of the upcoming features (combined) will unlock a solutions for each of you, @StevenSkillit, @Matt_Blais or @helloitse even though technically your problems are not identical. :crossed_fingers:

1 Like

Their needs are really basic :sweat_smile: Example of 3 forms:

When we follow my approach you’ll only have 1 database (form), one set of automations (for auto create tasks when a new form is submitted and link the form to the contact), one relation with contact, inbox, etc.

On contact level that looks like this:

If I follow your approach, it looks like this

and then imagine that the contact already has +20 relations currently. If you have 10 different ‘form databases’ then it’s really really messy

I really don’t think it’s helpful to create 3 databases and duplicate everything

We include name + email address so that we can link the forms to the correct contact. How else would you do that?

And we also include other CRM related stuff if there is a situation where it’s handy to update contact’s information. Like date of birth, address, etc.

If you look at the average intake form of a consulting company like mine some questions are CRM related (name, billing address, etc.) while others are specific for the service/product that has been bought (what’s your pain/desire/etc.).

If I don’t include CRM stuff in the form then:

  • The form submitter need to fill in two forms (one for CRM part and one for the service related part)
  • Or the user needs to manually update entities in Fibery
  • Or we need to duplicate all automations

(or do I miss something?)

I really don’t see the benefit of any of those situations.

So we need this:

But even then I prefer one form database for most of the situations that acts like this:

CleanShot 2023-02-05 at 14.09.17

Then you’ll only see the fields that are applicable for the specific form and you can re-use fields if helpful.

1 Like

With respect to this:

Although @StevenSkillit uses the word ‘form’ (and labels some views as ‘forms’) as far as I can tell, they are in fact grid views in Airtable, which are like table views in Fibery
And when opening a record, he is seeing record view in Airtable (which is entity view in Fibery).
This has nothing to do with ‘forms’ as defined in Fibery, which are purely a data entry mechanism, and only support creation of new entities (but can be shared externally).

This is why I say that your needs and his are not the same.


Yes, but name and email address don’t ‘belong’ to the form (at least for the Fibery data model)
Name and email address belong to a Contact.
This is what I mean about a form being solely a mechanism, not a database.

But never mind. I think we just have different mental models :slight_smile:

Hey @Chr1sG,

Just to add to the conversation, I think @YvetteLans and I are on the same page. We’re looking for one central database to capture all the data from our various forms. Since we don’t use the forms provided by Fibery, we need a system where we can link different types of forms to the contacts who fill them out. We’d prefer not to have multiple databases for each form type. That’s why I showed Airtable. For example, Form 1 could be for onboarding, showing only the relevant fields for that process. Form 2 might be for feedback, displaying just the fields needed for feedback.