productivity
Elastic Email Lua API for KosmoKrator Agents
Agent-facing Lua documentation and function reference for the Elastic Email KosmoKrator integration.Lua Namespace
Agents call this integration through app.integrations.elastic_email.*.
Use lua_read_doc("integrations.elastic-email") inside KosmoKrator to discover the same reference at runtime.
Call Lua from the Headless CLI
Use kosmo integrations:lua when a shell script, CI job, cron job, or another coding CLI should run a deterministic
Elastic Email workflow without starting an interactive agent session.
kosmo integrations:lua --eval 'dump(app.integrations.elastic_email.elasticemail_add_contacts_list({name = "example_name", emails = "example_emails"}))' --json kosmo integrations:lua --eval 'print(docs.read("elastic-email"))' --json
kosmo integrations:lua --eval 'print(docs.read("elastic-email.elasticemail_add_contacts_list"))' --json Workflow file
Put repeatable logic in a Lua file, then execute it with JSON output for the calling process.
local elastic_email = app.integrations.elastic_email
local result = elastic_email.elasticemail_add_contacts_list({name = "example_name", emails = "example_emails"})
dump(result) kosmo integrations:lua workflow.lua --json
kosmo integrations:lua workflow.lua --force --json integrations:lua exposes app.integrations.elastic_email, app.mcp.*, docs.*, json.*, and regex.*. Use app.integrations.elastic_email.default.* or app.integrations.elastic_email.work.* when you configured named credential accounts.
MCP-only Lua
If the script only needs configured MCP servers and does not need Elastic Email, use the narrower mcp:lua command.
# Use mcp:lua for MCP-only scripts; use integrations:lua for this integration namespace.
kosmo mcp:lua --eval 'dump(mcp.servers())' --json Agent-Facing Lua Docs
This is the rendered version of the full Lua documentation exposed to agents when they inspect the integration namespace.
Elastic Email Lua API Reference
Namespace: app.integrations["elastic-email"]
Elastic Email tools use REST API v4. API keys are sent with X-ElasticEmail-ApiKey.
local sent = app.integrations["elastic-email"].send_email({
to = "person@example.test",
subject = "Welcome",
body = "<p>Hello</p>",
from = "sender@example.test"
})
local status = app.integrations["elastic-email"].get_email_status({
transaction_id = "tx_123"
})
send_bulk_email accepts a full Elastic Email v4 email payload under payload.
Contacts And Lists
local contacts = app.integrations["elastic-email"].list_contacts({
limit = 50
})
local contact = app.integrations["elastic-email"].get_contact({
email = "person@example.test"
})
local created = app.integrations["elastic-email"].create_contact({
email = "person@example.test",
list_name = "Newsletter",
first_name = "Example"
})
local lists = app.integrations["elastic-email"].list_lists({})
local members = app.integrations["elastic-email"].list_list_contacts({
name = "Newsletter"
})
Use add_contacts_to_list and remove_contacts_from_list with comma- or semicolon-separated email addresses.
Campaigns, Events, Suppressions
local campaigns = app.integrations["elastic-email"].list_campaigns({})
local campaign = app.integrations["elastic-email"].get_campaign({ name = "Launch" })
local events = app.integrations["elastic-email"].list_events({
params = { limit = 100 }
})
local suppressions = app.integrations["elastic-email"].list_suppressions({
type = "bounces"
})
Suppression type must be unsubscribes, bounces, or complaints.
Templates, Statistics, Files
local templates = app.integrations["elastic-email"].list_templates({
limit = 20
})
local template = app.integrations["elastic-email"].get_template({
id = "welcome"
})
local stats = app.integrations["elastic-email"].get_statistics({})
local campaign_stats = app.integrations["elastic-email"].get_campaign_statistics({
name = "Launch"
})
local files = app.integrations["elastic-email"].list_files({})
The id field for get_template is the template name in the v4 path.
Long-Tail Endpoints
local domains = app.integrations["elastic-email"].api_get({
path = "/domains"
})
local export = app.integrations["elastic-email"].api_post({
path = "/contacts/export",
payload = { FileFormat = "Csv" }
})
Generic API tools accept relative paths only.
Multi-Account Usage
app.integrations["elastic-email"].send_email({...})
app.integrations["elastic-email"].default.send_email({...})
app.integrations["elastic-email"].marketing.list_campaigns({})
All functions are identical across accounts; only credentials differ.
Raw agent markdown
# Elastic Email Lua API Reference
Namespace: `app.integrations["elastic-email"]`
Elastic Email tools use REST API v4. API keys are sent with `X-ElasticEmail-ApiKey`.
## Email
```lua
local sent = app.integrations["elastic-email"].send_email({
to = "person@example.test",
subject = "Welcome",
body = "<p>Hello</p>",
from = "sender@example.test"
})
local status = app.integrations["elastic-email"].get_email_status({
transaction_id = "tx_123"
})
```
`send_bulk_email` accepts a full Elastic Email v4 email payload under `payload`.
## Contacts And Lists
```lua
local contacts = app.integrations["elastic-email"].list_contacts({
limit = 50
})
local contact = app.integrations["elastic-email"].get_contact({
email = "person@example.test"
})
local created = app.integrations["elastic-email"].create_contact({
email = "person@example.test",
list_name = "Newsletter",
first_name = "Example"
})
local lists = app.integrations["elastic-email"].list_lists({})
local members = app.integrations["elastic-email"].list_list_contacts({
name = "Newsletter"
})
```
Use `add_contacts_to_list` and `remove_contacts_from_list` with comma- or semicolon-separated email addresses.
## Campaigns, Events, Suppressions
```lua
local campaigns = app.integrations["elastic-email"].list_campaigns({})
local campaign = app.integrations["elastic-email"].get_campaign({ name = "Launch" })
local events = app.integrations["elastic-email"].list_events({
params = { limit = 100 }
})
local suppressions = app.integrations["elastic-email"].list_suppressions({
type = "bounces"
})
```
Suppression `type` must be `unsubscribes`, `bounces`, or `complaints`.
## Templates, Statistics, Files
```lua
local templates = app.integrations["elastic-email"].list_templates({
limit = 20
})
local template = app.integrations["elastic-email"].get_template({
id = "welcome"
})
local stats = app.integrations["elastic-email"].get_statistics({})
local campaign_stats = app.integrations["elastic-email"].get_campaign_statistics({
name = "Launch"
})
local files = app.integrations["elastic-email"].list_files({})
```
The `id` field for `get_template` is the template name in the v4 path.
## Long-Tail Endpoints
```lua
local domains = app.integrations["elastic-email"].api_get({
path = "/domains"
})
local export = app.integrations["elastic-email"].api_post({
path = "/contacts/export",
payload = { FileFormat = "Csv" }
})
```
Generic API tools accept relative paths only.
## Multi-Account Usage
```lua
app.integrations["elastic-email"].send_email({...})
app.integrations["elastic-email"].default.send_email({...})
app.integrations["elastic-email"].marketing.list_campaigns({})
```
All functions are identical across accounts; only credentials differ. local result = app.integrations.elastic_email.elasticemail_add_contacts_list({name = "example_name", emails = "example_emails"})
print(result) Functions
elasticemail_add_contacts_list Write
Add one or more contacts to an Elastic Email list.
- Lua path
app.integrations.elastic_email.elasticemail_add_contacts_list- Full name
elastic-email.elasticemail_add_contacts_to_list
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | yes | List name. |
emails | string | yes | Comma- or semicolon-separated email addresses. |
elasticemail_api_get Read
Call any Elastic Email API v4 GET endpoint not covered by a first-class tool.
- Lua path
app.integrations.elastic_email.elasticemail_api_get- Full name
elastic-email.elasticemail_api_get
| Parameter | Type | Required | Description |
|---|---|---|---|
path | string | yes | API path such as /domains or /security/apikeys. |
params | object | no | Query parameters. |
elasticemail_api_post Read
Call an Elastic Email API v4 POST endpoint with a JSON payload.
- Lua path
app.integrations.elastic_email.elasticemail_api_post- Full name
elastic-email.elasticemail_api_post
| Parameter | Type | Required | Description |
|---|---|---|---|
path | string | yes | API path such as /contacts/export. |
payload | object | no | JSON request payload. |
elasticemail_create_contact Write
Create or add a contact in Elastic Email. Optionally assign the contact to an existing list.
- Lua path
app.integrations.elastic_email.elasticemail_create_contact- Full name
elastic-email.elasticemail_create_contact
| Parameter | Type | Required | Description |
|---|---|---|---|
email | string | yes | Contact email address. |
list_name | string | no | Name of the list to add the contact to. The list must already exist in your Elastic Email account. |
first_name | string | no | Contact first name. |
last_name | string | no | Contact last name. |
elasticemail_delete_contact Write
Delete an Elastic Email contact by email address.
- Lua path
app.integrations.elastic_email.elasticemail_delete_contact- Full name
elastic-email.elasticemail_delete_contact
| Parameter | Type | Required | Description |
|---|---|---|---|
email | string | yes | Contact email address. |
elasticemail_get_campaign Read
Get an Elastic Email campaign by name.
- Lua path
app.integrations.elastic_email.elasticemail_get_campaign- Full name
elastic-email.elasticemail_get_campaign
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | yes | Campaign name. |
elasticemail_get_campaign_statistics Read
Get statistics for an Elastic Email campaign by name.
- Lua path
app.integrations.elastic_email.elasticemail_get_campaign_statistics- Full name
elastic-email.elasticemail_get_campaign_statistics
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | yes | Campaign name. |
elasticemail_get_contact Read
Load a single Elastic Email contact by email address.
- Lua path
app.integrations.elastic_email.elasticemail_get_contact- Full name
elastic-email.elasticemail_get_contact
| Parameter | Type | Required | Description |
|---|---|---|---|
email | string | yes | Contact email address. |
elasticemail_get_status Read
Get delivery status for an Elastic Email transaction ID.
- Lua path
app.integrations.elastic_email.elasticemail_get_status- Full name
elastic-email.elasticemail_get_email_status
| Parameter | Type | Required | Description |
|---|---|---|---|
transaction_id | string | yes | Transaction ID returned by send email. |
elasticemail_get_list Read
Load an Elastic Email contact list by name.
- Lua path
app.integrations.elastic_email.elasticemail_get_list- Full name
elastic-email.elasticemail_get_list
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | yes | List name. |
elasticemail_get_statistics Read
Get account-wide Elastic Email statistics.
- Lua path
app.integrations.elastic_email.elasticemail_get_statistics- Full name
elastic-email.elasticemail_get_statistics
| Parameter | Type | Required | Description |
|---|---|---|---|
params | object | no | Optional from and to dates. |
elasticemail_get_template Read
Get details of a specific email template by name from Elastic Email.
- Lua path
app.integrations.elastic_email.elasticemail_get_template- Full name
elastic-email.elasticemail_get_template
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | The template name. |
elasticemail_list_campaigns Read
List Elastic Email campaigns.
- Lua path
app.integrations.elastic_email.elasticemail_list_campaigns- Full name
elastic-email.elasticemail_list_campaigns
| Parameter | Type | Required | Description |
|---|---|---|---|
params | object | no | Optional limit and offset. |
elasticemail_list_contacts Read
List contacts from your Elastic Email account.
- Lua path
app.integrations.elastic_email.elasticemail_list_contacts- Full name
elastic-email.elasticemail_list_contacts
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | no | Maximum number of contacts to return (default: 100). |
offset | integer | no | Offset for pagination (default: 0). |
elasticemail_list_events Read
List events for a single Elastic Email transaction ID.
- Lua path
app.integrations.elastic_email.elasticemail_list_events- Full name
elastic-email.elasticemail_list_email_events
| Parameter | Type | Required | Description |
|---|---|---|---|
transaction_id | string | yes | Transaction ID. |
elasticemail_list_events Read
List Elastic Email events with optional filters.
- Lua path
app.integrations.elastic_email.elasticemail_list_events- Full name
elastic-email.elasticemail_list_events
| Parameter | Type | Required | Description |
|---|---|---|---|
params | object | no | Optional from, to, eventTypes, limit, offset, channelName. |
elasticemail_list_files Read
List files uploaded to Elastic Email.
- Lua path
app.integrations.elastic_email.elasticemail_list_files- Full name
elastic-email.elasticemail_list_files
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
elasticemail_list_list_contacts Read
List contacts in an Elastic Email contact list.
- Lua path
app.integrations.elastic_email.elasticemail_list_list_contacts- Full name
elastic-email.elasticemail_list_list_contacts
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | yes | List name. |
params | object | no | Optional limit and offset. |
elasticemail_list_lists Read
List Elastic Email contact lists.
- Lua path
app.integrations.elastic_email.elasticemail_list_lists- Full name
elastic-email.elasticemail_list_lists
| Parameter | Type | Required | Description |
|---|---|---|---|
params | object | no | Optional limit and offset. |
elasticemail_list_suppressions Read
List unsubscribes, bounces, or complaints from Elastic Email suppressions.
- Lua path
app.integrations.elastic_email.elasticemail_list_suppressions- Full name
elastic-email.elasticemail_list_suppressions
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | no | unsubscribes, bounces, or complaints. Default: unsubscribes. |
elasticemail_list_templates Read
List email templates available in your Elastic Email account.
- Lua path
app.integrations.elastic_email.elasticemail_list_templates- Full name
elastic-email.elasticemail_list_templates
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | no | Maximum number of templates to return (default: 100). |
offset | integer | no | Offset for pagination (default: 0). |
elasticemail_pause_campaign Write
Pause an Elastic Email campaign by name.
- Lua path
app.integrations.elastic_email.elasticemail_pause_campaign- Full name
elastic-email.elasticemail_pause_campaign
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | yes | Campaign name. |
elasticemail_remove_contacts_from_list Write
Remove one or more contacts from an Elastic Email list.
- Lua path
app.integrations.elastic_email.elasticemail_remove_contacts_from_list- Full name
elastic-email.elasticemail_remove_contacts_from_list
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | yes | List name. |
emails | string | yes | Comma- or semicolon-separated email addresses. |
elasticemail_send_bulk Write
Send a bulk email using the Elastic Email /emails endpoint with a full v4 payload.
- Lua path
app.integrations.elastic_email.elasticemail_send_bulk- Full name
elastic-email.elasticemail_send_bulk_email
| Parameter | Type | Required | Description |
|---|---|---|---|
payload | object | yes | Elastic Email EmailMessageData payload. |
elasticemail_send Write
Send a transactional email via Elastic Email. Provide the recipient address, subject, and HTML body.
- Lua path
app.integrations.elastic_email.elasticemail_send- Full name
elastic-email.elasticemail_send_email
| Parameter | Type | Required | Description |
|---|---|---|---|
to | string | yes | Recipient email address. For multiple recipients, separate with semicolons. |
subject | string | yes | Email subject line. |
body | string | yes | HTML body content of the email. |
from | string | no | Sender email address (must be a verified sender in your Elastic Email account). |
from_name | string | no | Display name for the sender. |
reply_to | string | no | Reply-to email address. |
cc | string | no | CC recipients, separated by semicolons. |
bcc | string | no | BCC recipients, separated by semicolons. |
elasticemail_update_contact Write
Update an Elastic Email contact by email address.
- Lua path
app.integrations.elastic_email.elasticemail_update_contact- Full name
elastic-email.elasticemail_update_contact
| Parameter | Type | Required | Description |
|---|---|---|---|
email | string | yes | Contact email address. |
payload | object | yes | Contact payload fields to update. |