Event

trigger.mailerlite_event
TriggerEmailconnection requiredruns in-engine

Registers a webhook in the tenant's MailerLite account on publish and starts one run per delivered event, verified against MailerLite's HMAC signature. Emits {event, subscriber_id, email, campaign_id, occurred_at, payload}.

Start a run when MailerLite reports an event (subscriber created, unsubscribed, campaign sent, opened, clicked…).

Connection

Required
Yes — the node will not save without one
Auth type
Bearer token
Providers
MailerLite
Secret shape
the MailerLite API token
Resolved by
config.connection_id, else node.connection_id
Note
The token needs the Webhooks scope; one without it can read subscribers and still fail to publish. Publishing also needs MANTLE_APP_PUBLIC_BASE_URL set to a URL MailerLite can reach — it is the address the webhook is created against.

Configuration

1 field, none required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.

FieldTypeRequiredDefaultConstraintsExample
events
Which MailerLite events start a run. Every chosen event lives on one webhook, which is deleted again when the workflow is unpublished or disabled. MailerLite refuses any name it does not publish.
arrayNo["subscriber.created"]1–14 characters; array of string—

Example configuration

Every value below is the contract’s own example or default — nothing invented.

{
  "events": [
    "subscriber.created"
  ]
}

Output

One shape.

mailerlite event

A flat envelope over MailerLite's event body. MailerLite uses three different body shapes across its events, so `payload`'s own keys vary and the shape is open below the declared fields.

Extra keys beyond the ones listed can appear.

FieldTypeExample
event
The MailerLite event name, e.g. subscriber.created or campaign.click. Branch on this when the trigger subscribes to more than one. Taken from the payload's `event`, or its `type` on the open/click shape.
stringsubscriber.created
account_id
The MailerLite account the event happened in, as a string.
string1234567
subscriber_id
The subscriber the event is about, lifted out of whichever shape MailerLite used. Empty on campaign.sent, which is about a campaign and names no subscriber.
string100000000000000000
email
That subscriber's address. Empty on campaign.sent for the same reason.
stringbuyer@example.com
campaign_id
The campaign the event is about — the record itself on campaign.sent, the nested campaign on open and click. Empty on subscriber events.
string83920
campaign_name
That campaign's name, when the payload carries one.
string—
occurred_at
When MailerLite says it happened: a subscriber's `updated_at`, or a sent campaign's `date`. Empty on campaign.open and campaign.click — MailerLite sends no timestamp on either.
string2026-09-01T09:15:04.000000Z
payload
MailerLite's event body exactly as it arrived, for everything the fields above do not lift out — a subscriber's `fields` and `status`, a click's `link_url`, a sent campaign's `total_recipients` and `preview_url`.
object—
{
  "account_id": "1234567",
  "campaign_id": "",
  "campaign_name": "",
  "email": "buyer@example.com",
  "event": "subscriber.created",
  "occurred_at": "2026-09-01T09:15:04.000000Z",
  "payload": {
    "account_id": 1234567,
    "created_at": "2026-09-01T09:15:04.000000Z",
    "email": "buyer@example.com",
    "event": "subscriber.created",
    "fields": {
      "last_name": "Lovelace",
      "name": "Ada"
    },
    "id": "100000000000000000",
    "source": "api",
    "status": "active",
    "subscribed_at": "2026-09-01T09:15:04.000000Z",
    "updated_at": "2026-09-01T09:15:04.000000Z"
  },
  "subscriber_id": "100000000000000000"
}

Notes

  • Publishing creates the webhook in MailerLite; unpublishing, disabling or archiving deletes it. A workflow that is off is off at MailerLite too.
  • Each delivery is verified against MailerLite's Signature header — an HMAC-SHA256 of the raw body keyed on the secret MailerLite minted for this webhook — so the callback URL alone is not enough to start a run.
  • subscriber.deleted, campaign.open and campaign.click are only accepted on a batchable webhook, so choosing one of them makes MailerLite deliver every event of this trigger in batches. One run is still started per event.
  • MailerLite sends no event id, so a redelivery is recognised by the event body itself. campaign.open and campaign.click carry no timestamp: two identical opens within 24 hours are indistinguishable from a retry and start one run.
  • Your endpoint has 3 seconds to answer before MailerLite calls the delivery failed and retries it at 10, 100 and 1000 seconds. Mantle answers as soon as the run is queued, not when it finishes.

See Event run in a workflow.

In a technical demo we add the MailerLite connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.