Edge-deployed on Cloudflare · 99.99% uptime

Real-time message control for cloud contact centers.

Update Emergency and Closure prompts on your IVR in seconds — from a browser, an email, or even a phone call. Per-PIN isolation, full audit trail, every channel governed by the same trust list.

4
Channels — web, email, IVR, API
< 2s
Change propagation to live IVR
100%
Per-PIN tenant isolation
Core capabilities

The control plane your IVR was missing.

Operators shouldn't need a developer to change what callers hear. MSGManager gives every team direct, governed control over the prompts that matter most.

Toggle ON / OFF instantly

Enable or disable the Emergency or Closure message with one click. Next call hears the change.

Update message text

Edit the spoken prompt in plain language. Preview the TTS audio before publishing to callers.

Check live status

See what's currently playing, when it last changed, and which operator made the change.

Multi-channel control

Same state, four channels — web app, email, IVR DTMF menu, and REST API. Pick what fits the moment.

How it works

From login to live IVR — under 30 seconds.

Four clean steps, every one of them governed and audited. No vendor lock-in, no developer ticket, no spreadsheet of admin emails.

1

Authenticate

Sign in with your authorized email and team PIN. A 6-digit code is sent to your inbox. Two-factor by construction.

2

See live state

Your dashboard shows the current Emergency and Closure state for your PIN — toggles, text, last-updated-by.

3

Make the change

Flip a toggle or rewrite the message. Preview the TTS audio. Publish with one click.

4

Live in seconds

Your contact center pulls the new value on the next call. Every action is logged to the audit trail.

Use cases

Built for the moments when message timing matters.

Every minute counts when something changes for your callers. MSGManager turns what used to be a vendor support ticket into a self-service action.

Emergency & weather events

Update the prompt the second a storm hits, a system goes down, or a public-safety event affects service.

After-hours closure

Flip on the closure message at end-of-day, flip it off when offices reopen — without paging an engineer.

Service disruption alerts

Tell callers exactly what's down, when it'll be back, and what to do — without retraining the IVR.

Maintenance windows

Schedule pre-recorded closure text the night before. Audit shows who scheduled what and when.

Compliance disclosures

Update legal or regulatory disclosure language at the start of a call without re-publishing your flow.

Holiday & seasonal hours

Pre-stage holiday greetings and closure schedules. Toggle them on without a 6-week change-management cycle.

Audit module

Every change, every channel — traced.

Every operator action — from the web app, an email, the IVR menu, or a direct API call — writes to a single immutable audit log. Sign in to your PIN and the most recent activity is the first thing you see.

msgmanager.com/dashboard
TSB
TSB Universal tenant
PIN: 2876 · session: operator@your-team.com
Emergency 2876 · ON Closure 2876 · OFF

Recent activity — last 3 actions

PIN 2876 · all channels
operator@your-team.com 2 min ago
Enabled Emergency2876TTS
Web Toggle OFF → ON · session a8f3c2…
ops.lead@your-team.com 14 min ago
Updated Emergency2876TTS text — 147 chars
Email Subject: EMERGENCY UPDATE 2876 · DKIM verified
PIN 2876 admin menu (caller verified) 1 hr ago
Disabled Closure2876TTS
IVR DTMF option 5 · PIN-gated subflow
WxCC / IVR integration

Drops into your existing contact center.

MSGManager is a control plane, not a replacement. Your IVR keeps doing what it already does — it just gets fresh prompts every time a call lands.

How Webex Contact Center calls MSGManager

Add a single HTTP Request activity at the top of your call flow. Point it at https://api.msgmanager.com/v1/state/<PIN> and bind the response to two flow variables — one for the toggle state, one for the message text.

The flow's decision activity branches on the toggle. The PlayMessage activity speaks the text. That's the whole integration. No SDK, no plugin, no flow re-architecture.

  • Works with Webex Contact Center, Cisco Unified CCX, and Cisco UCCE
  • Compatible with Genesys Cloud, Five9, Amazon Connect — any platform with HTTP request blocks
  • Per-PIN variable naming — no tenant-global collisions across teams
  • Caller-side IVR DTMF channel for operator updates from any phone
📞 Caller Webex Contact Center HTTP Request activity MSGManager api.msgmanager.com /v1/state/<PIN> Cloudflare KV Emergency<PIN>TTS / On|Off Web app msgmanager.com Email admin@msgmanager.com IVR (DTMF) PIN-gated admin menu all three channels write to the same KV state Single source of truth. Three operator entrances. One IVR consumer.
REST API

One endpoint. Four actions. Any caller.

Wire MSGManager into anything — ticketing systems, ops dashboards, Slack bots, scheduled tasks. Bearer-token auth, per-PIN scoping, JSON in / JSON out.

Built for automation, not just humans

