Add Custom AI buyers to your email list with n8n
Build an n8n workflow that receives Eden's purchase webhook, checks the signature if you want, and adds each buyer to Kit, Mailchimp, beehiiv, MailerLite, or Loops.
A short n8n workflow: a Webhook node receives the purchase message from Eden, an If node keeps only purchases, and an email-platform node adds the buyer. Works on n8n Cloud and self-hosted n8n, as long as the webhook URL is reachable from the internet over HTTPS.
What you'll need
- A published Custom AI product (how to sell your Custom AI).
- An n8n account (Cloud or self-hosted with a public HTTPS address).
- Credentials for your email platform added in n8n.
Step 1: Create the Webhook node
- 01
Add a Webhook trigger
Create a new workflow and add a Webhook node as the trigger. Set HTTP Method to POST. Leave Authentication on None. Set Respond to Immediately.
- 02
Copy the Production URL
Open the Production URL tab (not Test) and copy it. It looks like
https://your-n8n.app/webhook/…. - 03
Listen for a test
Click Listen for test event. n8n now waits for one request so you can see the fields. The Test URL differs from the Production URL, so paste the Production one into Eden and use Listen for test event only to inspect data.
Step 2: Paste it into Eden
- 01
Open your sales dashboard
In Eden, go to Custom AIs → Sell your AI → Open sales dashboard, or open app.eden.so/sales.
- 02
Save the URL
Scroll to Automations, paste the Production URL, and click Save and turn on. Copy the signing secret if you plan to verify requests (optional, below).
- 03
Send a test
Buy or claim one of your products with a different email. The message body arrives with
buyerEmail,productTitle,event,status,amountUsd,bundleCredits, andoccurredAt.
Step 3: Keep only purchases
Add an If node after the webhook. Condition: {{ $json.body.event }} is equal to purchase.created. Connect the true output to your email step. Connect the false output to a refund step if you want one, or leave it empty.
Step 4: Add the buyer to your list
Add a node for your platform on the true branch. Map {{ $json.body.buyerEmail }} to the email field and {{ $json.body.productTitle }} to a tag.
Kit (ConvertKit) Node: ConvertKit → Form → Add Subscriber, or Tag → Add Subscriber.
Mailchimp
Node: Mailchimp → Member → Create. Pick your list, set Status to subscribed, and add productTitle under Tags.
MailerLite Node: MailerLite → Subscriber → Create. Choose a group for buyers.
beehiiv, Loops, or any platform without a node
Use an HTTP Request node with the platform's create-subscriber endpoint. For Loops, POST to https://app.loops.so/api/v1/contacts/create with your API key as a Bearer token and a JSON body of { "email": "{{ $json.body.buyerEmail }}", "source": "{{ $json.body.productTitle }}" }.
Save and Activate the workflow. Active workflows are the only ones that process the Production URL.
Optional: verify the signature
Eden signs each request so you can be sure it came from Eden. Add a Code node between the Webhook and the If node:
const crypto = require("crypto");
const secret = "whsec_…"; // your signing secret from Eden
const headers = $input.first().json.headers;
const body = JSON.stringify($input.first().json.body);
const expected =
"sha256=" +
crypto
.createHmac("sha256", secret)
.update(`${headers["x-eden-timestamp"]}.${body}`)
.digest("hex");
if (expected !== headers["x-eden-signature"]) {
throw new Error("Bad signature");
}
return $input.all();
For this to match, the Webhook node must pass the raw body unchanged. If your n8n version reorders JSON keys, turn on Raw Body in the Webhook node's options and hash $input.first().binary.data decoded to a string instead.
Handling refunds
On the false branch of the If node, check for purchase.refunded and use your platform's Remove Tag or Unsubscribe node. Many creators skip this and keep refunded buyers on the list.
If nothing arrives
- Make sure the workflow is Active and Eden has the Production URL, not the Test URL.
- Self-hosted n8n must be reachable at a public
https://address. Eden refuseshttp://,localhost, and raw IP addresses. - Eden waits up to 8 seconds and retries once. Keep Respond on Immediately so slow email platforms do not cause a retry.
Add buyers to your email list automatically
Send every Custom AI buyer to Kit, Mailchimp, beehiiv, MailerLite, or any other list the moment they buy, using the purchase webhook with Zapier, Make, or n8n.
Add Custom AI buyers to your email list with Zapier
Step-by-step setup of a Zap that catches Eden's purchase webhook and adds each buyer to Kit, Mailchimp, beehiiv, MailerLite, or ActiveCampaign.
Add Custom AI buyers to your email list with Make
Build a Make scenario that catches Eden's purchase webhook and adds each buyer to Kit, Mailchimp, beehiiv, MailerLite, or ActiveCampaign.
Email us. A real person reads every message.
Tell us what you tried and where you got stuck. We answer within one business day.
[email protected]