# Discord - Workflow trigger | Docs - nodulz

Source: https://nodulz.com/docs/nodes/discord_trigger

Language: en

Starts the workflow on Discord Gateway server events (messages, reactions, members, and more)

## Usage and specifics

The trigger uses the Gateway and a bot token. Enable the required Discord intents. Publishing starts the listener; rules filter the selected events.

Technical type : `discord_trigger`. Runtime : `nodulz`.

## Credentials and prerequisites

- [Create and configure the credential : discord-bot](/docs/credentials/discord-bot)

Create credentials in your nodulz instance’s Credentials area, then select them on the node. Availability depends on ownership and sharing. See the [credentials guide](/docs/credentials) for access and rotation.

## Parameters

Names below are technical keys. Defaults are not a ready-to-run configuration: complete fields required by your operation. Paths containing [] describe list items; some fields depend on the selected mode.

| Parameter | Type | Default | Values / limits |
| --- | --- | --- | --- |
| `credentialId` | `string` | `""` | - |
| `serviceInstanceId` | `string` | - | - |
| `connectionSource` | `enum` | `"credential"` | `credential`, `service` |
| `events` | `array` | `["MESSAGE_CREATE"]` | - |
| `rules` | `object` | `{}` | - |
| `rules.guildIds` | `array` | `[]` | - |
| `rules.channelIds` | `array` | `[]` | - |
| `rules.ignoreChannelIds` | `array` | `[]` | - |
| `rules.categoryIds` | `array` | `[]` | - |
| `rules.channelTypes` | `array` | `[]` | - |
| `rules.ignoreBots` | `boolean` | `true` | - |
| `rules.requireMentionBot` | `boolean` | `false` | - |
| `rules.requireEveryoneMention` | `boolean` | `false` | - |
| `rules.hasAttachments` | `boolean` | - | - |
| `rules.hasEmbeds` | `boolean` | - | - |
| `rules.hasStickers` | `boolean` | - | - |
| `rules.isThread` | `boolean` | - | - |
| `rules.isDm` | `boolean` | - | - |
| `rules.contentMatch` | `enum` | `"any"` | `any`, `contains`, `regex` |
| `rules.contentPattern` | `string` | `""` | - |
| `rules.caseSensitive` | `boolean` | `false` | - |
| `rules.minLength` | `number` | - | -; ≥ 0 |
| `rules.maxLength` | `number` | - | -; ≥ 0 |
| `rules.authorIds` | `array` | `[]` | - |
| `rules.denyAuthorIds` | `array` | `[]` | - |
| `rules.authorRoleIdsAny` | `array` | `[]` | - |
| `rules.authorRoleIdsNone` | `array` | `[]` | - |
| `rules.emojiIds` | `array` | `[]` | - |
| `rules.emojiNames` | `array` | `[]` | - |
| `rules.interactionTypes` | `array` | `[]` | - |
| `rules.commandNames` | `array` | `[]` | - |
| `rules.customIds` | `array` | `[]` | - |
| `rules.dedupeWindowMs` | `number` | `30000` | -; ≥ 0 |
| `testPayload` | `string` | `""` | - |
| `interactionAck` | `enum` | `"none"` | `none`, `defer_ephemeral`, `defer_public` |
| `reply` | `object` | - | - |
| `reply.mode` | `enum` | `"none"` | `none`, `when_finished`, `response_node` |
| `reply.target` | `enum` | `"auto"` | `auto`, `channel_message`, `interaction`, `interaction_followup`, `interaction_edit` |
| `reply.format` | `enum` | `"last_node"` | `template`, `last_node`, `node_output`, `response_node` |
| `reply.responseTemplate` | `string` | `""` | - |
| `reply.respondNodeKey` | `string` | - | - |
| `reply.content` | `string` | `""` | - |
| `reply.embeds` | `array` | `[]` | - |
| `reply.embeds[].title` | `string` | `""` | - |
| `reply.embeds[].description` | `string` | `""` | - |
| `reply.embeds[].url` | `string` | `""` | - |
| `reply.embeds[].color` | `string` | `""` | - |
| `reply.embeds[].timestamp` | `boolean` | `false` | - |
| `reply.embeds[].footer` | `string` | `""` | - |
| `reply.embeds[].footerIconUrl` | `string` | `""` | - |
| `reply.embeds[].imageUrl` | `string` | `""` | - |
| `reply.embeds[].thumbnailUrl` | `string` | `""` | - |
| `reply.embeds[].authorName` | `string` | `""` | - |
| `reply.embeds[].authorUrl` | `string` | `""` | - |
| `reply.embeds[].authorIconUrl` | `string` | `""` | - |
| `reply.embeds[].fields` | `array` | `[]` | - |
| `reply.embeds[].fields[].name` | `string` | `""` | - |
| `reply.embeds[].fields[].value` | `string` | `""` | - |
| `reply.embeds[].fields[].inline` | `boolean` | `false` | - |
| `reply.ephemeral` | `boolean` | `false` | - |
| `connectionStatus` | `enum` | - | `disconnected`, `connecting`, `connected`, `error` |
| `lastError` | `string` | - | - |

## Examples

- Example: {{ input.message.content }} or {{ input.member.username }}

## Initial configuration

Initial catalog configuration example, to adapt before running. Keep secrets in credentials.

```json
{
  "credentialId": "",
  "events": [
    "MESSAGE_CREATE"
  ],
  "rules": {},
  "testPayload": ""
}
```

## Verification

Test with representative data. Check node output in the inspector and logs, then use editor mapping for downstream fields. A trigger test with a simulated payload does not validate external service delivery.

See also : [Expressions and data](/docs/expressions), [Executions](/docs/executions), [Node catalog](/docs/nodes).

## Explore further

- [Features - nodulz](https://nodulz.com/product/overview)
- [Node catalog - nodulz](https://nodulz.com/product/catalog)
- [MCP server - nodulz](https://nodulz.com/product/mcp)
- [Pricing - nodulz](https://nodulz.com/pricing)
- [Use cases and workflow automation - nodulz](https://nodulz.com/use-cases)
- [Choose what your workflows can do. - nodulz](https://nodulz.com/compare)
- [Documentation - nodulz](https://nodulz.com/docs)
