Automation event catalog
How trigger definitions, scope, refinements, prerequisites, latency, and produced payloads work, followed by every Snoze and provider event in the source catalog.
The Event trigger picker is built from a live TriggerCatalog, not from a
fixed list in the interface. Snoze-native definitions are always present.
Provider definitions are usable only when the workspace has the corresponding
provider connected. A disconnected provider appears as a prerequisite with its
source, reason, and optional setup link so the option is discoverable
without pretending it can run.
Reading a trigger definition
Each TriggerDefinition contains:
id: the stable machine event saved asdefinitionId.sourceandsourceLabel: who emitted it and the readable provider name.subjectandverb: the phrase shown in the picker.description,keywords, andlatency: what starts it, how to find it, and whether it is instant or polled.scope: provider resources that must be selected before publication. Every scope field has a key, label, resource type, required flag, optional parent dependency, and exact path where that resource appears in the payload.refinements: optional catalogue-owned narrowing controls, such as selected labels. Each points to a produced field and records its value kind.produces: a labelled object shape. The expression picker uses that shape to offer paths into the trigger payload to later nodes.
Scope is required whenever the definition declares required scope. It is
stored as labelled ResourceRef values and used by the subscription index, so
an event outside that repository, server, channel, database, form, or other
resource does not wake the Automation. Refinements narrow a matched event.
Additional trigger predicates run against the produced payload after matching.
The catalog can change as connections are added or removed. A published Automation retains readable labels in its scope, but it cannot receive a provider event while the required connection or subscription is unavailable.
Snoze-native events
This section is generated from the integration trigger registry. Every entry names its saved event ID, subscription scope, refinements, delivery latency, and exact produced paths.
Records created event:database.record.created
Records created. It is delivered immediately.
- Scope:
database(snoze.database; required; payload pathdatabaseId). - Refinements: None.
- Produced payload: Database record:
databaseId(text),title(text),patch(object) {title(text),data(object) { },archived(boolean) },changedFields(list).
Records updated event:database.record.updated
Records updated. It is delivered immediately.
- Scope:
database(snoze.database; required; payload pathdatabaseId). - Refinements:
changedFieldsnarrowschangedFields(multi_select, multiple). - Produced payload: Database record:
databaseId(text),title(text),patch(object) {title(text),data(object) { },archived(boolean) },changedFields(list),previous(object) {title(text),data(object) { },archived(boolean) }.
Records deleted event:database.record.deleted
Records deleted. It is delivered immediately.
- Scope:
database(snoze.database; required; payload pathdatabaseId). - Refinements: None.
- Produced payload: Deleted record:
databaseId(text),title(text).
Records commented event:database.record.commented
Records commented. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Records:
value(unknown).
Records comment deleted event:database.record.comment_deleted
Records comment deleted. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Records:
value(unknown).
Databases created event:database.created
Databases created. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Databases:
value(unknown).
Databases updated event:database.updated
Databases updated. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Databases:
value(unknown).
Databases deleted event:database.deleted
Databases deleted. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Databases:
value(unknown).
Databases synced event:database.records.synced
Databases synced. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Databases:
value(unknown).
Databases created event:database.field.created
Databases created. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Databases:
value(unknown).
Databases updated event:database.field.updated
Databases updated. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Databases:
value(unknown).
Databases deleted event:database.field.deleted
Databases deleted. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Databases:
value(unknown).
Databases created event:database.view.created
Databases created. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Databases:
value(unknown).
Databases updated event:database.view.updated
Databases updated. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Databases:
value(unknown).
Databases deleted event:database.view.deleted
Databases deleted. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Databases:
value(unknown).
Calendar created event:calendar.event.created
Calendar created. It is delivered immediately.
- Scope:
calendar(snoze.calendar; required; payload pathcalendarId). - Refinements: None.
- Produced payload: Calendar update:
calendarId(text),event(object) {schemaVersion(number),id(text),title(text),description(rich_text),location(text),allDay(boolean),startsAt(date),endsAt(date),startDate(date),endDate(date),timeZone(text),status(status),visibility(select),attendees(list) {displayName(text),email(email),responseStatus(status) },links(list) {label(text),url(url) },createdAt(date),updatedAt(date) }.
Calendar updated event:calendar.event.updated
Calendar updated. It is delivered immediately.
- Scope:
calendar(snoze.calendar; required; payload pathcalendarId). - Refinements: None.
- Produced payload: Calendar update:
calendarId(text),event(object) {schemaVersion(number),id(text),title(text),description(rich_text),location(text),allDay(boolean),startsAt(date),endsAt(date),startDate(date),endDate(date),timeZone(text),status(status),visibility(select),attendees(list) {displayName(text),email(email),responseStatus(status) },links(list) {label(text),url(url) },createdAt(date),updatedAt(date) }.
Calendar cancelled event:calendar.event.cancelled
Calendar cancelled. It is delivered immediately.
- Scope:
calendar(snoze.calendar; required; payload pathcalendarId). - Refinements: None.
- Produced payload: Calendar update:
calendarId(text),event(object) {schemaVersion(number),id(text),title(text),description(rich_text),location(text),allDay(boolean),startsAt(date),endsAt(date),startDate(date),endDate(date),timeZone(text),status(status),visibility(select),attendees(list) {displayName(text),email(email),responseStatus(status) },links(list) {label(text),url(url) },createdAt(date),updatedAt(date) }.
Calendar starting event:calendar.event.starting
Calendar starting. It is delivered immediately.
- Scope:
calendar(snoze.calendar; required; payload pathcalendarId). - Refinements: None.
- Produced payload: Calendar update:
calendarId(text),event(object) {schemaVersion(number),id(text),title(text),description(rich_text),location(text),allDay(boolean),startsAt(date),endsAt(date),startDate(date),endDate(date),timeZone(text),status(status),visibility(select),attendees(list) {displayName(text),email(email),responseStatus(status) },links(list) {label(text),url(url) },createdAt(date),updatedAt(date) }.
Data source created event:data_source.created
Data source created. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Data source:
value(unknown).
Data source updated event:data_source.updated
Data source updated. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Data source:
value(unknown).
Data source deleted event:data_source.deleted
Data source deleted. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Data source:
value(unknown).
Data source started event:data_source.run.started
Data source started. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Data source:
value(unknown).
Data source completed event:data_source.run.completed
Data source completed. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Data source:
value(unknown).
Data source failed event:data_source.run.failed
Data source failed. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Data source:
value(unknown).
File created event:file.created
File created. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: File:
value(unknown).
File deleted event:file.deleted
File deleted. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: File:
value(unknown).
File access key rotated event:file.access_key_rotated
File access key rotated. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: File:
value(unknown).
File orphan deleted event:file.orphan_deleted
File orphan deleted. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: File:
value(unknown).
File created event:file.share_link.created
File created. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: File:
value(unknown).
File revoked event:file.share_link.revoked
File revoked. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: File:
value(unknown).
Action created event:action.created
Action created. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Action:
value(unknown).
Action updated event:action.updated
Action updated. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Action:
value(unknown).
Action deleted event:action.deleted
Action deleted. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Action:
value(unknown).
Action started event:action.run.started
Action started. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Action:
value(unknown).
Action completed event:action.run.completed
Action completed. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Action:
value(unknown).
Action failed event:action.run.failed
Action failed. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Action:
value(unknown).
Page created event:surface.created
Page created. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Page:
value(unknown).
Page updated event:surface.updated
Page updated. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Page:
value(unknown).
Page deleted event:surface.deleted
Page deleted. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Page:
value(unknown).
Page updated event:surface.block.updated
Page updated. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Page:
value(unknown).
Workspace created event:workspace.created
Workspace created. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Workspace:
value(unknown).
Workspace updated event:workspace.updated
Workspace updated. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Workspace:
value(unknown).
Workspace deleted event:workspace.deleted
Workspace deleted. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Workspace:
value(unknown).
Workspace created event:workspace.item.created
Workspace created. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Workspace:
value(unknown).
Workspace updated event:workspace.item.updated
Workspace updated. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Workspace:
value(unknown).
Workspace deleted event:workspace.item.deleted
Workspace deleted. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Workspace:
value(unknown).
Member or invite updated event:workspace.member.updated
Member or invite updated. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Member or invite:
value(unknown).
Member or invite removed event:workspace.member.removed
Member or invite removed. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Member or invite:
value(unknown).
Member or invite accepted event:workspace.invite.accepted
Member or invite accepted. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Member or invite:
value(unknown).
Member or invite updated event:workspace.invite.updated
Member or invite updated. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Member or invite:
value(unknown).
Member or invite revoked event:workspace.invite.revoked
Member or invite revoked. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Member or invite:
value(unknown).
Connection created event:connection.created
Connection created. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Connection:
value(unknown).
Connection deleted event:connection.deleted
Connection deleted. It is delivered immediately.
- Scope: None.
- Refinements: None.
- Produced payload: Connection:
value(unknown).
Connected-provider events
These are all provider event definitions currently implemented by the source registry, generated with GitHub, Discord, and Slack enabled so the reference is complete. A real workspace receives only the definitions for providers it has connected; the rest are catalog prerequisites.
Pull request is opened event:github.pull_request.opened
Pull request is opened. It is delivered immediately.
- Scope:
repository(github.repository; required; payload pathrepository.full_name). - Refinements:
labelsnarrowslabels(multi_select, multiple);authornarrowsauthor(person). - Produced payload: Pull request or issue:
action(text),pull_request(object) {title(text),number(number),state(status),draft(boolean),body(rich_text),html_url(url),user(object) {login(text),html_url(url) },labels(list),created_at(date) },issue(object) {title(text),number(number),state(status),draft(boolean),body(rich_text),html_url(url),user(object) {login(text),html_url(url) },labels(list),created_at(date) },repository(object) {name(text),full_name(text),html_url(url) },sender(object) {login(text) }.
Pull request is closed event:github.pull_request.closed
Pull request is closed. It is delivered immediately.
- Scope:
repository(github.repository; required; payload pathrepository.full_name). - Refinements:
labelsnarrowslabels(multi_select, multiple);authornarrowsauthor(person). - Produced payload: Pull request or issue:
action(text),pull_request(object) {title(text),number(number),state(status),draft(boolean),body(rich_text),html_url(url),user(object) {login(text),html_url(url) },labels(list),created_at(date) },issue(object) {title(text),number(number),state(status),draft(boolean),body(rich_text),html_url(url),user(object) {login(text),html_url(url) },labels(list),created_at(date) },repository(object) {name(text),full_name(text),html_url(url) },sender(object) {login(text) }.
Pull request is reopened event:github.pull_request.reopened
Pull request is reopened. It is delivered immediately.
- Scope:
repository(github.repository; required; payload pathrepository.full_name). - Refinements:
labelsnarrowslabels(multi_select, multiple);authornarrowsauthor(person). - Produced payload: Pull request or issue:
action(text),pull_request(object) {title(text),number(number),state(status),draft(boolean),body(rich_text),html_url(url),user(object) {login(text),html_url(url) },labels(list),created_at(date) },issue(object) {title(text),number(number),state(status),draft(boolean),body(rich_text),html_url(url),user(object) {login(text),html_url(url) },labels(list),created_at(date) },repository(object) {name(text),full_name(text),html_url(url) },sender(object) {login(text) }.
Pull request gets new commits event:github.pull_request.synchronize
Pull request gets new commits. It is delivered immediately.
- Scope:
repository(github.repository; required; payload pathrepository.full_name). - Refinements:
labelsnarrowslabels(multi_select, multiple);authornarrowsauthor(person). - Produced payload: Pull request or issue:
action(text),pull_request(object) {title(text),number(number),state(status),draft(boolean),body(rich_text),html_url(url),user(object) {login(text),html_url(url) },labels(list),created_at(date) },issue(object) {title(text),number(number),state(status),draft(boolean),body(rich_text),html_url(url),user(object) {login(text),html_url(url) },labels(list),created_at(date) },repository(object) {name(text),full_name(text),html_url(url) },sender(object) {login(text) }.
Pull request is ready for review event:github.pull_request.ready_for_review
Pull request is ready for review. It is delivered immediately.
- Scope:
repository(github.repository; required; payload pathrepository.full_name). - Refinements:
labelsnarrowslabels(multi_select, multiple);authornarrowsauthor(person). - Produced payload: Pull request or issue:
action(text),pull_request(object) {title(text),number(number),state(status),draft(boolean),body(rich_text),html_url(url),user(object) {login(text),html_url(url) },labels(list),created_at(date) },issue(object) {title(text),number(number),state(status),draft(boolean),body(rich_text),html_url(url),user(object) {login(text),html_url(url) },labels(list),created_at(date) },repository(object) {name(text),full_name(text),html_url(url) },sender(object) {login(text) }.
Pull request has a review requested event:github.pull_request.review_requested
Pull request has a review requested. It is delivered immediately.
- Scope:
repository(github.repository; required; payload pathrepository.full_name). - Refinements:
labelsnarrowslabels(multi_select, multiple);authornarrowsauthor(person). - Produced payload: Pull request or issue:
action(text),pull_request(object) {title(text),number(number),state(status),draft(boolean),body(rich_text),html_url(url),user(object) {login(text),html_url(url) },labels(list),created_at(date) },issue(object) {title(text),number(number),state(status),draft(boolean),body(rich_text),html_url(url),user(object) {login(text),html_url(url) },labels(list),created_at(date) },repository(object) {name(text),full_name(text),html_url(url) },sender(object) {login(text) }.
Issue is opened event:github.issue.opened
Issue is opened. It is delivered immediately.
- Scope:
repository(github.repository; required; payload pathrepository.full_name). - Refinements:
labelsnarrowslabels(multi_select, multiple);authornarrowsauthor(person). - Produced payload: Pull request or issue:
action(text),pull_request(object) {title(text),number(number),state(status),draft(boolean),body(rich_text),html_url(url),user(object) {login(text),html_url(url) },labels(list),created_at(date) },issue(object) {title(text),number(number),state(status),draft(boolean),body(rich_text),html_url(url),user(object) {login(text),html_url(url) },labels(list),created_at(date) },repository(object) {name(text),full_name(text),html_url(url) },sender(object) {login(text) }.
Issue is closed event:github.issue.closed
Issue is closed. It is delivered immediately.
- Scope:
repository(github.repository; required; payload pathrepository.full_name). - Refinements:
labelsnarrowslabels(multi_select, multiple);authornarrowsauthor(person). - Produced payload: Pull request or issue:
action(text),pull_request(object) {title(text),number(number),state(status),draft(boolean),body(rich_text),html_url(url),user(object) {login(text),html_url(url) },labels(list),created_at(date) },issue(object) {title(text),number(number),state(status),draft(boolean),body(rich_text),html_url(url),user(object) {login(text),html_url(url) },labels(list),created_at(date) },repository(object) {name(text),full_name(text),html_url(url) },sender(object) {login(text) }.
Issue is reopened event:github.issue.reopened
Issue is reopened. It is delivered immediately.
- Scope:
repository(github.repository; required; payload pathrepository.full_name). - Refinements:
labelsnarrowslabels(multi_select, multiple);authornarrowsauthor(person). - Produced payload: Pull request or issue:
action(text),pull_request(object) {title(text),number(number),state(status),draft(boolean),body(rich_text),html_url(url),user(object) {login(text),html_url(url) },labels(list),created_at(date) },issue(object) {title(text),number(number),state(status),draft(boolean),body(rich_text),html_url(url),user(object) {login(text),html_url(url) },labels(list),created_at(date) },repository(object) {name(text),full_name(text),html_url(url) },sender(object) {login(text) }.
Pull request or issue is commented on event:github.issue.created
Pull request or issue is commented on. It is delivered immediately.
- Scope:
repository(github.repository; required; payload pathrepository.full_name). - Refinements:
labelsnarrowslabels(multi_select, multiple);authornarrowsauthor(person). - Produced payload: Pull request or issue:
action(text),pull_request(object) {title(text),number(number),state(status),draft(boolean),body(rich_text),html_url(url),user(object) {login(text),html_url(url) },labels(list),created_at(date) },issue(object) {title(text),number(number),state(status),draft(boolean),body(rich_text),html_url(url),user(object) {login(text),html_url(url) },labels(list),created_at(date) },repository(object) {name(text),full_name(text),html_url(url) },sender(object) {login(text) }.
Message is posted event:discord.message.created
Message is posted in Discord. It is delivered immediately.
- Scope:
server(discord.guild; required; payload pathguildId);channel(discord.channel; optional; payload pathobject.channel_id). - Refinements: None.
- Produced payload: Discord message:
object(object) {content(rich_text),author(object) {username(text),global_name(text),id(text),bot(boolean) },mentions(list),attachments(list),id(text),channel_id(text),timestamp(date) },guildId(text).
Message is edited event:discord.message.updated
Message is edited in Discord. It is delivered immediately.
- Scope:
server(discord.guild; required; payload pathguildId);channel(discord.channel; optional; payload pathobject.channel_id). - Refinements: None.
- Produced payload: Discord message:
object(object) {content(rich_text),author(object) {username(text),global_name(text),id(text),bot(boolean) },mentions(list),attachments(list),id(text),channel_id(text),timestamp(date) },guildId(text).
Reaction is added event:discord.reaction.added
Reaction is added in Discord. It is delivered immediately.
- Scope:
server(discord.guild; required; payload pathguildId);channel(discord.channel; optional; payload pathobject.channel_id). - Refinements: None.
- Produced payload: Discord message:
object(object) {content(rich_text),author(object) {username(text),global_name(text),id(text),bot(boolean) },mentions(list),attachments(list),id(text),channel_id(text),timestamp(date) },guildId(text).
Thread is created event:discord.thread.created
Thread is created in Discord. It is delivered immediately.
- Scope:
server(discord.guild; required; payload pathguildId). - Refinements: None.
- Produced payload: Discord message:
object(object) {content(rich_text),author(object) {username(text),global_name(text),id(text),bot(boolean) },mentions(list),attachments(list),id(text),channel_id(text),timestamp(date) },guildId(text).
Member joins event:discord.member.joined
Member joins in Discord. It is delivered immediately.
- Scope:
server(discord.guild; required; payload pathguildId). - Refinements: None.
- Produced payload: Discord message:
object(object) {content(rich_text),author(object) {username(text),global_name(text),id(text),bot(boolean) },mentions(list),attachments(list),id(text),channel_id(text),timestamp(date) },guildId(text).
Message is posted event:slack.message.created
Message is posted in Slack. It is delivered immediately.
- Scope:
channel(slack.channel; required; payload pathevent.channel). - Refinements: None.
- Produced payload: Slack message:
event(object) {text(rich_text),user(text),channel(text),ts(text),thread_ts(text),reaction(text) }.
Message is edited event:slack.message.updated
Message is edited in Slack. It is delivered immediately.
- Scope:
channel(slack.channel; required; payload pathevent.channel). - Refinements: None.
- Produced payload: Slack message:
event(object) {text(rich_text),user(text),channel(text),ts(text),thread_ts(text),reaction(text) }.
Reaction is added event:slack.reaction.added
Reaction is added in Slack. It is delivered immediately.
- Scope:
channel(slack.channel; required; payload pathevent.item.channel). - Refinements: None.
- Produced payload: Slack message:
event(object) {text(rich_text),user(text),channel(text),ts(text),thread_ts(text),reaction(text) }.
App is mentioned event:slack.app.mentioned
App is mentioned in Slack. It is delivered immediately.
- Scope:
channel(slack.channel; required; payload pathevent.channel). - Refinements: None.
- Produced payload: Slack message:
event(object) {text(rich_text),user(text),channel(text),ts(text),thread_ts(text),reaction(text) }.
Produced values downstream
Use a path expression with source: trigger and a path from the entry’s
Produced payload. Object and list fields may expose a nested shape. The shape
describes readable tokens, not a guarantee that every optional provider value
is present on every event. Use exists, is_empty, or coalesce before
depending on optional data.
For Manual, Schedule, and Webhook trigger configuration, node outputs, and the expression language, see Automation triggers, nodes, and expressions.