TokPortal
Integration

TokPortal + Google Sheets: Run Spreadsheet-Driven TikTok Campaigns

Your content calendar already lives in a spreadsheet. Here's how to make it post itself.

Vincent Tellenne

Vincent Tellenne

Founder & CEO

April 1, 20269 min read
TokPortal + Google Sheets: Run Spreadsheet-Driven TikTok Campaigns
Share

You're already planning your TikTok campaigns in a spreadsheet. The video URLs are there. The captions are there. The target accounts, the post times, the sounds — all in rows and columns, color-coded, shared with your team. Then someone has to manually log into each account and actually post it. That bottleneck is the entire problem. The plan is automated. The execution is not.

This is exactly the use case TokPortal's API was built for. When your spreadsheet can trigger real posts — through real TikTok apps, on real devices, in real countries — the gap between planning and publishing collapses to zero. Here's how to build it.

Why Spreadsheets Are Still the Command Center for Content Teams

Every serious content operation, from a two-person DTC brand to a 20-client agency, runs some version of the same Google Sheet: rows for each piece of content, columns for account, caption, date, format, sound, status. It's collaborative, flexible, and universally understood. No new tool adoption. No onboarding your client to yet another SaaS.

The problem has never been the spreadsheet. It's that the spreadsheet has always been a planning artifact, not an execution layer. You finish the planning column, then start the manual posting grind. Every row is a task someone has to do by hand. At five accounts that's manageable. At fifty, it's a nightmare. At two hundred, it's impossible.

Connecting Google Sheets to TokPortal via the API — or through no-code tools like n8n, Make.com, or Zapier — turns your existing planning sheet into a live posting pipeline.

~4 min

Average time to manually post one TikTok (login, caption, sound, hashtags, post)

200+

Videos per month a single agency campaign might require

13+ hrs

Monthly manual work replaced by a spreadsheet-driven pipeline

30+

Countries where TokPortal accounts post natively via real devices

What You Can Control From a Spreadsheet

Before building the workflow, it helps to understand exactly what columns map to what API parameters. TokPortal's REST API — documented at developers.tokportal.com — gives you programmatic control over essentially every posting variable. That means every column in your sheet can correspond to a real posting action.

  • Account (bundle ID): which TikTok or Instagram account posts the video
  • Video URL: direct link to the video file (Google Drive, S3, Dropbox, etc.)
  • Caption: full text with hashtags and emojis, passed directly to the post
  • Schedule datetime: ISO timestamp controlling exactly when the post goes live
  • TikTok Sound URL: a unique TokPortal capability — add any TikTok sound to a video by URL, impossible via the official TikTok API
  • Sound volume: control original audio and added sound independently (0–200%)
  • Country/account geo: specify which country's account handles the post
  • Post format: video, carousel, Reel, Story, fixed photo
  • Location tag: geotag the post to a city or venue (Instagram)
  • Status column: track Posted, Scheduled, Failed, Pending directly in your sheet via webhooks

Three Ways to Connect Google Sheets to TokPortal

There's no single right architecture — the best connection depends on your team's technical comfort and the complexity of your campaign. Here are the three main approaches, from simplest to most powerful.

Feature

No-Code (n8n / Make / Zapier)

Direct API / Custom Script

Setup time

30–60 minutes
2–4 hours

Technical skill required

None (drag-and-drop)
Basic coding (REST API calls)

Custom logic (conditionals, retries)

Limited
Fully flexible

Real-time webhook status back to sheet

Supported via webhook node
Full control

Best for

Agencies, content teams, founders
Technical marketers, developers

Cost

Tool subscription + TokPortal credits
TokPortal credits only

n8n is the most flexible no-code option for this use case because it handles looping through spreadsheet rows natively, supports conditional logic, and can write status updates back to your sheet after each post. Here's the core workflow structure:

1

Google Sheets Trigger Node

Set the trigger to fire on a schedule (e.g., every 15 minutes) or when a new row is added with Status = 'Ready'. This means your team marks a row as ready in the sheet, and the automation picks it up automatically — no manual kick-off needed.

2

Filter: Check Scheduled Time

Add a conditional node that compares the row's scheduled datetime against the current time. Only rows whose scheduled time has passed (or is within the next 15 minutes) move forward. Everything else waits for the next check.

3

TokPortal API Node: POST /bundles/{id}/videos

Map each column from the sheet row to the corresponding API parameter: video URL, caption, sound URL, sound volume, post format. The full parameter reference is at developers.tokportal.com. This is the step that posts the video through the real TikTok app on a real device in your target country.

