Turn any product page into ready-to-run Meta ads—fast, consistent, and client-friendly.
This template takes a product URL and produces publish-ready Meta ads without the busywork. Your client fills a clean form; the workflow scrapes product data, writes a creative brief, generates ad-set variations, produces 1:1 images with OpenAI, and builds Campaign → Ad Set(s) → Ad(s) in PAUSED for review.
Perfect for: agencies, performance marketers, founders who need repeatable creative and less manual setup.
Highlights
Form → Firecrawl scrape → Product JSON (LLM) → Vision style cues → Creative brief
→ Campaign JSON (LLM) → Split into ad sets → For each ad set:
→ Generate image → Upload to Meta → Create Creative → Create Campaign → Create Ad Set → Create Ad (PAUSED)
your_ad_account_id
, etc.)ads_management
permissions)Import the JSON in n8n.
Create Credentials for OpenAI, Facebook Graph API, Firecrawl.
Open “Configuration Meta Ads” node and set:
ad_account_id
, facebook_page_id
, pixel_id
, website_link
Open the Form Trigger URL and submit a real product URL.
In Ads Manager , review campaign/ad sets/ads (they’re PAUSED), then enable.
Creative Brief (concise, platform-aware)
Campaign JSON with:
Meta assets created : uploads → creatives → campaign → ad set(s) → ad(s) (PAUSED)
Credentials
- Use OpenAI , Facebook Graph API , and Firecrawl credentials in n8n.
- ⚠️ No hardcoded keys anywhere (HTTP node or otherwise).
Form Testing
- Use a real product URL with at least one image.
- Start with 1–2 variations; scale after review.
- If scraping fails, verify Firecrawl key and the site’s policies.
Meta Upload
- Set
ad_account_id
,facebook_page_id
,pixel_id
,website_link
.- If uploads fail, check account permissions and app scopes.
OpenAI Images
- Default: 1:1, 1024×1024.
- You can change size in the Images node (keep FB/IG safe zones).
- Prompts should avoid policy-sensitive claims.
Safety & Review
- Everything is created PAUSED.
- Review copy, claims, and targeting for compliance.
- Enable after quality checks.
null
/empty arrays.Does it publish automatically?
No. Ads are created PAUSED for review.
Instagram-only campaigns?
Yes. Set placements to IG (or keep auto and let Meta optimize).
Thin product pages?
Extractor returns null
for missing fields; the brief adapts without inventing data.
Bring my own audiences?
Swap the generated audience block for your saved audiences or static lists.
Change image model/size?
Yes—edit the OpenAI Images node (model/size). Keep 1:1 for FB/IG.