# New Unsubscribe (Instant) — Mailgun

> Emit new event when the email recipient clicked on the unsubscribe link. Unsubscribe tracking must be enabled in the Mailgun control panel. See more at the Mailgun User's Manual Tracking Messages section

- Key: `mailgun-new-unsubscribe`
- 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-unsubscribe
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/mailgun/sources/new-unsubscribe/new-unsubscribe.mjs

## Description

Emit new event when the email recipient clicked on the unsubscribe link. Unsubscribe tracking must be enabled in the Mailgun control panel. 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-unsubscribe",
  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-unsubscribe",
    "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 Unsubscribe (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
