Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
540 changes: 540 additions & 0 deletions docs/capabilities/server/trigger-events.mdx

Large diffs are not rendered by default.

44 changes: 22 additions & 22 deletions docs/capabilities/server/triggers.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,27 +13,27 @@ A trigger is an action you can build into your app that will occur automatically

Event triggers let your app automatically respond to a user's or moderator's action. The following trigger types are supported:

- `onPostSubmit`
- `onPostCreate`
- `onPostUpdate`
- `onPostReport`
- `onPostDelete`
- `onPostFlairUpdate`
- `onCommentCreate`
- `onCommentDelete`
- `onCommentReport`
- `onCommentSubmit`
- `onCommentUpdate`
- `onPostNsfwUpdate`
- `onPostSpoilerUpdate`
- `onAppInstall`
- `onAppUpgrade`
- `onModAction`
- `onModMail`
- `onAutomoderatorFilterPost`
- `onAutomoderatorFilterComment`

A full list of events and their payloads can be found in the [EventTypes documentation](../../api/public-api/@devvit/namespaces/EventTypes/). For more details on Mod specific actions, see [ModActions](../../api/redditapi/models/interfaces/ModAction) and [ModMail](../../api/public-api/type-aliases/ModMailDefinition).
- [`onPostSubmit`](./trigger-events#onpostsubmit)
- [`onPostCreate`](./trigger-events#onpostcreate)
- [`onPostUpdate`](./trigger-events#onpostupdate)
- [`onPostReport`](./trigger-events#onpostreport)
- [`onPostDelete`](./trigger-events#onpostdelete)
- [`onPostFlairUpdate`](./trigger-events#onpostflairupdate)
- [`onCommentCreate`](./trigger-events#oncommentcreate)
- [`onCommentDelete`](./trigger-events#oncommentdelete)
- [`onCommentReport`](./trigger-events#oncommentreport)
- [`onCommentSubmit`](./trigger-events#oncommentsubmit)
- [`onCommentUpdate`](./trigger-events#oncommentupdate)
- [`onPostNsfwUpdate`](./trigger-events#onpostnsfwupdate)
- [`onPostSpoilerUpdate`](./trigger-events#onpostspoilerupdate)
- [`onAppInstall`](./trigger-events#onappinstall)
- [`onAppUpgrade`](./trigger-events#onappupgrade)
- [`onModAction`](./trigger-events#onmodaction)
- [`onModMail`](./trigger-events#onmodmail)
- [`onAutomoderatorFilterPost`](./trigger-events#onautomoderatorfilterpost)
- [`onAutomoderatorFilterComment`](./trigger-events#onautomoderatorfiltercomment)

See the [Trigger Event Catalog](./trigger-events) for when each event fires, its delivery and safety behavior, and its top-level payload. For exhaustive generated type definitions, see the [EventTypes API reference](../../api/public-api/@devvit/namespaces/EventTypes/).

## Setting up triggers

Expand Down Expand Up @@ -155,7 +155,7 @@ router.post<string, never, TriggerResponse, OnPostSubmitRequest>(

- Avoid creating recursive triggers that could cause infinite loops or crashes (for example, a comment trigger that creates a comment).
- Always check the event payload to ensure your app is not the source of the event before taking action.
- Review the [EventTypes documentation](../../api/public-api/@devvit/namespaces/EventTypes/) for details on event payloads.
- Review the [Trigger Event Catalog](./trigger-events) for event behavior and payload details.

:::caution
Triggers are not guaranteed to deliver only once for a single event. Ensure your app logic is able to handle this case, e.g. checking if content has been recently actioned before taking action again.
Expand Down
1 change: 1 addition & 0 deletions sidebars.ts
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,7 @@ const sidebars: SidebarsConfig = {
items: [
"capabilities/server/scheduler",
"capabilities/server/triggers",
"capabilities/server/trigger-events",
"capabilities/server/global-triggers"
],
},
Expand Down
Loading
Loading