---
title: "Advanced Features"
description: "Verified advanced Ring Platform capabilities — AI matcher, verification, conductors, moderation, and realtime — for founders and integrators"
locale: "en"
---
# Advanced Features

> **Info**
> Filter with **Founder** / **Developer** in the docs sidebar. Legacy content here invented approval workflows, operational transforms, and CDN managers that **do not exist** in the OSS tree. This page maps **shipped modules** you can enable per clone.

Ring Platform “advanced” behavior is not a separate enterprise SKU — it is **feature modules** behind env flags, admin settings, and Server Actions. Founders choose which modules matter for their clone; developers wire the same code paths documented below.

## Capability map (verified in repo)

| Capability | Founder outcome | Code anchor |
|------------|-----------------|-------------|
| **AI opportunity matcher** | Relevant users notified when listings post | `features/opportunities/services/matching-service.ts` |
| **Matcher auto-approval** | High-confidence listings go live without manual review | `maybeAutoApproveOpportunity()` |
| **Entity verification** | Trust badge after document review | `requestEntityVerification()` + `verification_procedures` |
| **Entity moderation** | Report/block bad actors; admin queue | `entity-moderation.ts`, admin matcher queue |
| **PaymentConductor** | WayForPay / Stripe / internal credit checkout | `lib/payments/conductor/payment-conductor.ts` |
| **ProcessConductor** | Cron pipelines with run ledger | `lib/processes/conductor/process-conductor.ts` |
| **Email AI-CRM** | Inbox poll, draft replies, analytics cron | `/api/cron/email-processor`, `/api/cron/email-analytics` |
| **Generative conductors** | Newsroom images/text/video via xAI | `ImageConductor`, `TextConductor`, `VideoConductor` |
| **Tunnel realtime** | Live notifications and discovery events | `lib/tunnel/*`, discovery sync |
| **Confidential tier** | Gated listings for vetted members | `/confidential/*` routes, role checks |

### For founders

## When to turn these on

Advanced modules solve **trust, speed, and automation** — not “more buttons.”

  
- **[Opportunity marketplace](/docs/features/opportunities.md)** — Enable AI matcher so subscribers get notified; optional auto-approval reduces moderator load when match scores are strong.

  
- **[Verified vendor directory](/docs/features/entities.md)** — Verification procedures give buyers confidence; moderation handles abuse reports without shutting down the whole directory.

  
- **[Paid membership + store](/docs/features/membership.md)** — PaymentConductor unifies checkout; ERP/settlement modules track vendor payouts on multi-vendor clones.

  
- **[Publisher / news clone](/docs/development/generative-newsroom.md)** — Text + Image conductors draft articles; ProcessConductor records cron runs for operator audit.

  
- **[Confidential deal flow](/docs/features/security.md)** — Confidential role unlocks restricted entity/opportunity hubs — same Postgres schema, stricter layout gates.

### Typical scenarios (generalized)

- **Regional IT network** — opportunities with `ring_customization` category; matcher surfaces relevant developers; admin approves or auto-approves.
- **B2B marketplace** — entities request verification; store vendors complete PaymentConductor onboarding.
- **Community + inbox** — Email AI-CRM polls `info@yourclone.com`; urgent threads escalate via admin notifications.
- **White-label Ring services** — opportunity categories include `platform_deployment`, `database_migration`, `payment_integration` (see filter presets SSOT).

> **Tip**
> Start with **manual moderation**, enable **auto-approve** only after reviewing matcher quality on staging. `MATCHER_AUTO_APPROVE` defaults off in platform settings schema.

### For developers

## Module integration patterns

```mermaid
sequenceDiagram
    participant U as User
    participant SA as create-opportunity
    participant M as matching-service
    participant A as maybeAutoApproveOpportunity
    participant S as syncOpportunityDiscovery
    participant T as Tunnel

    U->>SA: Server Action
    SA->>M: run matcher
    M->>A: optional auto-approve
    A->>S: revalidateTag + revalidatePath
    S->>T: opportunity:created|updated
```

