Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions apps/docs/content/docs/integrations/mailgun.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ Send an email using Mailgun API
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Mailgun API key |
| `region` | string | No | Mailgun account region: "us" \(default\) or "eu" |
| `domain` | string | Yes | Mailgun sending domain \(e.g., mg.example.com\) |
| `from` | string | Yes | Sender email address \(e.g., sender@example.com or "Name <sender@example.com>"\) |
| `to` | string | Yes | Recipient email address \(e.g., user@example.com\). Use comma-separated values for multiple recipients |
Expand Down Expand Up @@ -59,6 +60,7 @@ Retrieve a stored message by its key
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Mailgun API key |
| `region` | string | No | Mailgun account region: "us" \(default\) or "eu" |
| `domain` | string | Yes | Mailgun domain for retrieving messages \(e.g., mg.example.com\) |
| `messageKey` | string | Yes | Message storage key |

Expand Down Expand Up @@ -89,6 +91,7 @@ List events (logs) for messages sent through Mailgun
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Mailgun API key |
| `region` | string | No | Mailgun account region: "us" \(default\) or "eu" |
| `domain` | string | Yes | Mailgun domain for listing events \(e.g., mg.example.com\) |
| `event` | string | No | Filter by event type \(accepted, delivered, failed, opened, clicked, etc.\) |
| `limit` | number | No | Maximum number of events to return \(default: 100\) |
Expand All @@ -110,6 +113,7 @@ Create a new mailing list
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Mailgun API key |
| `region` | string | No | Mailgun account region: "us" \(default\) or "eu" |
| `address` | string | Yes | Mailing list address \(e.g., newsletter@mg.example.com\) |
| `name` | string | No | Mailing list name |
| `description` | string | No | Mailing list description |
Expand All @@ -132,6 +136,7 @@ Get details of a mailing list
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Mailgun API key |
| `region` | string | No | Mailgun account region: "us" \(default\) or "eu" |
| `address` | string | Yes | Mailing list address to retrieve \(e.g., newsletter@mg.example.com\) |

#### Output
Expand All @@ -150,6 +155,7 @@ Add a member to a mailing list
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Mailgun API key |
| `region` | string | No | Mailgun account region: "us" \(default\) or "eu" |
| `listAddress` | string | Yes | Mailing list address \(e.g., list@mg.example.com\) |
| `address` | string | Yes | Member email address to add \(e.g., user@example.com\) |
| `name` | string | No | Member name |
Expand All @@ -173,6 +179,7 @@ List all domains for your Mailgun account
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Mailgun API key |
| `region` | string | No | Mailgun account region: "us" \(default\) or "eu" |

#### Output

Expand All @@ -191,6 +198,7 @@ Get details of a specific domain
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Mailgun API key |
| `region` | string | No | Mailgun account region: "us" \(default\) or "eu" |
| `domain` | string | Yes | Domain name to retrieve details for \(e.g., mg.example.com\) |

