Marketing

ConvertKit Webhook MCP Server

Connect your account, then chat with AI to run tools.

Wire ConvertKit automations to MCPBundles and inspect subscriber, tag, sequence, and purchase webhook payloads in chat.

Best forNewsletter CreatorsCourse SellersEmail MarketersCreators

Try this workflow

Latest subscriber event

Read the latest stored webhook — if export.json has a subscriber object, summarize email_address, state, first_name, and custom fields from subscriber.fields.

Managed
4 tools
Agent guide included

Opens MCPBundles Studio with this server selected. After sign-in, chat and run tools from the same thread.

Browse all tools

What you can do with ConvertKit Webhook

Built for

Newsletter Creators, Course Sellers, Email Marketers, Creators

Example workflows

Latest subscriber event

Interprets the common subscriber payload shape from the newest delivery.

Try this

Read the latest stored webhook — if export.json has a subscriber object, summarize email_address, state, first_name, and custom fields from subscriber.fields.

Recent purchases

Filters purchase-shaped payloads and reads commerce fields.

Try this

List recent deliveries whose export.json includes transaction_id and products — summarize email_address, total, currency, and line item names.

Tag or sequence activity

Scans stored subscriber events when tag or sequence rules share one ingest URL.

Try this

From recent reports with a subscriber object, list subscriber.id and email_address with source.captured_at — note which Purpose label each connection uses.

Context to know first

How do I connect ConvertKit webhooks to MCPBundles?

Save a connection on MCPBundles, copy the hosted ingest URL from the credential panel, and add it as the target URL on a Kit webhook rule for the event you care about (tag add, sequence complete, purchase create, and others). Your agent reads stored deliveries — latest, history, and JSON content — in chat.

Can an agent trigger a new webhook or change tags from here?

No. Ingest is read-only. Data arrives when Kit fires a matching automation; agents query what already landed.

AI Skill
SKILL.md

Domain knowledge for ConvertKit Webhook — workflow patterns, data models, and gotchas for your AI agent.

ConvertKit Webhook

Kit (formerly ConvertKit) POSTs JSON when a configured subscriber or purchase automation fires — new subscribers, tag changes, sequence milestones, link clicks, product purchases, and purchase records. Each POST is one stored report; tools read what already landed. There is no pull API and no way to tag, unsubscribe, or replay webhooks from here.

Upstream webhook rules are scoped per event (and often per form, tag, sequence, product, or link). The POST body does not repeat the rule name — use the connection Purpose label, ## This connection notes, or payload shape to infer which automation fired.

First moves

  1. Latest report — default for “who subscribed”, “what tag fired”, or “what sold last”.
  2. Classify the payloadexport.json.subscriber means a subscriber event; top-level transaction_id or products means a purchase event.
  3. Recent reports — list when comparing tag volume, sequence completions, duplicate purchases, or funnel activity.
  4. One report by id — after listing, when the user names a specific delivery.

Configurable event types (upstream)

When wiring the ingest URL in Kit, each webhook rule listens for one event. Common rules teams attach to separate connections or distinct Purpose labels:

Event nameFires whenRule filter (when required)
subscriber.subscriber_activateSubscriber becomes active
subscriber.subscriber_unsubscribeSubscriber unsubscribes
subscriber.subscriber_bounceEmail bounces
subscriber.subscriber_complainSpam complaint
subscriber.form_subscribeSubscribes via a formform_id
subscriber.course_subscribeEnters a sequencesequence_id
subscriber.course_completeCompletes a sequencesequence_id
subscriber.link_clickClicks a tracked linkinitiator_value (URL)
subscriber.product_purchasePurchases a Kit productproduct_id
subscriber.tag_addTag added to subscribertag_id
subscriber.tag_removeTag removed from subscribertag_id
purchase.purchase_createA purchase record is created
custom_field.field_createdCustom field created
custom_field.field_deletedCustom field deleted
custom_field.field_value_updatedSubscriber custom field value changescustom_field_id

v3 webhook setup names use the same semantics with a subscriber. prefix on create; stored payloads do not include the event string.

Subscriber event JSON (export.json)

Most lifecycle, tag, form, sequence, and link-click deliveries wrap the person under subscriber:

  • subscriber.id — Kit subscriber id (stable dedupe key with email).
  • subscriber.email_address — contact email.
  • subscriber.first_name — when collected.
  • subscriber.state — e.g. active, inactive, cancelled (exact values depend on account settings).
  • subscriber.created_at — ISO 8601 when the subscriber record was created in Kit.
  • subscriber.fields — object map of custom field labels to values (keys mirror field names in the Kit UI, e.g. "My Custom Field": "Value").

Use this block for activate, unsubscribe, bounce, complain, form subscribe, sequence subscribe/complete, tag add/remove, link click, and product-purchase subscriber hooks. Tag and sequence rules fire with the same subscriber shape — the webhook rule (not the JSON) carries which tag_id, sequence_id, form_id, product_id, or link URL matched.

