KosmoKrator

email

Campaign Monitor Lua API for KosmoKrator Agents

Agent-facing Lua documentation and function reference for the Campaign Monitor KosmoKrator integration.

7 functions 6 read 1 write API key auth

Lua Namespace

Agents call this integration through app.integrations.campaign_monitor.*. Use lua_read_doc("integrations.campaign-monitor") inside KosmoKrator to discover the same reference at runtime.

Agent-Facing Lua Docs

This is the rendered version of the full Lua documentation exposed to agents when they inspect the integration namespace.

Campaign Monitor — Lua API Reference

list_campaigns

List all email campaigns in your Campaign Monitor account.

Parameters

None.

Example

local result = app.integrations["campaign-monitor"].list_campaigns()

for _, campaign in ipairs(result) do
  print(campaign.Subject .. " (" .. campaign.Status .. ")")
end

get_campaign

Get detailed information about a specific email campaign.

Parameters

NameTypeRequiredDescription
campaign_idstringyesThe campaign ID

Example

local result = app.integrations["campaign-monitor"].get_campaign({
  campaign_id = "abc123"
})

print("Subject: " .. result.Subject)
print("Status: " .. result.Status)

list_lists

List all subscriber lists in your Campaign Monitor account.

Parameters

None.

Example

local result = app.integrations["campaign-monitor"].list_lists()

for _, list in ipairs(result) do
  print(list.Name .. " (" .. list.ListID .. ")")
end

get_list

Get detailed information about a specific subscriber list.

Parameters

NameTypeRequiredDescription
list_idstringyesThe subscriber list ID

Example

local result = app.integrations["campaign-monitor"].get_list({
  list_id = "abc123"
})

print("List: " .. result.Title)
print("Subscribers: " .. result.TotalActiveSubscribers)

list_subscribers

List active subscribers on a Campaign Monitor list.

Parameters

NameTypeRequiredDescription
list_idstringyesThe subscriber list ID
pageintegernoPage number for pagination (default: 1)
page_sizeintegernoNumber of subscribers per page (default: 100, max: 1000)

Example

local result = app.integrations["campaign-monitor"].list_subscribers({
  list_id = "abc123",
  page = 1,
  page_size = 50
})

for _, sub in ipairs(result.Results) do
  print(sub.EmailAddress .. " - " .. sub.Name)
end

add_subscriber

Add a new subscriber to a Campaign Monitor list.

Parameters

NameTypeRequiredDescription
list_idstringyesThe subscriber list ID
emailstringyesThe subscriber’s email address
namestringyesThe subscriber’s full name
resubscribebooleannoRe-subscribe if previously unsubscribed (default: true)

Example

local result = app.integrations["campaign-monitor"].add_subscriber({
  list_id = "abc123",
  email = "[email protected]",
  name = "John Doe"
})

print(result.message)

get_current_user

Get the authenticated user’s Campaign Monitor account details.

Parameters

None.

Example

local result = app.integrations["campaign-monitor"].get_current_user()

print("Account: " .. result.EmailAddress)
print("Name: " .. result.Name)

Multi-Account Usage

If you have multiple Campaign Monitor accounts configured, use account-specific namespaces:

-- Default account (always works)
app.integrations["campaign-monitor"].list_lists({})

-- Explicit default (portable across setups)
app.integrations["campaign-monitor"].default.list_lists({})

-- Named accounts
app.integrations["campaign-monitor"].marketing.list_lists({})
app.integrations["campaign-monitor"].transactional.list_lists({})

All functions are identical across accounts — only the credentials differ.

Raw agent markdown
# Campaign Monitor — Lua API Reference

## list_campaigns

List all email campaigns in your Campaign Monitor account.

### Parameters

None.

### Example

```lua
local result = app.integrations["campaign-monitor"].list_campaigns()

for _, campaign in ipairs(result) do
  print(campaign.Subject .. " (" .. campaign.Status .. ")")
end
```

---

## get_campaign

Get detailed information about a specific email campaign.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `campaign_id` | string | yes | The campaign ID |

### Example

```lua
local result = app.integrations["campaign-monitor"].get_campaign({
  campaign_id = "abc123"
})

print("Subject: " .. result.Subject)
print("Status: " .. result.Status)
```

---

## list_lists

List all subscriber lists in your Campaign Monitor account.

### Parameters

None.

### Example

```lua
local result = app.integrations["campaign-monitor"].list_lists()

for _, list in ipairs(result) do
  print(list.Name .. " (" .. list.ListID .. ")")
end
```

