Skip to content

Render

Deploy and manage Render services, and react to Render deploy/build events

  1. API Key: Create it in Render Account Settings -> API Keys.
  2. Workspace (optional): Use your Render workspace ID (usr-... or tea-...) or workspace name. Leave empty to use the first workspace available to the API key.
  3. Workspace Plan: Select Professional or Organization / Enterprise (used to choose webhook strategy).
  4. Auth: SuperPlane sends requests to Render API v1 using Authorization: Bearer <API_KEY>.
  5. Webhooks: SuperPlane configures Render webhooks automatically via the Render Webhooks API. No manual setup is required.
  6. Troubleshooting: Check Render Dashboard -> Integrations -> Webhooks and the Render webhook docs.

Note: Plan requirement: Render webhooks require a Professional plan or higher.

The On Build trigger emits build-related Render events for one selected service.

  • Build failure alerts: Notify your team when builds fail
  • Build success hooks: Trigger follow-up automation after successful builds
  • Service: Required Render service.
  • Event Types: Build event states to listen for. Defaults to build_ended.

Render webhooks are validated using the secret generated when SuperPlane creates the webhook via the Render API. Verification checks:

  • webhook-id
  • webhook-timestamp
  • webhook-signature (v1,<base64-signature>)

The default output emits payload data fields like buildId, eventId, serviceId, serviceName, and status (when present).

{
"data": {
"buildId": "bld-cukouhrtq21c73e9scng",
"createdAt": "2026-02-05T16:00:00.000000Z",
"eventId": "evj-cukouhrtq21c73e9scng",
"serviceId": "srv-cukouhrtq21c73e9scng",
"serviceName": "backend-api",
"status": "failed"
},
"timestamp": "2026-02-05T16:00:01.000000Z",
"type": "render.build.ended"
}

The On Deploy trigger emits deploy-related Render events for one selected service.

  • Deploy notifications: Notify Slack or PagerDuty when deploys succeed/fail
  • Post-deploy automation: Trigger smoke tests after successful deploy completion events
  • Release orchestration: Trigger downstream workflows when deploy stages change
  • Service: Required Render service.
  • Event Types: Deploy event states to listen for. Defaults to deploy_ended.

Render webhooks are validated using the secret generated when SuperPlane creates the webhook via the Render API. Verification checks:

  • webhook-id
  • webhook-timestamp
  • webhook-signature (v1,<base64-signature>)

The default output emits payload data fields like deployId, eventId, serviceId, serviceName, and status (when present).

{
"data": {
"createdAt": "2026-02-05T16:00:00.000000Z",
"deployId": "dep-cukouhrtq21c73e9scng",
"eventId": "evj-cukouhrtq21c73e9scng",
"serviceId": "srv-cukouhrtq21c73e9scng",
"serviceName": "backend-api",
"status": "succeeded"
},
"timestamp": "2026-02-05T16:00:01.000000Z",
"type": "render.deploy.ended"
}

The Cancel Deploy component cancels an in-progress deploy for a Render service and waits for it to complete.

  • Automated rollback/abort: Cancel deploys when health checks fail
  • Manual intervention: Stop a deploy triggered earlier in a workflow
  1. Sends a cancel request for the specified deploy via the Render API
  2. Waits for the deploy to finish (via deploy_ended webhook and optional polling fallback)
  3. Routes execution based on deploy outcome:
    • Success channel: Deploy was cancelled successfully (status is canceled)
    • Failed channel: Deploy finished with an unexpected status
  • Service: Render service that owns the deploy
  • Deploy ID: Deploy ID to cancel (supports expressions)
  • Success: Emitted when the deploy is cancelled successfully
  • Failed: Emitted when the deploy finishes with a non-cancelled status
  • Uses the existing integration webhook for deploy_ended events
  • Falls back to polling if the webhook does not arrive
  • Requires a Render API key configured on the integration
{
"data": {
"createdAt": "2026-02-05T16:10:00.000000Z",
"deployId": "dep-cukouhrtq21c73e9scng",
"finishedAt": "2026-02-05T16:12:00.000000Z",
"serviceId": "srv-cukouhrtq21c73e9scng",
"status": "canceled",
"trigger": "api"
},
"timestamp": "2026-02-05T16:12:00.000000Z",
"type": "render.deploy"
}

The Deploy component starts a new deploy for a Render service and waits for it to complete.

  • Merge to deploy: Trigger production deploys after a successful GitHub merge and CI pass
  • Scheduled redeploys: Redeploy staging services on schedules or external content changes
  • Chained deploys: Deploy service B when service A finishes successfully
  1. Triggers a new deploy for the selected Render service via the Render API
  2. Waits for the deploy to complete (via deploy_ended webhook and optional polling fallback)
  3. Routes execution based on deploy outcome:
    • Success channel: Deploy completed successfully
    • Failed channel: Deploy failed or was cancelled
  • Service: Render service to deploy
  • Clear Cache: Clear build cache before deploying
  • Success: Emitted when the deploy completes successfully
  • Failed: Emitted when the deploy fails or is cancelled
  • Uses the existing integration webhook for deploy_ended events (same as On Deploy trigger)
  • Falls back to polling if the webhook does not arrive
  • Requires a Render API key configured on the integration
{
"data": {
"createdAt": "2026-02-05T16:10:00.000000Z",
"deployId": "dep-cukouhrtq21c73e9scng",
"finishedAt": "2026-02-05T16:15:00.000000Z",
"serviceId": "srv-cukouhrtq21c73e9scng",
"status": "succeeded"
},
"timestamp": "2026-02-05T16:15:00.000000Z",
"type": "render.deploy.finished"
}

