Review AI ad copy with Claude and route outcomes to HubSpot and Slack

Go to Workflow
0 views
Built by Mayank Bhadrasen Mayank Bhadrasen
Created on October 14, 2026

Description

Quick overview
This workflow receives AI-generated ad copy variants via a webhook, validates and deduplicates them, then uses Anthropic Claude to approve, review, or block each variant and (in live mode) creates a HubSpot task and posts a Slack alert while logging outcomes to an n8n Data Table.

How it works
Receives an ad variant via a webhook secured with header authentication.
Validates and normalizes the payload (including required fields and upstream quality checks) and rejects invalid requests with an HTTP 422 response.
Checks the n8n Data Table to prevent reprocessing the same brief and variant combination and returns a “duplicate” response when found.
Sends the variant and campaign context to Anthropic Claude to return a strict JSON routing decision, and falls back to deterministic rules if the AI response is unusable.
In live mode, creates a HubSpot task and posts a formatted Slack message to the appropriate channel based on the decision and priority.
Logs the final outcome (including AI/fallback status, costs, latency, and delivery results) to an n8n Data Table and responds to the webhook caller.
On a daily schedule (or manual run), reads the last 24 hours from the Data Table, uses Anthropic Claude to generate insights, then sends an HTML report via Gmail, posts a Slack digest, and appends decision rows to Google Sheets.

Setup
Create and connect credentials for Header Auth (webhook), Anthropic, HubSpot private app token, Slack (chat.postMessage), Gmail, and Google Sheets.
Run the reporting flow once (via the manual trigger) to create the ad_copy_review_log n8n Data Table.
Update routing values such as the Claude model and Slack channel names, and set the report recipient email address and digest channel.
Select the target Google Sheets spreadsheet and sheet in the Google Sheets append step.
Copy the production webhook URL into your ad-generation system and send requests in dry_run mode first, then switch to live to enable HubSpot and Slack actions.

This workflow was created by Mayank Bhadrasen and shared publicly on the n8n community template library. n8nFind indexes it for discovery — the workflow remains the property of its original creator.

Nodes Used (4)

Code
n8n-nodes-base.code
Gmail
n8n-nodes-base.gmail
Google Sheets
n8n-nodes-base.googleSheets
HTTP Request
n8n-nodes-base.httpRequest