### AI matcher + auto-approval

Controlled by `platform_settings` / env (`MATCHER_AUTO_APPROVE`, `MATCHER_AUTO_APPROVE_MIN_SCORE`, `LLM_PROVIDER`, `OPENAI_API_KEY` or `ANTHROPIC_API_KEY`).

{`export async function maybeAutoApproveOpportunity(
  opportunity: SerializedOpportunity,
  matchingResult: MatchingResult,
): Promise {
  const aiConfig = await getResolvedAIConfig()
  if (!aiConfig.matcher.autoApprove) {
    return { approved: false, reason: 'auto_approve_disabled' }
  }
  if (opportunity.status !== 'pending') {
    return { approved: false, reason: 'not_pending' }
  }
  // … LLM availability + score threshold …
  await db().updateDoc('opportunities', opportunity.id, { status: 'active' })
  await syncOpportunityDiscovery({ opportunityId: opportunity.id, event: 'status_changed' })
}`}

Deep dive: [Opportunities feature](/docs/features/opportunities.md) (matcher + auto-approve section), admin config in `features/admin/platform-settings/`.

### Entity verification (SSOT)

Uses unified `verification_procedures` — not a standalone AI document analyzer class.

{`import { requestEntityVerification } from '@/features/entities/services/request-entity-verification'

await requestEntityVerification(entityId, 'Optional note for reviewers')
// Sets verificationStatus pending + syncEntityDiscovery()`}

### Entity moderation

- User reports: `reportEntity({ entityId, category, reason })`
- Admin queue: `getEntityModerationQueue()` (`features/admin/matcher/get-entity-moderation-queue.ts`)
- User blocks stored on `users.data.blockedEntityIds`

### Conductors (payments & background work)

{`import { PaymentConductor } from '@/lib/payments/conductor/payment-conductor'

await PaymentConductor.createCheckout(ctx)
await PaymentConductor.handleWebhook('wayforpay', request)`}

{`import { ProcessConductor } from '@/lib/processes/conductor/process-conductor'

const { result, run } = await ProcessConductor.recordRun(
  'email-analytics',
  'cron',
  handler,
)`}

See [PaymentConductor architecture](/docs/architecture/payment-conductor.md), [Email AI-CRM example](/docs/examples/email-ai-crm.md).

### Realtime (not collaborative OT)

Ring uses **Tunnel** topic channels for discovery and notifications — there is **no** operational-transform document engine in this repo. After mutations, call `syncOpportunityDiscovery` / `syncEntityDiscovery` ([Discovery mutation sync](/docs/architecture/discovery-mutation-sync.md)).

### Opportunity filter SSOT

Browse/form categories: `features/opportunities/lib/opportunity-filter-presets.ts` — keep docs and i18n aligned with `OPPORTUNITY_FILTER_CATEGORY_IDS`.

### Enable checklist

Apply Postgres schema + migrations including `platform_settings`, `verification_procedures`, `payment_transactions`, `process_runs` as needed ([Migrations](/docs/getting-started/migrations.md)).

Configure LLM keys and matcher flags; test matcher on staging before `autoApprove: true`.

Wire webhooks for PaymentConductor (server-side HMAC verify only).

Schedule cron routes with `CRON_SECRET` ([Monitoring](/docs/deployment/monitoring.md)).

## Related documentation

  
- **[API integration examples](/docs/examples/api-integration.md)** — Server Actions, REST, and Tunnel patterns.

  
- **[Entities feature](/docs/features/entities.md)** — CRUD, showcase, verification UX.

  
- **[Store & ERP](/docs/features/erp.md)** — Multi-vendor settlement and inventory.

  
- **[Performance](/docs/deployment/performance.md)** — Caching and RSC patterns for scale.

  
- **[White-label clones](/docs/customization/quick-start.md)** — One deployment and database per organization.

  This page is reachable at `/docs/examples/advanced-features` but is **not** listed in `docs/en/examples/meta.json` hub order — treat it as a capability index; prefer linked feature docs for step-by-step setup.