Purchase event JSON (export.json)

purchase.purchase_create and some commerce flows POST a flat purchase object (no subscriber wrapper):

  • id — Kit purchase id.
  • transaction_id — external or Kit transaction reference; primary dedupe key alongside email.
  • status — e.g. paid.
  • email_address — buyer email.
  • currency — ISO currency code (may be uppercase in payloads, e.g. JPY).
  • transaction_time — ISO 8601 purchase time; prefer over source.captured_at for revenue timing.
  • subtotal, tax, shipping, discount, total — monetary components when present.
  • products — array of line items, each with name, sku, quantity, unit_price when supplied.

Response shape

  • export.json — parsed webhook body (start here for subscriber and purchase questions).
  • export.text — raw body when JSON is large or non-object.
  • source.captured_at — when the POST landed here (may lag transaction_time or list activity).

Operational order

  1. Start with the latest report — do not guess a report id.
  2. Decide subscriber vs purchase shape before quoting revenue or tags.
  3. If captured_at is older than expected, say so — events arrive only when Kit fires the matching rule.
  4. List recent reports only for history, duplicate suspicion, or explicit compare-by-date asks.
  5. Read ## This connection in the skill supplement for which tag, form, sequence, or product this URL listens to.

Gotchas

  • Read-only — cannot add tags, enroll sequences, create purchases, or replay Kit webhooks from here.
  • No event name in body — infer from payload shape plus connection Purpose / supplement notes; do not invent tag_add vs subscriber_activate without context.
  • One rule per URL — separate webhooks for separate tags or sequences; one connection may still receive mixed shapes if multiple rules point at the same ingest URL.
  • Subscriber vs purchase — tag and sequence events use the subscriber object; purchase.purchase_create uses the flat purchase schema — do not expect subscriber on every delivery.
  • Custom fields are label-keyedsubscriber.fields keys match Kit field names, not internal ids; spelling and spacing matter.
  • Product purchase hookssubscriber.product_purchase rules filter by product id upstream; the JSON still looks like a subscriber payload.
  • Duplicates — compare subscriber.id, transaction_id, and source.captured_at when the upstream retries the same event.
  • Empty — no stored reports means nothing has arrived yet; say no webhook is available.

Tools in this Server (4)

Convertkit Wh Latest

Return the most recently stored report — tabular rows, raw text, or JSON depending on format. Default starting point for current report questions.

Convertkit Wh List

List recent stored reports — ids, capture time, filename, and format. Follow with latest report or get report for full content.

Convertkit Wh Report

Return one stored report by report_id — full content with the same source/export envelope as latest report.

Convertkit Wh Status

Connection status — whether any reports have landed, when the last file arrived, filename, and stored report count. Includes the ingest URL only when ...

Frequently Asked Questions

How do I connect ConvertKit webhooks to MCPBundles?

Save a connection on MCPBundles, copy the hosted ingest URL from the credential panel, and add it as the target URL on a Kit webhook rule for the event you care about (tag add, sequence complete, purchase create, and others). Your agent reads stored deliveries — latest, history, and JSON content — in chat.

Can an agent trigger a new webhook or change tags from here?

No. Ingest is read-only. Data arrives when Kit fires a matching automation; agents query what already landed.

How do I connect ConvertKit Webhook to my AI agent?

Add the MCPBundles server URL to your MCP client configuration (Claude Desktop, Cursor, VS Code, etc.). The URL format is: https://mcp.mcpbundles.com/bundle/convertkit-webhook. Authentication is handled automatically.

How many tools does ConvertKit Webhook provide?

ConvertKit Webhook provides 4 tools that can be called by AI agents, along with a SKILL.md that gives your AI agent domain knowledge about when and how to use them.

What authentication does ConvertKit Webhook require?

ConvertKit Webhook uses API Key. ConvertKit Webhook requires credentials. Connect via MCPBundles and authentication is handled automatically.

Setup Instructions

Connect ConvertKit Webhook to any MCP client in minutes

MCP URL
https://mcp.mcpbundles.com/bundle/convertkit-webhook

One-click install:

The link prefills the Add custom connector dialog — you still review the values and click Add, then Connect to complete OAuth.

Or add manually

  1. Open claude.ai → Settings → Connectors.
  2. Click the + button and choose Add custom connector.
  3. Set Name to ConvertKit Webhook and paste the MCP URL into Remote MCP server URL.
  4. Click Add. ConvertKit Webhook will appear under Not connected — select it and click Connect to complete OAuth.
Name: ConvertKit Webhook
Remote MCP server URL: https://mcp.mcpbundles.com/bundle/convertkit-webhook
Authentication: OAuth

Custom connectors at claude.ai require a paid Claude plan (Pro, Max, Team, or Enterprise).

Ready to use ConvertKit Webhook?

Sign in to connect your credentials and start running tools from the chat.

ConvertKit Webhook MCP — Read Subscriber Events in Chat