# Mailgun - Workflow node | Docs - nodulz

Source: https://nodulz.com/docs/nodes/mailgun

Language: en

Mailgun API: messages, lists, domains, events, webhooks

## Usage and specifics

Select an operation, fill path and query parameters, then guided body fields. Advanced mode exposes the full catalog and custom_request enables a custom request. Permissions, sending domains and webhook signatures remain provider-specific.

Technical type : `mailgun`. Runtime : `nodulz`.

## Credentials and prerequisites

- [Create and configure the credential : mailgun](/docs/credentials/mailgun)

Create credentials in your nodulz instance’s Credentials area, then select them on the node. Availability depends on ownership and sharing. See the [credentials guide](/docs/credentials) for access and rotation.

## Parameters

Names below are technical keys. Defaults are not a ready-to-run configuration: complete fields required by your operation. Paths containing [] describe list items; some fields depend on the selected mode.

| Parameter | Type | Default | Values / limits |
| --- | --- | --- | --- |
| `credentialId` | `string` | `""` | - |
| `operation` | `string` | `"post_messages"` | - |
| `pathParams` | `string` | `"{}"` | - |
| `queryParams` | `string` | `"{}"` | - |
| `body` | `string` | `""` | - |
| `bodyFieldValues` | `string` | `"{}"` | - |
| `customMethod` | `enum` | `"post"` | `get`, `post`, `put`, `patch`, `delete` |
| `customPath` | `string` | `""` | - |
| `requestMode` | `enum` | `"curated"` | `curated`, `advanced` |
| `defaultDomain` | `string` | `""` | - |

## Available operations

| ID | HTTP | Path / parameters |
| --- | --- | --- |
| `get_domains` | `get` | `/v3/domains` |
| `post_domains` | `post` | `/v3/domains` - `name` * (string), `spam_action` (string), `wildcard` (boolean) - body required |
| `get_domain` | `get` | `/v3/domains/{domain}` - pathParams: `domain` |
| `delete_domain` | `delete` | `/v3/domains/{domain}` - pathParams: `domain` |
| `post_messages` | `post` | `/v3/{domain}/messages` - pathParams: `domain` - `from` * (string), `to` * (string), `subject` (string), `text` (string), `html` (string), `template` (string), `cc` (string), `bcc` (string), `tags` (string) - body required |
| `get_events` | `get` | `/v3/{domain}/events` - pathParams: `domain` |
| `get_mailing_lists` | `get` | `/v3/lists/pages` |
| `post_mailing_lists` | `post` | `/v3/lists` - `address` * (string), `name` (string), `description` (string), `access_level` (string) [`readonly`, `members`, `everyone`] - body required |
| `get_mailing_list` | `get` | `/v3/lists/{address}` - pathParams: `address` |
| `put_mailing_list` | `put` | `/v3/lists/{address}` - pathParams: `address` - `name` (string), `description` (string), `access_level` (string) [`readonly`, `members`, `everyone`] - body required |
| `delete_mailing_list` | `delete` | `/v3/lists/{address}` - pathParams: `address` |
| `get_list_members` | `get` | `/v3/lists/{list}/members/pages` - pathParams: `list` |
| `post_list_members` | `post` | `/v3/lists/{list}/members` - pathParams: `list` - `address` * (string), `name` (string), `vars` (json), `subscribed` (boolean) - body required |
| `post_webhooks` | `post` | `/v3/domains/{domain}/webhooks` - pathParams: `domain` - `url` * (string), `id` (string) - body required |
| `get_webhooks` | `get` | `/v3/domains/{domain}/webhooks` - pathParams: `domain` |
| `put_webhooks` | `put` | `/v3/domains/{domain}/webhooks/{id}` - pathParams: `domain`, `id` - `url` * (string) - body required |
| `delete_webhooks` | `delete` | `/v3/domains/{domain}/webhooks/{id}` - pathParams: `domain`, `id` |
| `custom_request` | `post` | `{customPath}` - pathParams: `customPath` |

An asterisk marks an operation-required parameter. Body fields and permissions depend on the selected operation; use its guided form and the provider’s official reference.

## Initial configuration

Initial catalog configuration example, to adapt before running. Keep secrets in credentials.

```json
{
  "credentialId": "",
  "operation": "post_messages",
  "pathParams": "{}",
  "queryParams": "{}",
  "body": "",
  "bodyFieldValues": "{}",
  "customMethod": "post",
  "customPath": "",
  "defaultDomain": "",
  "requestMode": "curated"
}
```

## Verification

Test with representative data. Check node output in the inspector and logs, then use editor mapping for downstream fields. A trigger test with a simulated payload does not validate external service delivery.

See also : [Expressions and data](/docs/expressions), [Executions](/docs/executions), [Node catalog](/docs/nodes).

## Explore further

- [Features - nodulz](https://nodulz.com/product/overview)
- [Node catalog - nodulz](https://nodulz.com/product/catalog)
- [MCP server - nodulz](https://nodulz.com/product/mcp)
- [Pricing - nodulz](https://nodulz.com/pricing)
- [Use cases and workflow automation - nodulz](https://nodulz.com/use-cases)
- [Choose what your workflows can do. - nodulz](https://nodulz.com/compare)
- [Documentation - nodulz](https://nodulz.com/docs)
