TokPortal
Integration

TokPortal Webhook Events: Complete Reference Guide

Every event your system can listen to, what the payloads contain, and how to wire them into your automation stack.

Vincent Tellenne

Vincent Tellenne

Founder & CEO

April 1, 202610 min read
TokPortal Webhook Events: Complete Reference Guide
Share

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

TokPortal posts videos inside the actual TikTok and Instagram apps on real physical devices — not through the official Content Posting API. This means video.posted events reflect genuine platform-native posts: TikTok sounds work, location tags work, and the algorithm treats the post as a real user upload. No other automated posting infrastructure can emit this event for a truly native post.

Setting Up Your Webhook Endpoint in 5 Steps

1

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.

2

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.

3

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.

4

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.

5

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

Milliseconds after event occurs
Up to your polling interval (minutes)

API rate limit cost

Zero — you receive, not request
Every check burns a request

Infrastructure required

An HTTPS endpoint
A scheduled job running 24/7

Missed events

Retried automatically on failure
Missed if job fails between intervals

Scale

Same cost whether 1 or 1000 events/hour
Cost grows linearly with poll frequency

Debugging

Full payload logged per event
Must diff state across polls

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

Every developer skips signature verification during local testing. That's fine. But shipping to production without it means anyone who discovers your webhook URL can trigger your automation with fake payloads. Implement HMAC-SHA256 verification before you go live. The X-TokPortal-Signature header contains everything you need — the full implementation reference is at developers.tokportal.com.

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.

Read the Full Webhook Docs at developers.tokportal.com
How quickly does TokPortal deliver webhook events after something happens?+
Delivery is near-instant — typically within a few hundred milliseconds of the triggering action. The video.posted event fires as soon as TokPortal confirms the post is live on-platform from the real device. The only latency you'll observe is network transit time to your endpoint and any processing queue on your server.
What happens if my server is down when TokPortal sends a webhook?+
TokPortal retries failed deliveries using exponential backoff — it will attempt redelivery multiple times over an escalating time window. You'll receive the event once your server is back online. To handle this safely, store processed event_ids and check for duplicates before acting on any incoming event.
Can I subscribe to only specific events instead of all of them?+
Yes. When registering your webhook via the API, you specify exactly which event types you want to receive. You can subscribe to a single event like video.posted, a handful of events relevant to your workflow, or use a wildcard to receive everything. Scoping subscriptions to only what you need keeps your endpoint logic clean and reduces unnecessary processing.
Can I use TokPortal webhooks without writing any code, using tools like Make or Zapier?+
Absolutely. Make.com and Zapier both support custom webhook triggers — you paste your TokPortal-registered webhook URL into TokPortal's API, and the platforms receive and parse the payload automatically. The TokPortal Make.com integration and Zapier integration pages walk through the exact setup. For visual workflow automation with more flexibility, the n8n integration is also well-documented.
Do webhook events fire for both TikTok and Instagram accounts?+
Yes. All event types — account lifecycle, video lifecycle, warming, and analytics — fire for both TikTok and Instagram. The payload includes a platform field so you can route events differently based on which platform they came from. This is particularly useful if you're running parallel TikTok and Instagram campaigns and want separate downstream workflows for each.
How does the video.posted event differ from what you'd get via the official TikTok Content Posting API?+
This is a critical distinction. TokPortal posts videos through the actual TikTok app running on a real physical device — not through TikTok's official Content Posting API. The video.posted event therefore confirms a genuinely native post: TikTok sounds are attached, location tags work, and the algorithm doesn't see an API fingerprint. The official API marks content programmatically and strips native features. TokPortal's event confirms something no official API integration can: a post indistinguishable from a real user upload.
Is there a way to test webhook delivery before going to production?+
Yes. You can use tools like ngrok or Webhook.site during development to expose a local endpoint and inspect raw payloads. TokPortal's API also supports sending test events to your registered webhook URL so you can validate your signature verification and parsing logic before real events start flowing. The full testing workflow is documented at developers.tokportal.com.
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