Approval Workflows

Approvals your auditors
can replay.

Build approval-queue apps on governed primitives — row-level audit, scoped permissions, and governed Slack notifications. The platform itself ships release approvals with separation of duties today; a durable workflow engine is planned.

Typed request model

Requests, decisions, and state transitions live in your org’s dedicated Postgres.

Scoped decision rights

Who may approve is a permission — custom roles with pattern grants, not convention.

Recorded decisions

Every decision lands in an append-only audit table with actor and before/after diffs.

Solutions / Approval Workflows Pinned
FL

Approval Queue

Pending requests, decisions, and audit status

Pending
14
+3
Approved Today
23
+6
Rejected
4
-2
Avg Decision Time
2.4h
-0.6h

Decision Volume

Approvals and rejections by day

Weekly

Recent Decisions

View all
Maya Chen
Approved vendor payment REQ-1042
4m ago
System
Slack notification delivered to #approvals
9m ago
Luis Ortega
Rejected access request REQ-1039
26m ago
Finance Lead
Changed status from pending to approved
41m ago
System
Audit row written with before/after diff
1h ago
Solution Architecture

A buildable pattern on governed primitives.

An approval queue is an app you build on Relpin today: a typed request table in your org’s dedicated Postgres, scoped roles for who may decide, and an audit trail that records every decision.

01 Request Intake

Capture requests with requester, type, and status.

A typed request table keeps state explicit. Transitions are server-side mutations — no client-side state to tamper with.

requester_id ·status ·typed
02 Decision Rights

Scope who may approve with custom roles.

Pattern grants scope decisions to teams, workspaces, or named users. Who may decide is a permission, not a convention.

roles ·grants ·scoped
03 Queue Views

Build queue, request, and history views in real code.

Apps are real TypeScript or Python projects with a governed SDK. SQL executes server-side with publish-time gates.

typescript ·python ·sdk
04 Notifications

Notify approvers through the governed Slack connector.

Idempotency keys, retries, and capability gating keep delivery governed — no webhook glue to maintain.

slack ·idempotent ·governed
05 Audit Trail

Record every decision with actor and field diffs.

Database triggers capture before/after values on every change. The audit table is append-only, enforced by DB privileges.

audit_log ·diff ·append-only
06 Release Gates

Promote queue changes through approved releases.

The platform’s own gates apply: TEST requires 1 approval, PROD requires 2 — and the requester cannot self-approve.

DEV ·TEST ·PROD
Built for internal tools. Designed for trust.
Deterministic releases
Permission-aware by design
Append-only audit trail
Per-org Postgres isolation
Workflow Engine Planned

A durable engine
is on the roadmap.

Scheduled triggers, escalation chains, and a durable user-authored workflow engine are planned. Until then, the approval-queue pattern above runs on primitives that already exist — nothing here depends on unshipped machinery.

Durable user-authored workflow engine — planned
Scheduled triggers and escalation chains — planned
Threshold-based alerts — planned
Release approval gates with separation of duties — live today
Honest roadmap · Pattern works today · Engine planned
Approval Workflows

Stop approving in DMs.
Start recording decisions.

Build the queue on governed primitives today. Every decision lands in an append-only audit trail your compliance team can query.

Open beta · Buildable pattern · Engine planned

Typed requests · Scoped decisions · Append-only audit · Governed notifications