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-4f70ce13a9d6off 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.resourcecarries the refusal.RESOURCE_NOT_FOUND— unknownresource_id, a resource on another team's project, or one outside the token'sscope:project:allow-list.AUTHENTICATION_REQUIRED— no authenticated user on the request.TOKEN_MISSING_ABILITY— token lacksproject-resource:update.
Related
activate_resource— switch it back on.delete_resource— remove the row for good.unlink_resource— clear the connector binding but keep the row.get_resource- Resources API — the REST equivalent,
POST /projects/{project}/resources/{resource}/deactivate. - Resources — the dashboard walkthrough.
How is this guide?
create_resource
Create a manual project resource (PDF link, token, URL placeholder) on a project with a connected connector. Gated places are linked through their connector.
delete_resource
Hard-delete a project resource. Emits project.resource.deleted before the row disappears so listeners see the snapshot.