# New Open (Instant) — Mailgun

> Emit new event when the email recipient opened the email and enabled image viewing. Open tracking must be enabled in the Mailgun control panel, and the CNAME record must be pointing to mailgun.org. See more at the Mailgun User's Manual…

- Key: `mailgun-new-open`
- Type: Trigger (Instant)
- Version: 0.0.2
- App: Mailgun (`mailgun`) — https://pipedream.com/apps/mailgun.md
- This page (HTML): https://pipedream.com/apps/mailgun/triggers/new-open
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/mailgun/sources/new-open/new-open.mjs

## Description

Emit new event when the email recipient opened the email and enabled image viewing. Open tracking must be enabled in the Mailgun control panel, and the CNAME record must be pointing to mailgun.org. See more at the Mailgun User's Manual [Tracking Messages](https://documentation.mailgun.com/en/latest/user_manual.html#tracking-messages) section

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `domain` | `string` | Yes | Options are loaded from the connected account. |
| `webhookSigningKey` | `string` | Yes | Your Mailgun webhook signing key, found in your Mailgun dashboard, located under Settings on the left-hand nav and then in API Keys look for webhook signing key. Required to compute the authentication signature of events. |

## Returns

Events emitted by Mailgun.

## Run it

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const deployed = await pd.triggers.deploy({
  id: "mailgun-new-open",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    mailgun: { authProvisionId: "apn_xxxxxxx" },
    domain: "Domain Name",
    webhookSigningKey: "Mailgun webhook signing key",
  },
  webhookUrl: "https://example.com/webhooks/mailgun",
})

console.log(deployed.id)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/triggers/deploy \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "mailgun-new-open",
    "webhook_url": "https://example.com/webhooks/mailgun",
    "configured_props": {
      "mailgun": { "authProvisionId": "apn_xxxxxxx" },
      "domain": "Domain Name",
      "webhookSigningKey": "Mailgun webhook signing key"
    }
  }'
```

**MCP**

MCP servers expose Mailgun actions as on-demand tools.

New Open (Instant) is an event source, so your application deploys it with the Connect SDK or API and then either receives each event at a webhook URL or retrieves events on demand with the trigger events API.

## Event delivery

Every event is sent to the HTTP endpoint you choose when you deploy the source. Or: no webhook required — your app or agent can fetch recent events from the [trigger events API](https://pipedream.com/docs/connect/api-reference/list-trigger-events.md) instead.

---

- App: https://pipedream.com/apps/mailgun.md · All apps: https://pipedream.com/apps