Every action available in the UI is a single HTTP call. The same Bearer token that gates the web app can drive a PagerDuty webhook, a cron job, or your team's internal ops platform.

Calls are idempotent where it matters (toggle state), atomic where it counts (text updates), and audited universally. The data worker validates every request against the per-PIN trust list before any state changes.

  • Bearer-token authentication — pin-scoped, revocable
  • Webhook callbacks on state change — drive downstream automation
  • Rate-limited per PIN — no noisy neighbors
  • OpenAPI 3.0 spec — generate clients in any language
curl — read current state
curl https://api.msgmanager.com/v1/state/2876 \
  -H "Authorization: Bearer $TOKEN"

// → 200 OK
{
  "pin": "2876",
  "team": "TSB",
  "emergency": {
    "on": true,
    "text": "Due to a water service...",
    "updated_by": "operator@your-team.com",
    "updated_at": "2026-05-15T22:30:00Z"
  },
  "closure": {
    "on": false,
    "text": "Our offices are currently closed..."
  }
}
curl — enable the emergency message
curl -X POST https://api.msgmanager.com/v1/toggle/2876/emergency \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"state": "on"}'

// → 200 OK
{
  "pin": "2876",
  "action": "toggle",
  "scope": "emergency",
  "before": "off",
  "after": "on",
  "audit_id": "a8f3c2e1-..."
}
curl — replace the message text
curl -X PUT https://api.msgmanager.com/v1/message/2876/emergency \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text": "Due to high call volume..."}'

// → 200 OK
{
  "pin": "2876",
  "action": "update",
  "scope": "emergency",
  "chars": 42,
  "audit_id": "b9d4f2a8-..."
}
curl — fetch audit log for a PIN
curl https://api.msgmanager.com/v1/audit/2876?limit=3 \
  -H "Authorization: Bearer $TOKEN"

// → 200 OK
{
  "items": [
    {
      "ts": "2026-05-15T22:30:00Z",
      "actor": "operator@your-team.com",
      "source": "web",
      "action": "update",
      "scope": "emergency"
    },
    { /* ... */ }
  ]
}
Security & governance

Built like enterprise infrastructure.

Every action passes through three independent gates before any state changes. Every change is captured in an immutable audit log. Every operator is scoped to exactly the PINs they own.

Two-factor by construction

Email + PIN + 6-digit OTP delivered to the authorized inbox. Knowledge plus proof-of-control on every session.

Strict per-PIN isolation

Operators see and touch only the PINs they're authorized for. Cross-tenant access is blocked at the API layer, not by convention.

Immutable audit log

Every action — from any channel — recorded with who, what, when, before, after. Compliance-ready out of the box.

Edge-deployed on Cloudflare

Pages, Workers, KV, Turnstile, DDoS protection — globally distributed, zero vendor sprawl, no single-region failure.

Rate-limited & bot-protected

Cloudflare Turnstile on the login, per-IP and per-email rate limiting on every endpoint. Scripted attacks fail fast.

Vendor-neutral by design

No assumptions about your industry, compliance posture, or naming. Drops cleanly into any contact center, any team.

FAQ

Questions teams ask before going live.

Does MSGManager replace my contact center platform?
No — it's a control plane that sits alongside Webex Contact Center, Genesys, Five9, Amazon Connect, or any IVR with HTTP request blocks. Your flow keeps running. MSGManager just supplies fresh prompt text and toggle state on each call.
How is each team isolated from the others?
Every team gets a unique PIN. Trust lists are scoped to a single PIN per record. The system enforces "one operator, one PIN" at the authentication layer — a user authorized for PIN 2876 cannot see, query, or modify PIN 5700's state.
What if my IVR vendor isn't supported?
If your IVR can make an HTTP request to a URL and parse JSON, it works. That covers virtually every modern cloud contact center and most on-prem platforms. We provide ready-made flow snippets for Webex CC, Genesys Cloud, and Amazon Connect.
How fast does a change propagate to live calls?
Sub-2 seconds, end-to-end. The web action writes to Cloudflare KV, which is consistent globally within a couple seconds. The next inbound call to your IVR pulls the new value on its HTTP request activity — no caching layer to invalidate.
What does the audit log capture?
Every state-changing action: who (email), when (UTC timestamp), what (action + scope), where (web / email / IVR / API source), before-and-after values, plus the originating IP and session ID. Exportable to CSV, JSON, or your SIEM.
How are operators added or removed?
Through the admin trust-list API or the web admin panel. Adding an email to a PIN's trust list grants them access on the next login; removing them invalidates all of their active sessions within the next polling interval.

Ready to give your operators control?

A 30-minute walkthrough is all it takes to see your IVR's emergency and closure prompts under MSGManager governance. No code change to your contact center required.

Request a walkthrough