deactivate_resource

Switch a project resource off without touching the plans that sell it. Reversible with activate_resource. Emits project.resource.updated when the switch flips.

Purpose

Pause one channel or group without editing a single plan. While a resource is off the bot stops offering and granting it, and the plans that link it keep selling everything else they include. The link itself is untouched, which is what makes this reversible: activate_resource brings it back exactly as it was.

The safe alternative to delete_resource

delete_resource removes the row for good and every plan loses the link. Switching off keeps the row, the link and the connector binding. Reach for it for maintenance, a channel being reorganised, or anything you might want back.

Runs the same Action the dashboard and the REST API use. project.resource.updated emits once, carrying changes.active from true to false, and only when the switch actually flips. Re-calling on a resource that is already off is a no-op: the current row comes back and nothing emits.

Required ability

project-resource:update

Input schema

{
  "type": "object",
  "required": ["resource_id"],
  "properties": {
    "resource_id": {
      "type": "string",
      "description": "UUID of the resource to switch off."
    }
  }
}

Output shape

{
  "data": {
    "id": "b73c5f21-9d80-4a6e-8215-4f70ce13a9d6",
    "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13",
    "kind": "telegram:channel",
    "connector": "telegram",
    "space": {
      "id": "3c1f7a58-2b6e-4d90-8f41-6a2e9c5d7b10",
      "external_id": "-1001234567890",
      "title": "Research Channel"
    },
    "title": "Research Channel",
    "description": null,
    "active": false,
    "created_at": "2026-05-18T10:05:00+00:00",
    "updated_at": "2026-09-06T08:30:12+00:00"
  }
}

The full get_resource row, with active: false. space is kept — the binding survives the switch.

Example prompts

"Switch resource b73c5f21-9d80-4a6e-8215-4f70ce13a9d6 off for now."

"Pause the Research Channel while we reorganise it — don't touch the plans."

"Take the VIP lounge offline temporarily; I'll turn it back on next week."

Failure modes

  • VALIDATION_FAILED — the caller is a team member whose role lacks the team's resource-update permission. error.context.resource carries the refusal.
  • RESOURCE_NOT_FOUND — unknown resource_id, a resource on another team's project, or one outside the token's scope:project: allow-list.
  • AUTHENTICATION_REQUIRED — no authenticated user on the request.
  • TOKEN_MISSING_ABILITY — token lacks project-resource:update.

How is this guide?

On this page

Subscriby is a product designed by you — for you.

No boardroom full of executives deciding what we ships next. Our roadmap always shaped by you with your feedback.

Share feedback or a request