Skip to content
Docs
Infrastructure & monitoring

Vercel

Let hires see your Vercel projects and deployments, read build logs, redeploy, put a deployment live, and check which environment variables a project has.

Explore 7 actions and their permissionsExact inputs, sign-in scopes, access limits and approval rules.

With Vercel, a hire can:

  • list projects and their deployments (production or preview, ready, building or failed, with the branch and commit),
  • read a deployment: where it's served, the commit, and the error if the build failed,
  • read a build log, or just its errors,
  • see the names of a project's environment variables and where each applies,
  • redeploy a deployment (the same code, built again),
  • promote a ready deployment to production, which is also how to go back to an earlier one.

Environment variable values never reach hires

Hires only see each variable's name, where it applies (production, preview, development) and its kind. Roster never asks Vercel to decrypt them and never passes a value on. Build logs also have anything that looks like a key, token or password replaced.

1. Make an access token in Vercel

Straight there: vercel.com/account/settings/tokens.

  1. In Vercel, open Account Settings → Tokens and click Create. Name it Roster.
  2. Scope: your team (or your own account for Hobby projects).
  3. Pick an expiry and create it, then copy the token.

What hires do shows in Vercel as the token's owner.

2. Connect it in Roster

  1. Open Integrations → Tools → Add a tool, search for Vercel and choose it.
  2. Access token: paste the token.
  3. Team ID: for a team's projects, from Team Settings → General → Team ID (it starts with team_). Leave it empty for your own projects.
  4. Click Connect.

Roster checks the key when you click Connect. Once it's accepted, the connection shows Connected as your team's name (or your own, without a Team ID). If it's refused, Roster says what to fix (a mistyped key, a missing permission) and saves nothing.

3. Give hires access

On the hire's Tools tab, click Give access on Vercel:

  • Read only: projects, deployments, build logs and environment variable names.
  • Read and write: also redeploy and promote to production.
  • Projects: project names or IDs, one per line. Anything outside the list is refused, including deployments of other projects. Leave it empty for every project the token can see.

Promoting changes what your users see

Promoting a deployment to production, or redeploying a production one, changes your live site as soon as it's ready, so both wait for a person's approval: the hire asks in the thread, and when the approver says yes, Roster does exactly that, once. Redeploying a preview goes ahead without asking. To change this for a hire, use When it asks first on its Tools tab.

If something goes wrong

  • "Didn't accept the connection's credential": the token was deleted or has expired.
  • "Project not found": the project is in a team; add the Team ID on the connection, or check the token's scope.
  • "Not ready; only a ready deployment can be promoted": wait for the build to finish, or pick another deployment.

Tools and permissions reference

This reference is built from the same definitions Roster uses to connect Vercel and give hires access. It updates with each release.

Authentication and requested permissions

The account or app you connect sets the outer limit. Each hire's access can narrow it further. Connecting a tool gives it to no hire until you give access on that hire's Tools tab.

API key or access token

In Vercel: Account Settings → Tokens → Create, scoped to your team.

No fixed permission list is declared for this connection. Review the sign-in consent screen, the account's roles, and the service's own documentation before connecting.

Connection fields

Vercel connection fields
FieldWhat to provide
Access token
token
Required · sealed secret
In Vercel: Account Settings → Tokens → Create, scoped to your team.
Team ID
teamId
Optional
For a team's projects: Team Settings → General → Team ID. Leave empty for your own (Hobby) projects.

Per-hire limits

Read-only hires receive only actions that read. Read-and-write access also allows actions that change things, where the connection itself permits them. An empty resource allowlist usually means everything the connected account can reach; each field below explains its meaning.

Vercel per-hire limits
FieldWhat to provide
Projects
projects
Optional
Project names or IDs, one per line. Leave empty for every project the token can see.

Actions

7 actions: 5 only read and 2 change something. A read action may still need approval when your workspace or hire is set to ask. A locked approval requirement always applies.

7 of 7 actions. Open an action for its arguments and full input schema.

list_projectsRead only

The Vercel projects this hire can use, with their framework, repository and production address.

Approval: Uses your workspace and hire approval settings.

Arguments for list_projects
ArgumentTypeDetails
searchOptionalstringSee input schema below.
Full input schema (JSON)
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "search": {
      "type": "string",
      "maxLength": 100
    }
  }
}
list_deploymentsRead only

A project's recent deployments, newest first: state, production or preview, branch and commit.

