Skip to main content

Receive Meta Ads ad account webhooks, log to Sheets, and alert in Slack

Workflow preview

Workflow preview
100%
Receive Meta Ads ad account webhooks, log to Sheets, and alert in Slack preview
Open on n8n.io

Important notice

This workflow is provided as-is. Please review and test before using in production.

1. Workflow Overview

This workflow is a production ready Meta Ads Webhook dispatcher for the Ad Account object. It receives webhook deliveries from Meta, returns the required acknowledgement, routes events by , logs th...

Best for

  • Market Research automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.webhook, n8n-nodes-base.switch, n8n-nodes-base.if, n8n-nodes-base.respondtowebhook, n8n-nodes-base.splitout, n8n-nodes-base.googlesheets, n8n-nodes-base.set, n8n-nodes-base.summarize

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Kirill Khatkevich.

Original n8n.io source

1.1 Workflow description

Title
Receive Meta Ads ad account webhooks, log to Sheets, and alert in Slack
Workflow name
Receive Meta Ads ad account webhooks, log to Sheets, and alert in Slack

This workflow is a production-ready Meta Ads Webhook dispatcher for the Ad Account object. It receives webhook deliveries from Meta, returns the required acknowledgement, routes events by field, logs them to Google Sheets (separate tabs per event type), and sends a compact Slack notification with counts.

Use Case

Meta webhooks are powerful, but the “last mile” is usually missing: storing raw events, making them readable, and triggering the next automation reliably. This workflow is ideal if you want to:

  • Centralize all Meta Ads webhook events in one place (one endpoint, one workflow).
  • Log every event for auditing and analysis (Google Sheets).
  • Get lightweight alerts in Slack (count-based, not spammy).
  • Trigger downstream workflows depending on the webhook type (e.g., Creative Fatigue → replace creatives in the affected ad set).
How it Works

The workflow is organized into clear blocks:

1. Webhook endpoint + verification

  • A Webhook trigger receives requests from Meta.
  • The workflow detects verification requests (hub.mode=subscribe) and validates the Verify Token.
  • It responds with the hub.challenge value so you can successfully subscribe your webhook in Facebook Developers.

2. Route by event field

  • For real webhook deliveries (object=ad_account), the workflow routes execution by:
    • creative_fatigue
    • ad_recommendations
    • ads_async_creation_request
    • in_process_ad_objects
    • product_set_issue
    • with_issues_ad_objects

3. Acknowledge every webhook delivery

  • For each branch, the workflow immediately returns a JSON acknowledgement (e.g., { "status": "received", "field": "...", "webhook_type": "..." }), so Meta considers the delivery successful.

4. Normalize + log to Google Sheets

  • The workflow splits array payloads (Meta can send multiple entry items and multiple changes).
  • Each event type is appended to its own Google Sheets tab (one spreadsheet, multiple sheets), with the raw webhook body also saved for future debugging.

5. Summarize + notify

  • All event logs are merged and summarized to compute a compact count per field.
  • A Slack node sends a short message like “New Meta Webhook / Type / Count” with a link to the spreadsheet.

Setup Instructions

1. Create and configure a Meta app

  • Create an app in Facebook Developers.
  • Add the Webhooks product.
  • Subscribe to the Ad Account object.
  • Configure:
    • Callback URL (your n8n webhook URL)
    • Verify Token (must match the value in the workflow)

2. Configure the Webhook node

  • Set the webhook path.
  • Use the Production URL when you go live.

3. Connect credentials

  • Connect Google Sheets OAuth credentials in all Google Sheets nodes.
  • Connect Slack credentials and choose your target channel.

4. Update Google Sheets destinations

  • Set your Spreadsheet ID and ensure the expected sheet tabs exist (one per supported webhook field).

5. Activate

  • Save and activate the workflow.
  • Trigger a verification request from Facebook Developers to confirm everything is wired correctly.

Testing

To test the dispatcher before going live, use the open-source tool: meta-ads-webhook-tester.


