# Views ## Create a view bundle (view + select/filter/sort) `client.Views.New(ctx, viewObjectType, params) (*ViewNewResponse, error)` **post** `/v2/prism/{teamId}/{viewObjectType}/views` Create a view bundle (view + select/filter/sort) ### Parameters - `viewObjectType ViewNewParamsViewObjectType` - `const ViewNewParamsViewObjectTypeAction ViewNewParamsViewObjectType = "action"` - `const ViewNewParamsViewObjectTypeDeal ViewNewParamsViewObjectType = "deal"` - `const ViewNewParamsViewObjectTypeDocument ViewNewParamsViewObjectType = "document"` - `const ViewNewParamsViewObjectTypeEvent ViewNewParamsViewObjectType = "event"` - `const ViewNewParamsViewObjectTypeIdentity ViewNewParamsViewObjectType = "identity"` - `const ViewNewParamsViewObjectTypeOrganization ViewNewParamsViewObjectType = "organization"` - `params ViewNewParams` - `PathTeamID param.Field[string]` Path param - `Name param.Field[string]` Body param - `ViewType param.Field[string]` Body param - `ID param.Field[string]` Body param - `AggregationPropDefID param.Field[string]` Body param - `AggregationType param.Field[string]` Body param - `ColumnLayout param.Field[map[string, unknown]]` Body param - `Combinator param.Field[ViewNewParamsCombinator]` Body param - `const ViewNewParamsCombinatorAnd ViewNewParamsCombinator = "AND"` - `const ViewNewParamsCombinatorOr ViewNewParamsCombinator = "OR"` - `CreatedAt param.Field[string]` Body param - `Filter param.Field[[]map[string, unknown]]` Body param: Each entry is { slug: { comparator: value } } - `GroupBy param.Field[string]` Body param: Property slug to group by - `GroupHiddenOptionIDs param.Field[[]unknown]` Body param - `[]unknown` - `GroupHideEmpty param.Field[bool]` Body param - `GroupSort param.Field[string]` Body param - `Icon param.Field[string]` Body param - `ListID param.Field[string]` Body param - `Select param.Field[[]string]` Body param: Property slugs (dot-paths permitted for refs) - `Sort param.Field[[]map[string, unknown]]` Body param: Each entry is { slug: 'asc' | 'desc' } - `SortOrder param.Field[int64]` Body param - `BodyTeamID param.Field[string]` Body param - `UpdatedAt param.Field[string]` Body param - `UserID param.Field[string]` Body param - `IdempotencyKey param.Field[string]` Header param: A unique key (UUID or any opaque string up to 255 chars) that identifies this logical request. The server caches the first response under this key for 24 hours and replays it on retry — safe to use on every POST/PUT/PATCH to make network retries deterministic. Reusing the same key with a different body returns 409 `idempotency_key_mismatch`. Replays include the `idempotent-replay: true` response header. ### Returns - `type ViewNewResponse struct{…}` A view (saved configuration for displaying records of a given object type) plus its select/filter/sort children. Properties in select/filter/sort are referenced by slug. - `Name string` - `ViewType string` - `ID string` - `AggregationPropDefID string` - `AggregationType string` - `ColumnLayout map[string, unknown]` - `Combinator ViewNewResponseCombinator` - `const ViewNewResponseCombinatorAnd ViewNewResponseCombinator = "AND"` - `const ViewNewResponseCombinatorOr ViewNewResponseCombinator = "OR"` - `CreatedAt string` - `Filter []map[string, unknown]` Each entry is { slug: { comparator: value } } - `GroupBy string` Property slug to group by - `GroupHiddenOptionIDs []unknown` - `[]unknown` - `GroupHideEmpty bool` - `GroupSort string` - `Icon string` - `ListID string` - `Select []string` Property slugs (dot-paths permitted for refs) - `Sort []map[string, unknown]` Each entry is { slug: 'asc' | 'desc' } - `SortOrder int64` - `TeamID string` - `UpdatedAt string` - `UserID string` ### Example ```go package main import ( "context" "fmt" "github.com/micro-so/micro-sdk-go" "github.com/micro-so/micro-sdk-go/option" ) func main() { client := micro.NewClient( option.WithAPIKey("My API Key"), option.WithTeamID("My Team ID"), ) view, err := client.Views.New( context.TODO(), micro.ViewNewParamsViewObjectTypeAction, micro.ViewNewParams{ Name: micro.F("name"), ViewType: micro.F("view_type"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", view.ID) } ``` #### Response ```json { "name": "name", "view_type": "view_type", "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "aggregation_prop_def_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "aggregation_type": "aggregation_type", "column_layout": { "foo": "bar" }, "combinator": "AND", "created_at": "created_at", "filter": [ { "foo": "bar" } ], "group_by": "group_by", "group_hidden_option_ids": [ {} ], "group_hide_empty": true, "group_sort": "group_sort", "icon": "icon", "list_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "select": [ "string" ], "sort": [ { "foo": "bar" } ], "sort_order": 0, "team_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "updated_at": "updated_at", "user_id": "user_id" } ``` ## Read a view bundle `client.Views.Get(ctx, viewObjectType, viewID, params) (*ViewGetResponse, error)` **get** `/v2/prism/{teamId}/{viewObjectType}/views/{viewId}` Returns the view bundle. Pass `?include=records` to also fetch a page of records selected by the view in the same call; the response is then wrapped as `{view, records}`. ### Parameters - `viewObjectType ViewGetParamsViewObjectType` - `const ViewGetParamsViewObjectTypeAction ViewGetParamsViewObjectType = "action"` - `const ViewGetParamsViewObjectTypeDeal ViewGetParamsViewObjectType = "deal"` - `const ViewGetParamsViewObjectTypeDocument ViewGetParamsViewObjectType = "document"` - `const ViewGetParamsViewObjectTypeEvent ViewGetParamsViewObjectType = "event"` - `const ViewGetParamsViewObjectTypeIdentity ViewGetParamsViewObjectType = "identity"` - `const ViewGetParamsViewObjectTypeOrganization ViewGetParamsViewObjectType = "organization"` - `viewID string` - `params ViewGetParams` - `TeamID param.Field[string]` Path param - `Cursor param.Field[string]` Query param: Forwarded to the records sub-resource when `include=records`. - `Include param.Field[string]` Query param: Comma-separated list of optional sub-resources to inline. Currently the only recognized value is `records` — when present, the response is `{view, records}` rather than the bare view bundle. - `Limit param.Field[int64]` Query param: Forwarded to the records sub-resource when `include=records`. - `Page param.Field[int64]` Query param: Forwarded to the records sub-resource when `include=records`. ### Returns - `type ViewGetResponse interface{…}` A view (saved configuration for displaying records of a given object type) plus its select/filter/sort children. Properties in select/filter/sort are referenced by slug. - `type ViewGetResponseViewBundle struct{…}` A view (saved configuration for displaying records of a given object type) plus its select/filter/sort children. Properties in select/filter/sort are referenced by slug. - `Name string` - `ViewType string` - `ID string` - `AggregationPropDefID string` - `AggregationType string` - `ColumnLayout map[string, unknown]` - `Combinator ViewGetResponseViewBundleCombinator` - `const ViewGetResponseViewBundleCombinatorAnd ViewGetResponseViewBundleCombinator = "AND"` - `const ViewGetResponseViewBundleCombinatorOr ViewGetResponseViewBundleCombinator = "OR"` - `CreatedAt string` - `Filter []map[string, unknown]` Each entry is { slug: { comparator: value } } - `GroupBy string` Property slug to group by - `GroupHiddenOptionIDs []unknown` - `[]unknown` - `GroupHideEmpty bool` - `GroupSort string` - `Icon string` - `ListID string` - `Select []string` Property slugs (dot-paths permitted for refs) - `Sort []map[string, unknown]` Each entry is { slug: 'asc' | 'desc' } - `SortOrder int64` - `TeamID string` - `UpdatedAt string` - `UserID string` - `type ViewGetResponseViewBundleWithRecords struct{…}` Returned by `GET /views/{viewId}?include=records`. Same `records` shape as the standalone list-view-records endpoint. - `Records ViewGetResponseViewBundleWithRecordsRecords` - `Data []map[string, unknown]` - `HasMore bool` - `NextCursor string` - `View ViewGetResponseViewBundleWithRecordsView` A view (saved configuration for displaying records of a given object type) plus its select/filter/sort children. Properties in select/filter/sort are referenced by slug. - `Name string` - `ViewType string` - `ID string` - `AggregationPropDefID string` - `AggregationType string` - `ColumnLayout map[string, unknown]` - `Combinator ViewGetResponseViewBundleWithRecordsViewCombinator` - `const ViewGetResponseViewBundleWithRecordsViewCombinatorAnd ViewGetResponseViewBundleWithRecordsViewCombinator = "AND"` - `const ViewGetResponseViewBundleWithRecordsViewCombinatorOr ViewGetResponseViewBundleWithRecordsViewCombinator = "OR"` - `CreatedAt string` - `Filter []map[string, unknown]` Each entry is { slug: { comparator: value } } - `GroupBy string` Property slug to group by - `GroupHiddenOptionIDs []unknown` - `[]unknown` - `GroupHideEmpty bool` - `GroupSort string` - `Icon string` - `ListID string` - `Select []string` Property slugs (dot-paths permitted for refs) - `Sort []map[string, unknown]` Each entry is { slug: 'asc' | 'desc' } - `SortOrder int64` - `TeamID string` - `UpdatedAt string` - `UserID string` ### Example ```go package main import ( "context" "fmt" "github.com/micro-so/micro-sdk-go" "github.com/micro-so/micro-sdk-go/option" ) func main() { client := micro.NewClient( option.WithAPIKey("My API Key"), option.WithTeamID("My Team ID"), ) view, err := client.Views.Get( context.TODO(), micro.ViewGetParamsViewObjectTypeAction, "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", micro.ViewGetParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", view) } ``` #### Response ```json { "name": "name", "view_type": "view_type", "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "aggregation_prop_def_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "aggregation_type": "aggregation_type", "column_layout": { "foo": "bar" }, "combinator": "AND", "created_at": "created_at", "filter": [ { "foo": "bar" } ], "group_by": "group_by", "group_hidden_option_ids": [ {} ], "group_hide_empty": true, "group_sort": "group_sort", "icon": "icon", "list_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "select": [ "string" ], "sort": [ { "foo": "bar" } ], "sort_order": 0, "team_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "updated_at": "updated_at", "user_id": "user_id" } ``` ## Update a view bundle (select/filter/sort arrays are replaced wholesale when supplied) `client.Views.Update(ctx, viewObjectType, viewID, params) (*ViewUpdateResponse, error)` **patch** `/v2/prism/{teamId}/{viewObjectType}/views/{viewId}` Update a view bundle (select/filter/sort arrays are replaced wholesale when supplied) ### Parameters - `viewObjectType ViewUpdateParamsViewObjectType` - `const ViewUpdateParamsViewObjectTypeAction ViewUpdateParamsViewObjectType = "action"` - `const ViewUpdateParamsViewObjectTypeDeal ViewUpdateParamsViewObjectType = "deal"` - `const ViewUpdateParamsViewObjectTypeDocument ViewUpdateParamsViewObjectType = "document"` - `const ViewUpdateParamsViewObjectTypeEvent ViewUpdateParamsViewObjectType = "event"` - `const ViewUpdateParamsViewObjectTypeIdentity ViewUpdateParamsViewObjectType = "identity"` - `const ViewUpdateParamsViewObjectTypeOrganization ViewUpdateParamsViewObjectType = "organization"` - `viewID string` - `params ViewUpdateParams` - `PathTeamID param.Field[string]` Path param - `AggregationPropDefID param.Field[string]` Body param - `AggregationType param.Field[string]` Body param - `ColumnLayout param.Field[map[string, unknown]]` Body param - `Combinator param.Field[ViewUpdateParamsCombinator]` Body param - `const ViewUpdateParamsCombinatorAnd ViewUpdateParamsCombinator = "AND"` - `const ViewUpdateParamsCombinatorOr ViewUpdateParamsCombinator = "OR"` - `Filter param.Field[[]map[string, unknown]]` Body param - `GroupBy param.Field[string]` Body param - `GroupHiddenOptionIDs param.Field[[]unknown]` Body param - `[]unknown` - `GroupHideEmpty param.Field[bool]` Body param - `GroupSort param.Field[string]` Body param - `Icon param.Field[string]` Body param - `ListID param.Field[string]` Body param - `Name param.Field[string]` Body param - `Select param.Field[[]string]` Body param - `Sort param.Field[[]map[string, unknown]]` Body param - `SortOrder param.Field[int64]` Body param - `BodyTeamID param.Field[string]` Body param - `UserID param.Field[string]` Body param - `ViewType param.Field[string]` Body param - `IdempotencyKey param.Field[string]` Header param: A unique key (UUID or any opaque string up to 255 chars) that identifies this logical request. The server caches the first response under this key for 24 hours and replays it on retry — safe to use on every POST/PUT/PATCH to make network retries deterministic. Reusing the same key with a different body returns 409 `idempotency_key_mismatch`. Replays include the `idempotent-replay: true` response header. ### Returns - `type ViewUpdateResponse struct{…}` A view (saved configuration for displaying records of a given object type) plus its select/filter/sort children. Properties in select/filter/sort are referenced by slug. - `Name string` - `ViewType string` - `ID string` - `AggregationPropDefID string` - `AggregationType string` - `ColumnLayout map[string, unknown]` - `Combinator ViewUpdateResponseCombinator` - `const ViewUpdateResponseCombinatorAnd ViewUpdateResponseCombinator = "AND"` - `const ViewUpdateResponseCombinatorOr ViewUpdateResponseCombinator = "OR"` - `CreatedAt string` - `Filter []map[string, unknown]` Each entry is { slug: { comparator: value } } - `GroupBy string` Property slug to group by - `GroupHiddenOptionIDs []unknown` - `[]unknown` - `GroupHideEmpty bool` - `GroupSort string` - `Icon string` - `ListID string` - `Select []string` Property slugs (dot-paths permitted for refs) - `Sort []map[string, unknown]` Each entry is { slug: 'asc' | 'desc' } - `SortOrder int64` - `TeamID string` - `UpdatedAt string` - `UserID string` ### Example ```go package main import ( "context" "fmt" "github.com/micro-so/micro-sdk-go" "github.com/micro-so/micro-sdk-go/option" ) func main() { client := micro.NewClient( option.WithAPIKey("My API Key"), option.WithTeamID("My Team ID"), ) view, err := client.Views.Update( context.TODO(), micro.ViewUpdateParamsViewObjectTypeAction, "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", micro.ViewUpdateParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", view.ID) } ``` #### Response ```json { "name": "name", "view_type": "view_type", "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "aggregation_prop_def_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "aggregation_type": "aggregation_type", "column_layout": { "foo": "bar" }, "combinator": "AND", "created_at": "created_at", "filter": [ { "foo": "bar" } ], "group_by": "group_by", "group_hidden_option_ids": [ {} ], "group_hide_empty": true, "group_sort": "group_sort", "icon": "icon", "list_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "select": [ "string" ], "sort": [ { "foo": "bar" } ], "sort_order": 0, "team_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "updated_at": "updated_at", "user_id": "user_id" } ``` ## Delete a view bundle `client.Views.Delete(ctx, viewObjectType, viewID, body) error` **delete** `/v2/prism/{teamId}/{viewObjectType}/views/{viewId}` Delete a view bundle ### Parameters - `viewObjectType ViewDeleteParamsViewObjectType` - `const ViewDeleteParamsViewObjectTypeAction ViewDeleteParamsViewObjectType = "action"` - `const ViewDeleteParamsViewObjectTypeDeal ViewDeleteParamsViewObjectType = "deal"` - `const ViewDeleteParamsViewObjectTypeDocument ViewDeleteParamsViewObjectType = "document"` - `const ViewDeleteParamsViewObjectTypeEvent ViewDeleteParamsViewObjectType = "event"` - `const ViewDeleteParamsViewObjectTypeIdentity ViewDeleteParamsViewObjectType = "identity"` - `const ViewDeleteParamsViewObjectTypeOrganization ViewDeleteParamsViewObjectType = "organization"` - `viewID string` - `body ViewDeleteParams` - `TeamID param.Field[string]` ### Example ```go package main import ( "context" "github.com/micro-so/micro-sdk-go" "github.com/micro-so/micro-sdk-go/option" ) func main() { client := micro.NewClient( option.WithAPIKey("My API Key"), option.WithTeamID("My Team ID"), ) err := client.Views.Delete( context.TODO(), micro.ViewDeleteParamsViewObjectTypeAction, "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", micro.ViewDeleteParams{ }, ) if err != nil { panic(err.Error()) } } ``` # Records ## List records selected by a view (filters and sorts applied; pinned record_order overlaid first) `client.Views.Records.List(ctx, viewObjectType, viewID, params) (*ViewRecordListResponse, error)` **get** `/v2/prism/{teamId}/{viewObjectType}/views/{viewId}/records` List records selected by a view (filters and sorts applied; pinned record_order overlaid first) ### Parameters - `viewObjectType ViewRecordListParamsViewObjectType` - `const ViewRecordListParamsViewObjectTypeAction ViewRecordListParamsViewObjectType = "action"` - `const ViewRecordListParamsViewObjectTypeDeal ViewRecordListParamsViewObjectType = "deal"` - `const ViewRecordListParamsViewObjectTypeDocument ViewRecordListParamsViewObjectType = "document"` - `const ViewRecordListParamsViewObjectTypeEvent ViewRecordListParamsViewObjectType = "event"` - `const ViewRecordListParamsViewObjectTypeIdentity ViewRecordListParamsViewObjectType = "identity"` - `const ViewRecordListParamsViewObjectTypeOrganization ViewRecordListParamsViewObjectType = "organization"` - `viewID string` - `params ViewRecordListParams` - `TeamID param.Field[string]` Path param - `Cursor param.Field[string]` Query param: Opaque cursor from a previous response's `next_cursor`. Pass it back unchanged to fetch the next page. When set, `page` and `limit` are derived from the cursor. - `Limit param.Field[int64]` Query param - `Page param.Field[int64]` Query param: Page number (1-based). Prefer `cursor`. ### Returns - `type ViewRecordListResponse struct{…}` - `Data []map[string, unknown]` - `HasMore bool` True if more records exist beyond this page. - `NextCursor string` Opaque cursor for the next page; null when `has_more` is false. ### Example ```go package main import ( "context" "fmt" "github.com/micro-so/micro-sdk-go" "github.com/micro-so/micro-sdk-go/option" ) func main() { client := micro.NewClient( option.WithAPIKey("My API Key"), option.WithTeamID("My Team ID"), ) records, err := client.Views.Records.List( context.TODO(), micro.ViewRecordListParamsViewObjectTypeAction, "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", micro.ViewRecordListParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", records.Data) } ``` #### Response ```json { "data": [ { "foo": "bar" } ], "has_more": true, "next_cursor": "next_cursor" } ``` ## Bulk reorder pinned records `client.Views.Records.Reorder(ctx, viewObjectType, viewID, params) error` **patch** `/v2/prism/{teamId}/{viewObjectType}/views/{viewId}/records` Bulk reorder pinned records ### Parameters - `viewObjectType ViewRecordReorderParamsViewObjectType` - `const ViewRecordReorderParamsViewObjectTypeAction ViewRecordReorderParamsViewObjectType = "action"` - `const ViewRecordReorderParamsViewObjectTypeDeal ViewRecordReorderParamsViewObjectType = "deal"` - `const ViewRecordReorderParamsViewObjectTypeDocument ViewRecordReorderParamsViewObjectType = "document"` - `const ViewRecordReorderParamsViewObjectTypeEvent ViewRecordReorderParamsViewObjectType = "event"` - `const ViewRecordReorderParamsViewObjectTypeIdentity ViewRecordReorderParamsViewObjectType = "identity"` - `const ViewRecordReorderParamsViewObjectTypeOrganization ViewRecordReorderParamsViewObjectType = "organization"` - `viewID string` - `params ViewRecordReorderParams` - `TeamID param.Field[string]` Path param - `ObjectIDs param.Field[[]string]` Body param - `IdempotencyKey param.Field[string]` Header param: A unique key (UUID or any opaque string up to 255 chars) that identifies this logical request. The server caches the first response under this key for 24 hours and replays it on retry — safe to use on every POST/PUT/PATCH to make network retries deterministic. Reusing the same key with a different body returns 409 `idempotency_key_mismatch`. Replays include the `idempotent-replay: true` response header. ### Example ```go package main import ( "context" "github.com/micro-so/micro-sdk-go" "github.com/micro-so/micro-sdk-go/option" ) func main() { client := micro.NewClient( option.WithAPIKey("My API Key"), option.WithTeamID("My Team ID"), ) err := client.Views.Records.Reorder( context.TODO(), micro.ViewRecordReorderParamsViewObjectTypeAction, "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", micro.ViewRecordReorderParams{ ObjectIDs: micro.F([]string{"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"}), }, ) if err != nil { panic(err.Error()) } } ``` ## Pin a record to the view (append to record_order) `client.Views.Records.Pin(ctx, viewObjectType, viewID, objectID, params) error` **post** `/v2/prism/{teamId}/{viewObjectType}/views/{viewId}/records/{objectId}` Pin a record to the view (append to record_order) ### Parameters - `viewObjectType ViewRecordPinParamsViewObjectType` - `const ViewRecordPinParamsViewObjectTypeAction ViewRecordPinParamsViewObjectType = "action"` - `const ViewRecordPinParamsViewObjectTypeDeal ViewRecordPinParamsViewObjectType = "deal"` - `const ViewRecordPinParamsViewObjectTypeDocument ViewRecordPinParamsViewObjectType = "document"` - `const ViewRecordPinParamsViewObjectTypeEvent ViewRecordPinParamsViewObjectType = "event"` - `const ViewRecordPinParamsViewObjectTypeIdentity ViewRecordPinParamsViewObjectType = "identity"` - `const ViewRecordPinParamsViewObjectTypeOrganization ViewRecordPinParamsViewObjectType = "organization"` - `viewID string` - `objectID string` - `params ViewRecordPinParams` - `TeamID param.Field[string]` Path param - `IdempotencyKey param.Field[string]` Header param: A unique key (UUID or any opaque string up to 255 chars) that identifies this logical request. The server caches the first response under this key for 24 hours and replays it on retry — safe to use on every POST/PUT/PATCH to make network retries deterministic. Reusing the same key with a different body returns 409 `idempotency_key_mismatch`. Replays include the `idempotent-replay: true` response header. ### Example ```go package main import ( "context" "github.com/micro-so/micro-sdk-go" "github.com/micro-so/micro-sdk-go/option" ) func main() { client := micro.NewClient( option.WithAPIKey("My API Key"), option.WithTeamID("My Team ID"), ) err := client.Views.Records.Pin( context.TODO(), micro.ViewRecordPinParamsViewObjectTypeAction, "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", micro.ViewRecordPinParams{ }, ) if err != nil { panic(err.Error()) } } ``` ## Unpin a record from the view `client.Views.Records.Unpin(ctx, viewObjectType, viewID, objectID, body) error` **delete** `/v2/prism/{teamId}/{viewObjectType}/views/{viewId}/records/{objectId}` Unpin a record from the view ### Parameters - `viewObjectType ViewRecordUnpinParamsViewObjectType` - `const ViewRecordUnpinParamsViewObjectTypeAction ViewRecordUnpinParamsViewObjectType = "action"` - `const ViewRecordUnpinParamsViewObjectTypeDeal ViewRecordUnpinParamsViewObjectType = "deal"` - `const ViewRecordUnpinParamsViewObjectTypeDocument ViewRecordUnpinParamsViewObjectType = "document"` - `const ViewRecordUnpinParamsViewObjectTypeEvent ViewRecordUnpinParamsViewObjectType = "event"` - `const ViewRecordUnpinParamsViewObjectTypeIdentity ViewRecordUnpinParamsViewObjectType = "identity"` - `const ViewRecordUnpinParamsViewObjectTypeOrganization ViewRecordUnpinParamsViewObjectType = "organization"` - `viewID string` - `objectID string` - `body ViewRecordUnpinParams` - `TeamID param.Field[string]` ### Example ```go package main import ( "context" "github.com/micro-so/micro-sdk-go" "github.com/micro-so/micro-sdk-go/option" ) func main() { client := micro.NewClient( option.WithAPIKey("My API Key"), option.WithTeamID("My Team ID"), ) err := client.Views.Records.Unpin( context.TODO(), micro.ViewRecordUnpinParamsViewObjectTypeAction, "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", micro.ViewRecordUnpinParams{ }, ) if err != nil { panic(err.Error()) } } ```