4

Write Status Back to Sheet

After the API call, use a Google Sheets node to update the Status column in that row. On success: 'Posted'. On failure: 'Failed – [error message]'. Your sheet becomes a live dashboard showing exactly where every piece of content stands.

5

Optional: Slack / Email Alert on Failure

Add a notification node that fires only when the API returns an error. Your team gets alerted immediately without having to check the sheet, and the row stays in 'Failed' status for manual review.

Option 2: Make.com Scenario

Make.com (formerly Integromat) is an excellent alternative if your team already uses it. The scenario logic mirrors n8n: a Google Sheets module watches for rows with a trigger status, an HTTP module sends the video details to the TokPortal API, and a final Google Sheets module writes the result back. Make's visual canvas makes it easy to hand off to a non-technical team member for maintenance.

One Make-specific tip: use the 'Watch Rows' trigger rather than polling all rows on a schedule. This fires the scenario only when a new or updated row appears, keeping your operation usage low and your latency near-zero.

Option 3: Google Apps Script (Zero External Tools)

If you want to keep everything inside Google Workspace, Apps Script is a powerful option. A time-driven trigger runs a function every 10 minutes, iterates through rows where Status is 'Ready' and the scheduled time has passed, calls the TokPortal REST API via UrlFetchApp.fetch(), and writes results back to the sheet. No external subscriptions, no third-party tools. The full API reference at developers.tokportal.com documents every endpoint you'll need. This approach is ideal for technical marketers who want a self-contained solution that lives entirely inside their Google account.

Building the Sheet: Column Architecture That Actually Works

The way you structure your Google Sheet determines how clean your automation logic is. Here's a proven column setup for a multi-account campaign sheet:

  • Row ID: unique identifier for each post (used for webhook callbacks and deduplication)
  • Bundle ID: the TokPortal account ID — map this from a separate 'Accounts' tab for easy reference
  • Platform: TikTok or Instagram (determines which API endpoint and post format options apply)
  • Country: for reference — your bundle IDs already encode geography, but this helps the team plan
  • Video URL: direct public link to the video file; Google Drive works if sharing is set to 'Anyone with link'
  • Caption: full post text including hashtags — keep a character count formula in the adjacent column
  • Sound URL: paste any TikTok sound page URL here; leave blank for original audio only
  • Original Volume %: 0–200, defaults to 100
  • Sound Volume %: 0–200, defaults to 100 if sound URL is provided
  • Scheduled At: datetime in ISO 8601 format (use a formula to convert human-readable dates)
  • Post Format: video / reel / carousel / story / photo
  • Status: Pending / Ready / Scheduled / Posted / Failed
  • Posted At: written back by the automation after successful posting
  • Error: written back by the automation if posting fails — shows the API error message
  • Notes: freeform column for the content team

Multi-Account Agency Campaigns: The Real Power

The spreadsheet model truly shines when you're managing campaigns across multiple accounts — say, 15 TikTok accounts across the US, UK, Germany, and Brazil for a single product launch. Without automation, that's 15 manual logins per posting day. With a spreadsheet-driven pipeline, it's 15 rows that all fire at their respective scheduled times with zero additional effort from your team.

The workflow doesn't change. You just have more rows. Each row has a different Bundle ID pointing to a different country's TokPortal account. The automation treats each row identically. You can localize captions per row (column), use country-specific sounds (column), and stagger post times by timezone (column). The spreadsheet makes the complexity manageable because every variable is visible and editable in one place.

We went from a VA spending 3 hours a day logging into accounts and posting, to a sheet where the team drops in content and it posts itself. The ops cost dropped, the error rate dropped, and we scaled from 12 to 60 accounts without hiring anyone new.

Agency Owner, Performance Marketing

Closing the Loop: Webhooks Write Back to Your Sheet

A one-way pipeline — sheet to TokPortal — is useful. A two-way pipeline is a campaign management system. TokPortal fires webhooks for real-time events: post published, post failed, account warming complete, and more. Here's how to use them:

In your n8n or Make workflow, add a webhook receiver node. When TokPortal fires a video.published event, the webhook payload includes the Row ID you passed at post time. Your workflow looks up that row in the sheet and writes 'Posted' to the Status column along with the actual timestamp. When a video.failed event fires, it writes 'Failed' and the error reason. Your sheet becomes a real-time campaign dashboard that updates itself — no manual checking, no status meetings just to find out if things posted.

Full webhook event documentation is available at developers.tokportal.com.

