Skip to main content
Object actions are actions your app can take on an object, as opposed to a single record. They are rendered in two places: the actions menu on the object’s record list page, and the CMD+K quick action palette. Use them for object-level work like imports, syncs, or opening object-wide views. Add an object action by creating an extension folder under src/app/extensions/ whose extension.tsx default-exports a defineExtension call with type: "object-action". See App structure for the discovery rules.

Example

src/app/extensions/import-companies/extension.tsx

Arguments

"object-action"
required
Identifies this extension as an object action.
string
required
The unique identifier for this action.It is only used internally; never shown to the user.
string
required
The human-readable label for the object action.
AttioIcon
An AttioIcon to display in the action.
If no icon prop is provided, it will default to your app’s icon that you set up in the Developer dashboard.
async ({ object: ObjectSlug }) => Promise<void>
The function to run when the action is triggered. It receives the object slug it was triggered on. You’ll likely want to show a dialog or run a server function here.
ObjectSlug | Array<ObjectSlug> | (info) => boolean
A single slug, an array of slugs, or a predicate to select which objects the action will apply to. The predicate receives {object} and returns whether the action should be shown.Defaults to undefined, which will cause the action to show on all objects.The built-in slugs are