Skip to main content

Generate Google ad copy automatically with Claude 3.5, Channable & Relevance AI

Workflow preview

Workflow preview
100%
Generate Google ad copy automatically with Claude 3.5, Channable & Relevance AI preview
Open on n8n.io

Important notice

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

1. Workflow Overview

Channable + Google Ads + Relevance AI: Scalable AI Workflow for Automated Ad Copy Generation & Publishing Overview This workflow automates the entire ad creation process for Google Ads by int...

Best for

  • Content Creation automation workflows
  • Multimodal AI automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.httprequest, n8n-nodes-base.set, n8n-nodes-base.slack, n8n-nodes-base.aggregate, n8n-nodes-base.googlesheets, n8n-nodes-base.scheduletrigger, n8n-nodes-base.splitinbatches, n8n-nodes-base.code

Source and attribution

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

Original n8n.io source

1.1 Workflow description

Title
Generate Google ad copy automatically with Claude 3.5, Channable & Relevance AI
Workflow name
Generate Google ad copy automatically with Claude 3.5, Channable & Relevance AI

🚀 Channable + Google Ads + Relevance AI: Scalable AI Workflow for Automated Ad Copy Generation & Publishing


🧩 Overview

This workflow automates the entire ad creation process for Google Ads by integrating product data, AI-generated copy, compliance checks, and publication into your marketing pipeline.

It connects n8n, Relevance AI, Google Sheets, and optionally Channable to:

  • Fetch product data from your catalog
  • Generate Google Text Ad headlines and descriptions using Relevance AI
  • Validate character limits and ensure Google Ads compliance
  • Route non-compliant ads to a Slack review channel
  • Save compliant, ready-to-publish ads in Google Sheets
  • Notify your marketing team automatically after each generation cycle

🧠 Key Benefits

✅ 100% automated ad copy pipeline ✅ AI-generated, human-quality Google Ads text ✅ Built-in compliance verification (Google Ads policy) ✅ Google Sheet integration for team review ✅ Daily automatic schedule (zero manual effort) ✅ Slack alerts for QA and transparency ✅ Modular design — extendable for Shopping and Performance Optimization ✅ Scalable for 10 → 10,000+ product ads


⚙️ System Architecture

Tech Stack

  • n8n – Automation Orchestrator
  • Relevance AI – AI tools for copy generation and policy compliance
  • Google Sheets – Data storage and team collaboration
  • Slack – Real-time alerts and notifications
  • (Optional) Channable – Product feed integration

🧭 Workflow Logic

Daily Trigger (00:00)
   ⬇️
1️⃣ Get Product Feed (Channable or custom API)
   ⬇️
2️⃣ Split Into Batches (50 products each)
   ⬇️
3️⃣ Generate Ad Copy (Relevance AI tool → Claude 3.5 prompt)
   ⬇️
4️⃣ Validate Character Limits (JS node: max 30 headline / 90 description)
   ⬇️
5️⃣ Compliance Check (Relevance AI agent → Google Ads policies)
   ⬇️
6️⃣ IF Compliant → CSV / Google Sheets
    ↳ ❌ Non-Compliant → Slack Alert
   ⬇️
7️⃣ Aggregate Batches + Generate CSV
   ⬇️
8️⃣ Save to Google Sheets (“Generated Ads” tab)
   ⬇️
9️⃣ Slack Notification → Summary Report

📋 Environment Variables

Set these in n8n → Settings → Variables → Add Variable

Copy-paste from your ENVIRONMENT_VARIABLES_CORRECTED.txt.

Includes:

  • ✅ Relevance AI region, API key, tool & agent IDs
  • ✅ Google Ads, Merchant Center, and Sheets credentials
  • ✅ Slack channel name
  • ✅ Optional Channable endpoint

Example:

RELEVANCE_AI_API_URL=https://api-f1db6c.stack.tryrelevance.com/latest
RELEVANCE_TOOL_AD_COPY_ID=bueQG8io04dw
RELEVANCE_AGENT_COMPLIANCE_ID=xT29mQ4QKsl
GOOGLE_SHEET_ID=1q2w3e4r5t6y7u8i9o0p
SLACK_CHANNEL=#google-ads-automation

🏗️ Node-by-Node Breakdown

Node Description Endpoint / Logic
🕓 Schedule Trigger Runs daily at 00:00 Cron 0 0 * * *
📦 Get Product Feed Pulls product data from Channable or custom API GET {{$env.CHANNABLE_API_URL}}/v1/projects/{{$env.PROJECT_ID}}/items
🧮 Split Into Batches Processes 50 products at a time Avoids rate limits
✍️ Generate Ad Copy (Relevance AI) Calls AI tool for each product POST {{$env.RELEVANCE_AI_API_URL}}/tools/google_text_ad_copy_generator/run
🔍 Validate Character Limits JS validation (≤30 headline / ≤90 description) Truncates smartly
🧠 Compliance Check Agent Verifies Google Ads compliance POST {{$env.RELEVANCE_AI_API_URL}}/agents/google_ads_compliance_checker/run
⚖️ IF Compliant Routes APPROVED vs REJECTED "contains 'APPROVED'"
💾 Format for CSV Formats compliant ads for export Maps ID, headline, desc, URLs
📊 Aggregate Batches Combines all results Merges datasets
🧱 Generate CSV File Converts JSON → CSV Escaped string-safe format
📑 Save to Google Sheets Saves reviewed ads Sheet: Generated Ads
📢 Slack Notification (Success) Posts completion summary Shows ad count, timestamp
🚨 Slack Alert (Non-Compliant) Notifies team for review Includes issues, category

