# MailerLite

Add, update and find subscribers in MailerLite, sort them into groups, manage custom fields, and create, schedule and read campaigns.

## Connect MailerLite

1. In the sidebar, open **Connections** and press **Add connection**.
2. Type `mailerlite` and choose **MailerLite**.
3. Fill in the fields. Each one says **Required** or **Optional**.
4. Press **Test and save**. GoRunner checks the connection before it saves anything.

The sheet asks for:

- **API token · Required**: The token MailerLite shows once when you generate it.

Paste a MailerLite API token (Integrations › MailerLite API › Use › Generate new token). It works for the whole account.

[Connections](https://docs.gorunner.io/build/connections) says how to sign in again, rename or delete it. In a product that embeds GoRunner, **Add connection** can be missing: then [your provider makes connections](https://docs.gorunner.io/embed/customer-connections) for you.

## Start a workflow

Add a trigger and choose **MailerLite**. The trigger uses the same connection as the steps.

### On Event

Fires when one of the chosen events happens in the MailerLite account. Publishing the workflow creates the webhook in MailerLite; unpublishing removes it. Every delivery must carry MailerLite's signature (HMAC-SHA256 under the webhook's own secret), and one without it is refused. MailerLite retries a delivery it could not hand over three times; a retry starts no second run. Choosing deleted, opened or clicked makes the webhook batched (MailerLite requires it): its events then arrive together, one run per batch, under events.

- **Events · Required**: Which events start the workflow. Options: Subscriber created to Campaign link clicked (in batches) (14 options).

