Event

trigger.convertkit_event
TriggerEmailconnection requiredruns in-engine

Registers a Kit webhook endpoint in the tenant's account on publish and starts one run per delivered event, verified against Kit's signature.

Start a run when Kit (ConvertKit) emits an event — a subscriber, tag, form, sequence or broadcast change.

Connection

Required
Yes — the node will not save without one
Auth type
API key
Providers
ConvertKit
Secret shape
the Kit v4 API key ({"api_key": …}) or an OAuth {"access_token": …}
Resolved by
config.connection_id, else node.connection_id
Note
A v4 API key (X-Kit-Api-Key) or an OAuth token — a v3 api_key/api_secret pair is a different, incompatible credential and Kit answers it with 401. Publishing also needs MANTLE_APP_PUBLIC_BASE_URL set to a publicly reachable URL: Kit refuses to deliver to private, internal or loopback addresses.

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
Kit event types to subscribe to. One endpoint covers all of them. Any well-formed type is accepted, not only the ones listed — Kit ships new ones — but a type Kit has not shipped yet is refused at publish.
arrayNo["subscriber.created"]1–64 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.

convertkit event

One flattened Kit event. `data`'s own keys vary by `type`, so the shape is open below the declared fields.

Extra keys beyond the ones listed can appear.

FieldTypeExample
id
Kit's UUID for this event. Also the idempotency key: a retried delivery repeats the same event id, so it joins the run it already started instead of starting a second. Kit retries a failure eight times over about 41 hours, while the ingress remembers a key for 24, so a very late retry can still start a fresh run.
string9c2e1f3a-6b7d-4e8f-a1b2-c3d4e5f60718
type
The event type, e.g. subscriber.created. Branch on this when the trigger subscribes to more than one.
stringsubscriber.created
created
When the event happened (ISO-8601 UTC) — not when it was delivered.
string2026-07-29T14:32:10Z
delivery_id
Kit's id for the POST this event arrived in. One delivery can carry up to 100 events of the same type, so this is NOT the deduplication key — `id` is.
string123456
subscriber_id
The subscriber the event is about, as a string. Empty on the resource events (tag.created, sequence.published, broadcast.sent…), which are about the account rather than a person.
string987654
email_address
That subscriber's email address, lifted out so the next node need not dig.
stringada@example.com
data
Kit's event payload: the subscriber, plus the related resource where the type has one (`tag` on subscriber.tag_added, `form` on subscriber.subscribed_to_form, `sequence`, `custom_field`…). Its keys depend on `type`, which is why this shape is open.
object—
payload
The single event exactly as Kit sent it, for anything the fields above do not lift out.
object—
{
  "created": "2026-07-29T14:32:10Z",
  "data": {
    "subscriber": {
      "created_at": "2026-07-29T14:32:10Z",
      "email_address": "ada@example.com",
      "fields": {
        "company": "Kit"
      },
      "first_name": "Ada",
      "id": 987654,
      "state": "active"
    }
  },
  "delivery_id": "123456",
  "email_address": "ada@example.com",
  "id": "9c2e1f3a-6b7d-4e8f-a1b2-c3d4e5f60718",
  "payload": {
    "created": "2026-07-29T14:32:10Z",
    "id": "9c2e1f3a-6b7d-4e8f-a1b2-c3d4e5f60718",
    "type": "subscriber.created"
  },
  "subscriber_id": "987654",
  "type": "subscriber.created"
}

Notes

  • Publishing creates the endpoint at Kit; unpublishing, disabling or archiving deletes it. A workflow that is off is off at Kit too.
  • One delivery can carry up to 100 events (Kit batches a bulk action), and each one starts its own run.
  • Each delivery is verified against Kit's signature over '{timestamp}.{body}' and refused outside a 5-minute window.
  • An endpoint created through an OAuth connection can only be deleted by that same OAuth app; swapping the connection for an API key leaves the old endpoint to be removed by hand.

See Event run in a workflow.

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