---
title: "SurfaceCompositionEvents · types"
url: https://developers.dagio.ai/reference/types-surface-composition-events/
---

# SurfaceCompositionEvents · types

   
                                         
                                                                                   
                                                  
                  
           
          
   

The following types define named objects and their relationships. Tables include inherited properties. Schema-derived types refer to their validated structures; a TypeScript declaration does not replace the compiler’s semantic checks.

## SurfaceCompositionPrepareActionParams

Dispatch narrows only already parsed native preparation parameters.

```typescript
export type SurfaceCompositionPrepareActionParams = z.infer<
  typeof surfaceCompositionPrepareActionParamsSchema
>;
```

[All references](https://developers.dagio.ai/reference/)

<!-- surface-examples:start -->

## Applied examples : Create a record or start work

A Flow Action prepares a quote; a creation Action opens its dedicated Form.

### Configuration

Fragment placed in `actions[]`. [Properties and accepted values](https://developers.dagio.ai/reference/workspace-model-foundation/).

```json
{
  "key": "prepare-quote",
  "label": "Prepare a quote",
  "targetDefinitionPaths": [
    "workspace/clients/surface/client"
  ],
  "kind": "flow",
  "operationKey": "prepare-quote",
  "formKey": "prepare-quote",
  "ruleKeys": [],
  "contextPolicyKey": "quote-context",
  "minimumRole": "member",
  "confirmation": true
}
```

### Variation and connection

Fragment placed in `actions[]`. [Properties and accepted values](https://developers.dagio.ai/reference/workspace-model-foundation/).

```json
{
  "key": "create-client",
  "label": "Create client",
  "targetDefinitionPaths": [],
  "kind": "semantic-command",
  "operationKey": "create-client",
  "formKey": "new-client",
  "ruleKeys": [],
  "contextPolicyKey": null,
  "minimumRole": "member",
  "confirmation": true
}
```

### UI layout example

The illustrative layout below places this configuration in the Clients/Quotes app. Insert each fragment at the stated location, with Field, Query and Action references matching the Model declarations.

1. Target object
2. Proposed change
3. Checks
4. Confirm

<!-- surface-examples:end -->
