diff --git a/log/client.go b/log/client.go
index 97ae04aa8c39c23520a48b0850b7921c0f6f230c..65413f4f5ea9fd6d99b8d87bea668b6c585ba391 100644
--- a/log/client.go
+++ b/log/client.go
@@ -5,7 +5,6 @@ import (
 
 	errorsgrpc "git.perx.ru/perxis/perxis-go/pkg/errors/grpc"
 	"git.perx.ru/perxis/perxis-go/pkg/options"
-	"git.perx.ru/perxis/perxis-go/proto/common"
 	pb "git.perx.ru/perxis/perxis-go/proto/log"
 	"google.golang.org/grpc"
 )
@@ -37,20 +36,15 @@ func (c *Client) Log(ctx context.Context, entries []*Entry) error {
 	return nil
 }
 
-func (c *Client) Find(ctx context.Context, filter *Filter, options *options.FindOptions) (*FindResult, error) {
+func (c *Client) Find(ctx context.Context, filter *Filter, opts *options.FindOptions) (*FindResult, error) {
 	request := new(pb.FindRequest)
+
 	if filter != nil {
 		request.Filter = &pb.Filter{Q: filter.Q}
 	}
-	if options != nil {
-		request.Options = &common.FindOptions{
-			Sort:     options.Sort,
-			Offset:   int32(options.Offset),
-			Limit:    int32(options.Limit),
-			PageSize: int32(options.PageSize),
-			PageNum:  int32(options.PageNum),
-		}
-	}
+
+	request.Options = options.FindOptionsToPB(opts)
+
 	response, err := c.client.Find(ctx, request)
 	if err != nil {
 		return nil, err
diff --git a/pkg/extension/schema.go b/pkg/extension/schema.go
index 501de9a247c3ba4240dc50ba641d7e2c56a1d2fc..521ebad6428dbd308228090469f369367e65068d 100644
--- a/pkg/extension/schema.go
+++ b/pkg/extension/schema.go
@@ -72,7 +72,7 @@ func NewActionsCollection(spaceID, envID string) *collections.Collection {
 
 	// UI
 	sch.Field.UI.ListView = &field.View{Options: map[string]interface{}{
-		"fields":    []interface{}{"name", "action", "kind", "updated_at", "updated_by", "state"},
+		"fields":    []interface{}{"icon", "name", "action", "kind", "updated_at", "updated_by", "state"},
 		"sort":      []interface{}{"name"},
 		"page_size": float64(50),
 	}}
diff --git a/pkg/options/options.go b/pkg/options/options.go
index 09296f359d42e838f4389cc106d8d93bc955cfd6..066d3f8aa347a4b08fb901c87e2fc9afee7aa15f 100644
--- a/pkg/options/options.go
+++ b/pkg/options/options.go
@@ -1,6 +1,10 @@
 package options
 
-import "time"
+import (
+	"time"
+
+	commonpb "git.perx.ru/perxis/perxis-go/proto/common"
+)
 
 // SortOptions настройки сортировки результатов
 type SortOptions struct {
@@ -82,6 +86,56 @@ func MergeFindOptions(opts ...interface{}) *FindOptions {
 	return fo
 }
 
+func FindOptionsFromPB(protoOpts *commonpb.FindOptions) *FindOptions {
+	if protoOpts == nil {
+		return nil
+	}
+	fo := &FindOptions{
+		SortOptions: SortOptions{
+			Sort: protoOpts.Sort,
+		},
+		PaginationOptions: PaginationOptions{
+			Offset: int(protoOpts.Offset),
+			Limit:  int(protoOpts.Limit),
+		},
+		FieldOptions: FieldOptions{
+			Fields:        protoOpts.Fields,
+			ExcludeFields: protoOpts.ExcludeFields,
+		},
+	}
+
+	if fo.Offset == 0 && fo.Limit == 0 && fo.PageSize != 0 {
+		fo.Offset = fo.PageSize * (fo.PageNum - 1)
+		fo.Limit = fo.PageSize
+	}
+
+	return fo
+}
+
+func FindOptionsToPB(opts *FindOptions) *commonpb.FindOptions {
+	if opts == nil {
+		return nil
+	}
+	fo := &commonpb.FindOptions{
+		Sort:          opts.Sort,
+		PageNum:       int32(opts.PageNum),
+		PageSize:      int32(opts.PageSize),
+		Offset:        int32(opts.Offset),
+		Limit:         int32(opts.Limit),
+		Fields:        opts.Fields,
+		ExcludeFields: opts.ExcludeFields,
+	}
+	if fo.PageSize != 0 && fo.Limit == 0 {
+		fo.Limit = fo.PageSize
+		fo.Offset = fo.PageSize * (fo.PageNum - 1)
+	}
+	if fo.Limit != 0 && fo.PageSize == 0 {
+		fo.PageSize = fo.Limit
+		fo.PageNum = fo.Offset / fo.Limit
+	}
+	return fo
+}
+
 type TimeFilter struct {
 	Before, After time.Time
 }