Daily competitor video log in Google Sheets
Every morning at 7am ET, pull yesterday's competitor videos from Tubular Labs and log them as fresh rows in your share-of-voice Google Sheet.
Build a code workflow that maintains a rolling, day-by-day competitor video performance log in Google Sheets, so my marketing team can chart share-of-voice and benchmark against creators we care about.
Trigger: cron, every morning at 7:00 AM America/New_York.
Inputs the workflow should accept at configure time: the Google Sheets spreadsheet ID, the Config tab name (default "Config"), and the Daily Log tab name (default "Daily Log").
Step 1 — Read the competitor watchlist. Use Google Sheets Get Values to read the Config tab. Assume the first row is a header and each subsequent row is one competitor with at least two columns: a friendly competitor name and a Tubular creator / channel identifier (channel ID, creator ID, or platform handle). Skip empty rows.
Step 2 — Fetch yesterday's videos and metrics from Tubular Labs. For each competitor row, call Tubular Labs Execute GraphQL Query to fetch: every video that creator/channel published in the last 24 hours, the video title, the canonical URL, the platform (YouTube, TikTok, Instagram, Facebook, Twitter, Twitch), the 1-day-post-upload cumulative view count, like count, comment count, and share count (Tubular exposes 1, 2, 3, 7, and 30-day measurement windows — use the 1-day window), and the creator's current total subscribers/followers. Send the API key in the Authorization header with no Bearer prefix. Handle GraphQL errors in the response body, not just HTTP status.
Step 3 — Append rows to the Daily Log. Use Google Sheets Append Values on the Daily Log tab with valueInputOption USER_ENTERED. Append one row per video with these columns in order: Date (the trigger date in YYYY-MM-DD, ET), Competitor (friendly name from Config), Platform, Video Title, Video URL, Views (1-day), Likes (1-day), Comments (1-day), Shares (1-day), Engagement (likes + comments + shares), Follower Count (creator total at run time). If a competitor published nothing in the window, append no rows for them — do not write a blank/placeholder row.
Behavior rules: this is a deterministic pipeline, no judgement calls or LLM steps. If Tubular returns a rate-limit error (HTTP 429 or extensions.code RATE_LIMITED), back off and retry with exponential delay. If a single competitor errors, log it and continue with the rest — never let one bad row block the whole run. The Daily Log tab should keep growing forever; do not clear or rewrite existing rows. Assume the Daily Log header row already exists; if it doesn't, the workflow can create it on the first run.
Output: the Google Sheet is the source of truth. Charts, pivots, and any downstream BI dashboards are built on top of the Daily Log tab in Sheets — the workflow itself just keeps that tab fresh.
What does this prompt do?
- Reads your list of competitor channels and creators from a Config tab in Google Sheets, so the watchlist is yours to edit any time.
- Pulls every video those competitors published in the last 24 hours from Tubular Labs, plus 1-day view, like, comment, and share counts and the creator's current follower count.
- Appends one row per video to a Daily Log tab with date, competitor, platform, title, URL, views, engagement, and followers, ready to chart in Sheets or pipe into a BI tool.
- Runs on autopilot every weekday morning so your share-of-voice dashboard is fresh before the team's first meeting.
What do I need to use this?
- A Tubular Labs account with API access (you can find your key under Settings, Integrations).
- A Google Sheets account and a spreadsheet with a Config tab listing the competitor channels or creator IDs you want to track.
- An empty Daily Log tab in the same spreadsheet where new rows will land each morning.
How can I customize it?
- Change the morning run time, the cadence (daily vs weekdays only), or the time zone.
- Add or remove competitors any time by editing the Config tab, no workflow changes needed.
- Pick which metrics to log (views, likes, comments, shares, followers) and the column order in the Daily Log tab.
- Swap the 24-hour lookback for a 2-day or 7-day window if you care about longer-tail performance.
FAQs
Do I need to be a developer to use this?
Which video platforms are covered?
How do I add a new competitor to the watchlist?
Can I build a share-of-voice dashboard on top of this?
What if a competitor did not publish anything yesterday?
Related templates
Every weekday at 10am, an AI voice agent phones your most overdue Xero accounts, logs what each customer promised, and reports back to finance in Slack.
See every Google Maps listing you manage on one screen, ranked worst first, with an audit button that writes the fix list for you.
Your team picks a template, finds the customer, checks they are safe to email, then sends it, with every send logged where the whole team can see it.
Every night at 2am, pull the contacts on your open and won deals and block them from your cold outreach before the next send goes out.
Build every text campaign in one screen: check who is actually reachable, see a realistic send plan, then watch delivery land row by row.
See every LinkedIn ad account's spend against the budget you committed to, catch overspend early, and rebalance without rebuilding a spreadsheet.
Stop building competitor video reports by hand.
Connect Tubular Labs and Google Sheets once, and Geni keeps your share-of-voice log fresh every morning at 7am.