The Get Deploy component fetches a deploy for a Render service.

  • Status checks: Inspect deploy status and timestamps
  • Debugging: Fetch deploy metadata after receiving an event
  • Service: Render service that owns the deploy
  • Deploy ID: Deploy ID to retrieve (supports expressions)

Emits a render.deploy payload containing deploy fields like deployId, status, trigger, and timestamps when available.

{
"data": {
"commit": {
"createdAt": "2026-02-05T16:09:30.000000Z",
"id": "1a2b3c4d5e6f",
"message": "Release v1.2.3"
},
"createdAt": "2026-02-05T16:10:00.000000Z",
"deployId": "dep-cukouhrtq21c73e9scng",
"finishedAt": "2026-02-05T16:15:00.000000Z",
"image": {
"ref": "registry.example.com/backend-api:1a2b3c4d",
"sha": "sha256:4f7c2d7f0bb27e2f8d4d9b3d2b3a1a9a3b2c1d0e"
},
"serviceId": "srv-cukouhrtq21c73e9scng",
"startedAt": "2026-02-05T16:10:10.000000Z",
"status": "live",
"trigger": "api"
},
"timestamp": "2026-02-05T16:15:00.000000Z",
"type": "render.deploy"
}

The Get Service component fetches details for a Render service.

  • Service inspection: Fetch current service configuration and metadata
  • Workflow context: Use service fields to drive branching decisions in later steps
  • Service: Render service to retrieve

Emits a render.service payload containing service fields like serviceId, serviceName, type, dashboardUrl, and suspended.

{
"data": {
"createdAt": "2026-02-05T15:00:00.000000Z",
"dashboardUrl": "https://dashboard.render.com/web/srv-cukouhrtq21c73e9scng",
"serviceId": "srv-cukouhrtq21c73e9scng",
"serviceName": "backend-api",
"suspended": "not_suspended",
"type": "web_service",
"updatedAt": "2026-02-05T16:00:00.000000Z"
},
"timestamp": "2026-02-05T16:05:00.000000Z",
"type": "render.service"
}

The Purge Cache component requests a build cache purge for a Render service.

  • Cache reset: Force a clean rebuild when you suspect stale dependencies or build artifacts
  • Operational tooling: Provide a one-click cache purge in incident response workflows
  • Service: Render service whose build cache should be purged

Emits a render.cache.purge.requested payload with serviceId and a status field indicating the request was accepted.

{
"data": {
"serviceId": "srv-cukouhrtq21c73e9scng",
"status": "accepted"
},
"timestamp": "2026-02-05T16:20:00.000000Z",
"type": "render.cache.purge.requested"
}

The Rollback Deploy component triggers a rollback deploy for a Render service and waits for it to complete.

  • Automated recovery: Roll back after detecting errors in a new deploy
  • One-click rollback: Trigger rollbacks from an incident workflow
  1. Triggers a rollback deploy for the selected Render service via the Render API
  2. Waits for the deploy to complete (via deploy_ended webhook and optional polling fallback)
  3. Routes execution based on deploy outcome:
    • Success channel: Deploy completed successfully (status is live)
    • Failed channel: Deploy failed or was cancelled
  • Service: Render service to roll back
  • Deploy ID: The deploy ID to roll back to (supports expressions)
  • Success: Emitted when the rollback deploy completes successfully
  • Failed: Emitted when the rollback deploy fails or is cancelled
  • Uses the existing integration webhook for deploy_ended events
  • Falls back to polling if the webhook does not arrive
  • Includes rollbackToDeployId in the output payload for reference
  • Requires a Render API key configured on the integration
{
"data": {
"createdAt": "2026-02-05T16:18:00.000000Z",
"deployId": "dep-cukouhrtq21c73e9scng",
"rollbackToDeployId": "dep-cukouhrtq21c73e9scnf",
"serviceId": "srv-cukouhrtq21c73e9scng",
"status": "build_in_progress",
"trigger": "rollback"
},
"timestamp": "2026-02-05T16:18:00.000000Z",
"type": "render.deploy"
}

The Update Env Var component updates a Render service environment variable.

  • Rotate secrets: Generate a new value for an env var (for example, API tokens) and optionally emit it
  • Configuration changes: Update non-secret environment values as part of a workflow
  • Service: Render service that owns the env var
  • Key: Env var key to update
  • Value Strategy:
    • Set value: provide the Value field
    • Generate value: request Render to generate a new value
  • Value: New env var value (sensitive). Required when using Set value
  • Emit Value: When enabled, include the env var value in output. Disabled by default to avoid leaking secrets.

Emits a render.envVar.updated payload with serviceId, key, and a valueGenerated boolean. The value field is only included when emitValue is enabled.

{
"data": {
"key": "DATABASE_URL",
"serviceId": "srv-cukouhrtq21c73e9scng",
"valueGenerated": false
},
"timestamp": "2026-02-05T16:25:00.000000Z",
"type": "render.envVar.updated"
}