Further Ideas & Customization

  • Add Telegram: duplicate the Slack notification step and send the same summary message to Telegram.
  • Trigger automations: after routing by field, execute another workflow (e.g., Creative Fatigue → fetch affected ad set → rotate creatives).
  • Hardening: add de-duplication (event IDs), retries, and a dead-letter/error sheet tab for failed log writes.

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Webhook: Meta (ad_account)

Type / Role
n8n-nodes-base.webhook - webhook
Config choices
Version 2.1

Block 2 - Route: verification vs webhook

Type / Role
n8n-nodes-base.switch - switch
Config choices
Version 3.3

Block 3 - Verify: token

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.2

Block 4 - Respond: challenge

Type / Role
n8n-nodes-base.respondToWebhook - respondToWebhook
Config choices
Version 1.4

Block 5 - Route: field

Type / Role
n8n-nodes-base.switch - switch
Config choices
Version 3.3

Block 6 - Respond Creative Fatigue

Type / Role
n8n-nodes-base.respondToWebhook - respondToWebhook
Config choices
Version 1.4

Block 7 - Respond Ad Recommendations

Type / Role
n8n-nodes-base.respondToWebhook - respondToWebhook
Config choices
Version 1.4

Block 8 - Respond Async Creation

Type / Role
n8n-nodes-base.respondToWebhook - respondToWebhook
Config choices
Version 1.4

Block 9 - Respond In Process

Type / Role
n8n-nodes-base.respondToWebhook - respondToWebhook
Config choices
Version 1.4

Block 10 - Respond Product Set Issue

Type / Role
n8n-nodes-base.respondToWebhook - respondToWebhook
Config choices
Version 1.4

Block 11 - Respond With Issues

Type / Role
n8n-nodes-base.respondToWebhook - respondToWebhook
Config choices
Version 1.4

Block 12 - Split Out Accounts AdRec

Type / Role
n8n-nodes-base.splitOut - splitOut
Config choices
Version 1

Block 13 - Split Out Accounts AsCr

Type / Role
n8n-nodes-base.splitOut - splitOut
Config choices
Version 1

Block 14 - Split Out Accounts Pr

Type / Role
n8n-nodes-base.splitOut - splitOut
Config choices
Version 1

Block 15 - Split Out Accounts SetIssue

Type / Role
n8n-nodes-base.splitOut - splitOut
Config choices
Version 1

Block 16 - Split Out Accounts Issues

Type / Role
n8n-nodes-base.splitOut - splitOut
Config choices
Version 1

Block 17 - Split Out Accounts CF

Type / Role
n8n-nodes-base.splitOut - splitOut
Config choices
Version 1

Block 18 - Split Out Changes CF

Type / Role
n8n-nodes-base.splitOut - splitOut
Config choices
Version 1

Block 19 - Split Out Changes AdRec

Type / Role
n8n-nodes-base.splitOut - splitOut
Config choices
Version 1

Block 20 - Log Creative Fatigue

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.7

Block 21 - Log Ad Recommendations

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.7

Block 22 - Log Async Creation

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.7

Block 23 - Split Out Changes AsCr

Type / Role
n8n-nodes-base.splitOut - splitOut
Config choices
Version 1

Block 24 - Split Out Changes Pr

Type / Role
n8n-nodes-base.splitOut - splitOut
Config choices
Version 1

Showing the first 24 of 36 workflow blocks. Download the JSON for the full node graph.

3. Summary Table

Workflow Receive Meta Ads ad account webhooks, log to Sheets, and alert in Slack
Complexity advanced
Nodes 36
Categories Market Research
Author Kirill Khatkevich
Published 27 Dec 2025

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/12223/12223.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Receive Meta Ads ad account webhooks, log to Sheets, and alert in Slack do?

This workflow is a production ready Meta Ads Webhook dispatcher for the Ad Account object. It receives webhook deliveries from Meta, returns the required acknowledgement, routes events by , logs th...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Market Research use case.