Skip to main content

Send Contacts From Ellipsend to Klaviyo

Add every email you collect in your DMs to a Klaviyo list automatically, first name included, with no Zap in the middle.

When someone gives you their email in a DM, Ellipsend can save them in Klaviyo and subscribe them to a list a second later. It takes two requests. New to API requests? Start with Send Contact Info to Your Other Tools With API Requests.

Get Your Klaviyo Private API Key

In Klaviyo, open Settings → API keys and click Create Private API Key. Name it Ellipsend, choose Custom key, and give it write access to Profiles, Lists and Subscriptions. Copy the key. It starts with pk_ and Klaviyo only shows it once.

Find Your List ID

In Klaviyo, open Audience → Lists & segments, open the list, then Settings. The List ID is under Details. Use a list, not a segment. Klaviyo segments fill themselves from rules, so you can't add someone to one directly.

Connect Klaviyo to Ellipsend

In Ellipsend, go to Settings → Integrations → HTTP requests and click Add request. Name it Save profile in Klaviyo, pick Create · POST, and paste https://a.klaviyo.com/api/profile-import.

Open Connection and click Add connection:

  • Connection name: Klaviyo

  • Connection method: Custom token prefix

  • Authorization prefix: Klaviyo-API-Key

  • Paste your private key, and put https://a.klaviyo.com under App addresses.

Klaviyo also needs a version header on every request. Open Advanced options → Headers, click Add a header, and add revision with the value 2026-10-15.

Create the Two Requests

Save profile in Klaviyo creates or updates the profile with their first name. Click Edit as JSON and paste:

{"data": {"type": "profile", "attributes": {"email": "{{ contact.email }}", "first_name": "{{ contact.first_name }}"}}}

The parts in double curly braces, like {{ contact.email }}, are variables. When the request runs, Ellipsend swaps each one for that contact's real details, so paste them exactly as they are. To add a different detail, click inside the box where it should go, click Insert variable just above the box, and pick it from the list. More on variables.

Subscribe to Klaviyo list adds the email to your list. Use Create · POST with https://a.klaviyo.com/api/profile-subscription-bulk-create-jobs, the same Klaviyo connection and revision header, and this JSON with your list ID in place of the placeholder:

{"data": {"type": "profile-subscription-bulk-create-job", "attributes": {"profiles": {"data": [{"type": "profile", "attributes": {"email": "{{ contact.email }}", "subscriptions": {"email": {"marketing": {"consent": "SUBSCRIBED"}}}}}]}}, "relationships": {"list": {"data": {"type": "list", "id": "YOUR_LIST_ID"}}}}}

Send a test request on each. The profile request answers 200 or 201. The list request answers 202, which means Klaviyo accepted it and finishes it a moment later. If your list uses double opt-in (Klaviyo's default), the contact gets a confirmation email and shows up on the list once they confirm.

Sending to More Than One List?

One request sends to one list. Most people put every DM lead in the same list, so one request is all they need. If some automations should land contacts in a different list, save one request per list. Open Subscribe to Klaviyo list, click More, then Duplicate request. Rename the copy after the list, like Subscribe to Klaviyo list · Meal Plan, swap in that list's ID, and save.

Then pick the matching request in each automation. Save profile in Klaviyo stays the same for all of them. Your connection is shared, so you only enter your key once.

Add Them to Your Automation

In your automation's DM steps, add Ask for Email, then Run API Request with Save profile in Klaviyo, then a second Run API Request with Subscribe to Klaviyo list, then your freebie message.

Good to Know

  • Subscribing someone through the API clears any earlier unsubscribe on their profile. Turn on double opt-in for the list so new contacts confirm by email before they get marketing.

  • {{ contact.first_name }} is the first name on the contact's Instagram or Facebook profile, not an answer they typed.

  • Check the Activity tab if someone doesn't show up. It shows what was sent and Klaviyo's reply for every run.

Related

Did this answer your question?