The predefined data views configures with views_list parameter of your grid config. The value of this parameter is the service that extended from Oro\Bundle\DataGridBundle\Extension\GridViews\AbstractViewsList abstract class.
This class have abstract function getViewsLis that returns an array of available views.
For your example, let’s add two new views to the contact grid.
The definition of the contacts grid available at crm/src/Oro/Bundle/ContactBundle/Resources/config/oro/datagrids.yml. The name of this datagrid is contacts-grid.
As you can see, this datagrid config already have the views_list parameter with @oro_contact.contacts_view_list value. If you open this service (Oro\Bundle\ContactBundle\Datagrid\ContactsViewList class), you will see, that here we add the Duplicates view.
So, create new class ContactsExtraViewList somewhere in your bundle and extend it from the ContactsViewList. At this class, let’s rewrite getViewsList method and new views:
You can easy test what value format support the filter. In the grid just set some value and see the ajax request data for the grid with this filter. For example, for the owner field the request will be like: