Turns the refund approval that happens in a Slack thread into a signed verdict carrying the policy version and reviewer authority.
For: Support and finance teams approving refunds in Slack
Escalates refunds above the threshold into the named approver's queue.
Blocks an approval from a reviewer whose authority limit is below the amount.
Restrains a refund whose claim reference has already been settled.
# Slack Refund-Approval Dossier
# Fork: /decionis → "Connect a workflow" → refund_approval, then edit the
# thresholds here. Observation mode changes nothing in Slack.
apiVersion: decionis.dev/v1
kind: PolicyPack
metadata:
name: slack-refund-approval-dossier
surface: slack
workflow_key: refund_approval
standards: [SOC2-CC8.1, ISO27001-A.8.34]
defaults:
mode: shadow
emit_dossier: true
rules:
- name: threshold_routing
when: "action == 'refund.approve'"
decision: |
ALLOW IF refund_amount < 1000
ESCALATE IF refund_amount < 10000
BLOCK OTHERWISE
reason_code: refund_over_threshold
- name: reviewer_authority_check
when: "action == 'refund.approve'"
decision: |
BLOCK IF approver.authority_limit_usd < refund_amount
ALLOW OTHERWISE
reason_code: approver_authority_insufficient
- name: duplicate_claim_guard
when: "action == 'refund.approve'"
decision: |
RESTRAIN IF claim.reference in ledger.settled_references
ALLOW OTHERWISE
reason_code: duplicate_claim_reference
Fork it, change the thresholds to match your environment, and deploy in shadow mode first — it defaults to listen-only so nothing in your live pipeline changes.
Installs with no code. The Decionis app sits beside Slack approvals and records a Decision Dossier for every routed request.
1. Install Decionis from the Slack Marketplace.
2. /decionis → "Connect a workflow" → pick refund_approval (or any of the starter packs).
3. The app runs in observation mode out of the box: every Slack approval still
flows the same way, plus a signed Decision Dossier is recorded alongside it.Ships in shadow mode — every verdict is recorded, nothing is blocked.
This recipe is one step in a path. The same five steps apply to every recipe in the exchange.
Run the policy against a realistic action in the browser. Push it past what the rules allow and watch the verdict come back. No account.
See exactly what was decided and why: the rule that fired, the evidence it read, the policy version in force, and an Ed25519 signature you can verify yourself.
Measure what the policy would have caught on your own traffic without touching the live path. Every recipe defaults to shadow, so the first deployment carries no execution risk.
Point the same policy at the system where the action actually originates — a checkout, an ERP posting, a Zap, an agent's tool call.
Publish the proof: a public verification link, an embeddable badge, a PR comment, or an anonymized shadow-mode finding. This is how the next person discovers Decionis.