Skip to content
Automation Squad
McSGSMade to order

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

  1. Mc

    Trigger

    Campaign sending status webhook fires when a campaign has been sent

    Mailchimp

  2. 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.

  3. if

    Step 2

    Keep completed sends only

    Campaigns whose status is sent continue. A webhook for a cancelled campaign ends here.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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