Skip to content

Observability

Every connector has an Observability tab that shows runtime events for token and trigger lifecycles: who requested a token, which project used it, when a trigger arrived, and where it was forwarded.

Observability is available on all plans. Enterprise teams also get connector audit logs and longer event retention.

The Observability tab shows five event types:

Event TypeDescription
Token RequestA getToken call or CLI vercel connect token invocation that returned a provider token.
Completed Authorization RequestA user or app completed an OAuth authorization flow and obtained a grant.
Revoked Token RequestA token was revoked from the dashboard, CLI, or REST API.
Inbound TriggerA webhook event arrived directly from the provider (e.g., Slack).
Forward TriggerConnect forwarded the inbound trigger to a registered project destination.

Use the filter menu to narrow the event list by fields like:

  • Timeline: Select a time range from 30 minutes to 30 days, depending on your plan's retention window.
  • Event Type: Show only token requests, triggers, authorizations, or revocations.
  • Status: Filter by delivery status (for forward triggers).
  • Environment: Filter by deployment environment (production, preview, development).
  • Project ID: Show events from a specific linked project.
  • Subject Type: Filter by token subject (app, user, or jwt-bearer).
  • Installation ID: Narrow to a specific installation (for multi-tenant connectors).

You can also use the search bar to find events by any field value, such as a token ID or authorization ID.

Each event carries stable identifiers you can use to trace the lifecycle of a single token or trigger across events and match Connect events to your own systems:

  • tokenId: Identifies a specific issued token.
  • authorizationId: Links to the OAuth authorization that produced the token.
  • tokenGroupId: Groups tokens that share the same authorization context (same client, subject, environment, scopes, audience, and resources). Tokens within a group differ only in their credential values and expiry.
  • triggerRequestId: Correlates an inbound trigger with its forwarded deliveries.

Select any event row to open the detail panel, where you can copy these IDs or click the filter icon to filter the event list by that value.

The Activity button in the Observability toolbar opens the team Activity Log pre-filtered to show configuration changes for the connector, such as when the connector was created, edited, or linked to a project.

How long events are retained depends on your plan:

PlanRetention
Hobby12 hours
Pro3 days
Enterprise30 days

The timeline filter adapts to your plan. On Hobby, the maximum range is 12 hours. On Pro, the maximum is 3 days. On Enterprise, the maximum is 30 days.

Drains are available on Pro and Enterprise plans.

To retain Connect events beyond your plan's retention window, forward them to an external endpoint by adding a Drain. Connect drains deliver each event as a JSON webhook payload to any custom HTTP endpoint you configure.

This lets you:

  • Store Connect events in your own logging or SIEM system
  • Build custom dashboards and alerts around token activity
  • Meet compliance requirements for long-term audit trails

To add a drain, click Add Drain in the Observability toolbar and provide a webhook URL. See Working with Drains for setup details and Pricing for drain costs.

Each event delivered to a drain or shown in the detail panel includes the following common fields:

FieldTypeRequiredDescription
eventTypestringyesOne of the five event types listed below.
timestampnumberyesUnix timestamp in milliseconds.
ownerIdstringyesThe ID of the Vercel owner (also known as teamId).
clientIdstringyesThe ID of the Connect client.
clientTypestringyesThe type of the Connect client (e.g., slack, oauth).
projectIdstringnoThe ID of the Vercel project if included in the request.

Logged when a token is requested through getToken (SDK), vercel connect token (CLI), or the REST API.

FieldTypeRequiredDescription
subjectTypestringyesThe type of the subject, e.g., app or user.
subjectIdstringnoThe ID of the subject associated with the token request.
authorizationIdstringnoThe authorization ID associated with the token.
tokenGroupIdstringnoGroups tokens that share the same authorization context. Tokens within a group were issued for the same client, subject, environment, scopes, audience, and resources, and differ only in their credential values and expiry.
tokenIdstringnoInternal ID of the requested token. Used to deduplicate counts.
scopesstringnoThe scopes associated with the token request.
environmentstringnoThe project environment.
userIdstringnoThe Vercel user ID associated with the request.
installationIdstringnoThe ID of the client installation associated with the token request.
expiresAtnumbernoThe token expiration timestamp.
refreshTokenExpiresAtnumbernoThe expiration timestamp of the refresh token.

Logged when a user or app completes an OAuth authorization flow and obtains a grant.

FieldTypeRequiredDescription
subjectTypestringyesThe type of the subject, e.g., app or user.
subjectIdstringnoThe ID of the subject.
authorizationIdstringnoThe authorization ID.
tokenGroupIdstringnoGroups tokens that share the same authorization context. Tokens within a group were issued for the same client, subject, environment, scopes, audience, and resources, and differ only in their credential values and expiry.
scopesstringnoThe scopes granted in the authorization.
environmentstringnoThe project environment.
userIdstringnoThe Vercel user ID associated with the request.
installationIdstringnoThe ID of the client installation.
externalTenantIdstringnoThe external tenant ID from the provider.
refreshTokenExpiresAtnumbernoThe expiration timestamp of the refresh token.

Logged when a token is revoked from the dashboard, CLI, or REST API.

FieldTypeRequiredDescription
subjectTypestringyesThe type of the subject, e.g., app or user.
subjectIdstringnoThe ID of the subject.
authorizationIdstringnoThe authorization ID.
tokenIdstringnoInternal ID of the revoked token.
tokenGroupIdstringnoGroups tokens that share the same authorization context. Tokens within a group were issued for the same client, subject, environment, scopes, audience, and resources, and differ only in their credential values and expiry.
scopesstringnoThe scopes associated with the revoked token.
environmentstringnoThe project environment.
userIdstringnoThe Vercel user ID associated with the request.
installationIdstringnoThe ID of the client installation.
tokenExpiresAtnumbernoThe expiration timestamp of the revoked token.
refreshTokenExpiresAtnumbernoThe expiration timestamp of the refresh token.
revokedAtnumberyesThe timestamp when the token was revoked.

Logged when a webhook event arrives from the provider (e.g., a Slack event).

FieldTypeRequiredDescription
triggerRequestIdstringyesInternal ID for the processed event.
bodySizenumberyesThe body size of the event in bytes.
externalEventIdstringnoThe event ID from the incoming request.
externalEventTypestringnoThe event type from the incoming request.

Logged when Connect forwards an inbound trigger to a registered project destination.

FieldTypeRequiredDescription
triggerRequestIdstringyesInternal ID for the processed event.
bodySizenumberyesThe body size of the event in bytes.
destinationProjectIdstringnoProject ID the event is being relayed to.
destinationPathstringnoPath for the project the event is being relayed to.
externalEventIdstringnoThe event ID from the incoming request.
externalEventTypestringnoThe event type from the incoming request.
statusstringyesThe outcome of the forward trigger delivery (success or error).
reasonstringnoThe reason for the status outcome, e.g., failure reason.
statusCodenumbernoThe HTTP status code returned by the destination.
Last updated August 11, 2026

Was this helpful?