Slack Channel Usage Map
Last Updated: 2026-09-04
Maintained by: BA Team
This document maps every system-generated Slack alert to its trigger context, Zapier flow, owning UC, and the correct channel for Production vs. Test environments.
Channel IDs and descriptions are sourced from CR-15.2.
When adding a new Slack alert to any UC or flow, add a row here.
| Channel | ID (Prod) | Test Channel | ID (Test) | Description |
|---|
#ops-treasury | C0BRCCMN1MG | #test-ops-treasury | C0BRCBMGTC2 | Hourly Solvency Reports, Treasury Sweep confirmations, EOD Firm Health Report |
#ops-risk | C0BREC78LGH | #test-ops-risk | C0BRAMTDYMQ | High-Impact News alerts, Overnight Margin/Swap Monitor, TRIM_TO_COMPLIANCE Sev-1 |
#ops-dev | C0BRCDB8U3U | — | — | Config DB Backup success/failure notifications |
#ops-marketing | C0BQX3AV679 | — | — | Fulfillment notifications, perk inventory depletion alerts |
#ops-onboarding | C0BRC4UE15F | #test-ops-onboarding | C0BQX1MDX47 | Background Check flags (Checkr), E-Verify failures |
#ops-general | C0BR8LRC5MK | #test-ops-general | C0BR6UXRR8D | Catch-all: Veriff resets, FCM denials, Dispute/Chargeback, Pay raise, MID capacity, Aggregate Exhaustion Sev-1, negative balance alerts |
#ops-security | C0BQX3L74B1 | — | — | High Volume Pod Reassignment alerts (restricted) |
#ops-compliance | (ID not in CR-15.2 — confirm) | — | — | KYC/Compliance BullMQ exhaustion, Veriff webhook unmatched user |
| Field | Value |
|---|
| Trigger | Net Balance < 0 after position flatten in Flow 7 (Hard Breach termination) |
| Zapier Flow | Flow 7 — Step 5 (Balance Check) |
| UC Doc | UC_4.15.2 §5 Basic Flow — Step 5 |
| Prod Channel | #ops-general — C0BR8LRC5MK |
| Test Channel | #test-ops-general — C0BR6UXRR8D |
| Additional action | Log to Bad_Debt_Log SQL table (user_id, fcm_subaccount_id, date, negative_balance_amount) for tax write-off |
| Field | Value |
|---|
| Trigger | Scheduled news event approaching (30-min and 10-min warning) |
| Zapier Flow | News Monitor flow (Zapier_Flow_Full_Reference L748–749) |
| UC Doc | (Dashboard news/market status UC — TBD) |
| Prod Channel | #ops-risk — C0BREC78LGH |
| Test Channel | #test-ops-risk — C0BRAMTDYMQ |
| Additional action | Broadcast to Discord simultaneously |
| Field | Value |
|---|
| Trigger | Broker/exchange rejects a TRIM_TO_COMPLIANCE close order |
| Zapier Flow | Risk Management flow (Research_Live_Risk_Management_EN_v1 L251) |
| UC Doc | (Live Risk Management UC — TBD) |
| Prod Channel | #ops-risk — C0BREC78LGH |
| Test Channel | #test-ops-risk — C0BRAMTDYMQ |
| Additional action | — |
| Field | Value |
|---|
| Trigger | Asset approaching rollover/overnight milestone; alert level threshold crossed |
| Zapier Flow | Overnight Margin & Swap Monitor flow (Zapier_Flow_Full_Reference L760, L820) |
| UC Doc | (Market session / overnight monitor UC — TBD) |
| Prod Channel | #ops-risk — C0BREC78LGH |
| Test Channel | #test-ops-risk — C0BRAMTDYMQ |
| Additional action | Also broadcast to Discord + Dashboard WebSocket (Notification Center + Market Status Widget) |
| Field | Value |
|---|
| Trigger | Pay raise rule fires for a trader |
| Zapier Flow | Zapier_Flow_Full_Reference L412 |
| UC Doc | (Compensation UC — TBD) |
| Prod Channel | #ops-general — C0BR8LRC5MK |
| Test Channel | #test-ops-general — C0BR6UXRR8D |
| Additional action | — |
| Field | Value |
|---|
| Trigger | Level 10 trader claims Tom James Suit perk; or suit inventory limit exhausted |
| Zapier Flow | Flow 26 (Zapier_Flow_Full_Reference L848, L856) |
| UC Doc | (Perks UC — TBD) |
| Prod Channel | #ops-marketing — C0BQX3AV679 |
| Test Channel | — (no test channel defined in CR-15.2) |
| Additional action | Vendor email to reps@tomjames.com; Table H Claimed incremented; Active = No on limit |
| Field | Value |
|---|
| Trigger | Goodwill T-shirt 100-unit limit reached |
| Zapier Flow | Flow 27 / Flow 37 (Zapier_Flow_Full_Reference L870) |
| UC Doc | (Perks UC — TBD) |
| Prod Channel | #ops-marketing — C0BQX3AV679 |
| Test Channel | — (no test channel defined in CR-15.2) |
| Additional action | Table H Active = No; Apliiq fulfillment order |
| Field | Value |
|---|
| Trigger | Founding 500 Hoodie inventory limit exhausted |
| Zapier Flow | Flow 1 / Flow 25 (Zapier_Flow_Full_Reference L839) |
| UC Doc | (Perks UC — TBD) |
| Prod Channel | #ops-marketing — C0BQX3AV679 |
| Test Channel | — (no test channel defined in CR-15.2) |
| Additional action | Table H Active = No |
| Field | Value |
|---|
| Trigger | Ops manually resets a trader's Veriff KYC session |
| Zapier Flow | Zapier_Flow_Full_Reference L164 |
| UC Doc | (KYC / Onboarding UC — TBD) |
| Prod Channel | #ops-general — C0BR8LRC5MK |
| Test Channel | #test-ops-general — C0BR6UXRR8D |
| Additional action | — |
| Field | Value |
|---|
| Trigger | Veriff webhook returns status == 'Denied' |
| Zapier Flow | Zapier_Flow_Full_Reference L173 |
| UC Doc | (KYC / Onboarding UC — TBD) |
| Prod Channel | #ops-general — C0BR8LRC5MK (alert to Head of Ops) |
| Test Channel | #test-ops-general — C0BR6UXRR8D |
| Additional action | Payload includes parsed_reason_for_denial |
| Field | Value |
|---|
| Trigger | BullMQ retry queue exhausted (8× retries) on KYC/identity call; or Veriff webhook user_id unresolvable |
| Zapier Flow | — (Node.js middleware, not Zapier) |
| UC Doc | UC_5.1 · UC_5.2 · UC_5.4 |
| Prod Channel | #ops-compliance — (ID not in CR-15.2 — confirm with ops) |
| Test Channel | — (TBD) |
| Additional action | Dead Letter Queue entry; auto-create Freshdesk ticket (Compliance_Hold / Compliance_Review) |
| Field | Value |
|---|
| Trigger | E-Verify or Checkr returns a flag/failure on background check |
| Zapier Flow | Onboarding background check flow |
| UC Doc | (Onboarding UC — TBD) |
| Prod Channel | #ops-onboarding — C0BRC4UE15F |
| Test Channel | #test-ops-onboarding — C0BQX1MDX47 |
| Additional action | — |
| Field | Value |
|---|
| Trigger | Rithmic provisioning fails; weekend retry exhausted (Fri 4pm CT – Sun 4pm CT, final retry Sun 3:45pm CT) |
| Zapier Flow | — (CloudWatch / middleware — CHR-45) |
| UC Doc | (Live Onboarding / Provisioning UC — TBD) |
| Prod Channel | (CloudWatch Sev-1 — confirm target channel with dev) |
| Test Channel | — (TBD) |
| Additional action | Break-Glass Runbook triggered |
| Field | Value |
|---|
| Trigger | A recurring NMI vault charge for a trader's monthly market data subscription is declined (Path B — customer_vault_id IS NOT NULL). Fires at EOM−3, and again at the Day 0 sweep for traders who bought in the last 3 days of the month |
| Zapier Flow | Flow 22 — Monthly Data Fee Billing (C-Corp) |
| UC Doc | UC_4.17.1 §6.10 / BR_4.17.1.20 |
| Prod Channel | #ops-general — C0BR8LRC5MK |
| Test Channel | #test-ops-general — C0BR6UXRR8D |
| Additional action | Trader is notified separately by email (SES-16) plus a WARN dashboard notification in the Billing & Subscriptions category. Slack is for Ops only — the trader never receives it. Webhook payload carries card_brand and card_last_4 |
Channel rationale: #ops-general already carries Dispute/Chargeback, MID capacity and negative balance alerts — the same domain (per-trader financial exceptions on the NMI merchant accounts). A declined data-fee charge is the precursor to a chargeback, so it lands with the people who handle those. #ops-treasury was rejected because its scope is firm-level aggregate reporting (solvency, sweeps, EOD health), not individual failed transactions.
No second alert at downgrade. When the End of Month Hard Check actually switches feeds off, no Slack alert is raised. The client confirmed Slack only for the payment-failure event ([MDM-ZAPF-02]), and nothing beyond that has been added.
| # | Item |
|---|
| 1 | #ops-compliance channel ID not defined in CR-15.2 — confirm ID and add to CR-15.2 (used by UC_5.1, UC_5.2, UC_5.4) |
| 2 | #ops-marketing and #ops-security have no test channel equivalent in CR-15.2 — confirm with ops if test alerts are needed |
| 3 | Several "UC Doc" fields marked TBD — update as those UCs are authored |
| 4 | CloudWatch Sev-1 (Rithmic, CHR-45) target Slack channel not confirmed — pending dev input |