
act_{accountId}/insights endpoint at campaign level, pulling impressions, clicks, spend, cpc, ctr, campaign_id, campaign_name, and results for date_preset=yesterday.results field was the interesting part. I assumed it would return a simple count. It doesn't. It returns an array of objects, each with an indicator string and a nested values array. So building a readable result label meant mapping those raw indicator strings to something a non-technical person could glance at. That became a small normalization function inside a Code node, handling eight different action types and falling back to a cleaned version of the raw string for anything unexpected.
act_{id}/insights at campaign levelPosted Feb 21, 2026
Built an n8n workflow that pulls Meta Ads campaign data daily, appends it to Google Sheets automatically, and delivers a Slack report with a budget alert.
1
1
Feb 16, 2026 - Feb 18, 2026