You scheduled a video, it posted, and your downstream system has no idea it happened. Your CRM still shows the campaign as pending. Your n8n workflow is waiting for a trigger that never fires. Your team is manually checking dashboards to confirm what actually went live.
This is the exact problem webhooks solve — and why TokPortal's event system exists. Instead of polling an API every few minutes to ask did something happen?, your infrastructure gets told the moment it does. This guide covers every event TokPortal emits, what the payloads look like, and how to connect them to your stack so your automation runs without babysitting.
What Are TokPortal Webhook Events?
TokPortal's webhook system is part of the TokPortal REST API. When something meaningful happens on the platform — a video posts successfully, an account finishes warming, a bundle is created — TokPortal sends an HTTP POST request to a URL you define. Your server receives it, processes it, and reacts in whatever way your workflow demands.
This is fundamentally different from polling. Polling burns API rate limits, introduces lag, and requires infrastructure to run continuously. Webhooks are push-based: zero lag, no wasted requests, and your system only does work when there's actually something to act on.
Every webhook payload from TokPortal follows a consistent structure: an event field identifying what happened, a timestamp, and a data object with the full context of that event. The full schema reference lives at developers.tokportal.com.
Real-time
Event delivery speed vs. polling lag
12+
Distinct webhook event types
30+
Countries where events fire from real devices
Zero
Rate limit cost to receive webhooks
The Full Event Reference
TokPortal organizes its events into four categories: account lifecycle, video lifecycle, warming, and analytics. Here's what each one means and when you'd act on it.
Account Lifecycle Events
- bundle.created — Fires when a new account bundle is provisioned on a real device. Payload includes bundle_id, platform (tiktok or instagram), country, and device metadata. Use this to trigger your onboarding workflow — profile setup, profile picture upload, and bio configuration.
- bundle.profile_updated — Fires after username, bio, or profile picture has been successfully set via the API. Confirms the profile is visible on-platform before warming begins.
- bundle.ready — The account has passed TokPortal's internal readiness checks and is eligible for posting. This is your green light to schedule content. Critical event for any automated campaign pipeline.
- bundle.suspended — An account has been flagged or suspended. Rare on real-device infrastructure, but essential to catch programmatically so you can substitute an account without manual intervention.
- bundle.deleted — Fires when a bundle is removed. Use to clean up references in your database, CRM, or campaign tracker.
Video Lifecycle Events
- video.queued — Your upload request was accepted and the video is queued for native in-app posting. Payload includes video_id, scheduled_at, and the bundle_id it's assigned to.
- video.posting — The video is actively being posted through the real TikTok or Instagram app on the physical device. This event confirms the native posting pipeline is executing — sounds, location tags, and all native features are being applied.
- video.posted — The video is live on the platform. Payload includes the post URL, post_id, platform, and posted_at timestamp. This is your most important downstream trigger: notify your client, update your CRM, log to Airtable, start the analytics clock.
- video.failed — The video did not post. Includes an error_code and reason field. Wire this to an alerting channel immediately — Slack, PagerDuty, email — and optionally trigger an automatic retry workflow.
- video.deleted — A posted video was removed, either by the account owner via API or by the platform. Important for content compliance tracking.
Warming Events
- warming.started — Niche warming (7 credits) or Deep warming (40 credits, Instagram) has begun. Use this to set expectation states in your campaign dashboard.
- warming.completed — Warming has finished. This is the trigger to move the account into your active posting queue. Automating this event saves the manual step of checking account status before scheduling content.
- warming.failed — Warming did not complete successfully. Rare, but catch it to trigger a retry or flag for manual review.
Analytics Events
- analytics.snapshot — Periodic delivery of post-level performance data: views, likes, comments, shares, and reach. Frequency is configurable. Use this to feed your reporting dashboards without polling the analytics endpoint.
- analytics.milestone_reached — Fires when a video crosses a threshold you define (e.g., 10K views, 100K views). Useful for triggering client notifications, case study capture, or budget reallocation signals.
Native Posting = Events That Matter
Setting Up Your Webhook Endpoint in 5 Steps
Build and expose your endpoint
Create an HTTPS endpoint on your server that accepts POST requests. It must return a 200 status within 5 seconds or TokPortal will retry. For fast iteration, tools like ngrok let you expose a local server during development. Full endpoint requirements are documented at developers.tokportal.com.
Register the webhook via the API
Send a POST request to /webhooks with your endpoint URL and the list of event types you want to subscribe to. You can subscribe to individual events (e.g., video.posted only) or use a wildcard to receive all events. Store the webhook_id returned — you'll need it to update or delete the subscription.
Validate the signature
Every TokPortal webhook includes an X-TokPortal-Signature header — an HMAC-SHA256 hash of the raw request body using your webhook secret. Always verify this before processing the payload. This prevents spoofed requests from triggering your automation. Never skip this step in production.
Acknowledge first, process second
Return 200 immediately upon receiving the webhook, then process the payload asynchronously. If your processing logic takes more than 5 seconds (database writes, downstream API calls), return 200 first and queue the work. Slow acknowledgment causes TokPortal to retry, leading to duplicate processing.
Handle retries and idempotency
TokPortal retries failed webhook deliveries with exponential backoff. Your endpoint will receive the same event more than once if your server was temporarily unavailable. Use the event's unique event_id field to deduplicate: store processed event IDs and skip any you've already handled.
Webhooks vs. Polling: Why the Difference Is Larger Than You Think
Feature
Webhooks (Push)
Polling (Pull)
Latency
API rate limit cost
Infrastructure required
Missed events
Scale
Debugging
Connecting Webhooks to Your Automation Stack
TokPortal webhooks are raw HTTP events — which means they connect to anything that can receive an HTTP request. Here's how that maps to the most common automation tools in the ecosystem.
n8n: Use the Webhook node as your trigger, then chain it to HTTP Request, Airtable, Slack, or any of n8n's 400+ integrations. A typical flow: video.posted → update campaign row in Airtable → post confirmation to Slack → trigger analytics logging. The TokPortal n8n integration guide walks through the exact node configuration.
Make.com: Drop a Webhooks module as your scenario trigger. Make's visual canvas makes it straightforward to branch logic — route video.failed events to an alert path and video.posted events to a reporting path in the same scenario. See the TokPortal Make.com integration for setup details.
Zapier: Use Zapier's Catch Hook trigger. TokPortal fires the webhook, Zapier parses the payload, and you map fields to downstream actions across 5,000+ connected apps — HubSpot deal updates, Google Sheets logging, email notifications. Full setup at the TokPortal Zapier integration page.
Custom backend / AI agents: If you're building a custom pipeline or running AI agents, TokPortal's MCP server gives your agents native access to TokPortal events and actions without building webhook plumbing from scratch. An agent can listen for bundle.ready, decide what video to post based on campaign logic, call the upload endpoint, and await video.posted — all autonomously.
The moment video.posted fires, our CRM updates, the client gets a Slack notification, and the analytics clock starts. We went from checking dashboards manually three times a day to having zero operational overhead on campaign confirmation.
— Growth agency owner managing 40+ TikTok accounts across 8 countries
Real-World Event Pipelines Worth Stealing
Pipeline 1 — Full campaign automation for agencies: bundle.created → trigger profile setup API calls → await bundle.profile_updated → start niche warming → await warming.completed → schedule first content batch → await video.posted → notify client via email → begin analytics tracking via analytics.snapshot. This pipeline runs zero human touchpoints from account creation to live content.
Pipeline 2 — UGC launch for e-commerce: Upload 20 videos across 10 accounts on launch day. Listen for video.posted per account. When all 10 fire, trigger a Slack message to the team: all accounts live, campaign is running. If any video.failed events arrive, auto-retry with the backup video variant. Full UGC scaling patterns are covered in the UGC at scale use case guide.
Pipeline 3 — Milestone-triggered budget reallocation: Listen for analytics.milestone_reached at the 50K view threshold. When it fires, automatically queue three additional videos to the same account to ride the algorithmic momentum. This is the kind of reactive distribution that manual management simply can't execute fast enough.
When Webhooks Unlock Real Value
- Confirming video is live before triggering client-facing notifications
- Automatically moving accounts through warming → posting pipeline
- Real-time failure alerting with zero manual checking
- Feeding analytics data to dashboards without polling
- Triggering downstream CRM, Slack, or email workflows on post confirmation
- Building fully autonomous agent-driven campaign pipelines
When You Still Need the API Directly
- Querying historical data (use GET endpoints instead)
- Pulling current account status on demand (use the bundles endpoint)
- Retrieving analytics for a specific date range (use the analytics endpoint)
- One-off actions like deleting a video (direct API call, no event needed)
Always Verify Signatures in Production
Wire Your First Webhook and Automate Your Campaign Pipeline
The TokPortal API documentation has the full webhook schema, payload examples, signature verification guide, and event subscription endpoints. Start building the automation that removes manual confirmation from your social media operations.
How quickly does TokPortal deliver webhook events after something happens?+
What happens if my server is down when TokPortal sends a webhook?+
Can I subscribe to only specific events instead of all of them?+
Can I use TokPortal webhooks without writing any code, using tools like Make or Zapier?+
Do webhook events fire for both TikTok and Instagram accounts?+
How does the video.posted event differ from what you'd get via the official TikTok Content Posting API?+
Is there a way to test webhook delivery before going to production?+

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
Related Resources
Runway to TikTok at Scale: Geo-Native Workflow
Post Runway videos to TikTok at scale with real-device workflows across 20 countries, native sounds, webhooks, and API-controlled campaigns.
TokPortal + Zapier: No-Code Social Distribution
Use TokPortal + Zapier to send videos from 5,000+ apps into geo-native TikTok, Reels, and Shorts posting workflows without custom code in 2026.
Zapier Workflow: AI UGC From Drive to TikTok
Build a Zapier workflow that posts AI UGC from Google Drive to TikTok via TokPortal real-device routing across 20 countries, with Sheets logging.
Automate TikTok Posting with n8n + Real Devices
Automate TikTok posting with n8n and TokPortal real devices across 20 countries using webhooks, schedules, retries, and API workflows.
Distribute Pika.ai Videos to TikTok, IG, YouTube
Move Pika videos to TikTok, Reels, and Shorts through real devices, APIs, and local accounts in 20+ countries—without manual upload queues.
Automate Runway Videos to TikTok
Automate Runway clips to TikTok with TokPortal API workflows across real devices in 20+ countries for agencies, AI tools, and growth teams.
