Go to App

Channels

Channels are named streams of events that clients subscribe to. When you connect with a valid token, you are automatically subscribed to your personal channels.

Personal Channels

These channels are scoped to your user account. The {uuid} is your user UUID (included in the JWT token).

exports:{uuid}

The primary channel for tracking export jobs. Receives all job lifecycle events.

Events delivered:

EventWhen
job.createdA new export job is created
job.progressExport progress update (throttled to every 5 seconds)
job.finishedExport completed successfully
job.failedExport failed
job.requeuedExport requeued for retry
job.convert.doneFile format conversion completed
job.convert.failedFile format conversion failed
bulk_download.readyBulk download ZIP is ready
bulk_download.failedBulk download ZIP assembly failed

webhooks:{uuid}

Receives events when webhook deliveries are attempted.

Events delivered:

EventWhen
webhook.event.createdA webhook delivery was attempted

user:{uuid}

Account-level notifications not tied to specific exports.

Events delivered:

EventWhen
subscription.updatedYour subscription plan was created, expired, or canceled

user_notifications_channel:{uuid}

Human-readable notification messages suitable for displaying as toasts or alerts in a UI.

Message types:

TypeDescription
export_startedAn export began processing
export_completedAn export finished successfully
export_failedAn export failed
export_progressProgress milestone reached (25%, 50%, 75%)
subscription_updatedSubscription plan changed
usage_limit_warningApproaching monthly usage limit (90%+)

user_dashboard_channel:{uuid}

Structured dashboard data updates. Useful for building real-time dashboards that mirror the ExportComments UI.

Message types:

TypeDescription
new_activityA new export appeared in the activity list
activity_updateAn existing export's status/progress changed
complete_updateFull dashboard data snapshot (sent on significant state changes)
usage_statsUpdated usage statistics (exports count, data processed)
subscription_statusCurrent subscription details

Job-Specific Channel

You can also subscribe to a channel for a single export job:

export.{guid}.job

Receives events only for the specific export job identified by {guid}. This is useful when you want to track a single job without receiving events for all your exports.

💡
Automatic subscription

Your personal channels (exports:{uuid}, webhooks:{uuid}, etc.) are included in the JWT token and subscribed automatically on connect. The job-specific channel export.{guid}.job is also available if the token includes it.

Message Format

All messages on the exports:{uuid} and webhooks:{uuid} channels follow the standard event format:

json
{
"version": "v3-beta",
"event": "job.finished",
"guid": "b4219d47-3138-5efd-9762-2ef9f9495084",
"status": "done",
"url": "https://example.com/download/export.xlsx",
"details": {
"id": 12345,
"guid": "b4219d47-3138-5efd-9762-2ef9f9495084",
"status": "done",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"totalExported": 1500
}
}

Messages on dashboard and notification channels use a different structure:

json
{
"type": "activity_update",
"payload": {
"guid": "b4219d47-3138-5efd-9762-2ef9f9495084",
"updates": {
"id": "b4219d47-3138-5efd-9762-2ef9f9495084",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"status": "progress",
"progress": 45.2,
"totalItems": 1500,
"exportedItems": 678,
"platform": "YouTube",
"duration": "2 minutes"
}
},
"timestamp": "2025-01-15T10:30:00+00:00"
}