An AI creative testing workflow with Claude, n8n and Meta

The useful version of 'AI runs my ads' is small: a nightly data pull, one fixed prompt, and a person who signs off. Here is the whole loop, with the prompt.

By 4 min readWorkflow automation

Disclosure: some links on this page are affiliate links. If you buy through one, ROAScal may earn a commission at no extra cost to you. It never decides what we recommend or what we say about it. How this works.

What problem does this workflow solve?

Creative testing fails for a boring reason. Nobody looks at the results on the same day each week, in the same way, and writes down what to make next. The ads run, the winners are obvious in hindsight, and the next batch is briefed from memory.

This loop fixes the boring part. It does not find you a better offer and it does not replace judgement. It makes sure the judgement happens every week, on clean data, and ends in a brief.

What do you need before you start?

  • A Meta ad account you have access to, and a system user or long-lived token with ads_read permission.
  • n8n, either Cloud or the free self-hosted Community Edition.
  • Claude on a paid plan, or API access if you want the analysis step automated too.
  • Somewhere to keep rows: a Google Sheet works, and Airtable is tidier once there are several accounts.

Step 1: how should you name ads so a machine can read them?

Everything downstream depends on this. Put the variables you are testing into the ad name, in a fixed order, separated by underscores:

2026-10-01_HOOK-priceanchor_FMT-ugcvideo_ANGLE-timesaving_V2

Hook, format and angle are the three that matter most. If the name carries them, any tool can group results by them. If it does not, no amount of AI will recover what you were testing.

Step 2: how does n8n pull the data?

Build a workflow with three nodes: a schedule trigger set to run nightly, a Facebook Graph API node, and a node that appends rows to your sheet or table.

Point the Graph API node at the Insights edge for your account:

GET /act_<AD_ACCOUNT_ID>/insights
  ?level=ad
  &date_preset=last_7d
  &fields=ad_name,spend,impressions,inline_link_clicks,actions,video_thruplay_watched_actions

actions contains purchases and three-second video plays among other things, so add a small step that picks out the action types you care about. Store one row per ad per day with the date of the pull.

Step 3: what do you ask Claude?

The same thing every week. A fixed prompt is the point: it makes this week's read comparable with last week's.

You are reviewing Meta ad creative tests. Target CPA: £<X>.
Data: one row per ad for the last 7 days (below).
Ad names encode HOOK, FMT and ANGLE.

For each ad return: decision (KILL / KEEP / ITERATE / NOT ENOUGH DATA),
the single metric that drove the decision, and one sentence of reasoning.

Rules:
- NOT ENOUGH DATA if spend is under 2x target CPA.
- KILL if spend is over 2x target CPA with no purchase.
- ITERATE if hook rate is strong but hold rate or CPA is weak. Say what to change.
- Never invent a number that is not in the data.

Then: which HOOK, FMT and ANGLE values are winning across ads,
and three briefs for next week's tests, each changing one variable only.

The thresholds are starting points. Set them from your own account's economics, and change them in the prompt, not in your head.

Step 4: who approves the changes?

You do. Read the table, disagree where you know something the data does not (stock is low, the offer ends Friday), and then pause and brief by hand. This step takes ten minutes and is the reason the loop is safe to run.

Step 5: how do the new briefs become ads?

Each brief changes one variable from a winner: same angle with a new hook, or the same hook in a new format. Pull references from a swipe file such as Foreplay, produce the variants, name them properly, and launch them paused for a final check.

What does a week look like once it is running?

DayWhat happensWho
Nightlyn8n appends yesterday's ad rowsAutomated
MondayClaude returns decisions and three briefsAutomated, 2 minutes
MondayApprove, pause, send briefsYou, 10 minutes
Tuesday to ThursdayProduce and launch variantsYou or your editor
FridayNothing. Let the tests runNobody

Questions people ask

Can Claude pause or launch the ads itself?
It can be wired to, and in this workflow it deliberately is not. The model produces a recommendation and a reason. A person approves the pause or the launch. Automated rules scale mistakes as readily as wins, so keep the approval step until the recommendations have been right for several weeks.
How much data does an ad need before a decision?
Enough spend to have had a fair chance at your target cost per result. A common starting rule is to judge an ad once it has spent about twice your target cost per acquisition. Below that, the answer is 'not enough data', and the prompt should be allowed to say so.
Do I need n8n, or will a spreadsheet export do?
A weekly CSV export from Ads Manager works for one account. Automate the pull when you manage several accounts or when the export keeps getting skipped, which is the usual way this process dies.

Sources checked

Charlotte AmadisPaid media operator and fractional CMO. Co-founder of ROAScal. Writes about what is worth paying for in an AI marketing stack and what is not.

Tools in this piece

Claude

Agents

Anthropic's AI assistant for writing, analysis and multi-step work across your files and apps.

Best for
Marketers who want an assistant for long-form writing, data analysis and reporting that can connect to the tools they already use.
Price
$17 Per month with annual subscription discount ($200 billed up front). $20 if billed monthly
Free plan

n8n

AutomationAgents

Workflow automation and AI agent builder that can run in the cloud or self-hosted.

Best for
Technical marketers and agencies running multi-step automations who want execution-based pricing or self-hosting.
Price
€20/month billed annually (Starter, 2,500 executions)
Free plan

Airtable

Automation

No-code database and app builder with automations, interfaces and AI agents.

Best for
Marketing teams that need a structured content calendar, creative tracker or campaign database with light automation.
Price
$20/user/month billed annually (Team)
Free plan

Foreplay

Paid social

Ad swipe file, ad discovery database, competitor tracking, creative analytics and briefs.

Best for
Creative strategists who collect competitor ads and turn them into briefs for editors and creators.
Price
$59/month billed monthly (Basic); $49/month billed annually