Record actions are rendered:

  • on Record pages in Attio
  • in the CMD+K quick action palette.

Any file with a named export of recordAction will register a record action

Arguments

id : string

The unique identifier for this action.

It is only used internally; never shown to the user.

label : string

The human readable label for the record action.

icon : string

An icon to display in the action, either an AttioIcon or a string .png referencing a file in your app’s assets directory.

If no icon prop is provided, it will default to your app’s icon that you set up in the Developer dashboard.

onTrigger? : async ({ recordId: string }) => Promise<void>

The function to run when the action is triggered. You’ll likely want to show a dialog or run a server function here.

objects?: ObjectSlug | Array<ObjectSlug>

A single slug or an array of slugs to select which types of record the record action will apply to.

Defaults to undefined, which will cause the action to show on all types of records.

The built-in slugs are

Example Usage

TypeScript
import type {RecordAction} from "attio/client"

export const recordAction: RecordAction = {
    id: "send-invoice",
    label: "Send Invoice",
    icon: "Sales",
    onTrigger: async ({recordId}) => {
        // Run code here
    },
    objects: "people",
}