#### Output
Expand Down
11 changes: 11 additions & 0 deletions apps/sim/blocks/blocks/mailgun.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,16 @@ export const MailgunBlock: BlockConfig<SendMessageResult> = {
placeholder: 'Enter your Mailgun API key',
required: true,
},
{
id: 'region',
title: 'Region',
type: 'dropdown',
options: [
{ label: 'US', id: 'us' },
{ label: 'EU', id: 'eu' },
],
value: () => 'us',
},
{
id: 'domain',
title: 'Domain',
Expand Down Expand Up @@ -405,6 +415,7 @@ Return ONLY the JSON object - no explanations or markdown.`,
inputs: {
operation: { type: 'string', description: 'Operation to perform' },
apiKey: { type: 'string', description: 'Mailgun API key' },
region: { type: 'string', description: 'Mailgun account region: "us" or "eu"' },
domain: { type: 'string', description: 'Mailgun domain' },
// Message inputs
from: { type: 'string', description: 'Sender email address' },
Expand Down
2 changes: 1 addition & 1 deletion apps/sim/tools/generated/tool-metadata.ts

Large diffs are not rendered by default.

9 changes: 8 additions & 1 deletion apps/sim/tools/mailgun/add_list_member.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import type { AddListMemberParams, AddListMemberResult } from '@/tools/mailgun/types'
import { getMailgunApiBaseUrl } from '@/tools/mailgun/utils'
import type { ToolConfig } from '@/tools/types'

export const mailgunAddListMemberTool: ToolConfig<AddListMemberParams, AddListMemberResult> = {
Expand All @@ -14,6 +15,12 @@ export const mailgunAddListMemberTool: ToolConfig<AddListMemberParams, AddListMe
visibility: 'user-only',
description: 'Mailgun API key',
},
region: {
type: 'string',
required: false,
visibility: 'user-only',
description: 'Mailgun account region: "us" (default) or "eu"',
},
listAddress: {
type: 'string',
required: true,
Expand Down Expand Up @@ -47,7 +54,7 @@ export const mailgunAddListMemberTool: ToolConfig<AddListMemberParams, AddListMe
},

request: {
url: (params) => `https://api.mailgun.net/v3/lists/${params.listAddress}/members`,
url: (params) => `${getMailgunApiBaseUrl(params.region)}/lists/${params.listAddress}/members`,
method: 'POST',
headers: (params) => ({
Authorization: `Basic ${Buffer.from(`api:${params.apiKey}`).toString('base64')}`,
Expand Down
9 changes: 8 additions & 1 deletion apps/sim/tools/mailgun/create_mailing_list.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import type { CreateMailingListParams, CreateMailingListResult } from '@/tools/mailgun/types'
import { getMailgunApiBaseUrl } from '@/tools/mailgun/utils'
import type { ToolConfig } from '@/tools/types'

export const mailgunCreateMailingListTool: ToolConfig<
Expand All @@ -17,6 +18,12 @@ export const mailgunCreateMailingListTool: ToolConfig<
visibility: 'user-only',
description: 'Mailgun API key',
},
region: {
type: 'string',
required: false,
visibility: 'user-only',
description: 'Mailgun account region: "us" (default) or "eu"',
},
address: {
type: 'string',
required: true,
Expand Down Expand Up @@ -44,7 +51,7 @@ export const mailgunCreateMailingListTool: ToolConfig<
},

request: {
url: () => 'https://api.mailgun.net/v3/lists',
url: (params) => `${getMailgunApiBaseUrl(params.region)}/lists`,
method: 'POST',
headers: (params) => ({
Authorization: `Basic ${Buffer.from(`api:${params.apiKey}`).toString('base64')}`,
Expand Down
9 changes: 8 additions & 1 deletion apps/sim/tools/mailgun/get_domain.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import type { GetDomainParams, GetDomainResult } from '@/tools/mailgun/types'
import { getMailgunApiBaseUrl } from '@/tools/mailgun/utils'
import type { ToolConfig } from '@/tools/types'

export const mailgunGetDomainTool: ToolConfig<GetDomainParams, GetDomainResult> = {
Expand All @@ -14,6 +15,12 @@ export const mailgunGetDomainTool: ToolConfig<GetDomainParams, GetDomainResult>
visibility: 'user-only',
description: 'Mailgun API key',
},
region: {
type: 'string',
required: false,
visibility: 'user-only',
description: 'Mailgun account region: "us" (default) or "eu"',
},
domain: {
type: 'string',
required: true,
Expand All @@ -23,7 +30,7 @@ export const mailgunGetDomainTool: ToolConfig<GetDomainParams, GetDomainResult>
},

request: {
url: (params) => `https://api.mailgun.net/v3/domains/${params.domain}`,
url: (params) => `${getMailgunApiBaseUrl(params.region)}/domains/${params.domain}`,
method: 'GET',
headers: (params) => ({
Authorization: `Basic ${Buffer.from(`api:${params.apiKey}`).toString('base64')}`,
Expand Down
9 changes: 8 additions & 1 deletion apps/sim/tools/mailgun/get_mailing_list.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import type { GetMailingListParams, GetMailingListResult } from '@/tools/mailgun/types'
import { getMailgunApiBaseUrl } from '@/tools/mailgun/utils'
import type { ToolConfig } from '@/tools/types'

export const mailgunGetMailingListTool: ToolConfig<GetMailingListParams, GetMailingListResult> = {
Expand All @@ -14,6 +15,12 @@ export const mailgunGetMailingListTool: ToolConfig<GetMailingListParams, GetMail
visibility: 'user-only',
description: 'Mailgun API key',
},
region: {
type: 'string',
required: false,
visibility: 'user-only',
description: 'Mailgun account region: "us" (default) or "eu"',
},
address: {
type: 'string',
required: true,
Expand All @@ -23,7 +30,7 @@ export const mailgunGetMailingListTool: ToolConfig<GetMailingListParams, GetMail
},

request: {
url: (params) => `https://api.mailgun.net/v3/lists/${params.address}`,
url: (params) => `${getMailgunApiBaseUrl(params.region)}/lists/${params.address}`,
method: 'GET',
headers: (params) => ({
Authorization: `Basic ${Buffer.from(`api:${params.apiKey}`).toString('base64')}`,
Expand Down
9 changes: 8 additions & 1 deletion apps/sim/tools/mailgun/get_message.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import type { GetMessageParams, GetMessageResult } from '@/tools/mailgun/types'
import { getMailgunApiBaseUrl } from '@/tools/mailgun/utils'
import type { ToolConfig } from '@/tools/types'

export const mailgunGetMessageTool: ToolConfig<GetMessageParams, GetMessageResult> = {
Expand All @@ -14,6 +15,12 @@ export const mailgunGetMessageTool: ToolConfig<GetMessageParams, GetMessageResul
visibility: 'user-only',
description: 'Mailgun API key',
},
region: {
type: 'string',
required: false,
visibility: 'user-only',
description: 'Mailgun account region: "us" (default) or "eu"',
},
domain: {
type: 'string',
required: true,
Expand All @@ -30,7 +37,7 @@ export const mailgunGetMessageTool: ToolConfig<GetMessageParams, GetMessageResul

request: {
url: (params) =>
`https://api.mailgun.net/v3/domains/${params.domain}/messages/${params.messageKey}`,
`${getMailgunApiBaseUrl(params.region)}/domains/${params.domain}/messages/${params.messageKey}`,
method: 'GET',
headers: (params) => ({
Authorization: `Basic ${Buffer.from(`api:${params.apiKey}`).toString('base64')}`,
Expand Down
9 changes: 8 additions & 1 deletion apps/sim/tools/mailgun/list_domains.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import type { ListDomainsParams, ListDomainsResult } from '@/tools/mailgun/types'
import { getMailgunApiBaseUrl } from '@/tools/mailgun/utils'
import type { ToolConfig } from '@/tools/types'

export const mailgunListDomainsTool: ToolConfig<ListDomainsParams, ListDomainsResult> = {
Expand All @@ -14,10 +15,16 @@ export const mailgunListDomainsTool: ToolConfig<ListDomainsParams, ListDomainsRe
visibility: 'user-only',
description: 'Mailgun API key',
},
region: {
type: 'string',
required: false,
visibility: 'user-only',
description: 'Mailgun account region: "us" (default) or "eu"',
},
},

request: {
url: () => 'https://api.mailgun.net/v3/domains',
url: (params) => `${getMailgunApiBaseUrl(params.region)}/domains`,
method: 'GET',
headers: (params) => ({
Authorization: `Basic ${Buffer.from(`api:${params.apiKey}`).toString('base64')}`,
Expand Down
9 changes: 8 additions & 1 deletion apps/sim/tools/mailgun/list_messages.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import type { ListMessagesParams, ListMessagesResult } from '@/tools/mailgun/types'
import { getMailgunApiBaseUrl } from '@/tools/mailgun/utils'
import type { ToolConfig } from '@/tools/types'

export const mailgunListMessagesTool: ToolConfig<ListMessagesParams, ListMessagesResult> = {
Expand All @@ -14,6 +15,12 @@ export const mailgunListMessagesTool: ToolConfig<ListMessagesParams, ListMessage
visibility: 'user-only',
description: 'Mailgun API key',
},
region: {
type: 'string',
required: false,
visibility: 'user-only',
description: 'Mailgun account region: "us" (default) or "eu"',
},
domain: {
type: 'string',
required: true,
Expand All @@ -36,7 +43,7 @@ export const mailgunListMessagesTool: ToolConfig<ListMessagesParams, ListMessage

request: {
url: (params) => {
const baseUrl = `https://api.mailgun.net/v3/${params.domain}/events`
const baseUrl = `${getMailgunApiBaseUrl(params.region)}/${params.domain}/events`
const queryParams = new URLSearchParams()

if (params.event) {
Expand Down
9 changes: 8 additions & 1 deletion apps/sim/tools/mailgun/send_message.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import type { SendMessageParams, SendMessageResult } from '@/tools/mailgun/types'
import { getMailgunApiBaseUrl } from '@/tools/mailgun/utils'
import type { ToolConfig } from '@/tools/types'

export const mailgunSendMessageTool: ToolConfig<SendMessageParams, SendMessageResult> = {
Expand All @@ -14,6 +15,12 @@ export const mailgunSendMessageTool: ToolConfig<SendMessageParams, SendMessageRe
visibility: 'user-only',
description: 'Mailgun API key',
},
region: {
type: 'string',
required: false,
visibility: 'user-only',
description: 'Mailgun account region: "us" (default) or "eu"',
},
domain: {
type: 'string',
required: true,
Expand Down Expand Up @@ -74,7 +81,7 @@ export const mailgunSendMessageTool: ToolConfig<SendMessageParams, SendMessageRe
},

request: {
url: (params) => `https://api.mailgun.net/v3/${params.domain}/messages`,
url: (params) => `${getMailgunApiBaseUrl(params.region)}/${params.domain}/messages`,
method: 'POST',
headers: (params) => ({
Authorization: `Basic ${Buffer.from(`api:${params.apiKey}`).toString('base64')}`,
Expand Down
Loading
Loading