Skip to main content
import type {App} from "attio"
Register a call recording insight text selection action by creating an App.CallRecording.Insight.TextAction and adding it to the callRecording.insight.textActions array of your app.ts file.

Example

process-call-insights.ts
import type {App} from "attio"
import {showDialog} from "attio/client"
import {ProcessCallInsightDialog} from "./your-code"

export const processCallInsightsAction: App.CallRecording.Insight.TextAction = {
  id: "process-call-insights",
  label: "Process insights",
  onTrigger: async ({markdown, text}: {markdown: string; text: string}) => {
    await showDialog({
      title: "Process call insights",
      Dialog: ({hideDialog}: {hideDialog: () => void}) => {
        return <ProcessCallInsightDialog markdown={markdown} text={text} onDone={hideDialog} />
      },
    })
  },
}
app.ts
import type {App} from "attio"

import {processCallInsightsAction} from "./process-call-insights"

export const app: App = {
  callRecording: {
    insight: {
      textActions: [processCallInsightsAction],
    },
    // ...
  },
  // ...
}

Arguments

id
string
required
The unique identifier for this call recording insight selection action.It is only used internally; never shown to the user.
label
string
required
A human-readable label of the call recording insight selection action that will be shown to the user when they make a text selection on a call recording insights.
icon
string
An AttioIcon to display beside the label.
If no icon prop is provided, it will default to your app’s icon that you set up in the Developer dashboard.
onTrigger
async (selection: {text: string; markdown: 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.The function will be given an object containing:
  • markdown – a markdown respresentation of the text selected (e.g. may include bullet points)
  • text – the plain text of the text selected