discord / action / schema v1
Self Role
Post a message where members get a role by clicking a button, picking from a dropdown, or reacting with an emoji (your choice), no other nodes needed.
Prerequisites
- Add the discord plugin inside this workflow.
Parameters
| Parameter | Type | Description |
|---|---|---|
ServerguildId | discord_guild Required | |
ChannelchannelId | discord_channel Required | Where the role-picker message is posted. |
How members respondinteractionType | select Required Default: | Buttons show a label per role. A dropdown fits the same roles on one line and lets members set all of theirs in one go. Emoji reactions are the classic react-to-get-a-role style. Options: Click a button (button), Pick from a dropdown (select), React with an emoji (reaction) |
Rolesroles | role_button_map Required | Each row grants one Discord role. In button and dropdown modes, add an optional custom label (defaults to the role's name) plus, for dropdowns, an optional emoji. In reaction mode, pick the emoji that grants it. |
Dropdown placeholderselectPlaceholder | text Optional | The greyed-out text shown on the closed dropdown. Leave empty for Discord's default.Field conditions{
"visible": {
"key": "interactionType",
"values": [
"select"
]
}
} |
Message textintroText | textarea Optional Default: | |
Required rolerequiredRoleId | discord_role Optional | Only members with this role can use the panel. Leave empty to let anyone respond. |
Only one role at a timeexclusive | boolean Optional | Picking a new role removes any other role from this list first (radio-button style). In dropdown mode Discord itself stops a member selecting a second one. |
Most roles a member may holdmaxRoles | number Optional Default: | Ignored when "Only one role at a time" is on. That already means exactly one. In dropdown mode Discord stops the extra pick itself; with buttons the member is told they have reached the limit and which role to drop first. Reaction mode has no way to explain a refusal, so the limit does not apply there. |
Message when a role is grantedgrantMessage | text Optional | {{role}} is replaced with the role's name when someone clicks. Button and dropdown modes. Reaction mode stays silent (no DM) to avoid spamming members. |
Message when a role is removedremoveMessage | text Optional | {{role}} is replaced with the role's name when someone clicks. Button and dropdown modes. Reaction mode stays silent (no DM) to avoid spamming members. |
Audit log channellogChannelId | discord_channel Optional | Leave empty to skip logging. Otherwise posts a line there whenever a member grants or removes a role via this panel. |
Inputs and outputs
Inputs
execute- Execute (input)
Outputs
done- Done (output)message_id- Message ID (output)error- Error (output)
No detailed data schema is declared. Inspect a test run to see its result.
Examples and troubleshooting have not yet been reviewed for this contract.
Version and compatibility
This reference follows the current authoring contract. Existing workflows retain their saved node revisions.
Contract identifier
37b2a1defeabe8a615165621262b9d8dfb62735a6b45d7eba56363415bfdfbba