---

## get_list

Get detailed information about a specific subscriber list.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `list_id` | string | yes | The subscriber list ID |

### Example

```lua
local result = app.integrations["campaign-monitor"].get_list({
  list_id = "abc123"
})

print("List: " .. result.Title)
print("Subscribers: " .. result.TotalActiveSubscribers)
```

---

## list_subscribers

List active subscribers on a Campaign Monitor list.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `list_id` | string | yes | The subscriber list ID |
| `page` | integer | no | Page number for pagination (default: 1) |
| `page_size` | integer | no | Number of subscribers per page (default: 100, max: 1000) |

### Example

```lua
local result = app.integrations["campaign-monitor"].list_subscribers({
  list_id = "abc123",
  page = 1,
  page_size = 50
})

for _, sub in ipairs(result.Results) do
  print(sub.EmailAddress .. " - " .. sub.Name)
end
```

---

## add_subscriber

Add a new subscriber to a Campaign Monitor list.

### Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `list_id` | string | yes | The subscriber list ID |
| `email` | string | yes | The subscriber's email address |
| `name` | string | yes | The subscriber's full name |
| `resubscribe` | boolean | no | Re-subscribe if previously unsubscribed (default: true) |

### Example

```lua
local result = app.integrations["campaign-monitor"].add_subscriber({
  list_id = "abc123",
  email = "[email protected]",
  name = "John Doe"
})

print(result.message)
```

---

## get_current_user

Get the authenticated user's Campaign Monitor account details.

### Parameters

None.

### Example

```lua
local result = app.integrations["campaign-monitor"].get_current_user()

print("Account: " .. result.EmailAddress)
print("Name: " .. result.Name)
```

---

## Multi-Account Usage

If you have multiple Campaign Monitor accounts configured, use account-specific namespaces:

```lua
-- Default account (always works)
app.integrations["campaign-monitor"].list_lists({})

-- Explicit default (portable across setups)
app.integrations["campaign-monitor"].default.list_lists({})

-- Named accounts
app.integrations["campaign-monitor"].marketing.list_lists({})
app.integrations["campaign-monitor"].transactional.list_lists({})
```

All functions are identical across accounts — only the credentials differ.

Metadata-Derived Lua Example

local result = app.integrations.campaign_monitor.campaignmonitor_list_campaigns({})
print(result)

Functions

campaignmonitor_list_campaigns

List all email campaigns in your Campaign Monitor account. Returns campaign IDs, subjects, and status.

Operation
Read read
Full name
campaign-monitor.campaignmonitor_list_campaigns
ParameterTypeRequiredDescription
No parameters.

campaignmonitor_get_campaign

Get detailed information about a specific email campaign, including subject, content, and delivery stats.

Operation
Read read
Full name
campaign-monitor.campaignmonitor_get_campaign
ParameterTypeRequiredDescription
campaign_id string yes The campaign ID.

campaignmonitor_list_lists

List all subscriber lists in your Campaign Monitor account. Returns list IDs and names.

Operation
Read read
Full name
campaign-monitor.campaignmonitor_list_lists
ParameterTypeRequiredDescription
No parameters.

campaignmonitor_get_list

Get detailed information about a specific subscriber list, including subscriber counts and custom fields.

Operation
Read read
Full name
campaign-monitor.campaignmonitor_get_list
ParameterTypeRequiredDescription
list_id string yes The subscriber list ID.

campaignmonitor_list_subscribers

List active subscribers on a Campaign Monitor list. Returns email addresses, names, and subscription dates.

Operation
Read read
Full name
campaign-monitor.campaignmonitor_list_subscribers
ParameterTypeRequiredDescription
list_id string yes The subscriber list ID.
page integer no Page number for pagination (default: 1).
page_size integer no Number of subscribers per page (default: 100, max: 1000).

campaignmonitor_add_subscriber

Add a new subscriber to a Campaign Monitor list. The subscriber will receive a confirmation email if double opt-in is enabled.

Operation
Write write
Full name
campaign-monitor.campaignmonitor_add_subscriber
ParameterTypeRequiredDescription
list_id string yes The subscriber list ID.
email string yes The subscriber's email address.
name string yes The subscriber's full name.
resubscribe boolean no Re-subscribe if previously unsubscribed (default: true).

campaignmonitor_get_current_user

Get the authenticated user's Campaign Monitor account details, including name and email.

Operation
Read read
Full name
campaign-monitor.campaignmonitor_get_current_user
ParameterTypeRequiredDescription
No parameters.