A later step can use its data, such as `{{trigger.email}}`, `{{trigger.event}}`, `{{trigger.events}}` and 5 more. See [Use data from earlier steps](https://docs.gorunner.io/build/use-data-from-earlier-steps).

## Do things in MailerLite

Add a **MailerLite** step, choose a **Resource**, then an **Operation**. Choose a row to see its fields.

- [Subscriber](https://docs.gorunner.io/apps/mailerlite#fields-f-subscriber): Create or Update · Get · Get Many · Update · Delete · Forget (GDPR)
- [Group](https://docs.gorunner.io/apps/mailerlite#fields-f-group): Create · Get Many · Rename · Delete · Get Subscribers · Add Subscriber · Remove Subscriber
- [Field](https://docs.gorunner.io/apps/mailerlite#fields-f-field): Create · Get Many · Rename · Delete
- [Campaign](https://docs.gorunner.io/apps/mailerlite#fields-f-campaign): Create · Get · Get Many · Update · Schedule · Cancel · Delete

Later steps read a step’s output by its name: see [Use data from earlier steps](https://docs.gorunner.io/build/use-data-from-earlier-steps).

## Limits

- A reply from MailerLite can be up to 16 MB (a file download can have its own limit). A larger one fails the step; it is never cut short.
- When MailerLite says to slow down (429), the step waits as long as it asks, if the step’s time allows. Otherwise it fails and says when to try again.

Not in your list? See [When an app isn’t here](https://docs.gorunner.io/apps/when-an-app-isnt-here#q-not-in-list).

## For developers

In the API, which calls apps pieces, MailerLite is `pieceId: "mailerlite"` with `actionId: "mailerlite"`, set by `resource` and an `operation_…` field, such as `operation_campaign`. Its trigger is `mailerlitetrigger` / `mailerlite_event`. [Get an app](https://docs.gorunner.io/api/apps/get-app) returns every field.

It can change something outside the run (`writes_external`). See [How versions and side effects work](https://docs.gorunner.io/apps#q-versions).

### MailerLite › Subscriber

### Create or Update

- **Email · Required**: The subscriber's email address. When it is already a subscriber, the subscriber is updated: fields and groups not given are kept.
- **Status · Optional**: The subscriber's status. Empty: active for a new subscriber, unchanged for one already there. MailerLite never reactivates an unsubscribed, bounced or junk subscriber through the API. Options: Active, Unsubscribed, Unconfirmed (sends a confirmation email), Bounced, Junk.
- **Fields · Optional**: Field values by key, such as {"name": "Sam", "last_name": "Lee", "company": "Acme"}. Field › Get Many lists the keys.
- **Groups · Optional**: Group ids, separated by commas. Create or Update adds the subscriber to them; Update makes them the subscriber's only groups.
- **Resubscribe · Optional**: Make an unsubscribed subscriber active again (only with their consent). Off by default.
- **Signup IP · Optional**: The IP address the subscriber signed up from.
- **Subscribed At · Optional**: When they subscribed (yyyy-MM-dd HH:mm:ss).
- **Opted In At · Optional**: When they confirmed (yyyy-MM-dd HH:mm:ss).
- **Opt-in IP · Optional**: The IP address they confirmed from.
- **Unsubscribed At · Optional**: When they unsubscribed (yyyy-MM-dd HH:mm:ss).

### Get

- **Subscriber · Required**: The subscriber's id. For Get, the email address works too.
- **Include Groups · Optional**: Return each subscriber's groups too. Off by default.

### Get Many

- **Status · Optional**: Only subscribers with this status. Empty lists every subscriber. Options: Active, Unsubscribed, Unconfirmed (sends a confirmation email), Bounced, Junk.
- **Include Groups · Optional**: Return each subscriber's groups too. Off by default.
- **Return All · Optional**: Read every subscriber, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many subscribers to return (1–2000). Default: 50. Shows when **Return All** is off.

### Update

- **Subscriber · Required**: The subscriber's id. For Get, the email address works too.
- **Status · Optional**: The subscriber's status. Empty: active for a new subscriber, unchanged for one already there. MailerLite never reactivates an unsubscribed, bounced or junk subscriber through the API. Options: Active, Unsubscribed, Unconfirmed (sends a confirmation email), Bounced, Junk.
- **Fields · Optional**: Field values by key, such as {"name": "Sam", "last_name": "Lee", "company": "Acme"}. Field › Get Many lists the keys.
- **Groups · Optional**: Group ids, separated by commas. Create or Update adds the subscriber to them; Update makes them the subscriber's only groups.
- **Signup IP · Optional**: The IP address the subscriber signed up from.
- **Subscribed At · Optional**: When they subscribed (yyyy-MM-dd HH:mm:ss).
- **Opted In At · Optional**: When they confirmed (yyyy-MM-dd HH:mm:ss).
- **Opt-in IP · Optional**: The IP address they confirmed from.
- **Unsubscribed At · Optional**: When they unsubscribed (yyyy-MM-dd HH:mm:ss).

### Delete and Forget (GDPR)

- **Subscriber · Required**: The subscriber's id. For Get, the email address works too.

### MailerLite › Group

### Create

- **Name · Required**: The group's name (at most 255 characters).

### Get Many

- **Name Contains · Optional**: Only groups whose name contains this.
- **Return All · Optional**: Read every item, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many items to return (1–2000). Default: 50. Shows when **Return All** is off.

### Rename

- **Group · Required**: The group.
- **Name · Required**: The group's name (at most 255 characters).

### Delete

- **Group · Required**: The group.

### Get Subscribers

- **Group · Required**: The group.
- **Status · Optional**: Only subscribers with this status (MailerLite lists active ones when empty). Options: Active, Unsubscribed, Unconfirmed (sends a confirmation email), Bounced, Junk.
- **Return All · Optional**: Read every item, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many items to return (1–2000). Default: 50. Shows when **Return All** is off.

### Add Subscriber and Remove Subscriber

- **Group · Required**: The group.
- **Subscriber · Required**: The subscriber's id.

### MailerLite › Field

### Create

- **Name · Required**: The field's name (at most 255 characters).
- **Type · Required**: What the field holds. Options: Text, Number, Date. Default: Text.

### Get Many

- **Name Contains · Optional**: Only fields whose name contains this.
- **Return All · Optional**: Read every field, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many fields to return (1–2000). Default: 50. Shows when **Return All** is off.

### Rename

- **Field · Required**: The field's id.
- **Name · Required**: The field's name (at most 255 characters).

### Delete

- **Field · Required**: The field's id.

### MailerLite › Campaign

### Create

- **Name · Required**: The campaign's name (at most 255 characters; people never see it).
- **Subject · Required**: The email's subject line.
- **From Name · Required**: The sender's name.
- **From Email · Required**: A sender address verified in MailerLite.
- **Reply To · Optional**: Where replies go.
- **HTML · Optional**: The email's HTML (custom HTML needs MailerLite's Advanced plan). Empty leaves the content to the MailerLite editor.
- **Groups · Optional**: Send to these groups (ids, separated by commas).
- **Segments · Optional**: Send to these segments instead (ids, separated by commas; segments win over groups).

### Get, Cancel and Delete

- **Campaign · Required**: The campaign's id.

### Get Many

- **Status · Optional**: Which campaigns: sent, drafts, or ready to send (MailerLite's default). Options: Sent, Draft, Ready. Default: Ready.
- **Type · Optional**: Only campaigns of this type. Empty lists every type. Options: Regular, A/B test, Resend, RSS.
- **Return All · Optional**: Read every campaign, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many campaigns to return (1–2000). Default: 50. Shows when **Return All** is off.

### Update

- **Campaign · Required**: The campaign's id.
- **Name · Required**: The campaign's name (at most 255 characters; people never see it).
- **Subject · Required**: The email's subject line.
- **From Name · Required**: The sender's name.
- **From Email · Required**: A sender address verified in MailerLite.
- **Reply To · Optional**: Where replies go.
- **HTML · Optional**: The email's HTML (custom HTML needs MailerLite's Advanced plan). Empty leaves the content to the MailerLite editor.
- **Groups · Optional**: Send to these groups (ids, separated by commas).
- **Segments · Optional**: Send to these segments instead (ids, separated by commas; segments win over groups).

### Schedule

- **Campaign · Required**: The campaign's id.
- **Delivery · Required**: Send now, at a time, or at a time in each subscriber's own time zone. Options: Now, At a time, At a time in each subscriber's time zone. Default: Now.
- **Date · Required**: The day (yyyy-MM-dd), in the future. Shows when **Delivery** is **At a time** or **At a time in each subscriber's time zone**.
- **Hour · Required**: The hour, 00–23. Shows when **Delivery** is **At a time** or **At a time in each subscriber's time zone**.
- **Minutes · Required**: The minutes, 00–59. Shows when **Delivery** is **At a time** or **At a time in each subscriber's time zone**.
- **Time Zone ID · Optional**: MailerLite's time zone id for At a time (the account's when empty). Shows when **Delivery** is **At a time** or **At a time in each subscriber's time zone**.

Source: https://docs.gorunner.io/apps/mailerlite
