#In-Thread Approval Discord
1 messages · Page 1 of 1 (latest)
Yes — Discord supports approval prompts in the originating channel/thread, not just DMs.
Use the Discord native approval config, not only generic forwarding:
{
channels: {
discord: {
execApprovals: {
enabled: "auto", // or true
approvers: ["YOUR_DISCORD_USER_ID"],
target: "channel" // or "both"
}
}
}
}
Key gotchas:
- Default is
target: "dm", so DMs are expected unless changed. approversmust be explicit, or resolvable fromcommands.ownerAllowFrom.- Discord does not infer approvers from
allowFrom,dm.allowFrom, ordefaultTo. - If OpenClaw can’t derive the origin channel/thread from the session, it falls back to DM.
- Bot needs Send Messages in Threads permission.
Docs: https://docs.openclaw.ai/channels/discord#approvals-in-discord
If that’s already exactly what you set, please paste openclaw --version and the redacted channels.discord.execApprovals config — this may be version-specific.
I've got:
"execApprovals": {
"enabled": true,
"approvers": [
"xxxxx"
],
"target": "channel"
},
Still, all goes to DM?
That config should request channel/thread delivery. If it still only DMs, one of these is likely happening:
- Origin can’t be resolved, so Discord falls back to approver DM. This happens if the approval wasn’t created from a Discord channel/thread turn, or the session lost its
turnSourceThreadId. - Config isn’t on the active Discord account / gateway didn’t reload it.
- Older version bug / missing thread metadata propagation.
Please paste:
openclaw --version
And confirm the full path is:
{
"channels": {
"discord": {
"execApprovals": {
"enabled": true,
"approvers": ["xxxxx"],
"target": "channel"
}
}
}
}
Also restart the gateway after changing it.
If this is happening from an ACP/subagent/thread-bound session, I’m suspicious the approval request is losing the originating Discord thread context and falling back to DM. In that case it may need a GitHub issue with version + repro: https://github.com/openclaw/openclaw/issues
Okay, now it would seem I'm being prompted to make use of /approve but ... no buttons. Can that be remedied?
Yes — it should be remedied. Discord approval buttons are expected for the native Discord approval path.
If you’re only seeing /approve, that usually means OpenClaw fell back to the generic text approval path, not the native Discord card.
Check these:
channels: {
discord: {
execApprovals: {
enabled: true,
approvers: ["YOUR_DISCORD_USER_ID"],
target: "channel"
}
}
}
Then restart the gateway.
Also verify:
approversare raw Discord user IDs, not usernames.- This config is on the active Discord account; for multi-account setups it may need:
channels.discord.accounts.<accountId>.execApprovals - Bot has Send Messages in Threads.
- You’re not sending to the forum parent — components need the actual thread target.
channels.discord.agentComponents.enabledis not the fix; approval buttons are registered separately.
If it still only shows text, check logs for:
openclaw logs --follow
Look for discord approvals: errors. If there’s no error and no buttons, please file it as a bug with openclaw --version, redacted config, and one log snippet: https://github.com/openclaw/openclaw/issues
That's already done. There's nothing more to configure, unless you suggest I use "both".