Event signal:user.signup| Destination:Mailchimp| Use case:User Signup Fan-Out| Typical setup:~15 minutes
Workflow outcome
The workflow starts with user.signup and lands the new contact in the Mailchimp audience that should own the welcome flow from the first moment.
Meshes does not run the Mailchimp campaign itself. It delivers the signup event into the audience and fields your Mailchimp automation already expects so the welcome flow can start on time.
Why teams care
Welcome flows work best when they start from real signup behavior, not from a CSV export or a nightly job that eventually notices the user exists.
Mailchimp still needs the right audience membership and merge-field context to do useful work. That is where brittle custom sync scripts usually start multiplying.
Once you care about retries, customer-specific routing, or visibility into which signup never made it into the welcome flow, you are already beyond what a simple one-off script handles well.
What it depends on
These pages stay focused on the workflow outcome, but the setup still needs the right workspace, destination connection, and event path underneath.
You need a workspace and publishable key so your product can emit user.signup.
Have the target audience and any merge fields ready in Mailchimp before creating the rule.
Your app should emit user.signup with at least the identity and segmentation fields Mailchimp needs.
Use the Meshes action and mapping docs for the implementation details behind the audience update.
Read moreThe source event
For Mailchimp, the core job is getting the new contact into the right audience with enough merge-field context to personalize or branch the welcome flow once the audience update happens.
Event payload
user.signup{
"user_id": "usr_2048",
"email": "alex@northstar.io",
"first_name": "Alex",
"plan": "starter",
"source": "website"
}What matters most
Required to identify the contact being added to the Mailchimp audience.
first_name
Useful for welcome copy and merge-field personalization in the campaign.
plan
Lets the Mailchimp flow branch or segment by the plan the user chose.
source
Keeps signup-channel context attached to the audience member from the start.
user_id
Gives you a stable internal reference if you need to debug or correlate later.
Field mapping view
| Event field | Destination target | Why it matters |
|---|---|---|
| Mailchimp audience member email | Identifies the subscriber that should enter the welcome audience. | |
| first_name | Merge field for personalization | Supports welcome content that feels tied to the real user record. |
| plan | Plan merge field or segmentation input | Helps the welcome automation branch by account type or tier. |
| source | Acquisition merge field | Preserves the signup source for reporting or campaign logic. |
| user_id | Internal reference field | Useful when you need to trace a welcome-flow contact back to the source system. |
The destination connection
In your Meshes workspace, connect Mailchimp and choose the audience that should receive user.signup. Once that connection is available in Meshes, the signup event can land where your welcome automation expects it without another sync layer in the middle.
user.signup.Where Meshes matters
Most teams do not need another destination. They need the destination to stay in sync without embedding its delivery quirks, retries, and mapping logic into the product code path.
In Meshes, bind user.signup to a Mailchimp add-to-list action for the welcome audience. Use mappings for the subscriber fields you want Mailchimp to receive, then let Mailchimp automation handle the campaign or journey that starts after the contact lands there.
A sample event
This is the part teams like: the source event stays readable and product-shaped while Meshes owns the destination-facing complexity.
TypeScript example
import MeshesEventsClient from '@mesheshq/events';
const events = new MeshesEventsClient(process.env.WORKSPACE_PUBLISHABLE_KEY!);
await events.emit({
event: 'user.signup',
payload: {
user_id: 'usr_2048',
email: 'alex@northstar.io',
first_name: 'Alex',
plan: 'starter',
source: 'website',
},
});Destination outcome
Use Send Test Event in Meshes or send a representative signup event, then confirm that the contact appears in the target Mailchimp audience with the fields the welcome flow expects.
Operational visibility
The difference between a nice demo and a usable product workflow is whether you can see what happened when the destination is slow, misconfigured, or unavailable.
In Meshes
user.signup event is accepted and the Mailchimp rule was triggered in Meshes.Why teams buy Meshes
What's next
Use Case
See how the same signup event can feed CRM, support, and internal visibility alongside lifecycle email.
Open linkDocs
Review the Meshes rule and mapping model behind the Mailchimp audience update.
Open linkDocs
Use the events SDK or API to emit user.signup from your product code.
Compare
Compare event-driven welcome-flow delivery with maintaining export jobs and email sync scripts yourself.
Open linkGuide
Route the same signup event into HubSpot so CRM and lifecycle tools stay aligned.
Open linkGuide
See another lifecycle messaging handoff where Meshes feeds the downstream tool instead of owning the message flow itself.
Open link