Approval: Uses your workspace and hire approval settings.

Arguments for list_deployments
ArgumentTypeDetails
projectRequiredstringthe project's name or ID
targetOptional"production" | "preview"See input schema below.
stateOptional"BUILDING" | "ERROR" | "INITIALIZING" | "QUEUED" | "READY" | "CANCELED"See input schema below.
limitOptionalintegerSee input schema below.Default: 15
Full input schema (JSON)
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "project": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "the project's name or ID"
    },
    "target": {
      "type": "string",
      "enum": [
        "production",
        "preview"
      ]
    },
    "state": {
      "type": "string",
      "enum": [
        "BUILDING",
        "ERROR",
        "INITIALIZING",
        "QUEUED",
        "READY",
        "CANCELED"
      ]
    },
    "limit": {
      "default": 15,
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    }
  },
  "required": [
    "project"
  ]
}
get_deploymentRead only

One deployment: its state, where it's served (aliases), the commit, and the error if its build failed.

Approval: Uses your workspace and hire approval settings.

Arguments for get_deployment
ArgumentTypeDetails
deploymentRequiredstringthe deployment's ID (dpl_…) or URL
Full input schema (JSON)
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "deployment": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "the deployment's ID (dpl_…) or URL"
    }
  },
  "required": [
    "deployment"
  ]
}
deployment_logsRead only

A deployment's build log, the last lines first cut to what matters: commands, output, errors and how it ended.

Approval: Uses your workspace and hire approval settings.

Arguments for deployment_logs
ArgumentTypeDetails
deploymentRequiredstringthe deployment's ID (dpl_…) or URL
errors_onlyOptionalbooleanonly error output (stderr) and how it endedDefault: false
linesOptionalintegerSee input schema below.Default: 120
Full input schema (JSON)
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "deployment": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "the deployment's ID (dpl_…) or URL"
    },
    "errors_only": {
      "default": false,
      "description": "only error output (stderr) and how it ended",
      "type": "boolean"
    },
    "lines": {
      "default": 120,
      "type": "integer",
      "minimum": 10,
      "maximum": 400
    }
  },
  "required": [
    "deployment"
  ]
}
list_env_varsRead only

The NAMES of a project's environment variables, where each applies (production, preview, development) and its kind. Values are never shown.

Approval: Uses your workspace and hire approval settings.

Arguments for list_env_vars
ArgumentTypeDetails
projectRequiredstringthe project's name or ID
Full input schema (JSON)
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "project": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "the project's name or ID"
    }
  },
  "required": [
    "project"
  ]
}
redeployRead and write

Build a deployment again with the same code and settings, e.g. after a failed build or to pick up changed environment variables. A production deployment's redeploy goes live when it's ready, so that one waits for a person's approval.

Approval: when the redeploy goes to production.

Arguments for redeploy
ArgumentTypeDetails
deploymentRequiredstringthe deployment's ID (dpl_…) or URL
targetOptional"production" | "preview"leave out to keep the original's
Full input schema (JSON)
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "deployment": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "the deployment's ID (dpl_…) or URL"
    },
    "target": {
      "description": "leave out to keep the original's",
      "type": "string",
      "enum": [
        "production",
        "preview"
      ]
    }
  },
  "required": [
    "deployment"
  ]
}
promote_to_productionRead and write

Make a ready deployment the project's live production one, without building again (also how to go back to an earlier one). Your users see it at once, so it waits for a person's approval: Roster asks in the thread and promotes it, once, when they approve.

Approval: Always asks for approval.

Arguments for promote_to_production
ArgumentTypeDetails
deploymentRequiredstringthe deployment's ID (dpl_…) or URL
Full input schema (JSON)
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "deployment": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "the deployment's ID (dpl_…) or URL"
    }
  },
  "required": [
    "deployment"
  ]
}

Watches and incoming events

  • No built-in watch is declared. Give a hire a scheduled responsibility if it should check this service regularly.
  • No incoming webhook handler is declared for this integration.

Limits and troubleshooting

  • Permission errors: check both the connected account's rights and the hire's resource and read/write limits.
  • Expired or revoked access: reconnect or replace the key on the connection.
  • Rate limits and unavailable services can interrupt work. The hire's timecard records the outcome.
  • The action schema describes accepted inputs. It does not grant additional access or bypass approvals.

Service documentation · Integration source reference

On this page