Create Subscriber

convertkit.create_subscriber
ActionEmailconnection required

Calls the ConvertKit API with the connection's credentials.

Create a subscriber from an email address, or return the existing record when Kit already knows that address.

Connection

Required
Yes — the node will not save without one
Auth type
API key
Providers
ConvertKit
Secret shape
the v4 API key, or {"api_key": "…"}, or {"access_token": "…"} for OAuth
Config it needs
base_url
Resolved by
config.connection_id, else node.connection_id

Configuration

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

FieldTypeRequiredDefaultConstraintsExample
email_address
The subscriber's email address.
stringYes—email formatalice@example.com
first_name
The subscriber's first name, as Kit merges it into emails.
stringNo———
state
State to create the subscriber in. Kit defaults to 'active'.
stringNo—one of "active", "cancelled", "bounced", "complained", "inactive"—
fields
Custom field values, as an object keyed by each custom field's key ('last_name', not 'Last Name'). Kit ignores keys it does not know and lists them in 'warnings'.
objectNo——{"category":"newsletter"}

Example configuration

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

{
  "email_address": "alice@example.com",
  "fields": {
    "category": "newsletter"
  }
}

Output

One shape.

result

FieldTypeExample
subscriber
The subscriber record Kit returned, unchanged.
object—
id
The subscriber's Kit id.
number—
email_address
The subscriber's email address.
string—
state
active, cancelled, bounced, complained or inactive.
string—
warnings
Custom field keys Kit did not recognise and therefore ignored; empty on a fully applied write.
array—
{
  "email_address": "",
  "id": 0,
  "state": "",
  "subscriber": {},
  "warnings": []
}

Notes

  • Kit is idempotent on the email address: an address it already knows comes back as the existing subscriber rather than a duplicate.

See Create Subscriber 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.