Docs

#Approvals in Discord

Let your reviewers approve or reject an AI action without leaving Discord. Once your org has connected Discord, Ratifia posts every decision to your team's channel, pinging the approvers. A plain yes/no gets Approve / Reject buttons: one click decides it and resumes your workflow. Anything more gets an Open in Ratifia button, because it's answered in the app. See Where people answer.

#What your reviewers see

Ratifia posts one message to the org's configured channel and @-mentions every approver who has a verified Discord id. The message carries two buttons:

  • Approve / Reject. A single click records the verdict.
  • View decision. A link into the dashboard for the full context.

The clicking Discord user is the voter: whoever presses a button casts the vote, so identity comes from the click, not a baked-in recipient. With a multi-approver quorum, each person's click counts as one vote; the message updates as the decision resolves, and once decided the buttons are replaced with the outcome so the same message can't be actioned twice.

When a decision asks for more than a plain yes/no (a choice, a typed answer, or a draft to edit), the post carries only Open in Ratifia: it's answered in the app, where the whole context is.

#How much the message shows

By default the channel message is a content-free pointer: it shows routing metadata only (the workflow / step, the engine, and a humanized SLA) with a footer line pointing at the full detail in Ratifia (sign-in required). No prompt, context, or draft appears in Discord. An org can opt into richer content in the message; this is governed by the org's notification content setting.

#Connecting Discord

Discord is connected per org from the dashboard, under Settings:

  1. Click Connect Discord. This sends the admin to Discord to authorize the Ratifia bot into their server.
  2. On authorize, Discord redirects back to Ratifia and the server (guild) is bound to your org.
  3. Back in the dashboard, pick the channel to post approvals to from the dropdown of the server's postable text channels.
  4. Click Send sample message to confirm the bot is reachable and the channel is writable before real decisions flow.

One bot, many servers

A single Ratifia bot serves every install, so a channel is only usable once your org has completed the connect flow above. The chosen channel must belong to your own connected server; picking a channel from another server is rejected.

#Which decisions appear in Discord

All of them, once Discord is connected. There's nothing to set per policy or per request. The context.blocks you pass are what a reviewer sees when they open the decision (and, in rich mode, in the message itself).

#Requirements

  • The Ratifia Discord app is connected and a channel is chosen. Until your org completes the connect flow and selects a channel, nothing is posted to Discord and decisions are answered in the app and by email.
  • The approver is reachable in Discord. An approver with a verified discord id is @-mentioned in the post. A click only counts from a Discord id verified as one of the decision's approvers.

#Security

Every button click is verified before it can move a decision:

  • Each interaction is signed by Discord (Ed25519) and verified against the app's public key, so a forged or replayed callback is rejected, never recorded.
  • A decided decision is final: re-clicking a stale button does nothing, and it can't be flipped after it resolves.

The buttons are a bearer affordance, since whoever can see the message can click, so post Discord approvals to the private channel you intend, the same way you'd scope any approval.