Marketing & content publishing
Mailchimp campaign sent → Slack confirmation + Google Sheets send log
Confirmation in Slack the moment a campaign goes out, and the numbers a day later.
A campaign going out is easy to miss for everyone except the person who pressed send. This flow posts to Slack when a campaign finishes sending, with subject, audience, recipient count and the archive link, and adds a row to a Google Sheet that becomes your send log. 24 hours later it replies in the same thread with opens, clicks, unsubscribes and bounces, and fills in the rest of the row.
How it works
- Mc
Trigger
Campaign sending status webhook fires when a campaign has been sent
Mailchimp
- Mc
Step 1
Fetch the campaign details
The webhook carries the campaign ID, subject and status. A GET to the campaigns endpoint adds the audience name, emails sent, send time and archive URL.
- if
Step 2
Keep completed sends only
Campaigns whose status is sent continue. A webhook for a cancelled campaign ends here.
- S
Step 3
Post the confirmation
A message in the marketing channel gives subject, audience, number of emails sent, send time and the archive link. Its timestamp is kept for the reply.
- GS
Step 4
Append the send-log row
Date, campaign ID, subject, audience, emails sent and archive URL are added as a new row, with the four report columns left empty.
- if
Step 5
Wait 24 hours
n8n's Wait node pauses this execution for a day. The pause survives a restart because the execution is stored in the database, not held in memory.
- Mc
Step 6
Pull the campaign report
A GET to the reports endpoint returns unique opens, clicks, unsubscribes and bounces for the campaign as they stand a day after the send.
- S
Step 7
Reply in the thread with the numbers
The four figures are posted as a reply under the original confirmation, so the campaign and its result sit together.
- GS
Step 8
Fill in the report columns
Campaign ID locates the send-day row, and its opens, clicks, unsubscribes and bounces cells are filled.
What changes once it runs
- The Slack message lands within a minute of Mailchimp finishing the send, archive link attached.
- A send log builds itself in Google Sheets, one row per campaign, with nobody copying figures across.
- Day-after opens, clicks, unsubscribes and bounces appear as a thread reply and on the same sheet row, without anyone opening Mailchimp.
- Adding an audience's webhook once is all it takes; campaigns to any audience show up in the same channel and sheet.
What you get
- The n8n workflow export with the Mailchimp webhook trigger, both API calls and the 24-hour wait configured
- Google Sheets send-log template with the ten columns the workflow writes
- Setup guide covering the Mailchimp webhook per audience and the Slack channel
- Recorded walkthrough on a small test audience, from send to thread reply
Before you start
- Mailchimp account with an API key and permission to add a webhook to each audience
- Slack channel for the confirmations, with the n8n Slack app allowed to post there
- Google Sheet for the send log (template included), plus Google Sheets OAuth in n8n
- An n8n instance reachable from the internet so Mailchimp can call the webhook: n8n Cloud, or self-hosted with a public URL
Built for
Questions before you buy
- Why 24 hours and not the final numbers?
- Because the day-after figures are the ones a team actually looks at, and one field in the Wait node changes the delay. Set it to 48 hours or 7 days if you prefer; the report call is the same.
- Does it work with more than one audience?
- Yes. Mailchimp webhooks are set per audience, so you add the same n8n webhook URL to each one. Every campaign then arrives at the same trigger, and the audience name is read from the campaign itself.
- Does it run on Make or Zapier?
- Not as shipped. The 24-hour pause relies on n8n's Wait node, which stores the execution and resumes it. Make's Sleep module tops out at 300 seconds, so a Make version would need a second scenario on a schedule. We ship n8n only.
- What if n8n is restarted during the 24-hour wait?
- The execution is written to n8n's database when the wait begins and resumed when the time comes, so a restart in between does not lose it.
- Can the numbers go to Airtable or Notion instead of a sheet?
- Swap the two Google Sheets nodes, which are the only place the sheet is touched, for the Airtable or Notion node and map the same ten fields; the setup guide lists them.
Nearby on the shelf
Whole catalog- AtMcSMade to order
Airtable newsletter calendar → Mailchimp campaign + test email + Slack
Mark the issue Ready in Airtable and the Mailchimp campaign builds and test-sends itself.
Marketing & content publishing$99 - GSCWpIn build
Google Sheets brief → Claude first draft → WordPress draft post
A title and a brief in the sheet; a full draft waiting in WordPress a few minutes later.
Marketing & content publishing$99 - GrGSSMade to order
Greenhouse stage change → Slack job channel + Google Sheets pipeline log
Every stage move in Greenhouse reaches the job's Slack channel and one shared sheet.
Hiring, onboarding & HR$99
