Event types
The full list of webhook event types, who receives each one, an example payload and the JSON Schema of each type and payload version.
A target receives only the event types it subscribes to. Each section below says which targets an event goes to. The table says which target scopes can subscribe to each type.
Each event shows an example data and the JSON Schema of data for every supported
payload version. The other fields of the body are the same for every
type. See the request.
Within a version, Helios can add optional fields and new enum values. Do not reject a payload because it has a field or a value that the schema does not list.
Workflows and runs
These events go to targets in the workflow's project.
| Event type | Targets that can subscribe |
|---|---|
workflow.run.queued | Project, Personal |
workflow.run.started | Project, Personal |
workflow.run.succeeded | Project, Personal |
workflow.run.failed | Project, Personal |
workflow.run.cancelled | Project, Personal |
workflow.created | Project, Personal |
workflow.updated | Project, Personal |
workflow.deleted | Project, Personal |
workflow.enabled | Project, Personal |
workflow.disabled | Project, Personal |
workflow.trigger.secret_rotated | Project, Personal |
Chats
Chat events go only to targets in the personal project of the person who drives the chat, even when the chat is shared. chat.channel_linked and chat.channel_unlinked go to targets in the chat's project.
| Event type | Targets that can subscribe |
|---|---|
chat.created | Personal |
chat.renamed | Personal |
chat.deleted | Personal |
chat.shared | Personal |
chat.unshared | Personal |
chat.participant.added | Personal |
chat.user_message.created | Personal |
chat.turn.completed | Personal |
chat.turn.stopped | Personal |
chat.turn.failed | Personal |
chat.approval.requested | Personal |
chat.question.asked | Personal |
chat.approval.resolved | Personal |
chat.question.answered | Personal |
chat.channel_linked | Project, Personal |
chat.channel_unlinked | Project, Personal |
Library
These events go to targets in the project that owns the path's root folder, to targets in a person's personal project for their own folder, or to organization targets for the organization folder. An agent folder follows the scope of its chat or workflow.
| Event type | Targets that can subscribe |
|---|---|
library.changes.staged | Project, Organization, Personal |
library.changes.approved | Project, Organization, Personal |
library.changes.discarded | Project, Organization, Personal |
library.changes.squashed | Project, Organization, Personal |
library.file.written | Project, Organization, Personal |
library.file.moved | Project, Organization, Personal |
library.file.deleted | Project, Organization, Personal |
Projects and access
Project events go to organization targets, or to personal targets for a personal project. They carry project IDs only, never project names. Access events go to targets in the scope of the resource. Group events go to organization targets. Service account events go to the targets of the service account's project, or to organization targets.
| Event type | Targets that can subscribe |
|---|---|
project.created | Organization, Personal |
project.updated | Organization, Personal |
project.deleted | Organization, Personal |
access.grant.changed | Project, Organization, Personal |
access.grant.revoked | Project, Organization, Personal |
group.created | Organization |
group.renamed | Organization |
group.deleted | Organization |
group.members_changed | Organization |
service_account.created | Project, Organization, Personal |
service_account.updated | Project, Organization, Personal |
service_account.deleted | Project, Organization, Personal |
Connections
Integration events go to the targets of the integration's project, or to organization targets for an organization integration. integration.user_authorized goes to the personal targets of the person who authorized. Database connection, MCP server and connection.* events go to project targets. Network config events go to organization targets.
| Event type | Targets that can subscribe |
|---|---|
connection.project_added | Project, Personal |
connection.project_removed | Project, Personal |
integration.created | Project, Organization, Personal |
integration.deleted | Project, Organization, Personal |
integration.status_changed | Project, Organization, Personal |
integration.user_authorized | Personal |
database_connection.created | Project, Personal |
database_connection.updated | Project, Personal |
database_connection.deleted | Project, Personal |
mcp_server.created | Project, Personal |
mcp_server.updated | Project, Personal |
mcp_server.deleted | Project, Personal |
mcp_server.auth_status_changed | Project, Personal |
network_config.updated | Organization |
network_config.deleted | Organization |
Code
Sandbox events go to organization targets and to the personal targets of the person who launched the sandbox. Image, environment and IaC events go to organization targets.
| Event type | Targets that can subscribe |
|---|---|
sandbox.created | Organization, Personal |
sandbox.launch_failed | Organization, Personal |
sandbox.paused | Organization, Personal |
sandbox.resumed | Organization, Personal |
sandbox.killed | Organization, Personal |
sandbox.expired | Organization, Personal |
sandbox.renamed | Organization, Personal |
sandbox.agent.state_changed | Organization, Personal |
sandbox.agent.turn_completed | Organization, Personal |
sandbox.port.exposed | Organization, Personal |
sandbox.port.unexposed | Organization, Personal |
sandbox_image.created | Organization |
sandbox_image.deleted | Organization |
sandbox_image.version.created | Organization |
sandbox_image.build.succeeded | Organization |
sandbox_image.build.failed | Organization |
sandbox_image.version.committed | Organization |
environment.created | Organization |
environment.updated | Organization |
environment.deleted | Organization |
Variables
These events go to targets in the variable's scope: the organization, a project or a personal project. They carry the variable name and scope, never the value.
| Event type | Targets that can subscribe |
|---|---|
variable.created | Project, Organization, Personal |
variable.updated | Project, Organization, Personal |
variable.deleted | Project, Organization, Personal |
Test
Helios sends webhook.test only when someone sends a test event to one target. You cannot subscribe to it.
| Event type | Targets that can subscribe |
|---|---|
webhook.test | None |
Not available
These events are not available yet: organization members (org.member.*), invitations
(org.invitation.*), API keys (api_key.*) and billing (billing.*).
Helios also sends no events for terminal commands in a sandbox, usage charges, user preferences, onboarding, sandbox file sync and keepalive, token refreshes, memory, or organization deletion.
Last updated on
Delivery and retries
The retry schedule, every failure reason, the throughput limits per target, when a delivery expires, when a failing target turns off, and what happens while a target or Helios is paused.
Access and ownership
The role needed for each webhook action, the rules for organization and personal targets, the 7 day rule when the admin who confirmed a URL loses access, and how payload versions are retired.