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.
| Field | Type | Required | Default | Constraints | Example |
|---|---|---|---|---|---|
email_address The subscriber's email address. | string | Yes | — | email format | alice@example.com |
first_name The subscriber's first name, as Kit merges it into emails. | string | No | — | — | — |
state State to create the subscriber in. Kit defaults to 'active'. | string | No | — | 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'. | object | No | — | — | {"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
| Field | Type | Example |
|---|---|---|
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.