Product-led apps with plan upgrades
An app sells upgrade plans through its pricing route. The plan name rides along as an event property, so a journey can send the right onboarding for each plan.

Checkout embed
Next.js hosts the buying action, Plandalf takes payment, and native steps put the buyer in a Mailchimp audience with tags and an event.
No credit card required. No coding required.
Next.js
MailchimpMailchimp connects to the checkout, not to Next.js. Your app loads the Plandalf SDK and opens the offer; a Plandalf sequence then runs native Mailchimp steps: add or update the contact, add tags, record an event. Mailchimp subscribe events can start a Plandalf sequence.
| Event | From and to | Through | What happens |
|---|---|---|---|
| Checkout opened | Next.js → Plandalf | Client components render the buying action once the provider reports the SDK ready. | |
| Checkout completed | Plandalf → Mailchimp | Native step | Add or Update Contact fills first name, last name and merge fields. New contacts get the status you choose: Subscribed, Pending for double opt-in, or Transactional. |
| Record event | Plandalf → Mailchimp | Native step | The event name must match the Customer Journey starting point exactly. Spaces turn into underscores. |
| Contact subscribed | Mailchimp → Plandalf | Native step | Saving the trigger adds a webhook to the audience, visible in Mailchimp under Audience, Settings, Webhooks. |
| Invoice refunded | Plandalf → Mailchimp | Native step | Remove Tags from Contact takes the purchase tags back after a full refund in Stripe. |
The Mailchimp key is the only secret. It goes into Plandalf, not into your Next.js environment.
Use next/script inside a 'use client' component and wait for plandalf('ready', ...). Never read window during server rendering.
Use data-plandalf-present for a modal or sdk.mount() in an effect for an inline form, and return the handle's close() from the effect cleanup.
Mailchimp's Extras menu has API keys. Create one and copy it whole, including the -us21 style suffix.
Connect Mailchimp under Automation, Marketplace. On a Checkout Completed sequence add Mailchimp, Add or Update Contact with your Audience and {{trigger.customer_email}}. Create any merge field in Mailchimp first.
Add Record Event named plan_purchased with a plan property from {{trigger.line_items_summary}}. In Mailchimp start a Customer Journey on that event name.
Enable Run on test purchases, buy with a Stripe test card, check the contact in the audience, then turn the option off.
An app sells upgrade plans through its pricing route. The plan name rides along as an event property, so a journey can send the right onboarding for each plan.
A Next.js site sells monthly retainers. The audience tag keeps clients out of prospecting campaigns, and renewals refresh the PLAN merge field.
Checked October 26, 2026 against Plandalf's own setup guides and the vendor documentation: Next.js: load and optimize scripts.