Spreadsheet-Driven Posting: What Works

  • Zero new tool adoption — your team stays in the interface they already know
  • Full campaign visibility in one tab: every account, every post, every status
  • Easy to bulk-edit (change 50 captions in seconds with find-replace)
  • Scales from 5 to 500 accounts without changing the architecture
  • Non-technical team members can manage campaigns without touching the API
  • Video URL column works with any storage: Drive, S3, Dropbox, Cloudflare R2

What to Watch Out For

  • Video files must be publicly accessible via URL — Google Drive requires share setting adjustment
  • Apps Script has execution time limits (6 min/run) — large batches need pagination logic
  • Timezone management in datetime columns requires discipline (always use UTC or explicit offset)
  • Sheet becomes a single point of failure if access permissions aren't managed carefully
  • No built-in conflict resolution if two team members edit the same row simultaneously

Connect Your Content Calendar to Real TikTok Accounts

Your spreadsheet already has the plan. TokPortal gives it the infrastructure to execute — real devices, real app posting, real reach across 30+ countries. Set up your first spreadsheet-driven campaign in under an hour.

Explore the TokPortal API and Start Building

AI Agents: The Next Level Beyond Spreadsheets

Spreadsheet-driven automation is a major step forward. But there's a level beyond it: AI agents that generate content, populate the sheet, and trigger posting autonomously — no human input required between strategy and publish. TokPortal's MCP server enables exactly this. An agent like Claude or a custom GPT can call TokPortal's API directly: create accounts, schedule videos, check analytics, and respond to performance data. The spreadsheet becomes optional — the agent manages state in whatever structure makes sense for the workflow. For teams already experimenting with AI-assisted content creation, this is the natural next step after nailing the spreadsheet pipeline.

Does TokPortal have a native Google Sheets integration, or do I need to build it?+
TokPortal doesn't have a native Sheets button — it exposes a full REST API that connects to Sheets through no-code tools like n8n, Make.com, or Zapier, or directly via Google Apps Script. This actually gives you more flexibility than a native integration would: you control exactly what gets posted, when, and how status gets written back. The API docs at developers.tokportal.com cover every endpoint you need.
Can I manage multiple client accounts from a single Google Sheet?+
Yes, and this is one of the strongest use cases. Use a 'Client' column alongside the 'Bundle ID' column. You can filter the sheet by client for day-to-day management, but the automation processes all rows regardless of client. Many agencies run one master campaign sheet with 10–20 clients' worth of posts and a single n8n workflow handles all of it. Just make sure each client's Bundle IDs are clearly mapped in a reference tab.
What happens if a post fails? Will it retry automatically?+
Out of the box, a failed API call writes 'Failed' and the error reason to your Status column. Automatic retries require you to build retry logic into your workflow — in n8n this means an error branch that re-queues the row after a delay, in Apps Script it means checking for Failed rows on the next polling cycle. TokPortal also fires a video.failed webhook so your automation can catch failures in real time rather than on the next scheduled run.
Can I add TikTok trending sounds through the spreadsheet workflow?+
Yes — this is one of TokPortal's most unique capabilities. Add a 'Sound URL' column to your sheet and paste any TikTok sound page URL. When the automation calls the API, the sound gets added natively through the TikTok app on a real device. No other posting API can do this — the official TikTok Content Posting API doesn't support sounds at all. Your content team can research trending sounds while planning, drop the URL in the sheet, and the automation handles the rest.
How do I handle timezone differences when scheduling posts across multiple countries?+
The cleanest approach is to store all scheduled times in UTC in your sheet and add a separate 'Local Time (Reference)' column that converts to local time using a FORMULA — this is display-only for your team. Your automation reads the UTC column exclusively. TokPortal processes the schedule based on when your workflow fires and when the API receives the call, so consistent UTC timestamps prevent any timezone ambiguity across US, European, and Asian accounts.
Is this approach suitable for Instagram as well, or only TikTok?+
It works for both. TokPortal supports TikTok and Instagram natively — Reels, Posts, Carousels, Stories, and Fixed Photos on Instagram; Videos and Carousels on TikTok. You can run mixed-platform campaigns from the same sheet by adding a 'Platform' column and having your workflow route to the appropriate API endpoint based on that value. Instagram-specific fields like location tags and collaborators are also configurable via the API.
Share
Vincent Tellenne

Written by

Vincent Tellenne

Founder & CEO

Vincent is the founder of TokPortal, building the infrastructure for scaled organic social media distribution. Previously scaled multiple startups and APIs to millions of requests.

Learn more about this topic with AI

Ready to launch?Start with TokPortal