Skip to content

Record one privacy-safe customer portal funnel event

POST
/v1/workspace-telemetry
curl --request POST \
--url https://api.vocapable.com/v1/workspace-telemetry \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "event": "job_selected", "workflow": "receptionist", "workforce_track": "availability", "surface": "home", "test_channel": "browser", "blocker": "not_applicable", "duration_bucket": "under_1_minute" }'

Write only finite, non-identifying portal dimensions to structured monitoring.

This endpoint deliberately owns no database model, progression record, counter, or resource join. It is a best-effort operational signal; the browser never waits for it to decide whether a customer can keep setting up their workspace.

Media typeapplication/json
PortalTelemetryEventRequest

One finite product-funnel event from the authenticated portal.

The event is intentionally not an audit trail. Authentication and normal per-key rate limiting still apply to the request, but neither the payload nor the monitoring event receives a caller, contact, helper, campaign, route URL, exception string, or raw elapsed time.

object
event
required
Event
string
Allowed values: job_selected setup_completed setup_blocked first_test_started developer_handoff_opened time_to_live_recorded route_error readiness_mismatch setup_abandoned
workflow
Workflow
string
default: not_applicable
Allowed values: receptionist workforce csat sales not_applicable
workforce_track
Workforce Track
string
default: not_applicable
Allowed values: availability shift-reminders candidate-follow-up not_applicable
surface
Surface
string
default: unknown
Allowed values: home setup try developer activity billing manage unknown
test_channel
Test Channel
string
default: not_applicable
Allowed values: browser text phone not_applicable
blocker
Any of:
string
Allowed values: account_agreements_required agents_write_scope_required calls_write_scope_required runtime_not_configured browser_runtime_not_configured fleet_placement_not_configured agent_chat_not_configured assisted_setup_not_configured voice_catalog_empty verified_test_number_required test_call_daily_cap_reached telephony_account_required telephony_account_unverified telephony_worker_unavailable calendar_integration_not_configured calendar_connection_required calendar_connection_reconnect_required
duration_bucket
Duration Bucket
string
default: not_applicable
Allowed values: under_1_minute 1_to_5_minutes 5_to_30_minutes over_30_minutes not_applicable

Successful Response

Media typeapplication/json
PortalTelemetryReceipt

An intentionally content-free acknowledgement of a monitoring event.

object
recorded
required
Recorded
boolean
Examplegenerated
{
"recorded": true
}

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object
Examplegenerated
{
"detail": [
{
"loc": [
"example"
],
"msg": "example",
"type": "example",
"input": "example",
"ctx": {}
}
]
}