🔑 API Authentication Setup

🔹 Relevance AI

  • Create “HTTP Header Auth” credential

    Header Name: Authorization
    Header Value: Bearer {{$env.RELEVANCE_AI_API_KEY}}
    

🔹 Google Sheets

  • Credential type: “Google OAuth2 API”

  • Scopes:

    https://www.googleapis.com/auth/spreadsheets
    https://www.googleapis.com/auth/drive.file
    

🔹 Slack

  • Create Slack App → Add Bot Token Scopes → chat:write
  • Paste token in n8n “Slack API” credential.

🔹 (Optional) Channable

  • Header Auth:

    Bearer {{$env.CHANNABLE_API_TOKEN}}
    

🧩 Google Sheet Template

Sheet name: Generated Ads

Columns:

| product_id | headline | description | final_url | display_url | generated_at |

Optional: Add compliance_status or notes columns for QA.


⚙️ Testing Procedure

  1. Manual Trigger: Disable the schedule → click “Execute Workflow”.

  2. Batch Size: Start small (3 products).

  3. Expected Output:

    • ✅ Ad copy generated
    • ✅ Character limits validated
    • ✅ Slack alerts for rejects
    • ✅ Google Sheet filled

Check logs in Executions for errors. Re-enable the cron trigger after successful validation.


🧾 Example Output

product_id headline description final_url display_url generated_at
12243 “Eco Bamboo Socks” “Soft, breathable comfort for everyday wear.” https://shop.com/socks shop.com 2025-10-22T00:00:00Z

📬 Slack Alert Templates

✅ Success Notification

✅ *Google Ads Generation Complete*

📊 *Summary:*
• Total Ads Generated: 50
• Saved to Google Sheets: Generated Ads
• Timestamp: 2025-10-22T00:00:00Z

⚠️ Non-Compliant Alert

⚠️ Non-Compliant Ad Flagged

Product: Bamboo Socks
Issues:
- Contains “Free Shipping”
- Headline too long

Timestamp: 2025-10-22T00:00:00Z

🧰 Maintenance & Monitoring

Frequency Task
Daily Check Slack alerts for rejects
Weekly Review ad performance metrics
Monthly Update Relevance AI prompts
Quarterly Refresh API tokens and variables

📊 Success Metrics

  • ✅ Compliance approval rate: >85%
  • 🚫 Disapproval rate: <5%
  • 📈 CTR improvement: +15–25%
  • ⏱️ Time saved: 10–15 hours/week
  • 🌐 Scalable: 1,000+ ads/day

🪜 Next Steps

  1. Deploy and monitor for 7 days.
  2. After 30 days → activate Workflow 2: Performance Optimization Loop.
  3. Extend to Shopping Feed Optimization.
  4. Add multi-language generation using Relevance AI.
  5. Integrate Google Ads API publishing (full automation).

🔗 Resources


🎉 Conclusion

You now have a production-ready, scalable AI-powered ad generation system integrating Channable, Google Ads, and Relevance AI — built entirely on n8n.

This delivers:

  • 💡 AI creativity at scale
  • ✅ Google Ads policy compliance
  • ⚙️ Hands-free daily automation
  • 📊 Transparent reporting and collaboration

> Start small → validate → scale to 10,000+ ads per day. > Within weeks, you’ll have a self-learning, always-on ad pipeline driving consistent performance.


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 - Get Product Feed

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 2 - Format for CSV

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

Block 3 - Alert - Non-Compliant

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

Block 4 - Aggregate Batches

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

Block 5 - Save to Google Sheets

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

Block 6 - Schedule Trigger - Daily1

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

Block 7 - Split Into Batches1

Type / Role
n8n-nodes-base.splitInBatches - splitInBatches
Config choices
Version 3

Block 8 - Generate Ad Copy - Relevance AI1

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 9 - Validate Character Limits1

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 10 - Compliance Check Agent1

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 11 - IF Compliant1

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

Block 12 - Generate CSV File1

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 13 - Success Notification1

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

Block 14 - Sticky Note

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

Block 15 - Sticky Note1

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

Block 16 - Sticky Note2

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

Block 17 - Sticky Note4

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

Block 18 - Sticky Note3

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

Block 19 - Sticky Note5

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

3. Summary Table

Workflow Generate Google ad copy automatically with Claude 3.5, Channable & Relevance AI
Complexity advanced
Nodes 19
Categories Content Creation, Multimodal AI
Author Nikan Noorafkan
Published 22 Oct 2025

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/10057/10057.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 Generate Google ad copy automatically with Claude 3.5, Channable & Relevance AI do?

Channable + Google Ads + Relevance AI: Scalable AI Workflow for Automated Ad Copy Generation & Publishing Overview This workflow automates the entire ad creation process for Google Ads by int...

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 Content Creation, Multimodal AI use case.