List triggers
curl --request GET \
--url https://api-prod.heliyos.ai/v1/platform/workers/triggers \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-prod.heliyos.ai/v1/platform/workers/triggers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api-prod.heliyos.ai/v1/platform/workers/triggers"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"meta": {
"message": "Successful request"
},
"data": {
"triggers": [
{
"_id": "6710a1b2c3d4e5f6a7b8c901",
"organizationId": null,
"name": "deal.attribute_updated",
"kind": "event",
"label": "Deal attribute changed",
"description": "Chosen deal fields changed. Pick the pipeline (schema) and the attributes to watch.",
"objectType": "deals",
"source": "platform",
"selectsAttributes": true,
"createdAt": "2026-09-01T08:00:00.000Z",
"updatedAt": "2026-11-01T08:00:00.000Z"
},
{
"_id": "6710a1b2c3d4e5f6a7b8c902",
"organizationId": null,
"name": "mention",
"kind": "mention",
"label": "@mention",
"description": "A person mentioned the worker in a comment or note.",
"objectType": null,
"source": "platform",
"createdAt": "2026-09-01T08:00:00.000Z",
"updatedAt": "2026-11-01T08:00:00.000Z"
},
{
"_id": "6710a1b2c3d4e5f6a7b8c903",
"organizationId": null,
"name": "schedule",
"kind": "schedule",
"label": "Schedule",
"description": "Runs once at a date and time, or on a repeating schedule you configure on the worker.",
"objectType": null,
"source": "internal",
"createdAt": "2026-09-01T08:00:00.000Z",
"updatedAt": "2026-11-01T08:00:00.000Z"
},
{
"_id": "6710a1b2c3d4e5f6a7b8c904",
"organizationId": null,
"name": "task.created",
"kind": "event",
"label": "Task created",
"description": "A task was created.",
"objectType": "task",
"source": "platform",
"createdAt": "2026-09-01T08:00:00.000Z",
"updatedAt": "2026-11-01T08:00:00.000Z"
},
{
"_id": "6710a1b2c3d4e5f6a7b8c905",
"organizationId": null,
"name": "typeform.response",
"kind": "event",
"label": "Typeform response",
"description": "A form was submitted. The answers the form maps are already saved to the company, person and, when the form creates deals, the deal. Your own instructions say what to do with them.",
"objectType": "company",
"source": "typeform",
"provider": "typeform",
"providerRef": "TYPEFORM_NEW_RESPONSE",
"integration": {
"title": "Typeform",
"iconSrc": "https://cdn.example.com/icons/typeform.svg",
"connected": false
},
"createdAt": "2026-09-01T08:00:00.000Z",
"updatedAt": "2026-11-01T08:00:00.000Z"
}
]
}
}{
"message": "<string>",
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"details": "<unknown>"
}
}{
"message": "<string>",
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"details": "<unknown>"
}
}{
"message": "<string>",
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"details": "<unknown>"
}
}{
"message": "<string>",
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"details": "<unknown>"
}
}{
"message": "<string>",
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"details": "<unknown>"
}
}Workers and runs
List triggers
Returns the catalogue of triggers a worker can be set to run on: the events it can subscribe
to, mentions and schedules. Use it to fill triggers on Create a worker and Update a
worker. The whole catalogue comes back in one response; it is not paged.
Every workspace has the same shared triggers. A workspace can also have entries of its own,
listed after the shared ones; an own entry with the same name as a shared one replaces it.
From catalogue entry to worker trigger.
| Catalogue entry | Trigger object on the worker |
|---|---|
kind event, for example deal.updated | { "type": "event", "events": ["deal.updated"] }. One trigger can list several event names; "*" means every event. |
kind mention (mention) | { "type": "mention" }. Every active worker answers mentions, with or without it. |
kind schedule (schedule) | { "type": "scheduled", "match": { "schedule": "0 8 * * 1-5", "timezone": "Europe/Berlin" } } for a repeating 5-field cron, or match.at (YYYY-MM-DDTHH:MM:SS local time) with match.timezone for one run. |
| Not in the catalogue | { "type": "task_created" } runs on every new task; match.taskType limits it to some task types. |
Things to know.
- The API does not check event names against this catalogue when you save a worker. A name that is not in it never fires.
- Triggers with an
integrationonly fire while that app is connected (integration.connected). company.attribute_updated,people.attribute_updatedanddeal.attribute_updatedwatch fields picked in the Heliyos app. Created through the API, they run on a change to any field of that object.- A trigger with
typescheduledis registered when you save the worker; checkscheduleSyncin that response.
GET
/
v1
/
platform
/
workers
/
triggers
List triggers
curl --request GET \
--url https://api-prod.heliyos.ai/v1/platform/workers/triggers \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-prod.heliyos.ai/v1/platform/workers/triggers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api-prod.heliyos.ai/v1/platform/workers/triggers"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"meta": {
"message": "Successful request"
},
"data": {
"triggers": [
{
"_id": "6710a1b2c3d4e5f6a7b8c901",
"organizationId": null,
"name": "deal.attribute_updated",
"kind": "event",
"label": "Deal attribute changed",
"description": "Chosen deal fields changed. Pick the pipeline (schema) and the attributes to watch.",
"objectType": "deals",
"source": "platform",
"selectsAttributes": true,
"createdAt": "2026-09-01T08:00:00.000Z",
"updatedAt": "2026-11-01T08:00:00.000Z"
},
{
"_id": "6710a1b2c3d4e5f6a7b8c902",
"organizationId": null,
"name": "mention",
"kind": "mention",
"label": "@mention",
"description": "A person mentioned the worker in a comment or note.",
"objectType": null,
"source": "platform",
"createdAt": "2026-09-01T08:00:00.000Z",
"updatedAt": "2026-11-01T08:00:00.000Z"
},
{
"_id": "6710a1b2c3d4e5f6a7b8c903",
"organizationId": null,
"name": "schedule",
"kind": "schedule",
"label": "Schedule",
"description": "Runs once at a date and time, or on a repeating schedule you configure on the worker.",
"objectType": null,
"source": "internal",
"createdAt": "2026-09-01T08:00:00.000Z",
"updatedAt": "2026-11-01T08:00:00.000Z"
},
{
"_id": "6710a1b2c3d4e5f6a7b8c904",
"organizationId": null,
"name": "task.created",
"kind": "event",
"label": "Task created",
"description": "A task was created.",
"objectType": "task",
"source": "platform",
"createdAt": "2026-09-01T08:00:00.000Z",
"updatedAt": "2026-11-01T08:00:00.000Z"
},
{
"_id": "6710a1b2c3d4e5f6a7b8c905",
"organizationId": null,
"name": "typeform.response",
"kind": "event",
"label": "Typeform response",
"description": "A form was submitted. The answers the form maps are already saved to the company, person and, when the form creates deals, the deal. Your own instructions say what to do with them.",
"objectType": "company",
"source": "typeform",
"provider": "typeform",
"providerRef": "TYPEFORM_NEW_RESPONSE",
"integration": {
"title": "Typeform",
"iconSrc": "https://cdn.example.com/icons/typeform.svg",
"connected": false
},
"createdAt": "2026-09-01T08:00:00.000Z",
"updatedAt": "2026-11-01T08:00:00.000Z"
}
]
}
}{
"message": "<string>",
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"details": "<unknown>"
}
}{
"message": "<string>",
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"details": "<unknown>"
}
}{
"message": "<string>",
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"details": "<unknown>"
}
}{
"message": "<string>",
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"details": "<unknown>"
}
}{
"message": "<string>",
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"details": "<unknown>"
}
}In the Heliyos MCP server:
heliyos_triggers_list, heliyos_workers_tools_list.Authorizations
A workspace API key, sent as Authorization: Bearer heliyos_.... Create one in Heliyos under Settings → API keys. A key acts as a workspace admin in the one workspace it was created in.
Was this page helpful?

