Connect Kit (ConvertKit) with InstantDM

Subscribe Instagram DM leads to your Kit list automatically. Native integration — InstantDM creates an "instantdm" tag and adds every Instagram-sourced lead to it.

What you get

  • Every Instagram lead with an email becomes a Kit subscriber tagged instantdm.
  • first_name populates from the "name" question in your flow.
  • One configuration in Account Settings — toggle on/off per flow afterwards.
  • Idempotent: re-pushing the same email upserts; no duplicates.
  • Trigger Kit automations off the instantdm tag (e.g. welcome sequence on tag-added).

Prerequisites

RequirementDetails
InstantDM planAny plan that includes integrations (Trendsetter Pro and above, or any Multi plan).
Kit accountFree or paid — both work via the v3 API.
Kit API secret (V3)Required for the integration to subscribe leads. The public API Key alone is not enough.
A flow that asks for emailKit identifies subscribers by email — without it, no push happens.

Step 1 — Get your Kit API secret

  1. Log in to app.kit.com.
  2. Click your account icon (top-right) → Account Settings.
  3. Open Developer → API Keys.
  4. Copy the V3 API Secret (not the public API Key — that's read-only).
  5. Optionally, copy the API Key too if you want to use it later.

Heads up: the API Secret is sensitive — anyone with it can write to your Kit account. Don't paste it in shared docs or chat.

Step 2 — Add it in InstantDM

  1. In InstantDM, open Account Settings → Integrations.
  2. Click Kit (ConvertKit) in the left list.
  3. Paste the API Secret (V3) into the API Secret field.
  4. Optionally paste the API Key (V3) and a Form ID. Both are optional today — only the secret is required.
  5. Click Save. The integration shows as "Connected".

Step 3 — Enable Kit on a flow

  1. Open a flow in the flow editor.
  2. Click the Integrations button in the toolbar.
  3. Toggle Kit (ConvertKit) on. (If the toggle is greyed out with a "Not connected" tag, the API secret hasn't saved — go back to Step 2.)
  4. Click Set Live to publish.

Step 4 — Choose when to push

In the Integrations modal, the When to push to integrations control offers:

ModeWhen the push firesBest for
On flow completion (default)Once, when the flow ends.Most flows. One Kit call with email + first_name + tag.
Each answerAfter every accepted question answer.Long flows or when you want real-time subscriber creation in Kit during the conversation.

When AI Reply is in the flow

If the flow contains an AI Reply node, the trigger is locked to Each answer — AI conversations don't have a deterministic completion event. The AI extracts lead data turn-by-turn (email, name, phone), and each newly captured field fires a Kit subscribe call.

What InstantDM sends to Kit

For each push, InstantDM does two things:

  1. Find or create the tag. Calls POST /v3/tags to ensure an instantdm tag exists in your Kit account, and grabs its tag ID. If the tag already exists, Kit returns the existing one — no duplicates.
  2. Subscribe the lead to that tag. Calls POST /v3/tags/<the instantdm tag's ID>/subscribe with:
    • email — the email collected in the flow
    • first_name — from the "name" question (if asked)
    • api_secret — your Kit V3 API Secret, for authentication

You don't need to know or copy the tag ID anywhere — InstantDM resolves it automatically on each push. Kit's subscribe endpoint is idempotent for the same email, so re-running doesn't create duplicates (the existing subscriber's first_name is refreshed with the latest value).

Troubleshooting

"No email yet, skipping" in the logs

InstantDM can't push to Kit without an email (Kit's subscriber identifier). Either add an email question to your flow, or wait until later in the conversation when the email is collected.

"Could not create/find tag" in the logs

Kit rejected the tag creation call — usually means the API secret is invalid or revoked. Generate a new secret in Kit → Settings → Developer → API Keys and update it in InstantDM → Account Settings → Integrations → Kit.

The subscriber appears in Kit but first_name is blank

Your flow either doesn't have a "name" question, or the question is asked AFTER the email and the trigger is "Each answer" without a flow-completion push. Switch to "On flow completion" so the full profile bundles together, or move the name question before the email question.

I want to trigger a Kit sequence on new InstantDM leads

In Kit, set up an automation that triggers on tag added: instantdm. Every new Instagram-sourced subscriber will enter the sequence automatically.

Related guides