Get Auth Status
Get current authentication status for this MailerLite connection.
Start Automation Conversation
Analyze a user's automation request and return the clarifying questions needed before building it.
Use this FIRST when a user wants to create an automation but has not specified the trigger, the target resource, and the timing. It returns the questions to ask; it does NOT create anything or call the API.
Args:
- user_request (string): The user's verbatim automation request.
Returns: a conversation guide with detected.{ has_trigger_type, has_resource_name, has_timing_info }, questions_to_ask[], and instructions for how to proceed.
Examples:
- "I want to set up a welcome email" -> returns questions about trigger, resource, and timing.
- Once you already have trigger + resource + timing, skip this and go to build_custom_automation / create_automation.
Discover Automation Templates
Browse pre-built automation workflow templates, optionally matched to a user's goal. Returns each template's id, name, trigger, and step flow.
Args:
- type (enum): all | welcome | promotion | reminder | event | feedback | date.
- user_intent (string, optional): The user's goal (e.g. "abandoned cart") used for keyword/AI matching.
Returns: { templates: [{ id, name, trigger_label, complexity, email_count, total_duration, steps[] }], matched, match_method }.
Examples:
- "show me welcome templates" -> type="welcome".
- To create an automation from a result, pass its numeric id to install_template.
Install Template
Install a pre-built automation template, creating a new (inactive) automation in the account.
You MUST obtain template_id from discover_automation_templates first — template IDs are long numeric strings (e.g. "178927102220830454"); a non-numeric value is rejected.
Args:
- template_id (string): Numeric template ID from discover_automation_templates results.
Returns: { success, automation_id, automation_name, dashboard_url, next_steps }.
Examples:
- After discover returns a "Welcome series" template with id "178...", call install_template with that exact id.
- Emails still need to be designed in the dashboard after installing.
List Email Templates
List email templates (visual designs) with optional search filter.
Dry Run Automation
Simulate automation flow without sending real emails.
Send Test Automation
Send test emails from an automation.
List Resources
List resources by type. Pass resource_type as a singular value: "group", "form", "shop", or "segment".
Select Resource
Confirms a user-selected resource (group, form, shop, or segment).
List Automations
List automations in the account. Results are page-paginated — increment the page number to fetch more results.
Generate Email Content
Validate email content (subject and body) against MailerLite best practices. Provide the subject and plain_text you have drafted, and this tool will check for issues like subject length, spam trigger words, missing call-to-action, and body length limits.
Suggest Subject Lines
Validate a list of email subject line candidates against MailerLite best practices. Provide subject lines you have drafted, and this tool will check each one for length, spam trigger words, and other issues.
Get Dashboard Link
Generate MailerLite dashboard URL for editing automation or email.
Update Automation Email
Update the subject line and plain text content of an email step in an automation.
Update Automation Delay
Update the duration of a delay step in an automation.
Build Custom Automation
Validate an automation plan and discover the resources it needs BEFORE creating it. This is a dry validation step and does NOT create anything.
Args:
- trigger_type (enum): subscriber_joins_group | form_completed | abandoned_cart | subscriber_joins_segment.
- steps (array): Planned steps in order; each { type: "email" | "delay", email_subject?, delay_value?, delay_unit? }.
- resource_type (enum, optional): group | form | shop | segment. Defaults based on trigger_type.
- resource_name (string, optional): Partial-match filter for the resource lookup.
Returns: { valid, warnings[], complexity, available_resources[], resource_type }. warnings flag issues (missing subjects, emails too close together, no matching resource); available_resources lists the IDs to wire into create_automation's trigger_config.
Examples:
- Check a 3-email welcome flow and get the group IDs before calling create_automation.
- Resolve any warnings, then call create_automation.
Get Automation Activity
Get activity log for an automation. Filter by status (completed, active, canceled, failed), date range, and subscriber email.
Delete Automation
Delete an automation
Create Automation
Create a new automation workflow in MailerLite, including its trigger and an ordered list of email and delay steps.
IMPORTANT: This creates real resources. Email steps are created but their HTML content CANNOT be authored via the API — the user must design each email in the MailerLite visual editor before the automation can send. The new automation is left inactive.
Args:
- name (string): Automation name.
- trigger_type (enum): What starts the automation (e.g. subscriber_joins_group, form_completed, abandoned_cart, subscriber_joins_segment).
- trigger_config (object): Trigger-specific IDs — group_ids for subscriber_joins_group, segment_id for subscriber_joins_segment, form_id (+ form_type) for form_completed, shop_id for abandoned_cart. Look IDs up first with list_resources.
- steps (array): Ordered steps; each is { type: "email" | "delay" }. Email steps take email_subject; delay steps take delay_value and delay_unit.
Returns: a structured result with automation_id, dashboard_url, steps_created, email_steps_count, and next_steps guidance.
Examples:
- Welcome series: trigger_type="subscriber_joins_group", trigger_config={ group_ids: ["123"] }, steps=[{ type: "email", email_subject: "Welcome" }, { type: "delay", delay_value: 2, delay_unit: "days" }, { type: "email", email_subject: "Getting started" }].
- Validate the plan with build_custom_automation and confirm IDs with list_resources first.
Add Subscriber
Add a new subscriber to MailerLite.
Get Subscriber
Get subscriber information by ID or email
Update Subscriber
Update subscriber information.
List Subscribers
List subscribers in the account. Results are cursor-paginated (default 25 per page) — pass the cursor from the previous response to fetch the next page.
Delete Subscriber
Delete a subscriber from the account.
Get Subscriber Activity
Get activity history for a subscriber (opens, clicks, etc.)
Get Subscriber Count
Get the total count of subscribers in the account
Assign Subscriber To Group
Add a subscriber to a group
Unassign Subscriber From Group
Remove a subscriber from a group
Import Subscribers To Group
Import multiple subscribers to a group at once
Create Campaign
Create a new email campaign. The "from" email must be a verified sender on the account — use get_auth_status or check Settings > Domains in the MailerLite dashboard if unsure.
Get Campaign
Get details of a specific campaign
List Campaigns
List campaigns with optional status and type filters. Results are cursor-paginated — pass the cursor from the previous response to fetch the next page.
Update Campaign
Update campaign details
Delete Campaign
Delete a campaign
Schedule Campaign
Schedule a campaign to be sent. Requires a verified sender on the account. Use delivery "instant" to send immediately, or "scheduled" with a schedule object to send at a specific time.
Cancel Campaign
Cancel a scheduled campaign
Get Campaign Subscribers
Get subscriber activity for a sent campaign (opens, clicks, etc.). Results are page-paginated — increment the page number to fetch more results.
Get Campaign Links
Get all tracked links in a sent campaign, including their IDs, URLs, and click counts.
Get Campaign Link Recipients
Get subscribers who clicked a specific link in a campaign.
Create Group
Create a new subscriber group
Update Group
Update a group name
Delete Group
Delete a subscriber group
Get Group Subscribers
Get subscribers in a specific group. Results are cursor-paginated — pass the cursor from the previous response to fetch the next page.
Search
Search across MailerLite campaigns, groups, forms, and automations by free-text query, matching names and key fields (subject, type, status, slug).
This is a discovery tool that returns lightweight result stubs, not full records. To get the full details of a result, pass its id to the fetch tool.
Args:
- query (string, required): Case-insensitive text to match across resource names and fields.
- limit (number): Max results, 1-20 (default 10).
Returns: { "results": [{ "id": string, "title": string, "url": string }] }. Each id is a prefixed identifier like "campaign:123", "group:456", "form:789", or "automation:012" — pass it verbatim to fetch. Returns an empty results array (never an error) when nothing matches.
Examples:
- "find my black friday campaign" -> query="black friday"
- "which welcome automation do I have" -> query="welcome"
- For unfiltered listing use list_campaigns / list_automations / list_resources instead.
Fetch
Fetch the full record for a single MailerLite resource using an identifier returned by the search tool.
Args:
- id (string, required): A prefixed identifier from search results formatted "<kind>:<id>" where kind is campaign, group, form, or automation (e.g. "campaign:123").
Returns: { "id": string, "title": string, "text": string, "url": string, "metadata": object }. "text" is the full resource serialized as JSON; "metadata" carries kind-specific summary fields (e.g. status/type for campaigns, active_count for groups).
Examples:
- After search returns "automation:012" -> fetch with id="automation:012".
- The id must include the kind prefix from search; a bare numeric id or an unsupported kind returns an error.
List Fields
List all custom subscriber fields
Create Field
Create a new custom subscriber field
Update Field
Update a custom subscriber field name
Delete Field
Delete a custom subscriber field
List Form Templates
List form design templates by type (popup, promotion, or embedded).
List Forms
List forms by type (popup, embedded, or promotion). Results are page-paginated — increment the page number to fetch more results.
Create Form
Create a new signup form. Requires at least one group ID — use list_resources with resource_type "group" to find available groups first.
Get Form
Get details of a specific form
Update Form
Update a form name
Delete Form
Delete a form
Get Form Subscribers
Get subscribers who signed up via a specific form. Results are page-paginated — increment the page number to fetch more results.
List Segments
List subscriber segments. Results are page-paginated — increment the page number to fetch more results.
Create Segment
Create a new subscriber segment. Can be created with just a name (filter rules can be configured later in the MailerLite dashboard), or with filter rules. Filter format: {"rules": [[{"operator": "...", "args": ["field_id", "value"]}]]}. Rules are grouped in arrays — rules within the same inner array use AND logic, separate inner arrays use OR logic. Note: the filter format is complex; creating a name-only segment and configuring filters in the dashboard is recommended.
Get Segment
Get details of a specific segment
Update Segment
Update a segment name
Delete Segment
Delete a segment.
Get Segment Subscribers
Get subscribers belonging to a specific segment. Results are cursor-paginated — pass the cursor from the previous response to fetch the next page.
List Webhooks
List all webhooks
Get Webhook
Get a specific webhook by ID
Create Webhook
Create a new webhook. Events requiring batchable=true: campaign.open, campaign.click, subscriber.deleted
Update Webhook
Update an existing webhook
Delete Webhook
Delete a webhook
Batch Requests
Execute multiple MailerLite API requests in a single call. Maximum 50 requests per batch. Paths must start with "api/". Webhooks are not supported in batch requests.
Manage Ecommerce Shops
List, fetch, create, update or delete MailerLite e-commerce shops. Use `id` as the shop id for get/update/delete.
Manage Ecommerce Products
List, fetch, create, update, delete or bulk-import products within a shop. Requires `shop_id`.
Manage Ecommerce Customers
List, fetch, create, update or delete customers within a shop. Requires `shop_id`.
Manage Ecommerce Orders
List, fetch, create, update, delete or bulk-import orders within a shop. Requires `shop_id`.
Manage Ecommerce Categories
List, fetch, create, update, delete or bulk-import product categories within a shop. Requires `shop_id`.
Manage Ecommerce Carts
List, fetch or update shopping carts within a shop (carts cannot be created or deleted via the API). Requires `shop_id`.
Manage Ecommerce Cart Items
List, fetch, create, update or delete the line items of a cart. Requires `shop_id` and `cart_id`.
Manage Ecommerce Category Products
List the products in a category, or attach/detach a product to/from a category. Requires `shop_id` and `category_id`; attach/detach also require `product_id`.