> ## Documentation Index
> Fetch the complete documentation index at: https://docs.automate.ax/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Automate.ax automations are TypeScript programs.
> Use Bun for installation and command examples.
> Use Automate.ax for the product name and automate.ax for the package, CLI, and domain.
> Treat documented public APIs as current; do not invent transitional or deprecated names.

# On transactional email first opened

> Run an automation when Brevo records the first tracked open of a transactional email.

`brevo.onEmailFirstOpened` runs when Brevo records the first tracked open of a transactional email.

## Example

```ts theme={null}
import { automation, log, t } from "automate.ax"
import { brevo } from "automate.ax/brevo"

export default automation(
  "Handle Brevo transactional email first opened",
  () => {
    const event = brevo.onEmailFirstOpened()
    log(t`Brevo transactional email first opened: ${event.messageId}`)
  },
)
```

## Options

`account?: string | IntegrationAccountReference<"brevo">` selects a static Brevo API-key binding and defaults to the project binding. Runtime signals cannot select the watched account.

## Trigger data

Returns a normalized event with `family: "transactionalEmail"`, `type: "firstOpened"`, `webhookId`, and the complete provider callback in `event`. Provider-dependent fields can include `email`, `phone`, `messageId`, `campaignId`, `occurredAt`, `status`, `reason`, `link`, `reply`, and `listIds`.

This is Brevo's `unique_opened` event. Later opens use `onEmailOpened`. Automate.ax authenticates the managed webhook and deduplicates exact callback retries.
